bml-0.6.1/0000755042355400116100000000000011701130243007267 500000000000000bml-0.6.1/dllwrapper/0000755042355400116100000000000011701130243011443 500000000000000bml-0.6.1/dllwrapper/README0000644042355400116100000000021711576362500012260 00000000000000All code in this directory is based on http://xine.cvs.sourceforge.net/viewvc/xine/xine-lib/src/libw32dll/ which has been released under LGPL. bml-0.6.1/dllwrapper/Makefile.in0000644042355400116100000004263411701127004013442 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = dllwrapper DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive HEADERS = $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARCH_CCASFLAGS = @ARCH_CCASFLAGS@ ARCH_CFLAGS = @ARCH_CFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BML_CFLAGS = @BML_CFLAGS@ BML_CXXFLAGS = @BML_CXXFLAGS@ BML_LIBS = @BML_LIBS@ BML_MAJOR_VERSION = @BML_MAJOR_VERSION@ BML_MICRO_VERSION = @BML_MICRO_VERSION@ BML_MINOR_VERSION = @BML_MINOR_VERSION@ BML_VERSION = @BML_VERSION@ BML_VERSION_INFO = @BML_VERSION_INFO@ BML_VERSION_NUMBER = @BML_VERSION_NUMBER@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ locv_path = @locv_path@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = wine noinst_HEADERS = \ libwin32.h EXTRA_DIST = README all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu dllwrapper/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu dllwrapper/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(HEADERS) installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: bml-0.6.1/dllwrapper/wine/0000755042355400116100000000000011701130243012405 500000000000000bml-0.6.1/dllwrapper/wine/loader.h0000644042355400116100000002135011576362500013762 00000000000000/******************************************************** Win32 binary loader interface Copyright 2000 Eugene Kuznetsov (divx@euro.ru) Shamelessly stolen from Wine project *********************************************************/ #ifndef _LOADER_H #define _LOADER_H #include "windef.h" #include "driver.h" #include "mmreg.h" #include "vfw.h" #include "msacm.h" #ifdef __cplusplus extern "C" { #endif unsigned int _GetPrivateProfileIntA(const char* appname, const char* keyname, int default_value, const char* filename); int _GetPrivateProfileStringA(const char* appname, const char* keyname, const char* def_val, char* dest, unsigned int len, const char* filename); int _WritePrivateProfileStringA(const char* appname, const char* keyname, const char* string, const char* filename); /********************************************** MS VFW ( Video For Windows ) interface **********************************************/ long VFWAPIV ICCompress( HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiOutput,void* lpData, LPBITMAPINFOHEADER lpbiInput,void* lpBits,long* lpckid, long* lpdwFlags,long lFrameNum,long dwFrameSize,long dwQuality, LPBITMAPINFOHEADER lpbiPrev,void* lpPrev ); long VFWAPIV ICDecompress(HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiFormat,void* lpData,LPBITMAPINFOHEADER lpbi,void* lpBits); WIN_BOOL VFWAPI ICInfo(long fccType, long fccHandler, ICINFO * lpicinfo); LRESULT VFWAPI ICGetInfo(HIC hic,ICINFO *picinfo, long cb); HIC VFWAPI ICOpen(long fccType, long fccHandler, UINT wMode); HIC VFWAPI ICOpenFunction(long fccType, long fccHandler, unsigned int wMode, void* lpfnHandler); LRESULT VFWAPI ICClose(HIC hic); LRESULT VFWAPI ICSendMessage(HIC hic, unsigned int msg, long dw1, long dw2); HIC VFWAPI ICLocate(long fccType, long fccHandler, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut, short wFlags); int VFWAPI ICDoSomething(); #define ICCompressGetFormat(hic, lpbiInput, lpbiOutput) \ ICSendMessage( \ hic,ICM_COMPRESS_GET_FORMAT,(long)(void*)(lpbiInput), \ (long)(void*)(lpbiOutput) \ ) #define ICCompressGetFormatSize(hic,lpbi) ICCompressGetFormat(hic,lpbi,NULL) #define ICGetDefaultKeyFrameRate(hic,lpint) \ ICSendMessage( \ hic, ICM_GETDEFAULTKEYFRAMERATE, \ (long)(void*)(lpint), \ 0 ) #define ICGetDefaultQuality(hic,lpint) \ ICSendMessage( \ hic, ICM_GETDEFAULTQUALITY, \ (long)(void*)(lpint), \ 0 ) #define ICCompressBegin(hic, lpbiInput, lpbiOutput) \ ICSendMessage( \ hic, ICM_COMPRESS_BEGIN, (long)(void*)(lpbiInput), \ (long)(void*)(lpbiOutput) \ ) #define ICCompressGetSize(hic, lpbiInput, lpbiOutput) \ ICSendMessage( \ hic, ICM_COMPRESS_GET_SIZE, (long)(void*)(lpbiInput), \ (long)(void*)(lpbiOutput) \ ) #define ICCompressQuery(hic, lpbiInput, lpbiOutput) \ ICSendMessage( \ hic, ICM_COMPRESS_QUERY, (long)(void*)(lpbiInput), \ (long)(void*)(lpbiOutput) \ ) #define ICCompressEnd(hic) ICSendMessage(hic, ICM_COMPRESS_END, 0, 0) #define ICDecompressBegin(hic, lpbiInput, lpbiOutput) \ ICSendMessage( \ hic, ICM_DECOMPRESS_BEGIN, (long)(void*)(lpbiInput), \ (long)(void*)(lpbiOutput) \ ) #define ICDecompressQuery(hic, lpbiInput, lpbiOutput) \ ICSendMessage( \ hic,ICM_DECOMPRESS_QUERY, (long)(void*)(lpbiInput), \ (long) (void*)(lpbiOutput) \ ) #define ICDecompressGetFormat(hic, lpbiInput, lpbiOutput) \ ((long)ICSendMessage( \ hic,ICM_DECOMPRESS_GET_FORMAT, (long)(void*)(lpbiInput), \ (long)(void*)(lpbiOutput) \ )) #define ICDecompressGetFormatSize(hic, lpbi) \ ICDecompressGetFormat(hic, lpbi, NULL) #define ICDecompressGetPalette(hic, lpbiInput, lpbiOutput) \ ICSendMessage( \ hic, ICM_DECOMPRESS_GET_PALETTE, (long)(void*)(lpbiInput), \ (long)(void*)(lpbiOutput) \ ) #define ICDecompressSetPalette(hic,lpbiPalette) \ ICSendMessage( \ hic,ICM_DECOMPRESS_SET_PALETTE, \ (long)(void*)(lpbiPalette),0 \ ) #define ICDecompressEnd(hic) ICSendMessage(hic, ICM_DECOMPRESS_END, 0, 0) /***************************************************** MS ACM ( Audio Compression Manager ) interface ******************************************************/ MMRESULT WINAPI acmDriverAddA( PHACMDRIVERID phadid, HINSTANCE hinstModule, LPARAM lParam, DWORD dwPriority, DWORD fdwAdd ); MMRESULT WINAPI acmDriverAddW( PHACMDRIVERID phadid, HINSTANCE hinstModule, LPARAM lParam, DWORD dwPriority, DWORD fdwAdd ); MMRESULT WINAPI acmDriverClose( HACMDRIVER had, DWORD fdwClose ); MMRESULT WINAPI acmDriverDetailsA( HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails ); MMRESULT WINAPI acmDriverDetailsW( HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails ); MMRESULT WINAPI acmDriverEnum( ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum ); MMRESULT WINAPI acmDriverID( HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID ); LRESULT WINAPI acmDriverMessage( HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2 ); MMRESULT WINAPI acmDriverOpen( PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen ); MMRESULT WINAPI acmDriverPriority( HACMDRIVERID hadid, DWORD dwPriority, DWORD fdwPriority ); MMRESULT WINAPI acmDriverRemove( HACMDRIVERID hadid, DWORD fdwRemove ); MMRESULT WINAPI acmFilterChooseA( PACMFILTERCHOOSEA pafltrc ); MMRESULT WINAPI acmFilterChooseW( PACMFILTERCHOOSEW pafltrc ); MMRESULT WINAPI acmFilterDetailsA( HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails ); MMRESULT WINAPI acmFilterDetailsW( HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails ); MMRESULT WINAPI acmFilterEnumA( HACMDRIVER had, PACMFILTERDETAILSA pafd, ACMFILTERENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum ); MMRESULT WINAPI acmFilterEnumW( HACMDRIVER had, PACMFILTERDETAILSW pafd, ACMFILTERENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum ); MMRESULT WINAPI acmFilterTagDetailsA( HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails ); MMRESULT WINAPI acmFilterTagDetailsW( HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails ); MMRESULT WINAPI acmFilterTagEnumA( HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, ACMFILTERTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum ); MMRESULT WINAPI acmFilterTagEnumW( HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, ACMFILTERTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum ); MMRESULT WINAPI acmFormatChooseA( PACMFORMATCHOOSEA pafmtc ); MMRESULT WINAPI acmFormatChooseW( PACMFORMATCHOOSEW pafmtc ); MMRESULT WINAPI acmFormatDetailsA( HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails ); MMRESULT WINAPI acmFormatDetailsW( HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails ); MMRESULT WINAPI acmFormatEnumA( HACMDRIVER had, PACMFORMATDETAILSA pafd, ACMFORMATENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum ); MMRESULT WINAPI acmFormatEnumW( HACMDRIVER had, PACMFORMATDETAILSW pafd, ACMFORMATENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum ); MMRESULT WINAPI acmFormatSuggest( HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst, DWORD cbwfxDst, DWORD fdwSuggest ); MMRESULT WINAPI acmFormatTagDetailsA( HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, DWORD fdwDetails ); MMRESULT WINAPI acmFormatTagDetailsW( HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails ); MMRESULT WINAPI acmFormatTagEnumA( HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, ACMFORMATTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum ); MMRESULT WINAPI acmFormatTagEnumW( HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, ACMFORMATTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum ); DWORD WINAPI acmGetVersion( ); MMRESULT WINAPI acmMetrics( HACMOBJ hao, UINT uMetric, LPVOID pMetric ); MMRESULT WINAPI acmStreamClose( HACMSTREAM has, DWORD fdwClose ); MMRESULT WINAPI acmStreamConvert( HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert ); MMRESULT WINAPI acmStreamMessage( HACMSTREAM has, UINT uMsg, LPARAM lParam1, LPARAM lParam2 ); MMRESULT WINAPI acmStreamOpen( PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD dwCallback, DWORD dwInstance, DWORD fdwOpen ); MMRESULT WINAPI acmStreamPrepareHeader( HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare ); MMRESULT WINAPI acmStreamReset( HACMSTREAM has, DWORD fdwReset ); MMRESULT WINAPI acmStreamSize( HACMSTREAM has, DWORD cbInput, LPDWORD pdwOutputBytes, DWORD fdwSize ); MMRESULT WINAPI acmStreamUnprepareHeader( HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare ); void MSACM_RegisterAllDrivers(void); INT WINAPI LoadStringA( HINSTANCE instance, UINT resource_id, LPSTR buffer, INT buflen ); #ifdef __cplusplus } #endif #endif /* __LOADER_H */ bml-0.6.1/dllwrapper/wine/winnt.h0000644042355400116100000024005311576362500013656 00000000000000/* * Win32 definitions for Windows NT * * Copyright 1996 Alexandre Julliard */ #ifndef __WINE_WINNT_H #define __WINE_WINNT_H #include "windef.h" #ifndef RC_INVOKED #include #endif #include "pshpack1.h" /* Defines */ /* Argument 1 passed to the DllEntryProc. */ #define DLL_PROCESS_DETACH 0 /* detach process (unload library) */ #define DLL_PROCESS_ATTACH 1 /* attach process (load library) */ #define DLL_THREAD_ATTACH 2 /* attach new thread */ #define DLL_THREAD_DETACH 3 /* detach thread */ /* u.x.wProcessorArchitecture (NT) */ #define PROCESSOR_ARCHITECTURE_INTEL 0 #define PROCESSOR_ARCHITECTURE_MIPS 1 #define PROCESSOR_ARCHITECTURE_ALPHA 2 #define PROCESSOR_ARCHITECTURE_PPC 3 #define PROCESSOR_ARCHITECTURE_SHX 4 #define PROCESSOR_ARCHITECTURE_ARM 5 #define PROCESSOR_ARCHITECTURE_UNKNOWN 0xFFFF /* dwProcessorType */ #define PROCESSOR_INTEL_386 386 #define PROCESSOR_INTEL_486 486 #define PROCESSOR_INTEL_PENTIUM 586 #define PROCESSOR_INTEL_860 860 #define PROCESSOR_MIPS_R2000 2000 #define PROCESSOR_MIPS_R3000 3000 #define PROCESSOR_MIPS_R4000 4000 #define PROCESSOR_ALPHA_21064 21064 #define PROCESSOR_PPC_601 601 #define PROCESSOR_PPC_603 603 #define PROCESSOR_PPC_604 604 #define PROCESSOR_PPC_620 620 #define PROCESSOR_HITACHI_SH3 10003 #define PROCESSOR_HITACHI_SH3E 10004 #define PROCESSOR_HITACHI_SH4 10005 #define PROCESSOR_MOTOROLA_821 821 #define PROCESSOR_SHx_SH3 103 #define PROCESSOR_SHx_SH4 104 #define PROCESSOR_STRONGARM 2577 #define PROCESSOR_ARM720 1824 /* 0x720 */ #define PROCESSOR_ARM820 2080 /* 0x820 */ #define PROCESSOR_ARM920 2336 /* 0x920 */ #define PROCESSOR_ARM_7TDMI 70001 #define ANYSIZE_ARRAY 1 #define MINCHAR 0x80 #define MAXCHAR 0x7f #define MINSHORT 0x8000 #define MAXSHORT 0x7fff #define MINLONG 0x80000000 #define MAXLONG 0x7fffffff #define MAXBYTE 0xff #define MAXWORD 0xffff #define MAXDWORD 0xffffffff #define FIELD_OFFSET(type, field) \ ((LONG)(INT)&(((type *)0)->field)) #define CONTAINING_RECORD(address, type, field) \ ((type *)((PCHAR)(address) - (PCHAR)(&((type *)0)->field))) /* Types */ /* TCHAR data types definitions for Winelib. */ /* These types are _not_ defined for the emulator, because they */ /* depend on the UNICODE macro that only exists in user's code. */ //#ifndef __WINE__ # ifdef UNICODE typedef WCHAR TCHAR, *PTCHAR; typedef LPWSTR PTSTR, LPTSTR; typedef LPCWSTR PCTSTR, LPCTSTR; #define __TEXT(string) L##string /*probably wrong */ # else /* UNICODE */ typedef char TCHAR, *PTCHAR; typedef LPSTR PTSTR, LPTSTR; typedef LPCSTR PCTSTR, LPCTSTR; #define __TEXT(string) string # endif /* UNICODE */ //#endif /* __WINE__ */ #define TEXT(quote) __TEXT(quote) typedef BYTE BOOLEAN; typedef BOOLEAN *PBOOLEAN; typedef struct _LIST_ENTRY { struct _LIST_ENTRY *Flink; struct _LIST_ENTRY *Blink; } LIST_ENTRY, *PLIST_ENTRY; typedef struct _SINGLE_LIST_ENTRY { struct _SINGLE_LIST_ENTRY *Next; } SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY; /* Heap flags */ #define HEAP_NO_SERIALIZE 0x00000001 #define HEAP_GROWABLE 0x00000002 #define HEAP_GENERATE_EXCEPTIONS 0x00000004 #define HEAP_ZERO_MEMORY 0x00000008 #define HEAP_REALLOC_IN_PLACE_ONLY 0x00000010 #define HEAP_TAIL_CHECKING_ENABLED 0x00000020 #define HEAP_FREE_CHECKING_ENABLED 0x00000040 #define HEAP_DISABLE_COALESCE_ON_FREE 0x00000080 #define HEAP_CREATE_ALIGN_16 0x00010000 #define HEAP_CREATE_ENABLE_TRACING 0x00020000 #define HEAP_WINE_SEGPTR 0x01000000 /* Not a Win32 flag */ #define HEAP_WINE_CODESEG 0x02000000 /* Not a Win32 flag */ #define HEAP_WINE_CODE16SEG 0x04000000 /* Not a Win32 flag */ #define HEAP_WINE_SHARED 0x08000000 /* Not a Win32 flag */ /* Processor feature flags. */ #define PF_FLOATING_POINT_PRECISION_ERRATA 0 #define PF_FLOATING_POINT_EMULATED 1 #define PF_COMPARE_EXCHANGE_DOUBLE 2 #define PF_MMX_INSTRUCTIONS_AVAILABLE 3 #define PF_PPC_MOVEMEM_64BIT_OK 4 #define PF_ALPHA_BYTE_INSTRUCTIONS 5 /* based on wine-20010510 -- alex */ #define PF_XMMI_INSTRUCTIONS_AVAILABLE 6 #define PF_AMD3D_INSTRUCTIONS_AVAILABLE 7 #define PF_RDTSC_INSTRUCTION_AVAILABLE 8 /* The Win32 register context */ /* CONTEXT is the CPU-dependent context; it should be used */ /* wherever a platform-specific context is needed (e.g. exception */ /* handling, Win32 register functions). */ /* CONTEXT86 is the i386-specific context; it should be used */ /* wherever only a 386 context makes sense (e.g. DOS interrupts, */ /* Win16 register functions), so that this code can be compiled */ /* on all platforms. */ #define SIZE_OF_80387_REGISTERS 80 typedef struct _FLOATING_SAVE_AREA { DWORD ControlWord; DWORD StatusWord; DWORD TagWord; DWORD ErrorOffset; DWORD ErrorSelector; DWORD DataOffset; DWORD DataSelector; BYTE RegisterArea[SIZE_OF_80387_REGISTERS]; DWORD Cr0NpxState; } FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA; typedef struct _CONTEXT86 { DWORD ContextFlags; /* These are selected by CONTEXT_DEBUG_REGISTERS */ DWORD Dr0; DWORD Dr1; DWORD Dr2; DWORD Dr3; DWORD Dr6; DWORD Dr7; /* These are selected by CONTEXT_FLOATING_POINT */ FLOATING_SAVE_AREA FloatSave; /* These are selected by CONTEXT_SEGMENTS */ DWORD SegGs; DWORD SegFs; DWORD SegEs; DWORD SegDs; /* These are selected by CONTEXT_INTEGER */ DWORD Edi; DWORD Esi; DWORD Ebx; DWORD Edx; DWORD Ecx; DWORD Eax; /* These are selected by CONTEXT_CONTROL */ DWORD Ebp; DWORD Eip; DWORD SegCs; DWORD EFlags; DWORD Esp; DWORD SegSs; } CONTEXT86; #define CONTEXT_X86 0x00010000 #define CONTEXT_i386 CONTEXT_X86 #define CONTEXT_i486 CONTEXT_X86 #define CONTEXT86_CONTROL (CONTEXT_i386 | 0x0001) /* SS:SP, CS:IP, FLAGS, BP */ #define CONTEXT86_INTEGER (CONTEXT_i386 | 0x0002) /* AX, BX, CX, DX, SI, DI */ #define CONTEXT86_SEGMENTS (CONTEXT_i386 | 0x0004) /* DS, ES, FS, GS */ #define CONTEXT86_FLOATING_POINT (CONTEXT_i386 | 0x0008L) /* 387 state */ #define CONTEXT86_DEBUG_REGISTERS (CONTEXT_i386 | 0x0010L) /* DB 0-3,6,7 */ #define CONTEXT86_FULL (CONTEXT86_CONTROL | CONTEXT86_INTEGER | CONTEXT86_SEGMENTS) /* i386 context definitions */ #ifdef __i386__ #define CONTEXT_CONTROL CONTEXT86_CONTROL #define CONTEXT_INTEGER CONTEXT86_INTEGER #define CONTEXT_SEGMENTS CONTEXT86_SEGMENTS #define CONTEXT_FLOATING_POINT CONTEXT86_FLOATING_POINT #define CONTEXT_DEBUG_REGISTERS CONTEXT86_DEBUG_REGISTERS #define CONTEXT_FULL CONTEXT86_FULL typedef CONTEXT86 CONTEXT; #endif /* __i386__ */ /* Alpha context definitions */ #if defined(_ALPHA_) || defined(__alpha__) #define CONTEXT_ALPHA 0x00020000 #define CONTEXT_CONTROL (CONTEXT_ALPHA | 0x00000001L) #define CONTEXT_FLOATING_POINT (CONTEXT_ALPHA | 0x00000002L) #define CONTEXT_INTEGER (CONTEXT_ALPHA | 0x00000004L) #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) typedef struct _CONTEXT { /* selected by CONTEXT_FLOATING_POINT */ ULONGLONG FltF0; ULONGLONG FltF1; ULONGLONG FltF2; ULONGLONG FltF3; ULONGLONG FltF4; ULONGLONG FltF5; ULONGLONG FltF6; ULONGLONG FltF7; ULONGLONG FltF8; ULONGLONG FltF9; ULONGLONG FltF10; ULONGLONG FltF11; ULONGLONG FltF12; ULONGLONG FltF13; ULONGLONG FltF14; ULONGLONG FltF15; ULONGLONG FltF16; ULONGLONG FltF17; ULONGLONG FltF18; ULONGLONG FltF19; ULONGLONG FltF20; ULONGLONG FltF21; ULONGLONG FltF22; ULONGLONG FltF23; ULONGLONG FltF24; ULONGLONG FltF25; ULONGLONG FltF26; ULONGLONG FltF27; ULONGLONG FltF28; ULONGLONG FltF29; ULONGLONG FltF30; ULONGLONG FltF31; /* selected by CONTEXT_INTEGER */ ULONGLONG IntV0; ULONGLONG IntT0; ULONGLONG IntT1; ULONGLONG IntT2; ULONGLONG IntT3; ULONGLONG IntT4; ULONGLONG IntT5; ULONGLONG IntT6; ULONGLONG IntT7; ULONGLONG IntS0; ULONGLONG IntS1; ULONGLONG IntS2; ULONGLONG IntS3; ULONGLONG IntS4; ULONGLONG IntS5; ULONGLONG IntFp; ULONGLONG IntA0; ULONGLONG IntA1; ULONGLONG IntA2; ULONGLONG IntA3; ULONGLONG IntA4; ULONGLONG IntA5; ULONGLONG IntT8; ULONGLONG IntT9; ULONGLONG IntT10; ULONGLONG IntT11; ULONGLONG IntRa; ULONGLONG IntT12; ULONGLONG IntAt; ULONGLONG IntGp; ULONGLONG IntSp; ULONGLONG IntZero; /* selected by CONTEXT_FLOATING_POINT */ ULONGLONG Fpcr; ULONGLONG SoftFpcr; /* selected by CONTEXT_CONTROL */ ULONGLONG Fir; DWORD Psr; DWORD ContextFlags; DWORD Fill[4]; } CONTEXT; #define _QUAD_PSR_OFFSET HighSoftFpcr #define _QUAD_FLAGS_OFFSET HighFir #endif /* _ALPHA_ */ /* Mips context definitions */ #ifdef _MIPS_ #define CONTEXT_R4000 0x00010000 #define CONTEXT_CONTROL (CONTEXT_R4000 | 0x00000001) #define CONTEXT_FLOATING_POINT (CONTEXT_R4000 | 0x00000002) #define CONTEXT_INTEGER (CONTEXT_R4000 | 0x00000004) #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) typedef struct _CONTEXT { DWORD Argument[4]; /* These are selected by CONTEXT_FLOATING_POINT */ DWORD FltF0; DWORD FltF1; DWORD FltF2; DWORD FltF3; DWORD FltF4; DWORD FltF5; DWORD FltF6; DWORD FltF7; DWORD FltF8; DWORD FltF9; DWORD FltF10; DWORD FltF11; DWORD FltF12; DWORD FltF13; DWORD FltF14; DWORD FltF15; DWORD FltF16; DWORD FltF17; DWORD FltF18; DWORD FltF19; DWORD FltF20; DWORD FltF21; DWORD FltF22; DWORD FltF23; DWORD FltF24; DWORD FltF25; DWORD FltF26; DWORD FltF27; DWORD FltF28; DWORD FltF29; DWORD FltF30; DWORD FltF31; /* These are selected by CONTEXT_INTEGER */ DWORD IntZero; DWORD IntAt; DWORD IntV0; DWORD IntV1; DWORD IntA0; DWORD IntA1; DWORD IntA2; DWORD IntA3; DWORD IntT0; DWORD IntT1; DWORD IntT2; DWORD IntT3; DWORD IntT4; DWORD IntT5; DWORD IntT6; DWORD IntT7; DWORD IntS0; DWORD IntS1; DWORD IntS2; DWORD IntS3; DWORD IntS4; DWORD IntS5; DWORD IntS6; DWORD IntS7; DWORD IntT8; DWORD IntT9; DWORD IntK0; DWORD IntK1; DWORD IntGp; DWORD IntSp; DWORD IntS8; DWORD IntRa; DWORD IntLo; DWORD IntHi; /* These are selected by CONTEXT_FLOATING_POINT */ DWORD Fsr; /* These are selected by CONTEXT_CONTROL */ DWORD Fir; DWORD Psr; DWORD ContextFlags; DWORD Fill[2]; } CONTEXT; #endif /* _MIPS_ */ /* PowerPC context definitions */ #ifdef __PPC__ #define CONTEXT_CONTROL 0x0001 #define CONTEXT_FLOATING_POINT 0x0002 #define CONTEXT_INTEGER 0x0004 #define CONTEXT_DEBUG_REGISTERS 0x0008 #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) typedef struct { /* These are selected by CONTEXT_FLOATING_POINT */ double Fpr0; double Fpr1; double Fpr2; double Fpr3; double Fpr4; double Fpr5; double Fpr6; double Fpr7; double Fpr8; double Fpr9; double Fpr10; double Fpr11; double Fpr12; double Fpr13; double Fpr14; double Fpr15; double Fpr16; double Fpr17; double Fpr18; double Fpr19; double Fpr20; double Fpr21; double Fpr22; double Fpr23; double Fpr24; double Fpr25; double Fpr26; double Fpr27; double Fpr28; double Fpr29; double Fpr30; double Fpr31; double Fpscr; /* These are selected by CONTEXT_INTEGER */ DWORD Gpr0; DWORD Gpr1; DWORD Gpr2; DWORD Gpr3; DWORD Gpr4; DWORD Gpr5; DWORD Gpr6; DWORD Gpr7; DWORD Gpr8; DWORD Gpr9; DWORD Gpr10; DWORD Gpr11; DWORD Gpr12; DWORD Gpr13; DWORD Gpr14; DWORD Gpr15; DWORD Gpr16; DWORD Gpr17; DWORD Gpr18; DWORD Gpr19; DWORD Gpr20; DWORD Gpr21; DWORD Gpr22; DWORD Gpr23; DWORD Gpr24; DWORD Gpr25; DWORD Gpr26; DWORD Gpr27; DWORD Gpr28; DWORD Gpr29; DWORD Gpr30; DWORD Gpr31; DWORD Cr; DWORD Xer; /* These are selected by CONTEXT_CONTROL */ DWORD Msr; DWORD Iar; DWORD Lr; DWORD Ctr; DWORD ContextFlags; DWORD Fill[3]; /* These are selected by CONTEXT_DEBUG_REGISTERS */ DWORD Dr0; DWORD Dr1; DWORD Dr2; DWORD Dr3; DWORD Dr4; DWORD Dr5; DWORD Dr6; DWORD Dr7; } CONTEXT; typedef struct _STACK_FRAME_HEADER { DWORD BackChain; DWORD GlueSaved1; DWORD GlueSaved2; DWORD Reserved1; DWORD Spare1; DWORD Spare2; DWORD Parameter0; DWORD Parameter1; DWORD Parameter2; DWORD Parameter3; DWORD Parameter4; DWORD Parameter5; DWORD Parameter6; DWORD Parameter7; } STACK_FRAME_HEADER,*PSTACK_FRAME_HEADER; #endif /* __PPC__ */ #ifdef __sparc__ /* * FIXME: * * There is no official CONTEXT structure defined for the SPARC * architecture, so I just made one up. * * This structure is valid only for 32-bit SPARC architectures, * not for 64-bit SPARC. * * Note that this structure contains only the 'top-level' registers; * the rest of the register window chain is not visible. * * The layout follows the Solaris 'prgregset_t' structure. * */ #define CONTEXT_SPARC 0x10000000 #define CONTEXT_CONTROL (CONTEXT_SPARC | 0x00000001) #define CONTEXT_FLOATING_POINT (CONTEXT_SPARC | 0x00000002) #define CONTEXT_INTEGER (CONTEXT_SPARC | 0x00000004) #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) typedef struct _CONTEXT { DWORD ContextFlags; /* These are selected by CONTEXT_INTEGER */ DWORD g0; DWORD g1; DWORD g2; DWORD g3; DWORD g4; DWORD g5; DWORD g6; DWORD g7; DWORD o0; DWORD o1; DWORD o2; DWORD o3; DWORD o4; DWORD o5; DWORD o6; DWORD o7; DWORD l0; DWORD l1; DWORD l2; DWORD l3; DWORD l4; DWORD l5; DWORD l6; DWORD l7; DWORD i0; DWORD i1; DWORD i2; DWORD i3; DWORD i4; DWORD i5; DWORD i6; DWORD i7; /* These are selected by CONTEXT_CONTROL */ DWORD psr; DWORD pc; DWORD npc; DWORD y; DWORD wim; DWORD tbr; /* FIXME: floating point registers missing */ } CONTEXT; #endif /* __sparc__ */ #if !defined(CONTEXT_FULL) && !defined(RC_INVOKED) #error You need to define a CONTEXT for your CPU #endif typedef CONTEXT *PCONTEXT; typedef HANDLE *PHANDLE; #ifdef __WINE__ /* Macros for easier access to i386 context registers */ #define EAX_reg(context) ((context)->Eax) #define EBX_reg(context) ((context)->Ebx) #define ECX_reg(context) ((context)->Ecx) #define EDX_reg(context) ((context)->Edx) #define ESI_reg(context) ((context)->Esi) #define EDI_reg(context) ((context)->Edi) #define EBP_reg(context) ((context)->Ebp) #define CS_reg(context) ((context)->SegCs) #define DS_reg(context) ((context)->SegDs) #define ES_reg(context) ((context)->SegEs) #define FS_reg(context) ((context)->SegFs) #define GS_reg(context) ((context)->SegGs) #define SS_reg(context) ((context)->SegSs) #define EFL_reg(context) ((context)->EFlags) #define EIP_reg(context) ((context)->Eip) #define ESP_reg(context) ((context)->Esp) #define AX_reg(context) (*(WORD*)&EAX_reg(context)) #define BX_reg(context) (*(WORD*)&EBX_reg(context)) #define CX_reg(context) (*(WORD*)&ECX_reg(context)) #define DX_reg(context) (*(WORD*)&EDX_reg(context)) #define SI_reg(context) (*(WORD*)&ESI_reg(context)) #define DI_reg(context) (*(WORD*)&EDI_reg(context)) #define BP_reg(context) (*(WORD*)&EBP_reg(context)) #define AL_reg(context) (*(BYTE*)&EAX_reg(context)) #define AH_reg(context) (*((BYTE*)&EAX_reg(context)+1)) #define BL_reg(context) (*(BYTE*)&EBX_reg(context)) #define BH_reg(context) (*((BYTE*)&EBX_reg(context)+1)) #define CL_reg(context) (*(BYTE*)&ECX_reg(context)) #define CH_reg(context) (*((BYTE*)&ECX_reg(context)+1)) #define DL_reg(context) (*(BYTE*)&EDX_reg(context)) #define DH_reg(context) (*((BYTE*)&EDX_reg(context)+1)) #define SET_CFLAG(context) (EFL_reg(context) |= 0x0001) #define RESET_CFLAG(context) (EFL_reg(context) &= ~0x0001) #define SET_ZFLAG(context) (EFL_reg(context) |= 0x0040) #define RESET_ZFLAG(context) (EFL_reg(context) &= ~0x0040) #define ISV86(context) (EFL_reg(context) & 0x00020000) #define V86BASE(context) ((context)->Dr7) /* ugly */ /* Macros to retrieve the current context */ #ifdef __i386__ #ifdef NEED_UNDERSCORE_PREFIX # define __ASM_NAME(name) "_" name #else # define __ASM_NAME(name) name #endif #ifdef __GNUC__ # define __ASM_GLOBAL_FUNC(name,code) \ __asm__( ".align 4\n\t" \ ".globl " __ASM_NAME(#name) "\n\t" \ ".type " __ASM_NAME(#name) ",@function\n" \ __ASM_NAME(#name) ":\n\t" \ code ); #else /* __GNUC__ */ # define __ASM_GLOBAL_FUNC(name,code) \ void __asm_dummy_##name(void) { \ asm( ".align 4\n\t" \ ".globl " __ASM_NAME(#name) "\n\t" \ ".type " __ASM_NAME(#name) ",@function\n" \ __ASM_NAME(#name) ":\n\t" \ code ); \ } #endif /* __GNUC__ */ #define _DEFINE_REGS_ENTRYPOINT( name, fn, args ) \ __ASM_GLOBAL_FUNC( name, \ "call " __ASM_NAME("CALL32_Regs") "\n\t" \ ".long " __ASM_NAME(#fn) "\n\t" \ ".byte " #args ", " #args ) #define DEFINE_REGS_ENTRYPOINT_0( name, fn ) \ _DEFINE_REGS_ENTRYPOINT( name, fn, 0 ) #define DEFINE_REGS_ENTRYPOINT_1( name, fn, t1 ) \ _DEFINE_REGS_ENTRYPOINT( name, fn, 4 ) #define DEFINE_REGS_ENTRYPOINT_2( name, fn, t1, t2 ) \ _DEFINE_REGS_ENTRYPOINT( name, fn, 8 ) #define DEFINE_REGS_ENTRYPOINT_3( name, fn, t1, t2, t3 ) \ _DEFINE_REGS_ENTRYPOINT( name, fn, 12 ) #define DEFINE_REGS_ENTRYPOINT_4( name, fn, t1, t2, t3, t4 ) \ _DEFINE_REGS_ENTRYPOINT( name, fn, 16 ) #endif /* __i386__ */ #ifdef __sparc__ /* FIXME: use getcontext() to retrieve full context */ #define _GET_CONTEXT \ CONTEXT context; \ do { memset(&context, 0, sizeof(CONTEXT)); \ context.ContextFlags = CONTEXT_CONTROL; \ context.pc = (DWORD)__builtin_return_address(0); \ } while (0) #define DEFINE_REGS_ENTRYPOINT_0( name, fn ) \ void WINAPI name ( void ) \ { _GET_CONTEXT; fn( &context ); } #define DEFINE_REGS_ENTRYPOINT_1( name, fn, t1 ) \ void WINAPI name ( t1 a1 ) \ { _GET_CONTEXT; fn( a1, &context ); } #define DEFINE_REGS_ENTRYPOINT_2( name, fn, t1, t2 ) \ void WINAPI name ( t1 a1, t2 a2 ) \ { _GET_CONTEXT; fn( a1, a2, &context ); } #define DEFINE_REGS_ENTRYPOINT_3( name, fn, t1, t2, t3 ) \ void WINAPI name ( t1 a1, t2 a2, t3 a3 ) \ { _GET_CONTEXT; fn( a1, a2, a3, &context ); } #define DEFINE_REGS_ENTRYPOINT_4( name, fn, t1, t2, t3, t4 ) \ void WINAPI name ( t1 a1, t2 a2, t3 a3, t4 a4 ) \ { _GET_CONTEXT; fn( a1, a2, a3, a4, &context ); } #endif /* __sparc__ */ #ifndef DEFINE_REGS_ENTRYPOINT_0 #error You need to define DEFINE_REGS_ENTRYPOINT macros for your CPU #endif #ifdef __i386__ # define GET_IP(context) ((LPVOID)(context)->Eip) #endif #ifdef __sparc__ # define GET_IP(context) ((LPVOID)(context)->pc) #endif #if !defined(GET_IP) && !defined(RC_INVOKED) # error You must define GET_IP for this CPU #endif #endif /* __WINE__ */ /* * Exception codes */ #define STATUS_SUCCESS 0x00000000 #define STATUS_WAIT_0 0x00000000 #define STATUS_ABANDONED_WAIT_0 0x00000080 #define STATUS_USER_APC 0x000000C0 #define STATUS_TIMEOUT 0x00000102 #define STATUS_PENDING 0x00000103 #define STATUS_GUARD_PAGE_VIOLATION 0x80000001 #define STATUS_DATATYPE_MISALIGNMENT 0x80000002 #define STATUS_BREAKPOINT 0x80000003 #define STATUS_SINGLE_STEP 0x80000004 #define STATUS_BUFFER_OVERFLOW 0x80000005 #define STATUS_NO_MORE_FILES 0x80000006 #define STATUS_WAKE_SYSTEM_DEBUGGER 0x80000007 #define STATUS_HANDLES_CLOSED 0x8000000A #define STATUS_NO_INHERITANCE 0x8000000B #define STATUS_GUID_SUBSTITUTION_MADE 0x8000000C #define STATUS_PARTIAL_COPY 0x8000000D #define STATUS_DEVICE_PAPER_EMPTY 0x8000000E #define STATUS_DEVICE_POWERED_OFF 0x8000000F #define STATUS_DEVICE_OFF_LINE 0x80000010 #define STATUS_DEVICE_BUSY 0x80000011 #define STATUS_NO_MORE_EAS 0x80000012 #define STATUS_INVALID_EA_NAME 0x80000013 #define STATUS_EA_LIST_INCONSISTENT 0x80000014 #define STATUS_INVALID_EA_FLAG 0x80000015 #define STATUS_VERIFY_REQUIRED 0x80000016 #define STATUS_EXTRANEOUS_INFORMATION 0x80000017 #define STATUS_RXACT_COMMIT_NECESSARY 0x80000018 #define STATUS_NO_MORE_ENTRIES 0x8000001A #define STATUS_FILEMARK_DETECTED 0x8000001B #define STATUS_MEDIA_CHANGED 0x8000001C #define STATUS_BUS_RESET 0x8000001D #define STATUS_END_OF_MEDIA 0x8000001E #define STATUS_BEGINNING_OF_MEDIA 0x8000001F #define STATUS_MEDIA_CHECK 0x80000020 #define STATUS_SETMARK_DETECTED 0x80000021 #define STATUS_NO_DATA_DETECTED 0x80000022 #define STATUS_REDIRECTOR_HAS_OPEN_HANDLES 0x80000023 #define STATUS_SERVER_HAS_OPEN_HANDLES 0x80000024 #define STATUS_ALREADY_DISCONNECTED 0x80000025 #define STATUS_LONGJUMP 0x80000026 #define STATUS_UNSUCCESSFUL 0xC0000001 #define STATUS_NOT_IMPLEMENTED 0xC0000002 #define STATUS_INVALID_INFO_CLASS 0xC0000003 #define STATUS_INFO_LENGTH_MISMATCH 0xC0000004 #define STATUS_ACCESS_VIOLATION 0xC0000005 #define STATUS_IN_PAGE_ERROR 0xC0000006 #define STATUS_PAGEFILE_QUOTA 0xC0000007 #define STATUS_INVALID_HANDLE 0xC0000008 #define STATUS_BAD_INITIAL_STACK 0xC0000009 #define STATUS_BAD_INITIAL_PC 0xC000000A #define STATUS_INVALID_CID 0xC000000B #define STATUS_TIMER_NOT_CANCELED 0xC000000C #define STATUS_INVALID_PARAMETER 0xC000000D #define STATUS_NO_SUCH_DEVICE 0xC000000E #define STATUS_NO_SUCH_FILE 0xC000000F #define STATUS_INVALID_DEVICE_REQUEST 0xC0000010 #define STATUS_END_OF_FILE 0xC0000011 #define STATUS_WRONG_VOLUME 0xC0000012 #define STATUS_NO_MEDIA_IN_DEVICE 0xC0000013 #define STATUS_UNRECOGNIZED_MEDIA 0xC0000014 #define STATUS_NONEXISTENT_SECTOR 0xC0000015 #define STATUS_MORE_PROCESSING_REQUIRED 0xC0000016 #define STATUS_NO_MEMORY 0xC0000017 #define STATUS_CONFLICTING_ADDRESSES 0xC0000018 #define STATUS_NOT_MAPPED_VIEW 0xC0000019 #define STATUS_UNABLE_TO_FREE_VM 0xC000001A #define STATUS_UNABLE_TO_DELETE_SECTION 0xC000001B #define STATUS_INVALID_SYSTEM_SERVICE 0xC000001C #define STATUS_ILLEGAL_INSTRUCTION 0xC000001D #define STATUS_INVALID_LOCK_SEQUENCE 0xC000001E #define STATUS_INVALID_VIEW_SIZE 0xC000001F #define STATUS_INVALID_FILE_FOR_SECTION 0xC0000020 #define STATUS_ALREADY_COMMITTED 0xC0000021 #define STATUS_ACCESS_DENIED 0xC0000022 #define STATUS_BUFFER_TOO_SMALL 0xC0000023 #define STATUS_OBJECT_TYPE_MISMATCH 0xC0000024 #define STATUS_NONCONTINUABLE_EXCEPTION 0xC0000025 #define STATUS_INVALID_DISPOSITION 0xC0000026 #define STATUS_UNWIND 0xC0000027 #define STATUS_BAD_STACK 0xC0000028 #define STATUS_INVALID_UNWIND_TARGET 0xC0000029 #define STATUS_NOT_LOCKED 0xC000002A #define STATUS_PARITY_ERROR 0xC000002B #define STATUS_UNABLE_TO_DECOMMIT_VM 0xC000002C #define STATUS_NOT_COMMITTED 0xC000002D #define STATUS_INVALID_PORT_ATTRIBUTES 0xC000002E #define STATUS_PORT_MESSAGE_TOO_LONG 0xC000002F #define STATUS_INVALID_PARAMETER_MIX 0xC0000030 #define STATUS_INVALID_QUOTA_LOWER 0xC0000031 #define STATUS_DISK_CORRUPT_ERROR 0xC0000032 #define STATUS_OBJECT_NAME_INVALID 0xC0000033 #define STATUS_OBJECT_NAME_NOT_FOUND 0xC0000034 #define STATUS_OBJECT_NAME_COLLISION 0xC0000035 #define STATUS_PORT_DISCONNECTED 0xC0000037 #define STATUS_DEVICE_ALREADY_ATTACHED 0xC0000038 #define STATUS_OBJECT_PATH_INVALID 0xC0000039 #define STATUS_OBJECT_PATH_NOT_FOUND 0xC000003A #define STATUS_PATH_SYNTAX_BAD 0xC000003B #define STATUS_DATA_OVERRUN 0xC000003C #define STATUS_DATA_LATE_ERROR 0xC000003D #define STATUS_DATA_ERROR 0xC000003E #define STATUS_CRC_ERROR 0xC000003F #define STATUS_SECTION_TOO_BIG 0xC0000040 #define STATUS_PORT_CONNECTION_REFUSED 0xC0000041 #define STATUS_INVALID_PORT_HANDLE 0xC0000042 #define STATUS_SHARING_VIOLATION 0xC0000043 #define STATUS_QUOTA_EXCEEDED 0xC0000044 #define STATUS_INVALID_PAGE_PROTECTION 0xC0000045 #define STATUS_MUTANT_NOT_OWNED 0xC0000046 #define STATUS_SEMAPHORE_LIMIT_EXCEEDED 0xC0000047 #define STATUS_PORT_ALREADY_SET 0xC0000048 #define STATUS_SUSPEND_COUNT_EXCEEDED 0xC000004A #define STATUS_LOCK_NOT_GRANTED 0xC0000054 /* FIXME: not sure */ #define STATUS_FILE_LOCK_CONFLICT 0xC0000055 /* FIXME: not sure */ #define STATUS_UNKNOWN_REVISION 0xC0000058 #define STATUS_INVALID_SECURITY_DESCR 0xC0000079 #define STATUS_DISK_FULL 0xC000007F #define STATUS_SECTION_NOT_EXTENDED 0xC0000087 #define STATUS_ARRAY_BOUNDS_EXCEEDED 0xC000008C #define STATUS_FLOAT_DENORMAL_OPERAND 0xC000008D #define STATUS_FLOAT_DIVIDE_BY_ZERO 0xC000008E #define STATUS_FLOAT_INEXACT_RESULT 0xC000008F #define STATUS_FLOAT_INVALID_OPERATION 0xC0000090 #define STATUS_FLOAT_OVERFLOW 0xC0000091 #define STATUS_FLOAT_STACK_CHECK 0xC0000092 #define STATUS_FLOAT_UNDERFLOW 0xC0000093 #define STATUS_INTEGER_DIVIDE_BY_ZERO 0xC0000094 #define STATUS_INTEGER_OVERFLOW 0xC0000095 #define STATUS_PRIVILEGED_INSTRUCTION 0xC0000096 #define STATUS_MEDIA_WRITE_PROTECTED 0XC00000A2 #define STATUS_INVALID_PARAMETER_2 0xC00000F0 #define STATUS_STACK_OVERFLOW 0xC00000FD #define STATUS_DIRECTORY_NOT_EMPTY 0xC0000101 #define STATUS_TOO_MANY_OPENED_FILES 0xC000011F #define STATUS_CONTROL_C_EXIT 0xC000013A #define STATUS_PIPE_BROKEN 0xC000014B #define STATUS_NOT_REGISTRY_FILE 0xC000015C #define STATUS_PARTITION_FAILURE 0xC0000172 #define STATUS_INVALID_BLOCK_LENGTH 0xC0000173 #define STATUS_DEVICE_NOT_PARTITIONED 0xC0000174 #define STATUS_UNABLE_TO_LOCK_MEDIA 0xC0000175 #define STATUS_UNABLE_TO_UNLOAD_MEDIA 0xC0000176 #define STATUS_EOM_OVERFLOW 0xC0000177 #define STATUS_NO_MEDIA 0xC0000178 #define STATUS_NO_SUCH_MEMBER 0xC000017A #define STATUS_INVALID_MEMBER 0xC000017B #define STATUS_KEY_DELETED 0xC000017C #define STATUS_NO_LOG_SPACE 0xC000017D #define STATUS_TOO_MANY_SIDS 0xC000017E #define STATUS_LM_CROSS_ENCRYPTION_REQUIRED 0xC000017F #define STATUS_KEY_HAS_CHILDREN 0xC0000180 #define STATUS_CHILD_MUST_BE_VOLATILE 0xC0000181 #define STATUS_DEVICE_CONFIGURATION_ERROR0xC0000182 #define STATUS_DRIVER_INTERNAL_ERROR 0xC0000183 #define STATUS_INVALID_DEVICE_STATE 0xC0000184 #define STATUS_IO_DEVICE_ERROR 0xC0000185 #define STATUS_DEVICE_PROTOCOL_ERROR 0xC0000186 #define STATUS_BACKUP_CONTROLLER 0xC0000187 #define STATUS_LOG_FILE_FULL 0xC0000188 #define STATUS_TOO_LATE 0xC0000189 #define STATUS_NO_TRUST_LSA_SECRET 0xC000018A #define STATUS_NO_TRUST_SAM_ACCOUNT 0xC000018B #define STATUS_TRUSTED_DOMAIN_FAILURE 0xC000018C #define STATUS_TRUSTED_RELATIONSHIP_FAILURE 0xC000018D #define STATUS_EVENTLOG_FILE_CORRUPT 0xC000018E #define STATUS_EVENTLOG_CANT_START 0xC000018F #define STATUS_TRUST_FAILURE 0xC0000190 #define STATUS_MUTANT_LIMIT_EXCEEDED 0xC0000191 #define STATUS_NETLOGON_NOT_STARTED 0xC0000192 #define STATUS_ACCOUNT_EXPIRED 0xC0000193 #define STATUS_POSSIBLE_DEADLOCK 0xC0000194 #define STATUS_NETWORK_CREDENTIAL_CONFLICT 0xC0000195 #define STATUS_REMOTE_SESSION_LIMIT 0xC0000196 #define STATUS_EVENTLOG_FILE_CHANGED 0xC0000197 #define STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT 0xC0000198 #define STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT 0xC0000199 #define STATUS_NOLOGON_SERVER_TRUST_ACCOUNT 0xC000019A #define STATUS_DOMAIN_TRUST_INCONSISTENT 0xC000019B #define STATUS_FS_DRIVER_REQUIRED 0xC000019C #define STATUS_RESOURCE_LANG_NOT_FOUND 0xC0000204 #define MAXIMUM_WAIT_OBJECTS 64 #define MAXIMUM_SUSPEND_COUNT 127 /* * Return values from the actual exception handlers */ #define ExceptionContinueExecution 0 #define ExceptionContinueSearch 1 #define ExceptionNestedException 2 #define ExceptionCollidedUnwind 3 /* * Return values from filters in except() and from UnhandledExceptionFilter */ #define EXCEPTION_EXECUTE_HANDLER 1 #define EXCEPTION_CONTINUE_SEARCH 0 #define EXCEPTION_CONTINUE_EXECUTION -1 /* * From OS/2 2.0 exception handling * Win32 seems to use the same flags as ExceptionFlags in an EXCEPTION_RECORD */ #define EH_NONCONTINUABLE 0x01 #define EH_UNWINDING 0x02 #define EH_EXIT_UNWIND 0x04 #define EH_STACK_INVALID 0x08 #define EH_NESTED_CALL 0x10 #define EXCEPTION_CONTINUABLE 0 #define EXCEPTION_NONCONTINUABLE EH_NONCONTINUABLE /* * The exception record used by Win32 to give additional information * about exception to exception handlers. */ #define EXCEPTION_MAXIMUM_PARAMETERS 15 typedef struct __EXCEPTION_RECORD { DWORD ExceptionCode; DWORD ExceptionFlags; struct __EXCEPTION_RECORD *ExceptionRecord; LPVOID ExceptionAddress; DWORD NumberParameters; DWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; } EXCEPTION_RECORD, *PEXCEPTION_RECORD; /* * The exception pointers structure passed to exception filters * in except() and the UnhandledExceptionFilter(). */ typedef struct _EXCEPTION_POINTERS { PEXCEPTION_RECORD ExceptionRecord; PCONTEXT ContextRecord; } EXCEPTION_POINTERS, *PEXCEPTION_POINTERS; /* * The exception frame, used for registering exception handlers * Win32 cares only about this, but compilers generally emit * larger exception frames for their own use. */ struct __EXCEPTION_FRAME; typedef DWORD (*PEXCEPTION_HANDLER)(PEXCEPTION_RECORD,struct __EXCEPTION_FRAME*, PCONTEXT,struct __EXCEPTION_FRAME **); typedef struct __EXCEPTION_FRAME { struct __EXCEPTION_FRAME *Prev; PEXCEPTION_HANDLER Handler; } EXCEPTION_FRAME, *PEXCEPTION_FRAME; #include "poppack.h" /* * function pointer to a exception filter */ typedef LONG CALLBACK (*PTOP_LEVEL_EXCEPTION_FILTER)(PEXCEPTION_POINTERS ExceptionInfo); typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER; DWORD WINAPI UnhandledExceptionFilter( PEXCEPTION_POINTERS epointers ); LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter( LPTOP_LEVEL_EXCEPTION_FILTER filter ); /* status values for ContinueDebugEvent */ #define DBG_CONTINUE 0x00010002 #define DBG_TERMINATE_THREAD 0x40010003 #define DBG_TERMINATE_PROCESS 0x40010004 #define DBG_CONTROL_C 0x40010005 #define DBG_CONTROL_BREAK 0x40010008 #define DBG_EXCEPTION_NOT_HANDLED 0x80010001 typedef struct _NT_TIB { struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList; PVOID StackBase; PVOID StackLimit; PVOID SubSystemTib; union { PVOID FiberData; DWORD Version; } DUMMYUNIONNAME; PVOID ArbitraryUserPointer; struct _NT_TIB *Self; } NT_TIB, *PNT_TIB; struct _TEB; /* #if defined(__i386__) && defined(__GNUC__) extern inline struct _TEB * WINAPI NtCurrentTeb(void); extern inline struct _TEB * WINAPI NtCurrentTeb(void) { struct _TEB *teb; __asm__(".byte 0x64\n\tmovl (0x18),%0" : "=r" (teb)); return teb; } #else extern struct _TEB * WINAPI NtCurrentTeb(void); #endif */ /* * File formats definitions */ typedef struct _IMAGE_DOS_HEADER { WORD e_magic; /* 00: MZ Header signature */ WORD e_cblp; /* 02: Bytes on last page of file */ WORD e_cp; /* 04: Pages in file */ WORD e_crlc; /* 06: Relocations */ WORD e_cparhdr; /* 08: Size of header in paragraphs */ WORD e_minalloc; /* 0a: Minimum extra paragraphs needed */ WORD e_maxalloc; /* 0c: Maximum extra paragraphs needed */ WORD e_ss; /* 0e: Initial (relative) SS value */ WORD e_sp; /* 10: Initial SP value */ WORD e_csum; /* 12: Checksum */ WORD e_ip; /* 14: Initial IP value */ WORD e_cs; /* 16: Initial (relative) CS value */ WORD e_lfarlc; /* 18: File address of relocation table */ WORD e_ovno; /* 1a: Overlay number */ WORD e_res[4]; /* 1c: Reserved words */ WORD e_oemid; /* 24: OEM identifier (for e_oeminfo) */ WORD e_oeminfo; /* 26: OEM information; e_oemid specific */ WORD e_res2[10]; /* 28: Reserved words */ DWORD e_lfanew; /* 3c: Offset to extended header */ } IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER; #define IMAGE_DOS_SIGNATURE 0x5A4D /* MZ */ #define IMAGE_OS2_SIGNATURE 0x454E /* NE */ #define IMAGE_OS2_SIGNATURE_LE 0x454C /* LE */ #define IMAGE_OS2_SIGNATURE_LX 0x584C /* LX */ #define IMAGE_VXD_SIGNATURE 0x454C /* LE */ #define IMAGE_NT_SIGNATURE 0x00004550 /* PE00 */ /* * This is the Windows executable (NE) header. * the name IMAGE_OS2_HEADER is misleading, but in the SDK this way. */ typedef struct { WORD ne_magic; /* 00 NE signature 'NE' */ BYTE ne_ver; /* 02 Linker version number */ BYTE ne_rev; /* 03 Linker revision number */ WORD ne_enttab; /* 04 Offset to entry table relative to NE */ WORD ne_cbenttab; /* 06 Length of entry table in bytes */ LONG ne_crc; /* 08 Checksum */ WORD ne_flags; /* 0c Flags about segments in this file */ WORD ne_autodata; /* 0e Automatic data segment number */ WORD ne_heap; /* 10 Initial size of local heap */ WORD ne_stack; /* 12 Initial size of stack */ DWORD ne_csip; /* 14 Initial CS:IP */ DWORD ne_sssp; /* 18 Initial SS:SP */ WORD ne_cseg; /* 1c # of entries in segment table */ WORD ne_cmod; /* 1e # of entries in module reference tab. */ WORD ne_cbnrestab; /* 20 Length of nonresident-name table */ WORD ne_segtab; /* 22 Offset to segment table */ WORD ne_rsrctab; /* 24 Offset to resource table */ WORD ne_restab; /* 26 Offset to resident-name table */ WORD ne_modtab; /* 28 Offset to module reference table */ WORD ne_imptab; /* 2a Offset to imported name table */ DWORD ne_nrestab; /* 2c Offset to nonresident-name table */ WORD ne_cmovent; /* 30 # of movable entry points */ WORD ne_align; /* 32 Logical sector alignment shift count */ WORD ne_cres; /* 34 # of resource segments */ BYTE ne_exetyp; /* 36 Flags indicating target OS */ BYTE ne_flagsothers; /* 37 Additional information flags */ WORD fastload_offset; /* 38 Offset to fast load area (should be ne_pretthunks)*/ WORD fastload_length; /* 3a Length of fast load area (should be ne_psegrefbytes) */ WORD ne_swaparea; /* 3c Reserved by Microsoft */ WORD ne_expver; /* 3e Expected Windows version number */ } IMAGE_OS2_HEADER,*PIMAGE_OS2_HEADER; typedef struct _IMAGE_VXD_HEADER { WORD e32_magic; BYTE e32_border; BYTE e32_worder; DWORD e32_level; WORD e32_cpu; WORD e32_os; DWORD e32_ver; DWORD e32_mflags; DWORD e32_mpages; DWORD e32_startobj; DWORD e32_eip; DWORD e32_stackobj; DWORD e32_esp; DWORD e32_pagesize; DWORD e32_lastpagesize; DWORD e32_fixupsize; DWORD e32_fixupsum; DWORD e32_ldrsize; DWORD e32_ldrsum; DWORD e32_objtab; DWORD e32_objcnt; DWORD e32_objmap; DWORD e32_itermap; DWORD e32_rsrctab; DWORD e32_rsrccnt; DWORD e32_restab; DWORD e32_enttab; DWORD e32_dirtab; DWORD e32_dircnt; DWORD e32_fpagetab; DWORD e32_frectab; DWORD e32_impmod; DWORD e32_impmodcnt; DWORD e32_impproc; DWORD e32_pagesum; DWORD e32_datapage; DWORD e32_preload; DWORD e32_nrestab; DWORD e32_cbnrestab; DWORD e32_nressum; DWORD e32_autodata; DWORD e32_debuginfo; DWORD e32_debuglen; DWORD e32_instpreload; DWORD e32_instdemand; DWORD e32_heapsize; BYTE e32_res3[12]; DWORD e32_winresoff; DWORD e32_winreslen; WORD e32_devid; WORD e32_ddkver; } IMAGE_VXD_HEADER, *PIMAGE_VXD_HEADER; /* These defines describe the meanings of the bits in the Characteristics field */ #define IMAGE_FILE_RELOCS_STRIPPED 0x0001 /* No relocation info */ #define IMAGE_FILE_EXECUTABLE_IMAGE 0x0002 #define IMAGE_FILE_LINE_NUMS_STRIPPED 0x0004 #define IMAGE_FILE_LOCAL_SYMS_STRIPPED 0x0008 #define IMAGE_FILE_16BIT_MACHINE 0x0040 #define IMAGE_FILE_BYTES_REVERSED_LO 0x0080 #define IMAGE_FILE_32BIT_MACHINE 0x0100 #define IMAGE_FILE_DEBUG_STRIPPED 0x0200 #define IMAGE_FILE_SYSTEM 0x1000 #define IMAGE_FILE_DLL 0x2000 #define IMAGE_FILE_BYTES_REVERSED_HI 0x8000 /* These are the settings of the Machine field. */ #define IMAGE_FILE_MACHINE_UNKNOWN 0 #define IMAGE_FILE_MACHINE_I860 0x14d #define IMAGE_FILE_MACHINE_I386 0x14c #define IMAGE_FILE_MACHINE_R3000 0x162 #define IMAGE_FILE_MACHINE_R4000 0x166 #define IMAGE_FILE_MACHINE_R10000 0x168 #define IMAGE_FILE_MACHINE_ALPHA 0x184 #define IMAGE_FILE_MACHINE_POWERPC 0x1F0 #define IMAGE_SIZEOF_FILE_HEADER 20 /* Possible Magic values */ #define IMAGE_NT_OPTIONAL_HDR_MAGIC 0x10b #define IMAGE_ROM_OPTIONAL_HDR_MAGIC 0x107 /* These are indexes into the DataDirectory array */ #define IMAGE_FILE_EXPORT_DIRECTORY 0 #define IMAGE_FILE_IMPORT_DIRECTORY 1 #define IMAGE_FILE_RESOURCE_DIRECTORY 2 #define IMAGE_FILE_EXCEPTION_DIRECTORY 3 #define IMAGE_FILE_SECURITY_DIRECTORY 4 #define IMAGE_FILE_BASE_RELOCATION_TABLE 5 #define IMAGE_FILE_DEBUG_DIRECTORY 6 #define IMAGE_FILE_DESCRIPTION_STRING 7 #define IMAGE_FILE_MACHINE_VALUE 8 /* Mips */ #define IMAGE_FILE_THREAD_LOCAL_STORAGE 9 #define IMAGE_FILE_CALLBACK_DIRECTORY 10 /* Directory Entries, indices into the DataDirectory array */ #define IMAGE_DIRECTORY_ENTRY_EXPORT 0 #define IMAGE_DIRECTORY_ENTRY_IMPORT 1 #define IMAGE_DIRECTORY_ENTRY_RESOURCE 2 #define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3 #define IMAGE_DIRECTORY_ENTRY_SECURITY 4 #define IMAGE_DIRECTORY_ENTRY_BASERELOC 5 #define IMAGE_DIRECTORY_ENTRY_DEBUG 6 #define IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7 #define IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8 /* (MIPS GP) */ #define IMAGE_DIRECTORY_ENTRY_TLS 9 #define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10 #define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 11 #define IMAGE_DIRECTORY_ENTRY_IAT 12 /* Import Address Table */ #define IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT 13 #define IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR 14 /* Subsystem Values */ #define IMAGE_SUBSYSTEM_UNKNOWN 0 #define IMAGE_SUBSYSTEM_NATIVE 1 #define IMAGE_SUBSYSTEM_WINDOWS_GUI 2 /* Windows GUI subsystem */ #define IMAGE_SUBSYSTEM_WINDOWS_CUI 3 /* Windows character subsystem*/ #define IMAGE_SUBSYSTEM_OS2_CUI 5 #define IMAGE_SUBSYSTEM_POSIX_CUI 7 typedef struct _IMAGE_FILE_HEADER { WORD Machine; WORD NumberOfSections; DWORD TimeDateStamp; DWORD PointerToSymbolTable; DWORD NumberOfSymbols; WORD SizeOfOptionalHeader; WORD Characteristics; } IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER; typedef struct _IMAGE_DATA_DIRECTORY { DWORD VirtualAddress; DWORD Size; } IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY; #define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16 typedef struct _IMAGE_OPTIONAL_HEADER { /* Standard fields */ WORD Magic; BYTE MajorLinkerVersion; BYTE MinorLinkerVersion; DWORD SizeOfCode; DWORD SizeOfInitializedData; DWORD SizeOfUninitializedData; DWORD AddressOfEntryPoint; DWORD BaseOfCode; DWORD BaseOfData; /* NT additional fields */ DWORD ImageBase; DWORD SectionAlignment; DWORD FileAlignment; WORD MajorOperatingSystemVersion; WORD MinorOperatingSystemVersion; WORD MajorImageVersion; WORD MinorImageVersion; WORD MajorSubsystemVersion; WORD MinorSubsystemVersion; DWORD Win32VersionValue; DWORD SizeOfImage; DWORD SizeOfHeaders; DWORD CheckSum; WORD Subsystem; WORD DllCharacteristics; DWORD SizeOfStackReserve; DWORD SizeOfStackCommit; DWORD SizeOfHeapReserve; DWORD SizeOfHeapCommit; DWORD LoaderFlags; DWORD NumberOfRvaAndSizes; IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; } IMAGE_OPTIONAL_HEADER, *PIMAGE_OPTIONAL_HEADER; typedef struct _IMAGE_NT_HEADERS { DWORD Signature; IMAGE_FILE_HEADER FileHeader; IMAGE_OPTIONAL_HEADER OptionalHeader; } IMAGE_NT_HEADERS, *PIMAGE_NT_HEADERS; #define IMAGE_SIZEOF_SHORT_NAME 8 typedef struct _IMAGE_SECTION_HEADER { BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; union { DWORD PhysicalAddress; DWORD VirtualSize; } Misc; DWORD VirtualAddress; DWORD SizeOfRawData; DWORD PointerToRawData; DWORD PointerToRelocations; DWORD PointerToLinenumbers; WORD NumberOfRelocations; WORD NumberOfLinenumbers; DWORD Characteristics; } IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER; #define IMAGE_SIZEOF_SECTION_HEADER 40 #define IMAGE_FIRST_SECTION(ntheader) \ ((PIMAGE_SECTION_HEADER)((LPBYTE)&((PIMAGE_NT_HEADERS)(ntheader))->OptionalHeader + \ ((PIMAGE_NT_HEADERS)(ntheader))->FileHeader.SizeOfOptionalHeader)) /* These defines are for the Characteristics bitfield. */ /* #define IMAGE_SCN_TYPE_REG 0x00000000 - Reserved */ /* #define IMAGE_SCN_TYPE_DSECT 0x00000001 - Reserved */ /* #define IMAGE_SCN_TYPE_NOLOAD 0x00000002 - Reserved */ /* #define IMAGE_SCN_TYPE_GROUP 0x00000004 - Reserved */ /* #define IMAGE_SCN_TYPE_NO_PAD 0x00000008 - Reserved */ /* #define IMAGE_SCN_TYPE_COPY 0x00000010 - Reserved */ #define IMAGE_SCN_CNT_CODE 0x00000020 #define IMAGE_SCN_CNT_INITIALIZED_DATA 0x00000040 #define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080 #define IMAGE_SCN_LNK_OTHER 0x00000100 #define IMAGE_SCN_LNK_INFO 0x00000200 /* #define IMAGE_SCN_TYPE_OVER 0x00000400 - Reserved */ #define IMAGE_SCN_LNK_REMOVE 0x00000800 #define IMAGE_SCN_LNK_COMDAT 0x00001000 /* 0x00002000 - Reserved */ /* #define IMAGE_SCN_MEM_PROTECTED 0x00004000 - Obsolete */ #define IMAGE_SCN_MEM_FARDATA 0x00008000 /* #define IMAGE_SCN_MEM_SYSHEAP 0x00010000 - Obsolete */ #define IMAGE_SCN_MEM_PURGEABLE 0x00020000 #define IMAGE_SCN_MEM_16BIT 0x00020000 #define IMAGE_SCN_MEM_LOCKED 0x00040000 #define IMAGE_SCN_MEM_PRELOAD 0x00080000 #define IMAGE_SCN_ALIGN_1BYTES 0x00100000 #define IMAGE_SCN_ALIGN_2BYTES 0x00200000 #define IMAGE_SCN_ALIGN_4BYTES 0x00300000 #define IMAGE_SCN_ALIGN_8BYTES 0x00400000 #define IMAGE_SCN_ALIGN_16BYTES 0x00500000 /* Default */ #define IMAGE_SCN_ALIGN_32BYTES 0x00600000 #define IMAGE_SCN_ALIGN_64BYTES 0x00700000 /* 0x00800000 - Unused */ #define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000 #define IMAGE_SCN_MEM_DISCARDABLE 0x02000000 #define IMAGE_SCN_MEM_NOT_CACHED 0x04000000 #define IMAGE_SCN_MEM_NOT_PAGED 0x08000000 #define IMAGE_SCN_MEM_SHARED 0x10000000 #define IMAGE_SCN_MEM_EXECUTE 0x20000000 #define IMAGE_SCN_MEM_READ 0x40000000 #define IMAGE_SCN_MEM_WRITE 0x80000000 #include "pshpack2.h" typedef struct _IMAGE_SYMBOL { union { BYTE ShortName[8]; struct { DWORD Short; DWORD Long; } Name; DWORD LongName[2]; } N; DWORD Value; SHORT SectionNumber; WORD Type; BYTE StorageClass; BYTE NumberOfAuxSymbols; } IMAGE_SYMBOL; typedef IMAGE_SYMBOL *PIMAGE_SYMBOL; #define IMAGE_SIZEOF_SYMBOL 18 typedef struct _IMAGE_LINENUMBER { union { DWORD SymbolTableIndex; DWORD VirtualAddress; } Type; WORD Linenumber; } IMAGE_LINENUMBER; typedef IMAGE_LINENUMBER *PIMAGE_LINENUMBER; #define IMAGE_SIZEOF_LINENUMBER 6 typedef union _IMAGE_AUX_SYMBOL { struct { DWORD TagIndex; union { struct { WORD Linenumber; WORD Size; } LnSz; DWORD TotalSize; } Misc; union { struct { DWORD PointerToLinenumber; DWORD PointerToNextFunction; } Function; struct { WORD Dimension[4]; } Array; } FcnAry; WORD TvIndex; } Sym; struct { BYTE Name[IMAGE_SIZEOF_SYMBOL]; } File; struct { DWORD Length; WORD NumberOfRelocations; WORD NumberOfLinenumbers; DWORD CheckSum; SHORT Number; BYTE Selection; } Section; } IMAGE_AUX_SYMBOL; typedef IMAGE_AUX_SYMBOL *PIMAGE_AUX_SYMBOL; #define IMAGE_SIZEOF_AUX_SYMBOL 18 #include "poppack.h" #define IMAGE_SYM_UNDEFINED (SHORT)0 #define IMAGE_SYM_ABSOLUTE (SHORT)-1 #define IMAGE_SYM_DEBUG (SHORT)-2 #define IMAGE_SYM_TYPE_NULL 0x0000 #define IMAGE_SYM_TYPE_VOID 0x0001 #define IMAGE_SYM_TYPE_CHAR 0x0002 #define IMAGE_SYM_TYPE_SHORT 0x0003 #define IMAGE_SYM_TYPE_INT 0x0004 #define IMAGE_SYM_TYPE_LONG 0x0005 #define IMAGE_SYM_TYPE_FLOAT 0x0006 #define IMAGE_SYM_TYPE_DOUBLE 0x0007 #define IMAGE_SYM_TYPE_STRUCT 0x0008 #define IMAGE_SYM_TYPE_UNION 0x0009 #define IMAGE_SYM_TYPE_ENUM 0x000A #define IMAGE_SYM_TYPE_MOE 0x000B #define IMAGE_SYM_TYPE_BYTE 0x000C #define IMAGE_SYM_TYPE_WORD 0x000D #define IMAGE_SYM_TYPE_UINT 0x000E #define IMAGE_SYM_TYPE_DWORD 0x000F #define IMAGE_SYM_TYPE_PCODE 0x8000 #define IMAGE_SYM_DTYPE_NULL 0 #define IMAGE_SYM_DTYPE_POINTER 1 #define IMAGE_SYM_DTYPE_FUNCTION 2 #define IMAGE_SYM_DTYPE_ARRAY 3 #define IMAGE_SYM_CLASS_END_OF_FUNCTION (BYTE )-1 #define IMAGE_SYM_CLASS_NULL 0x0000 #define IMAGE_SYM_CLASS_AUTOMATIC 0x0001 #define IMAGE_SYM_CLASS_EXTERNAL 0x0002 #define IMAGE_SYM_CLASS_STATIC 0x0003 #define IMAGE_SYM_CLASS_REGISTER 0x0004 #define IMAGE_SYM_CLASS_EXTERNAL_DEF 0x0005 #define IMAGE_SYM_CLASS_LABEL 0x0006 #define IMAGE_SYM_CLASS_UNDEFINED_LABEL 0x0007 #define IMAGE_SYM_CLASS_MEMBER_OF_STRUCT 0x0008 #define IMAGE_SYM_CLASS_ARGUMENT 0x0009 #define IMAGE_SYM_CLASS_STRUCT_TAG 0x000A #define IMAGE_SYM_CLASS_MEMBER_OF_UNION 0x000B #define IMAGE_SYM_CLASS_UNION_TAG 0x000C #define IMAGE_SYM_CLASS_TYPE_DEFINITION 0x000D #define IMAGE_SYM_CLASS_UNDEFINED_STATIC 0x000E #define IMAGE_SYM_CLASS_ENUM_TAG 0x000F #define IMAGE_SYM_CLASS_MEMBER_OF_ENUM 0x0010 #define IMAGE_SYM_CLASS_REGISTER_PARAM 0x0011 #define IMAGE_SYM_CLASS_BIT_FIELD 0x0012 #define IMAGE_SYM_CLASS_FAR_EXTERNAL 0x0044 #define IMAGE_SYM_CLASS_BLOCK 0x0064 #define IMAGE_SYM_CLASS_FUNCTION 0x0065 #define IMAGE_SYM_CLASS_END_OF_STRUCT 0x0066 #define IMAGE_SYM_CLASS_FILE 0x0067 #define IMAGE_SYM_CLASS_SECTION 0x0068 #define IMAGE_SYM_CLASS_WEAK_EXTERNAL 0x0069 #define N_BTMASK 0x000F #define N_TMASK 0x0030 #define N_TMASK1 0x00C0 #define N_TMASK2 0x00F0 #define N_BTSHFT 4 #define N_TSHIFT 2 #define BTYPE(x) ((x) & N_BTMASK) #ifndef ISPTR #define ISPTR(x) (((x) & N_TMASK) == (IMAGE_SYM_DTYPE_POINTER << N_BTSHFT)) #endif #ifndef ISFCN #define ISFCN(x) (((x) & N_TMASK) == (IMAGE_SYM_DTYPE_FUNCTION << N_BTSHFT)) #endif #ifndef ISARY #define ISARY(x) (((x) & N_TMASK) == (IMAGE_SYM_DTYPE_ARRAY << N_BTSHFT)) #endif #ifndef ISTAG #define ISTAG(x) ((x)==IMAGE_SYM_CLASS_STRUCT_TAG || (x)==IMAGE_SYM_CLASS_UNION_TAG || (x)==IMAGE_SYM_CLASS_ENUM_TAG) #endif #ifndef INCREF #define INCREF(x) ((((x)&~N_BTMASK)<>N_TSHIFT)&~N_BTMASK)|((x)&N_BTMASK)) #endif #define IMAGE_COMDAT_SELECT_NODUPLICATES 1 #define IMAGE_COMDAT_SELECT_ANY 2 #define IMAGE_COMDAT_SELECT_SAME_SIZE 3 #define IMAGE_COMDAT_SELECT_EXACT_MATCH 4 #define IMAGE_COMDAT_SELECT_ASSOCIATIVE 5 #define IMAGE_COMDAT_SELECT_LARGEST 6 #define IMAGE_COMDAT_SELECT_NEWEST 7 #define IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY 1 #define IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 2 #define IMAGE_WEAK_EXTERN_SEARCH_ALIAS 3 /* Export module directory */ typedef struct _IMAGE_EXPORT_DIRECTORY { DWORD Characteristics; DWORD TimeDateStamp; WORD MajorVersion; WORD MinorVersion; DWORD Name; DWORD Base; DWORD NumberOfFunctions; DWORD NumberOfNames; LPDWORD *AddressOfFunctions; LPDWORD *AddressOfNames; LPWORD *AddressOfNameOrdinals; } IMAGE_EXPORT_DIRECTORY,*PIMAGE_EXPORT_DIRECTORY; /* Import name entry */ typedef struct _IMAGE_IMPORT_BY_NAME { WORD Hint; BYTE Name[1]; } IMAGE_IMPORT_BY_NAME,*PIMAGE_IMPORT_BY_NAME; /* Import thunk */ typedef struct _IMAGE_THUNK_DATA { union { LPBYTE ForwarderString; FARPROC Function; DWORD Ordinal; PIMAGE_IMPORT_BY_NAME AddressOfData; } u1; } IMAGE_THUNK_DATA,*PIMAGE_THUNK_DATA; /* Import module directory */ typedef struct _IMAGE_IMPORT_DESCRIPTOR { union { DWORD Characteristics; /* 0 for terminating null import descriptor */ PIMAGE_THUNK_DATA OriginalFirstThunk; /* RVA to original unbound IAT */ } u; DWORD TimeDateStamp; /* 0 if not bound, * -1 if bound, and real date\time stamp * in IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT * (new BIND) * otherwise date/time stamp of DLL bound to * (Old BIND) */ DWORD ForwarderChain; /* -1 if no forwarders */ DWORD Name; /* RVA to IAT (if bound this IAT has actual addresses) */ PIMAGE_THUNK_DATA FirstThunk; } IMAGE_IMPORT_DESCRIPTOR,*PIMAGE_IMPORT_DESCRIPTOR; #define IMAGE_ORDINAL_FLAG 0x80000000 #define IMAGE_SNAP_BY_ORDINAL(Ordinal) ((Ordinal & IMAGE_ORDINAL_FLAG) != 0) #define IMAGE_ORDINAL(Ordinal) (Ordinal & 0xffff) typedef struct _IMAGE_BOUND_IMPORT_DESCRIPTOR { DWORD TimeDateStamp; WORD OffsetModuleName; WORD NumberOfModuleForwarderRefs; /* Array of zero or more IMAGE_BOUND_FORWARDER_REF follows */ } IMAGE_BOUND_IMPORT_DESCRIPTOR, *PIMAGE_BOUND_IMPORT_DESCRIPTOR; typedef struct _IMAGE_BOUND_FORWARDER_REF { DWORD TimeDateStamp; WORD OffsetModuleName; WORD Reserved; } IMAGE_BOUND_FORWARDER_REF, *PIMAGE_BOUND_FORWARDER_REF; typedef struct _IMAGE_BASE_RELOCATION { DWORD VirtualAddress; DWORD SizeOfBlock; WORD TypeOffset[1]; } IMAGE_BASE_RELOCATION,*PIMAGE_BASE_RELOCATION; typedef struct _IMAGE_RELOCATION { union { DWORD VirtualAddress; DWORD RelocCount; } u; DWORD SymbolTableIndex; WORD Type; } IMAGE_RELOCATION; typedef IMAGE_RELOCATION *PIMAGE_RELOCATION; #define IMAGE_SIZEOF_RELOCATION 10 /* generic relocation types */ #define IMAGE_REL_BASED_ABSOLUTE 0 #define IMAGE_REL_BASED_HIGH 1 #define IMAGE_REL_BASED_LOW 2 #define IMAGE_REL_BASED_HIGHLOW 3 #define IMAGE_REL_BASED_HIGHADJ 4 #define IMAGE_REL_BASED_MIPS_JMPADDR 5 #define IMAGE_REL_BASED_SECTION 6 #define IMAGE_REL_BASED_REL 7 #define IMAGE_REL_BASED_MIPS_JMPADDR16 9 #define IMAGE_REL_BASED_IA64_IMM64 9 /* yes, 9 too */ #define IMAGE_REL_BASED_DIR64 10 #define IMAGE_REL_BASED_HIGH3ADJ 11 /* I386 relocation types */ #define IMAGE_REL_I386_ABSOLUTE 0 #define IMAGE_REL_I386_DIR16 1 #define IMAGE_REL_I386_REL16 2 #define IMAGE_REL_I386_DIR32 6 #define IMAGE_REL_I386_DIR32NB 7 #define IMAGE_REL_I386_SEG12 9 #define IMAGE_REL_I386_SECTION 10 #define IMAGE_REL_I386_SECREL 11 #define IMAGE_REL_I386_REL32 20 /* MIPS relocation types */ #define IMAGE_REL_MIPS_ABSOLUTE 0x0000 #define IMAGE_REL_MIPS_REFHALF 0x0001 #define IMAGE_REL_MIPS_REFWORD 0x0002 #define IMAGE_REL_MIPS_JMPADDR 0x0003 #define IMAGE_REL_MIPS_REFHI 0x0004 #define IMAGE_REL_MIPS_REFLO 0x0005 #define IMAGE_REL_MIPS_GPREL 0x0006 #define IMAGE_REL_MIPS_LITERAL 0x0007 #define IMAGE_REL_MIPS_SECTION 0x000A #define IMAGE_REL_MIPS_SECREL 0x000B #define IMAGE_REL_MIPS_SECRELLO 0x000C #define IMAGE_REL_MIPS_SECRELHI 0x000D #define IMAGE_REL_MIPS_JMPADDR16 0x0010 #define IMAGE_REL_MIPS_REFWORDNB 0x0022 #define IMAGE_REL_MIPS_PAIR 0x0025 /* ALPHA relocation types */ #define IMAGE_REL_ALPHA_ABSOLUTE 0x0000 #define IMAGE_REL_ALPHA_REFLONG 0x0001 #define IMAGE_REL_ALPHA_REFQUAD 0x0002 #define IMAGE_REL_ALPHA_GPREL 0x0003 #define IMAGE_REL_ALPHA_LITERAL 0x0004 #define IMAGE_REL_ALPHA_LITUSE 0x0005 #define IMAGE_REL_ALPHA_GPDISP 0x0006 #define IMAGE_REL_ALPHA_BRADDR 0x0007 #define IMAGE_REL_ALPHA_HINT 0x0008 #define IMAGE_REL_ALPHA_INLINE_REFLONG 0x0009 #define IMAGE_REL_ALPHA_REFHI 0x000A #define IMAGE_REL_ALPHA_REFLO 0x000B #define IMAGE_REL_ALPHA_PAIR 0x000C #define IMAGE_REL_ALPHA_MATCH 0x000D #define IMAGE_REL_ALPHA_SECTION 0x000E #define IMAGE_REL_ALPHA_SECREL 0x000F #define IMAGE_REL_ALPHA_REFLONGNB 0x0010 #define IMAGE_REL_ALPHA_SECRELLO 0x0011 #define IMAGE_REL_ALPHA_SECRELHI 0x0012 #define IMAGE_REL_ALPHA_REFQ3 0x0013 #define IMAGE_REL_ALPHA_REFQ2 0x0014 #define IMAGE_REL_ALPHA_REFQ1 0x0015 #define IMAGE_REL_ALPHA_GPRELLO 0x0016 #define IMAGE_REL_ALPHA_GPRELHI 0x0017 /* PowerPC relocation types */ #define IMAGE_REL_PPC_ABSOLUTE 0x0000 #define IMAGE_REL_PPC_ADDR64 0x0001 #define IMAGE_REL_PPC_ADDR 0x0002 #define IMAGE_REL_PPC_ADDR24 0x0003 #define IMAGE_REL_PPC_ADDR16 0x0004 #define IMAGE_REL_PPC_ADDR14 0x0005 #define IMAGE_REL_PPC_REL24 0x0006 #define IMAGE_REL_PPC_REL14 0x0007 #define IMAGE_REL_PPC_TOCREL16 0x0008 #define IMAGE_REL_PPC_TOCREL14 0x0009 #define IMAGE_REL_PPC_ADDR32NB 0x000A #define IMAGE_REL_PPC_SECREL 0x000B #define IMAGE_REL_PPC_SECTION 0x000C #define IMAGE_REL_PPC_IFGLUE 0x000D #define IMAGE_REL_PPC_IMGLUE 0x000E #define IMAGE_REL_PPC_SECREL16 0x000F #define IMAGE_REL_PPC_REFHI 0x0010 #define IMAGE_REL_PPC_REFLO 0x0011 #define IMAGE_REL_PPC_PAIR 0x0012 #define IMAGE_REL_PPC_SECRELLO 0x0013 #define IMAGE_REL_PPC_SECRELHI 0x0014 #define IMAGE_REL_PPC_GPREL 0x0015 #define IMAGE_REL_PPC_TYPEMASK 0x00FF /* modifier bits */ #define IMAGE_REL_PPC_NEG 0x0100 #define IMAGE_REL_PPC_BRTAKEN 0x0200 #define IMAGE_REL_PPC_BRNTAKEN 0x0400 #define IMAGE_REL_PPC_TOCDEFN 0x0800 /* SH3 ? relocation type */ #define IMAGE_REL_SH3_ABSOLUTE 0x0000 #define IMAGE_REL_SH3_DIRECT16 0x0001 #define IMAGE_REL_SH3_DIRECT 0x0002 #define IMAGE_REL_SH3_DIRECT8 0x0003 #define IMAGE_REL_SH3_DIRECT8_WORD 0x0004 #define IMAGE_REL_SH3_DIRECT8_LONG 0x0005 #define IMAGE_REL_SH3_DIRECT4 0x0006 #define IMAGE_REL_SH3_DIRECT4_WORD 0x0007 #define IMAGE_REL_SH3_DIRECT4_LONG 0x0008 #define IMAGE_REL_SH3_PCREL8_WORD 0x0009 #define IMAGE_REL_SH3_PCREL8_LONG 0x000A #define IMAGE_REL_SH3_PCREL12_WORD 0x000B #define IMAGE_REL_SH3_STARTOF_SECTION 0x000C #define IMAGE_REL_SH3_SIZEOF_SECTION 0x000D #define IMAGE_REL_SH3_SECTION 0x000E #define IMAGE_REL_SH3_SECREL 0x000F #define IMAGE_REL_SH3_DIRECT32_NB 0x0010 /* ARM (Archimedes?) relocation types */ #define IMAGE_REL_ARM_ABSOLUTE 0x0000 #define IMAGE_REL_ARM_ADDR 0x0001 #define IMAGE_REL_ARM_ADDR32NB 0x0002 #define IMAGE_REL_ARM_BRANCH24 0x0003 #define IMAGE_REL_ARM_BRANCH11 0x0004 #define IMAGE_REL_ARM_SECTION 0x000E #define IMAGE_REL_ARM_SECREL 0x000F /* IA64 relocation types */ #define IMAGE_REL_IA64_ABSOLUTE 0x0000 #define IMAGE_REL_IA64_IMM14 0x0001 #define IMAGE_REL_IA64_IMM22 0x0002 #define IMAGE_REL_IA64_IMM64 0x0003 #define IMAGE_REL_IA64_DIR 0x0004 #define IMAGE_REL_IA64_DIR64 0x0005 #define IMAGE_REL_IA64_PCREL21B 0x0006 #define IMAGE_REL_IA64_PCREL21M 0x0007 #define IMAGE_REL_IA64_PCREL21F 0x0008 #define IMAGE_REL_IA64_GPREL22 0x0009 #define IMAGE_REL_IA64_LTOFF22 0x000A #define IMAGE_REL_IA64_SECTION 0x000B #define IMAGE_REL_IA64_SECREL22 0x000C #define IMAGE_REL_IA64_SECREL64I 0x000D #define IMAGE_REL_IA64_SECREL 0x000E #define IMAGE_REL_IA64_LTOFF64 0x000F #define IMAGE_REL_IA64_DIR32NB 0x0010 #define IMAGE_REL_IA64_RESERVED_11 0x0011 #define IMAGE_REL_IA64_RESERVED_12 0x0012 #define IMAGE_REL_IA64_RESERVED_13 0x0013 #define IMAGE_REL_IA64_RESERVED_14 0x0014 #define IMAGE_REL_IA64_RESERVED_15 0x0015 #define IMAGE_REL_IA64_RESERVED_16 0x0016 #define IMAGE_REL_IA64_ADDEND 0x001F /* archive format */ #define IMAGE_ARCHIVE_START_SIZE 8 #define IMAGE_ARCHIVE_START "!\n" #define IMAGE_ARCHIVE_END "`\n" #define IMAGE_ARCHIVE_PAD "\n" #define IMAGE_ARCHIVE_LINKER_MEMBER "/ " #define IMAGE_ARCHIVE_LONGNAMES_MEMBER "// " typedef struct _IMAGE_ARCHIVE_MEMBER_HEADER { BYTE Name[16]; BYTE Date[12]; BYTE UserID[6]; BYTE GroupID[6]; BYTE Mode[8]; BYTE Size[10]; BYTE EndHeader[2]; } IMAGE_ARCHIVE_MEMBER_HEADER, *PIMAGE_ARCHIVE_MEMBER_HEADER; #define IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR 60 /* * Resource directory stuff */ typedef struct _IMAGE_RESOURCE_DIRECTORY { DWORD Characteristics; DWORD TimeDateStamp; WORD MajorVersion; WORD MinorVersion; WORD NumberOfNamedEntries; WORD NumberOfIdEntries; /* IMAGE_RESOURCE_DIRECTORY_ENTRY DirectoryEntries[]; */ } IMAGE_RESOURCE_DIRECTORY,*PIMAGE_RESOURCE_DIRECTORY; #define IMAGE_RESOURCE_NAME_IS_STRING 0x80000000 #define IMAGE_RESOURCE_DATA_IS_DIRECTORY 0x80000000 typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY { union { struct { unsigned NameOffset:31; unsigned NameIsString:1; } s; DWORD Name; WORD Id; } u1; union { DWORD OffsetToData; struct { unsigned OffsetToDirectory:31; unsigned DataIsDirectory:1; } s; } u2; } IMAGE_RESOURCE_DIRECTORY_ENTRY,*PIMAGE_RESOURCE_DIRECTORY_ENTRY; typedef struct _IMAGE_RESOURCE_DIRECTORY_STRING { WORD Length; CHAR NameString[ 1 ]; } IMAGE_RESOURCE_DIRECTORY_STRING,*PIMAGE_RESOURCE_DIRECTORY_STRING; typedef struct _IMAGE_RESOURCE_DIR_STRING_U { WORD Length; WCHAR NameString[ 1 ]; } IMAGE_RESOURCE_DIR_STRING_U,*PIMAGE_RESOURCE_DIR_STRING_U; typedef struct _IMAGE_RESOURCE_DATA_ENTRY { DWORD OffsetToData; DWORD Size; DWORD CodePage; DWORD ResourceHandle; } IMAGE_RESOURCE_DATA_ENTRY,*PIMAGE_RESOURCE_DATA_ENTRY; typedef VOID CALLBACK (*PIMAGE_TLS_CALLBACK)( LPVOID DllHandle,DWORD Reason,LPVOID Reserved ); typedef struct _IMAGE_TLS_DIRECTORY { DWORD StartAddressOfRawData; DWORD EndAddressOfRawData; LPDWORD AddressOfIndex; PIMAGE_TLS_CALLBACK *AddressOfCallBacks; DWORD SizeOfZeroFill; DWORD Characteristics; } IMAGE_TLS_DIRECTORY,*PIMAGE_TLS_DIRECTORY; typedef struct _IMAGE_DEBUG_DIRECTORY { DWORD Characteristics; DWORD TimeDateStamp; WORD MajorVersion; WORD MinorVersion; DWORD Type; DWORD SizeOfData; DWORD AddressOfRawData; DWORD PointerToRawData; } IMAGE_DEBUG_DIRECTORY, *PIMAGE_DEBUG_DIRECTORY; #define IMAGE_DEBUG_TYPE_UNKNOWN 0 #define IMAGE_DEBUG_TYPE_COFF 1 #define IMAGE_DEBUG_TYPE_CODEVIEW 2 #define IMAGE_DEBUG_TYPE_FPO 3 #define IMAGE_DEBUG_TYPE_MISC 4 #define IMAGE_DEBUG_TYPE_EXCEPTION 5 #define IMAGE_DEBUG_TYPE_FIXUP 6 #define IMAGE_DEBUG_TYPE_OMAP_TO_SRC 7 #define IMAGE_DEBUG_TYPE_OMAP_FROM_SRC 8 #define IMAGE_DEBUG_TYPE_BORLAND 9 #define IMAGE_DEBUG_TYPE_RESERVED10 10 typedef struct _IMAGE_COFF_SYMBOLS_HEADER { DWORD NumberOfSymbols; DWORD LvaToFirstSymbol; DWORD NumberOfLinenumbers; DWORD LvaToFirstLinenumber; DWORD RvaToFirstByteOfCode; DWORD RvaToLastByteOfCode; DWORD RvaToFirstByteOfData; DWORD RvaToLastByteOfData; } IMAGE_COFF_SYMBOLS_HEADER, *PIMAGE_COFF_SYMBOLS_HEADER; #define FRAME_FPO 0 #define FRAME_TRAP 1 #define FRAME_TSS 2 #define FRAME_NONFPO 3 typedef struct _FPO_DATA { DWORD ulOffStart; DWORD cbProcSize; DWORD cdwLocals; WORD cdwParams; unsigned cbProlog : 8; unsigned cbRegs : 3; unsigned fHasSEH : 1; unsigned fUseBP : 1; unsigned reserved : 1; unsigned cbFrame : 2; } FPO_DATA, *PFPO_DATA; typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY { DWORD Characteristics; DWORD TimeDateStamp; WORD MajorVersion; WORD MinorVersion; DWORD GlobalFlagsClear; DWORD GlobalFlagsSet; DWORD CriticalSectionDefaultTimeout; DWORD DeCommitFreeBlockThreshold; DWORD DeCommitTotalFreeThreshold; PVOID LockPrefixTable; DWORD MaximumAllocationSize; DWORD VirtualMemoryThreshold; DWORD ProcessHeapFlags; DWORD ProcessAffinityMask; WORD CSDVersion; WORD Reserved1; PVOID EditList; DWORD Reserved[1]; } IMAGE_LOAD_CONFIG_DIRECTORY, *PIMAGE_LOAD_CONFIG_DIRECTORY; typedef struct _IMAGE_FUNCTION_ENTRY { DWORD StartingAddress; DWORD EndingAddress; DWORD EndOfPrologue; } IMAGE_FUNCTION_ENTRY, *PIMAGE_FUNCTION_ENTRY; /* This is the structure that appears at the very start of a .DBG file. */ typedef struct _IMAGE_SEPARATE_DEBUG_HEADER { WORD Signature; WORD Flags; WORD Machine; WORD Characteristics; DWORD TimeDateStamp; DWORD CheckSum; DWORD ImageBase; DWORD SizeOfImage; DWORD NumberOfSections; DWORD ExportedNamesSize; DWORD DebugDirectorySize; DWORD SectionAlignment; DWORD Reserved[ 2 ]; } IMAGE_SEPARATE_DEBUG_HEADER,*PIMAGE_SEPARATE_DEBUG_HEADER; #define IMAGE_SEPARATE_DEBUG_SIGNATURE 0x4944 typedef struct tagMESSAGE_RESOURCE_ENTRY { WORD Length; WORD Flags; BYTE Text[1]; } MESSAGE_RESOURCE_ENTRY,*PMESSAGE_RESOURCE_ENTRY; #define MESSAGE_RESOURCE_UNICODE 0x0001 typedef struct tagMESSAGE_RESOURCE_BLOCK { DWORD LowId; DWORD HighId; DWORD OffsetToEntries; } MESSAGE_RESOURCE_BLOCK,*PMESSAGE_RESOURCE_BLOCK; typedef struct tagMESSAGE_RESOURCE_DATA { DWORD NumberOfBlocks; MESSAGE_RESOURCE_BLOCK Blocks[ 1 ]; } MESSAGE_RESOURCE_DATA,*PMESSAGE_RESOURCE_DATA; /* * Here follows typedefs for security and tokens. */ /* * First a constant for the following typdefs. */ #define ANYSIZE_ARRAY 1 /* FIXME: Orphan. What does it point to? */ typedef PVOID PACCESS_TOKEN; /* * TOKEN_INFORMATION_CLASS */ typedef enum _TOKEN_INFORMATION_CLASS { TokenUser = 1, TokenGroups, TokenPrivileges, TokenOwner, TokenPrimaryGroup, TokenDefaultDacl, TokenSource, TokenType, TokenImpersonationLevel, TokenStatistics } TOKEN_INFORMATION_CLASS; #ifndef _SECURITY_DEFINED #define _SECURITY_DEFINED #include "pshpack1.h" typedef DWORD ACCESS_MASK, *PACCESS_MASK; typedef struct _GENERIC_MAPPING { ACCESS_MASK GenericRead; ACCESS_MASK GenericWrite; ACCESS_MASK GenericExecute; ACCESS_MASK GenericAll; } GENERIC_MAPPING, *PGENERIC_MAPPING; #ifndef SID_IDENTIFIER_AUTHORITY_DEFINED #define SID_IDENTIFIER_AUTHORITY_DEFINED typedef struct { BYTE Value[6]; } SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY,*LPSID_IDENTIFIER_AUTHORITY; #endif /* !defined(SID_IDENTIFIER_AUTHORITY_DEFINED) */ #ifndef SID_DEFINED #define SID_DEFINED typedef struct _SID { BYTE Revision; BYTE SubAuthorityCount; SID_IDENTIFIER_AUTHORITY IdentifierAuthority; DWORD SubAuthority[1]; } SID,*PSID; #endif /* !defined(SID_DEFINED) */ #define SID_REVISION (1) /* Current revision */ #define SID_MAX_SUB_AUTHORITIES (15) /* current max subauths */ #define SID_RECOMMENDED_SUB_AUTHORITIES (1) /* recommended subauths */ /* * ACL */ #define ACL_REVISION1 1 #define ACL_REVISION2 2 #define ACL_REVISION3 3 #define ACL_REVISION4 4 #define MIN_ACL_REVISION ACL_REVISION2 #define MAX_ACL_REVISION ACL_REVISION4 typedef struct _ACL { BYTE AclRevision; BYTE Sbz1; WORD AclSize; WORD AceCount; WORD Sbz2; } ACL, *PACL; /* SECURITY_DESCRIPTOR */ #define SECURITY_DESCRIPTOR_REVISION 1 #define SECURITY_DESCRIPTOR_REVISION1 1 #define SE_OWNER_DEFAULTED 0x0001 #define SE_GROUP_DEFAULTED 0x0002 #define SE_DACL_PRESENT 0x0004 #define SE_DACL_DEFAULTED 0x0008 #define SE_SACL_PRESENT 0x0010 #define SE_SACL_DEFAULTED 0x0020 #define SE_SELF_RELATIVE 0x8000 typedef DWORD SECURITY_INFORMATION, *PSECURITY_INFORMATION; typedef WORD SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL; /* The security descriptor structure */ typedef struct { BYTE Revision; BYTE Sbz1; SECURITY_DESCRIPTOR_CONTROL Control; DWORD Owner; DWORD Group; DWORD Sacl; DWORD Dacl; } SECURITY_DESCRIPTOR_RELATIVE, *PISECURITY_DESCRIPTOR_RELATIVE; typedef struct { BYTE Revision; BYTE Sbz1; SECURITY_DESCRIPTOR_CONTROL Control; PSID Owner; PSID Group; PACL Sacl; PACL Dacl; } SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR; #define SECURITY_DESCRIPTOR_MIN_LENGTH (sizeof(SECURITY_DESCRIPTOR)) #include "poppack.h" #endif /* _SECURITY_DEFINED */ #include "pshpack1.h" /* * SID_AND_ATTRIBUTES */ typedef struct _SID_AND_ATTRIBUTES { PSID Sid; DWORD Attributes; } SID_AND_ATTRIBUTES ; /* security entities */ #define SECURITY_NULL_RID (0x00000000L) #define SECURITY_WORLD_RID (0x00000000L) #define SECURITY_LOCAL_RID (0X00000000L) #define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0} /* S-1-1 */ #define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1} /* S-1-2 */ #define SECURITY_LOCAL_SID_AUTHORITY {0,0,0,0,0,2} /* S-1-3 */ #define SECURITY_CREATOR_SID_AUTHORITY {0,0,0,0,0,3} #define SECURITY_CREATOR_OWNER_RID (0x00000000L) #define SECURITY_CREATOR_GROUP_RID (0x00000001L) #define SECURITY_CREATOR_OWNER_SERVER_RID (0x00000002L) #define SECURITY_CREATOR_GROUP_SERVER_RID (0x00000003L) /* S-1-4 */ #define SECURITY_NON_UNIQUE_AUTHORITY {0,0,0,0,0,4} /* S-1-5 */ #define SECURITY_NT_AUTHORITY {0,0,0,0,0,5} #define SECURITY_DIALUP_RID 0x00000001L #define SECURITY_NETWORK_RID 0x00000002L #define SECURITY_BATCH_RID 0x00000003L #define SECURITY_INTERACTIVE_RID 0x00000004L #define SECURITY_LOGON_IDS_RID 0x00000005L #define SECURITY_SERVICE_RID 0x00000006L #define SECURITY_ANONYMOUS_LOGON_RID 0x00000007L #define SECURITY_PROXY_RID 0x00000008L #define SECURITY_ENTERPRISE_CONTROLLERS_RID 0x00000009L #define SECURITY_PRINCIPAL_SELF_RID 0x0000000AL #define SECURITY_AUTHENTICATED_USER_RID 0x0000000BL #define SECURITY_RESTRICTED_CODE_RID 0x0000000CL #define SECURITY_TERMINAL_SERVER_RID 0x0000000DL #define SECURITY_LOCAL_SYSTEM_RID 0x00000012L #define SECURITY_NT_NON_UNIQUE 0x00000015L #define SECURITY_BUILTIN_DOMAIN_RID 0x00000020L #define DOMAIN_GROUP_RID_ADMINS 0x00000200L #define DOMAIN_GROUP_RID_USERS 0x00000201L #define DOMAIN_GROUP_RID_GUESTS 0x00000202L #define DOMAIN_ALIAS_RID_ADMINS 0x00000220L #define DOMAIN_ALIAS_RID_USERS 0x00000221L #define DOMAIN_ALIAS_RID_GUESTS 0x00000222L #define SECURITY_SERVER_LOGON_RID SECURITY_ENTERPRISE_CONTROLLERS_RID #define SECURITY_LOGON_IDS_RID_COUNT (3L) /* * TOKEN_USER */ typedef struct _TOKEN_USER { SID_AND_ATTRIBUTES User; } TOKEN_USER; /* * TOKEN_GROUPS */ typedef struct _TOKEN_GROUPS { DWORD GroupCount; SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY]; } TOKEN_GROUPS; /* * LUID_AND_ATTRIBUTES */ typedef union _LARGE_INTEGER { struct { DWORD LowPart; LONG HighPart; } DUMMYSTRUCTNAME; LONGLONG QuadPart; } LARGE_INTEGER, *LPLARGE_INTEGER, *PLARGE_INTEGER; typedef union _ULARGE_INTEGER { struct { DWORD LowPart; LONG HighPart; } DUMMYSTRUCTNAME; LONGLONG QuadPart; } ULARGE_INTEGER, *LPULARGE_INTEGER, *PULARGE_INTEGER; /* * Locally Unique Identifier */ typedef LARGE_INTEGER LUID,*PLUID; typedef struct _LUID_AND_ATTRIBUTES { LUID Luid; DWORD Attributes; } LUID_AND_ATTRIBUTES; /* * PRIVILEGE_SET */ typedef struct _PRIVILEGE_SET { DWORD PrivilegeCount; DWORD Control; LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY]; } PRIVILEGE_SET, *PPRIVILEGE_SET; /* * TOKEN_PRIVILEGES */ typedef struct _TOKEN_PRIVILEGES { DWORD PrivilegeCount; LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]; } TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES; /* * TOKEN_OWNER */ typedef struct _TOKEN_OWNER { PSID Owner; } TOKEN_OWNER; /* * TOKEN_PRIMARY_GROUP */ typedef struct _TOKEN_PRIMARY_GROUP { PSID PrimaryGroup; } TOKEN_PRIMARY_GROUP; /* * TOKEN_DEFAULT_DACL */ typedef struct _TOKEN_DEFAULT_DACL { PACL DefaultDacl; } TOKEN_DEFAULT_DACL; /* * TOKEN_SOURCEL */ typedef struct _TOKEN_SOURCE { char Sourcename[8]; LUID SourceIdentifier; } TOKEN_SOURCE; /* * TOKEN_TYPE */ typedef enum tagTOKEN_TYPE { TokenPrimary = 1, TokenImpersonation } TOKEN_TYPE; /* * SECURITY_IMPERSONATION_LEVEL */ typedef enum _SECURITY_IMPERSONATION_LEVEL { SecurityAnonymous, SecurityIdentification, SecurityImpersonation, SecurityDelegation } SECURITY_IMPERSONATION_LEVEL, *PSECURITY_IMPERSONATION_LEVEL; typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE, * PSECURITY_CONTEXT_TRACKING_MODE; /* * Quality of Service */ typedef struct _SECURITY_QUALITY_OF_SERVICE { DWORD Length; SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode; WIN_BOOL EffectiveOnly; } SECURITY_QUALITY_OF_SERVICE, *PSECURITY_QUALITY_OF_SERVICE; /* * TOKEN_STATISTICS */ typedef struct _TOKEN_STATISTICS { LUID TokenId; LUID AuthenticationId; LARGE_INTEGER ExpirationTime; TOKEN_TYPE TokenType; SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; DWORD DynamicCharged; DWORD DynamicAvailable; DWORD GroupCount; DWORD PrivilegeCount; LUID ModifiedId; } TOKEN_STATISTICS; /* * ACLs of NT */ #define ACL_REVISION 2 #define ACL_REVISION1 1 #define ACL_REVISION2 2 /* ACEs, directly starting after an ACL */ typedef struct _ACE_HEADER { BYTE AceType; BYTE AceFlags; WORD AceSize; } ACE_HEADER,*PACE_HEADER; /* AceType */ #define ACCESS_ALLOWED_ACE_TYPE 0 #define ACCESS_DENIED_ACE_TYPE 1 #define SYSTEM_AUDIT_ACE_TYPE 2 #define SYSTEM_ALARM_ACE_TYPE 3 /* inherit AceFlags */ #define OBJECT_INHERIT_ACE 0x01 #define CONTAINER_INHERIT_ACE 0x02 #define NO_PROPAGATE_INHERIT_ACE 0x04 #define INHERIT_ONLY_ACE 0x08 #define VALID_INHERIT_FLAGS 0x0F /* AceFlags mask for what events we (should) audit */ #define SUCCESSFUL_ACCESS_ACE_FLAG 0x40 #define FAILED_ACCESS_ACE_FLAG 0x80 /* different ACEs depending on AceType * SidStart marks the begin of a SID * so the thing finally looks like this: * 0: ACE_HEADER * 4: ACCESS_MASK * 8... : SID */ typedef struct _ACCESS_ALLOWED_ACE { ACE_HEADER Header; DWORD Mask; DWORD SidStart; } ACCESS_ALLOWED_ACE,*PACCESS_ALLOWED_ACE; typedef struct _ACCESS_DENIED_ACE { ACE_HEADER Header; DWORD Mask; DWORD SidStart; } ACCESS_DENIED_ACE,*PACCESS_DENIED_ACE; typedef struct _SYSTEM_AUDIT_ACE { ACE_HEADER Header; DWORD Mask; DWORD SidStart; } SYSTEM_AUDIT_ACE,*PSYSTEM_AUDIT_ACE; typedef struct _SYSTEM_ALARM_ACE { ACE_HEADER Header; DWORD Mask; DWORD SidStart; } SYSTEM_ALARM_ACE,*PSYSTEM_ALARM_ACE; typedef enum tagSID_NAME_USE { SidTypeUser = 1, SidTypeGroup, SidTypeDomain, SidTypeAlias, SidTypeWellKnownGroup, SidTypeDeletedAccount, SidTypeInvalid, SidTypeUnknown } SID_NAME_USE,*PSID_NAME_USE; /* Access rights */ #define DELETE 0x00010000 #define READ_CONTROL 0x00020000 #define WRITE_DAC 0x00040000 #define WRITE_OWNER 0x00080000 #define SYNCHRONIZE 0x00100000 #define STANDARD_RIGHTS_REQUIRED 0x000f0000 #define STANDARD_RIGHTS_READ READ_CONTROL #define STANDARD_RIGHTS_WRITE READ_CONTROL #define STANDARD_RIGHTS_EXECUTE READ_CONTROL #define STANDARD_RIGHTS_ALL 0x001f0000 #define SPECIFIC_RIGHTS_ALL 0x0000ffff #define GENERIC_READ 0x80000000 #define GENERIC_WRITE 0x40000000 #define GENERIC_EXECUTE 0x20000000 #define GENERIC_ALL 0x10000000 #define MAXIMUM_ALLOWED 0x02000000 #define ACCESS_SYSTEM_SECURITY 0x01000000 #define EVENT_MODIFY_STATE 0x0002 #define EVENT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3) #define SEMAPHORE_MODIFY_STATE 0x0002 #define SEMAPHORE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3) #define MUTEX_MODIFY_STATE 0x0001 #define MUTEX_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x1) #define PROCESS_TERMINATE 0x0001 #define PROCESS_CREATE_THREAD 0x0002 #define PROCESS_VM_OPERATION 0x0008 #define PROCESS_VM_READ 0x0010 #define PROCESS_VM_WRITE 0x0020 #define PROCESS_DUP_HANDLE 0x0040 #define PROCESS_CREATE_PROCESS 0x0080 #define PROCESS_SET_QUOTA 0x0100 #define PROCESS_SET_INFORMATION 0x0200 #define PROCESS_QUERY_INFORMATION 0x0400 #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0xfff) #define THREAD_TERMINATE 0x0001 #define THREAD_SUSPEND_RESUME 0x0002 #define THREAD_GET_CONTEXT 0x0008 #define THREAD_SET_CONTEXT 0x0010 #define THREAD_SET_INFORMATION 0x0020 #define THREAD_QUERY_INFORMATION 0x0040 #define THREAD_SET_THREAD_TOKEN 0x0080 #define THREAD_IMPERSONATE 0x0100 #define THREAD_DIRECT_IMPERSONATION 0x0200 #define THREAD_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3ff) #define THREAD_BASE_PRIORITY_LOWRT 15 #define THREAD_BASE_PRIORITY_MAX 2 #define THREAD_BASE_PRIORITY_MIN -2 #define THREAD_BASE_PRIORITY_IDLE -15 #define FILE_READ_DATA 0x0001 /* file & pipe */ #define FILE_LIST_DIRECTORY 0x0001 /* directory */ #define FILE_WRITE_DATA 0x0002 /* file & pipe */ #define FILE_ADD_FILE 0x0002 /* directory */ #define FILE_APPEND_DATA 0x0004 /* file */ #define FILE_ADD_SUBDIRECTORY 0x0004 /* directory */ #define FILE_CREATE_PIPE_INSTANCE 0x0004 /* named pipe */ #define FILE_READ_EA 0x0008 /* file & directory */ #define FILE_READ_PROPERTIES FILE_READ_EA #define FILE_WRITE_EA 0x0010 /* file & directory */ #define FILE_WRITE_PROPERTIES FILE_WRITE_EA #define FILE_EXECUTE 0x0020 /* file */ #define FILE_TRAVERSE 0x0020 /* directory */ #define FILE_DELETE_CHILD 0x0040 /* directory */ #define FILE_READ_ATTRIBUTES 0x0080 /* all */ #define FILE_WRITE_ATTRIBUTES 0x0100 /* all */ #define FILE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x1ff) #define FILE_GENERIC_READ (STANDARD_RIGHTS_READ | FILE_READ_DATA | \ FILE_READ_ATTRIBUTES | FILE_READ_EA | \ SYNCHRONIZE) #define FILE_GENERIC_WRITE (STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | \ FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | \ FILE_APPEND_DATA | SYNCHRONIZE) #define FILE_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE | FILE_EXECUTE | \ FILE_READ_ATTRIBUTES | SYNCHRONIZE) /* File attribute flags */ #define FILE_SHARE_READ 0x00000001L #define FILE_SHARE_WRITE 0x00000002L #define FILE_SHARE_DELETE 0x00000004L #define FILE_ATTRIBUTE_READONLY 0x00000001L #define FILE_ATTRIBUTE_HIDDEN 0x00000002L #define FILE_ATTRIBUTE_SYSTEM 0x00000004L #define FILE_ATTRIBUTE_LABEL 0x00000008L /* Not in Windows API */ #define FILE_ATTRIBUTE_DIRECTORY 0x00000010L #define FILE_ATTRIBUTE_ARCHIVE 0x00000020L #define FILE_ATTRIBUTE_NORMAL 0x00000080L #define FILE_ATTRIBUTE_TEMPORARY 0x00000100L #define FILE_ATTRIBUTE_ATOMIC_WRITE 0x00000200L #define FILE_ATTRIBUTE_XACTION_WRITE 0x00000400L #define FILE_ATTRIBUTE_COMPRESSED 0x00000800L #define FILE_ATTRIBUTE_OFFLINE 0x00001000L /* File alignments (NT) */ #define FILE_BYTE_ALIGNMENT 0x00000000 #define FILE_WORD_ALIGNMENT 0x00000001 #define FILE_LONG_ALIGNMENT 0x00000003 #define FILE_QUAD_ALIGNMENT 0x00000007 #define FILE_OCTA_ALIGNMENT 0x0000000f #define FILE_32_BYTE_ALIGNMENT 0x0000001f #define FILE_64_BYTE_ALIGNMENT 0x0000003f #define FILE_128_BYTE_ALIGNMENT 0x0000007f #define FILE_256_BYTE_ALIGNMENT 0x000000ff #define FILE_512_BYTE_ALIGNMENT 0x000001ff #define REG_NONE 0 /* no type */ #define REG_SZ 1 /* string type (ASCII) */ #define REG_EXPAND_SZ 2 /* string, includes %ENVVAR% (expanded by caller) (ASCII) */ #define REG_BINARY 3 /* binary format, callerspecific */ /* YES, REG_DWORD == REG_DWORD_LITTLE_ENDIAN */ #define REG_DWORD 4 /* DWORD in little endian format */ #define REG_DWORD_LITTLE_ENDIAN 4 /* DWORD in little endian format */ #define REG_DWORD_BIG_ENDIAN 5 /* DWORD in big endian format */ #define REG_LINK 6 /* symbolic link (UNICODE) */ #define REG_MULTI_SZ 7 /* multiple strings, delimited by \0, terminated by \0\0 (ASCII) */ #define REG_RESOURCE_LIST 8 /* resource list? huh? */ #define REG_FULL_RESOURCE_DESCRIPTOR 9 /* full resource descriptor? huh? */ #define REG_RESOURCE_REQUIREMENTS_LIST 10 /* ----------------------------- begin registry ----------------------------- */ /* Registry security values */ #define OWNER_SECURITY_INFORMATION 0x00000001 #define GROUP_SECURITY_INFORMATION 0x00000002 #define DACL_SECURITY_INFORMATION 0x00000004 #define SACL_SECURITY_INFORMATION 0x00000008 #define REG_OPTION_RESERVED 0x00000000 #define REG_OPTION_NON_VOLATILE 0x00000000 #define REG_OPTION_VOLATILE 0x00000001 #define REG_OPTION_CREATE_LINK 0x00000002 #define REG_OPTION_BACKUP_RESTORE 0x00000004 /* FIXME */ #define REG_OPTION_OPEN_LINK 0x00000008 #define REG_LEGAL_OPTION (REG_OPTION_RESERVED| \ REG_OPTION_NON_VOLATILE| \ REG_OPTION_VOLATILE| \ REG_OPTION_CREATE_LINK| \ REG_OPTION_BACKUP_RESTORE| \ REG_OPTION_OPEN_LINK) #define REG_CREATED_NEW_KEY 0x00000001 #define REG_OPENED_EXISTING_KEY 0x00000002 /* For RegNotifyChangeKeyValue */ #define REG_NOTIFY_CHANGE_NAME 0x1 #define KEY_QUERY_VALUE 0x00000001 #define KEY_SET_VALUE 0x00000002 #define KEY_CREATE_SUB_KEY 0x00000004 #define KEY_ENUMERATE_SUB_KEYS 0x00000008 #define KEY_NOTIFY 0x00000010 #define KEY_CREATE_LINK 0x00000020 #define KEY_READ ((STANDARD_RIGHTS_READ| \ KEY_QUERY_VALUE| \ KEY_ENUMERATE_SUB_KEYS| \ KEY_NOTIFY) \ & (~SYNCHRONIZE) \ ) #define KEY_WRITE ((STANDARD_RIGHTS_WRITE| \ KEY_SET_VALUE| \ KEY_CREATE_SUB_KEY) \ & (~SYNCHRONIZE) \ ) #define KEY_EXECUTE ((KEY_READ) \ & (~SYNCHRONIZE)) \ ) #define KEY_ALL_ACCESS ((STANDARD_RIGHTS_ALL| \ KEY_QUERY_VALUE| \ KEY_SET_VALUE| \ KEY_CREATE_SUB_KEY| \ KEY_ENUMERATE_SUB_KEYS| \ KEY_NOTIFY| \ KEY_CREATE_LINK) \ & (~SYNCHRONIZE) \ ) /* ------------------------------ end registry ------------------------------ */ #define RtlEqualMemory(Destination, Source, Length) (!memcmp((Destination),(Source),(Length))) #define RtlMoveMemory(Destination, Source, Length) memmove((Destination),(Source),(Length)) #define RtlCopyMemory(Destination, Source, Length) memcpy((Destination),(Source),(Length)) #define RtlFillMemory(Destination, Length, Fill) memset((Destination),(Fill),(Length)) #define RtlZeroMemory(Destination, Length) memset((Destination),0,(Length)) #include "poppack.h" #endif /* __WINE_WINNT_H */ bml-0.6.1/dllwrapper/wine/elfdll.h0000644042355400116100000000053211576362500013755 00000000000000#ifndef __WINE_ELFDLL_H #define __WINE_ELFDLL_H #include "module.h" #include "windef.h" WINE_MODREF *ELFDLL_LoadLibraryExA(LPCSTR libname, DWORD flags); HINSTANCE16 ELFDLL_LoadModule16(LPCSTR libname); void ELFDLL_UnloadLibrary(WINE_MODREF *wm); void *ELFDLL_dlopen(const char *libname, int flags); extern char *extra_ld_library_path; #endif bml-0.6.1/dllwrapper/wine/poppack.h0000644042355400116100000000104611576362500014151 00000000000000#ifdef __WINE_PSHPACK_H #undef __WINE_PSHPACK_H #if defined(__GNUC__) || defined(__SUNPRO_C) || defined(__ICC) #pragma pack() #elif defined(__SUNPRO_CC) #warning "Assumes default alignment is 4" #pragma pack(4) #elif !defined(RC_INVOKED) #error "Restoration of the previous alignment isn't supported by the compiler" #endif /* defined(__GNUC__) || defined(__SUNPRO_C) ; !defined(RC_INVOKED) */ #else /* defined(__WINE_PSHPACK_H) */ #error "Popping alignment isn't possible since no alignment has been pushed" #endif /* defined(__WINE_PSHPACK_H) */ bml-0.6.1/dllwrapper/wine/resource.h0000644042355400116100000000027211576362500014343 00000000000000#ifndef wine_resource_h #define wine_resource_h #include "winbase.h" extern INT WINAPI LoadStringA( HINSTANCE instance, UINT resource_id, LPSTR buffer, INT buflen ); #endif bml-0.6.1/dllwrapper/wine/winestring.h0000644042355400116100000000054511576362500014710 00000000000000#ifndef __WINE_WINE_WINESTRING_H #define __WINE_WINE_WINESTRING_H #include "windef.h" LPWSTR WINAPI lstrcpyAtoW(LPWSTR,LPCSTR); LPSTR WINAPI lstrcpyWtoA(LPSTR,LPCWSTR); LPWSTR WINAPI lstrcpynAtoW(LPWSTR,LPCSTR,INT); LPSTR WINAPI lstrcpynWtoA(LPSTR,LPCWSTR,INT); #define lstrncmpiA strncasecmp #endif /* __WINE_WINE_WINESTRING_H */ bml-0.6.1/dllwrapper/wine/mmreg.h0000644042355400116100000003247111576362500013631 00000000000000/* * mmreg.h - Declarations for ??? */ #ifndef __WINE_MMREG_H #define __WINE_MMREG_H /*********************************************************************** * Defines/Enums */ #ifndef _ACM_WAVEFILTER #define _ACM_WAVEFILTER #include "windef.h" #define WAVE_FILTER_UNKNOWN 0x0000 #define WAVE_FILTER_DEVELOPMENT 0xFFFF typedef struct __attribute__((__packed__)) _WAVEFILTER { DWORD cbStruct; DWORD dwFilterTag; DWORD fdwFilter; DWORD dwReserved[5]; } WAVEFILTER, *PWAVEFILTER, *NPWAVEFILTER, *LPWAVEFILTER; #endif /* _ACM_WAVEFILTER */ #ifndef WAVE_FILTER_VOLUME #define WAVE_FILTER_VOLUME 0x0001 typedef struct __attribute__((__packed__)) _WAVEFILTER_VOLUME { WAVEFILTER wfltr; DWORD dwVolume; } VOLUMEWAVEFILTER, *PVOLUMEWAVEFILTER, *NPVOLUMEWAVEFILTER, *LPVOLUMEWAVEFILTER; #endif /* WAVE_FILTER_VOLUME */ #ifndef WAVE_FILTER_ECHO #define WAVE_FILTER_ECHO 0x0002 typedef struct __attribute__((__packed__)) WAVEFILTER_ECHO { WAVEFILTER wfltr; DWORD dwVolume; DWORD dwDelay; } ECHOWAVEFILTER, *PECHOWAVEFILTER, *NPECHOWAVEFILTER, *LPECHOWAVEFILTER; #endif /* WAVEFILTER_ECHO */ #ifndef _WAVEFORMATEX_ #define _WAVEFORMATEX_ typedef struct __attribute__((__packed__)) _WAVEFORMATEX { WORD wFormatTag; WORD nChannels; DWORD nSamplesPerSec; DWORD nAvgBytesPerSec; WORD nBlockAlign; WORD wBitsPerSample; WORD cbSize; } WAVEFORMATEX, *PWAVEFORMATEX, *NPWAVEFORMATEX, *LPWAVEFORMATEX; #endif /* _WAVEFORMATEX_ */ #ifndef GUID_TYPE #define GUID_TYPE typedef struct { unsigned long f1; unsigned short f2; unsigned short f3; unsigned char f4[8]; } GUID; #endif #ifndef _WAVEFORMATEXTENSIBLE_ #define _WAVEFORMATEXTENSIBLE_ typedef struct { WAVEFORMATEX Format; union { WORD wValidBitsPerSample; /* bits of precision */ WORD wSamplesPerBlock; /* valid if wBitsPerSample==0 */ WORD wReserved; /* If neither applies, set to zero. */ } Samples; DWORD dwChannelMask; /* which channels are */ /* present in stream */ GUID SubFormat; } WAVEFORMATEXTENSIBLE, *PWAVEFORMATEXTENSIBLE; #endif // !_WAVEFORMATEXTENSIBLE_ typedef struct mpeglayer3waveformat_tag { WORD wFormatTag WINE_PACKED; WORD nChannels WINE_PACKED; DWORD nSamplesPerSec WINE_PACKED; DWORD nAvgBytesPerSec WINE_PACKED; WORD nBlockAlign WINE_PACKED; WORD wBitsPerSample WINE_PACKED; WORD cbSize WINE_PACKED; WORD wID WINE_PACKED; DWORD fdwFlags WINE_PACKED; WORD nBlockSize WINE_PACKED; WORD nFramesPerBlock WINE_PACKED; WORD nCodecDelay WINE_PACKED; } MPEGLAYER3WAVEFORMAT; /* WAVE form wFormatTag IDs */ #define WAVE_FORMAT_UNKNOWN 0x0000 /* Microsoft Corporation */ #define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */ #define WAVE_FORMAT_IEEE_FLOAT 0x0003 /* Microsoft Corporation */ #define WAVE_FORMAT_VSELP 0x0004 /* Compaq Computer Corp. */ #define WAVE_FORMAT_IBM_CVSD 0x0005 /* IBM Corporation */ #define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */ #define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */ #define WAVE_FORMAT_DTS 0x0008 /* Microsoft Corporation */ #define WAVE_FORMAT_OKI_ADPCM 0x0010 /* OKI */ #define WAVE_FORMAT_DVI_ADPCM 0x0011 /* Intel Corporation */ #define WAVE_FORMAT_IMA_ADPCM (WAVE_FORMAT_DVI_ADPCM) /* Intel Corporation */ #define WAVE_FORMAT_MEDIASPACE_ADPCM 0x0012 /* Videologic */ #define WAVE_FORMAT_SIERRA_ADPCM 0x0013 /* Sierra Semiconductor Corp */ #define WAVE_FORMAT_G723_ADPCM 0x0014 /* Antex Electronics Corporation */ #define WAVE_FORMAT_DIGISTD 0x0015 /* DSP Solutions, Inc. */ #define WAVE_FORMAT_DIGIFIX 0x0016 /* DSP Solutions, Inc. */ #define WAVE_FORMAT_DIALOGIC_OKI_ADPCM 0x0017 /* Dialogic Corporation */ #define WAVE_FORMAT_MEDIAVISION_ADPCM 0x0018 /* Media Vision, Inc. */ #define WAVE_FORMAT_CU_CODEC 0x0019 /* Hewlett-Packard Company */ #define WAVE_FORMAT_YAMAHA_ADPCM 0x0020 /* Yamaha Corporation of America */ #define WAVE_FORMAT_SONARC 0x0021 /* Speech Compression */ #define WAVE_FORMAT_DSPGROUP_TRUESPEECH 0x0022 /* DSP Group, Inc */ #define WAVE_FORMAT_ECHOSC1 0x0023 /* Echo Speech Corporation */ #define WAVE_FORMAT_AUDIOFILE_AF36 0x0024 /* Virtual Music, Inc. */ #define WAVE_FORMAT_APTX 0x0025 /* Audio Processing Technology */ #define WAVE_FORMAT_AUDIOFILE_AF10 0x0026 /* Virtual Music, Inc. */ #define WAVE_FORMAT_PROSODY_1612 0x0027 /* Aculab plc */ #define WAVE_FORMAT_LRC 0x0028 /* Merging Technologies S.A. */ #define WAVE_FORMAT_DOLBY_AC2 0x0030 /* Dolby Laboratories */ #define WAVE_FORMAT_GSM610 0x0031 /* Microsoft Corporation */ #define WAVE_FORMAT_MSNAUDIO 0x0032 /* Microsoft Corporation */ #define WAVE_FORMAT_ANTEX_ADPCME 0x0033 /* Antex Electronics Corporation */ #define WAVE_FORMAT_CONTROL_RES_VQLPC 0x0034 /* Control Resources Limited */ #define WAVE_FORMAT_DIGIREAL 0x0035 /* DSP Solutions, Inc. */ #define WAVE_FORMAT_DIGIADPCM 0x0036 /* DSP Solutions, Inc. */ #define WAVE_FORMAT_CONTROL_RES_CR10 0x0037 /* Control Resources Limited */ #define WAVE_FORMAT_NMS_VBXADPCM 0x0038 /* Natural MicroSystems */ #define WAVE_FORMAT_CS_IMAADPCM 0x0039 /* Crystal Semiconductor IMA ADPCM */ #define WAVE_FORMAT_ECHOSC3 0x003A /* Echo Speech Corporation */ #define WAVE_FORMAT_ROCKWELL_ADPCM 0x003B /* Rockwell International */ #define WAVE_FORMAT_ROCKWELL_DIGITALK 0x003C /* Rockwell International */ #define WAVE_FORMAT_XEBEC 0x003D /* Xebec Multimedia Solutions Limited */ #define WAVE_FORMAT_G721_ADPCM 0x0040 /* Antex Electronics Corporation */ #define WAVE_FORMAT_G728_CELP 0x0041 /* Antex Electronics Corporation */ #define WAVE_FORMAT_MSG723 0x0042 /* Microsoft Corporation */ #define WAVE_FORMAT_MPEG 0x0050 /* Microsoft Corporation */ #define WAVE_FORMAT_RT24 0x0052 /* InSoft, Inc. */ #define WAVE_FORMAT_PAC 0x0053 /* InSoft, Inc. */ #define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */ #define WAVE_FORMAT_LUCENT_G723 0x0059 /* Lucent Technologies */ #define WAVE_FORMAT_CIRRUS 0x0060 /* Cirrus Logic */ #define WAVE_FORMAT_ESPCM 0x0061 /* ESS Technology */ #define WAVE_FORMAT_VOXWARE 0x0062 /* Voxware Inc */ #define WAVE_FORMAT_CANOPUS_ATRAC 0x0063 /* Canopus, co., Ltd. */ #define WAVE_FORMAT_G726_ADPCM 0x0064 /* APICOM */ #define WAVE_FORMAT_G722_ADPCM 0x0065 /* APICOM */ #define WAVE_FORMAT_DSAT_DISPLAY 0x0067 /* Microsoft Corporation */ #define WAVE_FORMAT_VOXWARE_BYTE_ALIGNED 0x0069 /* Voxware Inc */ #define WAVE_FORMAT_VOXWARE_AC8 0x0070 /* Voxware Inc */ #define WAVE_FORMAT_VOXWARE_AC10 0x0071 /* Voxware Inc */ #define WAVE_FORMAT_VOXWARE_AC16 0x0072 /* Voxware Inc */ #define WAVE_FORMAT_VOXWARE_AC20 0x0073 /* Voxware Inc */ #define WAVE_FORMAT_VOXWARE_RT24 0x0074 /* Voxware Inc */ #define WAVE_FORMAT_VOXWARE_RT29 0x0075 /* Voxware Inc */ #define WAVE_FORMAT_VOXWARE_RT29HW 0x0076 /* Voxware Inc */ #define WAVE_FORMAT_VOXWARE_VR12 0x0077 /* Voxware Inc */ #define WAVE_FORMAT_VOXWARE_VR18 0x0078 /* Voxware Inc */ #define WAVE_FORMAT_VOXWARE_TQ40 0x0079 /* Voxware Inc */ #define WAVE_FORMAT_SOFTSOUND 0x0080 /* Softsound, Ltd. */ #define WAVE_FORMAT_VOXWARE_TQ60 0x0081 /* Voxware Inc */ #define WAVE_FORMAT_MSRT24 0x0082 /* Microsoft Corporation */ #define WAVE_FORMAT_G729A 0x0083 /* AT&T Labs, Inc. */ #define WAVE_FORMAT_MVI_MVI2 0x0084 /* Motion Pixels */ #define WAVE_FORMAT_DF_G726 0x0085 /* DataFusion Systems (Pty) (Ltd) */ #define WAVE_FORMAT_DF_GSM610 0x0086 /* DataFusion Systems (Pty) (Ltd) */ #define WAVE_FORMAT_ISIAUDIO 0x0088 /* Iterated Systems, Inc. */ #define WAVE_FORMAT_ONLIVE 0x0089 /* OnLive! Technologies, Inc. */ #define WAVE_FORMAT_SBC24 0x0091 /* Siemens Business Communications Sys */ #define WAVE_FORMAT_DOLBY_AC3_SPDIF 0x0092 /* Sonic Foundry */ #define WAVE_FORMAT_MEDIASONIC_G723 0x0093 /* MediaSonic */ #define WAVE_FORMAT_PROSODY_8KBPS 0x0094 /* Aculab plc */ #define WAVE_FORMAT_ZYXEL_ADPCM 0x0097 /* ZyXEL Communications, Inc. */ #define WAVE_FORMAT_PHILIPS_LPCBB 0x0098 /* Philips Speech Processing */ #define WAVE_FORMAT_PACKED 0x0099 /* Studer Professional Audio AG */ #define WAVE_FORMAT_MALDEN_PHONYTALK 0x00A0 /* Malden Electronics Ltd. */ #define WAVE_FORMAT_RHETOREX_ADPCM 0x0100 /* Rhetorex Inc. */ #define WAVE_FORMAT_IRAT 0x0101 /* BeCubed Software Inc. */ #define WAVE_FORMAT_VIVO_G723 0x0111 /* Vivo Software */ #define WAVE_FORMAT_VIVO_SIREN 0x0112 /* Vivo Software */ #define WAVE_FORMAT_DIGITAL_G723 0x0123 /* Digital Equipment Corporation */ #define WAVE_FORMAT_SANYO_LD_ADPCM 0x0125 /* Sanyo Electric Co., Ltd. */ #define WAVE_FORMAT_SIPROLAB_ACEPLNET 0x0130 /* Sipro Lab Telecom Inc. */ #define WAVE_FORMAT_SIPROLAB_ACELP4800 0x0131 /* Sipro Lab Telecom Inc. */ #define WAVE_FORMAT_SIPROLAB_ACELP8V3 0x0132 /* Sipro Lab Telecom Inc. */ #define WAVE_FORMAT_SIPROLAB_G729 0x0133 /* Sipro Lab Telecom Inc. */ #define WAVE_FORMAT_SIPROLAB_G729A 0x0134 /* Sipro Lab Telecom Inc. */ #define WAVE_FORMAT_SIPROLAB_KELVIN 0x0135 /* Sipro Lab Telecom Inc. */ #define WAVE_FORMAT_G726ADPCM 0x0140 /* Dictaphone Corporation */ #define WAVE_FORMAT_QUALCOMM_PUREVOICE 0x0150 /* Qualcomm, Inc. */ #define WAVE_FORMAT_QUALCOMM_HALFRATE 0x0151 /* Qualcomm, Inc. */ #define WAVE_FORMAT_TUBGSM 0x0155 /* Ring Zero Systems, Inc. */ #define WAVE_FORMAT_MSAUDIO1 0x0160 /* Microsoft Corporation */ #define WAVE_FORMAT_CREATIVE_ADPCM 0x0200 /* Creative Labs, Inc */ #define WAVE_FORMAT_CREATIVE_FASTSPEECH8 0x0202 /* Creative Labs, Inc */ #define WAVE_FORMAT_CREATIVE_FASTSPEECH10 0x0203 /* Creative Labs, Inc */ #define WAVE_FORMAT_UHER_ADPCM 0x0210 /* UHER informatic GmbH */ #define WAVE_FORMAT_QUARTERDECK 0x0220 /* Quarterdeck Corporation */ #define WAVE_FORMAT_ILINK_VC 0x0230 /* I-link Worldwide */ #define WAVE_FORMAT_RAW_SPORT 0x0240 /* Aureal Semiconductor */ #define WAVE_FORMAT_IPI_HSX 0x0250 /* Interactive Products, Inc. */ #define WAVE_FORMAT_IPI_RPELP 0x0251 /* Interactive Products, Inc. */ #define WAVE_FORMAT_CS2 0x0260 /* Consistent Software */ #define WAVE_FORMAT_SONY_SCX 0x0270 /* Sony Corp. */ #define WAVE_FORMAT_FM_TOWNS_SND 0x0300 /* Fujitsu Corp. */ #define WAVE_FORMAT_BTV_DIGITAL 0x0400 /* Brooktree Corporation */ #define WAVE_FORMAT_QDESIGN_MUSIC 0x0450 /* QDesign Corporation */ #define WAVE_FORMAT_VME_VMPCM 0x0680 /* AT&T Labs, Inc. */ #define WAVE_FORMAT_TPC 0x0681 /* AT&T Labs, Inc. */ #define WAVE_FORMAT_OLIGSM 0x1000 /* Ing C. Olivetti & C., S.p.A. */ #define WAVE_FORMAT_OLIADPCM 0x1001 /* Ing C. Olivetti & C., S.p.A. */ #define WAVE_FORMAT_OLICELP 0x1002 /* Ing C. Olivetti & C., S.p.A. */ #define WAVE_FORMAT_OLISBC 0x1003 /* Ing C. Olivetti & C., S.p.A. */ #define WAVE_FORMAT_OLIOPR 0x1004 /* Ing C. Olivetti & C., S.p.A. */ #define WAVE_FORMAT_LH_CODEC 0x1100 /* Lernout & Hauspie */ #define WAVE_FORMAT_NORRIS 0x1400 /* Norris Communications, Inc. */ #define WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS 0x1500 /* AT&T Labs, Inc. */ #define WAVE_FORMAT_DVM 0x2000 /* FAST Multimedia AG */ #if !defined(WAVE_FORMAT_EXTENSIBLE) #define WAVE_FORMAT_EXTENSIBLE 0xFFFE /* Microsoft */ #endif // !defined(WAVE_FORMAT_EXTENSIBLE) // // the WAVE_FORMAT_DEVELOPMENT format tag can be used during the // development phase of a new wave format. Before shipping, you MUST // acquire an official format tag from Microsoft. // #define WAVE_FORMAT_DEVELOPMENT (0xFFFF) #endif /* __WINE_MMREG_H */ bml-0.6.1/dllwrapper/wine/winerror.h0000644042355400116100000030122311576362500014363 00000000000000#ifndef __WINE_WINERROR_H #define __WINE_WINERROR_H extern int WIN32_LastError; #define FACILITY_NULL 0 #define FACILITY_RPC 1 #define FACILITY_DISPATCH 2 #define FACILITY_STORAGE 3 #define FACILITY_ITF 4 #define FACILITY_WIN32 7 #define FACILITY_WINDOWS 8 #define FACILITY_SSPI 9 #define FACILITY_CONTROL 10 #define FACILITY_CERT 11 #define FACILITY_INTERNET 12 #define SEVERITY_ERROR 1 #define MAKE_HRESULT(sev,fac,code) \ ((HRESULT) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) ) #define MAKE_SCODE(sev,fac,code) \ ((SCODE) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) ) #define SUCCEEDED(stat) ((HRESULT)(stat)>=0) #define FAILED(stat) ((HRESULT)(stat)<0) #define HRESULT_CODE(hr) ((hr) & 0xFFFF) #define SCODE_CODE(sc) ((sc) & 0xFFFF) #define HRESULT_FACILITY(hr) (((hr) >> 16) & 0x1FFF) #define SCODE_FACILITY(sc) (((sc) >> 16) & 0x1FFF) /* ERROR_UNKNOWN is a placeholder for error conditions which haven't * been tested yet so we're not exactly sure what will be returned. * All instances of ERROR_UNKNOWN should be tested under Win95/NT * and replaced. */ #define ERROR_UNKNOWN 99999 #define SEVERITY_SUCCESS 0 #define SEVERITY_ERROR 1 #define NO_ERROR 0 #define ERROR_SUCCESS 0 #define ERROR_INVALID_FUNCTION 1 #define ERROR_FILE_NOT_FOUND 2 #define ERROR_PATH_NOT_FOUND 3 #define ERROR_TOO_MANY_OPEN_FILES 4 #define ERROR_ACCESS_DENIED 5 #define ERROR_INVALID_HANDLE 6 #define ERROR_ARENA_TRASHED 7 #define ERROR_NOT_ENOUGH_MEMORY 8 #define ERROR_INVALID_BLOCK 9 #define ERROR_BAD_ENVIRONMENT 10 #define ERROR_BAD_FORMAT 11 #define ERROR_INVALID_ACCESS 12 #define ERROR_INVALID_DATA 13 #define ERROR_OUTOFMEMORY 14 #define ERROR_INVALID_DRIVE 15 #define ERROR_CURRENT_DIRECTORY 16 #define ERROR_NOT_SAME_DEVICE 17 #define ERROR_NO_MORE_FILES 18 #define ERROR_WRITE_PROTECT 19 #define ERROR_BAD_UNIT 20 #define ERROR_NOT_READY 21 #define ERROR_BAD_COMMAND 22 #define ERROR_CRC 23 #define ERROR_BAD_LENGTH 24 #define ERROR_SEEK 25 #define ERROR_NOT_DOS_DISK 26 #define ERROR_SECTOR_NOT_FOUND 27 #define ERROR_OUT_OF_PAPER 28 #define ERROR_WRITE_FAULT 29 #define ERROR_READ_FAULT 30 #define ERROR_GEN_FAILURE 31 #define ERROR_SHARING_VIOLATION 32 #define ERROR_LOCK_VIOLATION 33 #define ERROR_WRONG_DISK 34 #define ERROR_SHARING_BUFFER_EXCEEDED 36 #define ERROR_HANDLE_EOF 38 #define ERROR_HANDLE_DISK_FULL 39 #define ERROR_NOT_SUPPORTED 50 #define ERROR_REM_NOT_LIST 51 #define ERROR_DUP_NAME 52 #define ERROR_BAD_NETPATH 53 #define ERROR_NETWORK_BUSY 54 #define ERROR_DEV_NOT_EXIST 55 #define ERROR_TOO_MANY_CMDS 56 #define ERROR_ADAP_HDW_ERR 57 #define ERROR_BAD_NET_RESP 58 #define ERROR_UNEXP_NET_ERR 59 #define ERROR_BAD_REM_ADAP 60 #define ERROR_PRINTQ_FULL 61 #define ERROR_NO_SPOOL_SPACE 62 #define ERROR_PRINT_CANCELLED 63 #define ERROR_NETNAME_DELETED 64 #define ERROR_NETWORK_ACCESS_DENIED 65 #define ERROR_BAD_DEV_TYPE 66 #define ERROR_BAD_NET_NAME 67 #define ERROR_TOO_MANY_NAMES 68 #define ERROR_TOO_MANY_SESS 69 #define ERROR_SHARING_PAUSED 70 #define ERROR_REQ_NOT_ACCEP 71 #define ERROR_REDIR_PAUSED 72 #define ERROR_FILE_EXISTS 80 #define ERROR_CANNOT_MAKE 82 #define ERROR_FAIL_I24 83 #define ERROR_OUT_OF_STRUCTURES 84 #define ERROR_ALREADY_ASSIGNED 85 #define ERROR_INVALID_PASSWORD 86 #define ERROR_INVALID_PARAMETER 87 #define ERROR_NET_WRITE_FAULT 88 #define ERROR_NO_PROC_SLOTS 89 #define ERROR_TOO_MANY_SEMAPHORES 100 #define ERROR_EXCL_SEM_ALREADY_OWNED 101 #define ERROR_SEM_IS_SET 102 #define ERROR_TOO_MANY_SEM_REQUESTS 103 #define ERROR_INVALID_AT_INTERRUPT_TIME 104 #define ERROR_SEM_OWNER_DIED 105 #define ERROR_SEM_USER_LIMIT 106 #define ERROR_DISK_CHANGE 107 #define ERROR_DRIVE_LOCKED 108 #define ERROR_BROKEN_PIPE 109 #define ERROR_OPEN_FAILED 110 #define ERROR_BUFFER_OVERFLOW 111 #define ERROR_DISK_FULL 112 #define ERROR_NO_MORE_SEARCH_HANDLES 113 #define ERROR_INVALID_TARGET_HANDLE 114 #define ERROR_INVALID_CATEGORY 117 #define ERROR_INVALID_VERIFY_SWITCH 118 #define ERROR_BAD_DRIVER_LEVEL 119 #define ERROR_CALL_NOT_IMPLEMENTED 120 #define ERROR_SEM_TIMEOUT 121 #define ERROR_INSUFFICIENT_BUFFER 122 #define ERROR_INVALID_NAME 123 #define ERROR_INVALID_LEVEL 124 #define ERROR_NO_VOLUME_LABEL 125 #define ERROR_MOD_NOT_FOUND 126 #define ERROR_PROC_NOT_FOUND 127 #define ERROR_WAIT_NO_CHILDREN 128 #define ERROR_CHILD_NOT_COMPLETE 129 #define ERROR_DIRECT_ACCESS_HANDLE 130 #define ERROR_NEGATIVE_SEEK 131 #define ERROR_SEEK_ON_DEVICE 132 #define ERROR_IS_JOIN_TARGET 133 #define ERROR_IS_JOINED 134 #define ERROR_IS_SUBSTED 135 #define ERROR_NOT_JOINED 136 #define ERROR_NOT_SUBSTED 137 #define ERROR_JOIN_TO_JOIN 138 #define ERROR_SUBST_TO_SUBST 139 #define ERROR_JOIN_TO_SUBST 140 #define ERROR_SUBST_TO_JOIN 141 #define ERROR_BUSY_DRIVE 142 #define ERROR_SAME_DRIVE 143 #define ERROR_DIR_NOT_ROOT 144 #define ERROR_DIR_NOT_EMPTY 145 #define ERROR_IS_SUBST_PATH 146 #define ERROR_IS_JOIN_PATH 147 #define ERROR_PATH_BUSY 148 #define ERROR_IS_SUBST_TARGET 149 #define ERROR_SYSTEM_TRACE 150 #define ERROR_INVALID_EVENT_COUNT 151 #define ERROR_TOO_MANY_MUXWAITERS 152 #define ERROR_INVALID_LIST_FORMAT 153 #define ERROR_LABEL_TOO_LONG 154 #define ERROR_TOO_MANY_TCBS 155 #define ERROR_SIGNAL_REFUSED 156 #define ERROR_DISCARDED 157 #define ERROR_NOT_LOCKED 158 #define ERROR_BAD_THREADID_ADDR 159 #define ERROR_BAD_ARGUMENTS 160 #define ERROR_BAD_PATHNAME 161 #define ERROR_SIGNAL_PENDING 162 #define ERROR_MAX_THRDS_REACHED 164 #define ERROR_LOCK_FAILED 167 #define ERROR_BUSY 170 #define ERROR_CANCEL_VIOLATION 173 #define ERROR_ATOMIC_LOCKS_NOT_SUPPORTED 174 #define ERROR_INVALID_SEGMENT_NUMBER 180 #define ERROR_INVALID_ORDINAL 182 #define ERROR_ALREADY_EXISTS 183 #define ERROR_INVALID_FLAG_NUMBER 186 #define ERROR_SEM_NOT_FOUND 187 #define ERROR_INVALID_STARTING_CODESEG 188 #define ERROR_INVALID_STACKSEG 189 #define ERROR_INVALID_MODULETYPE 190 #define ERROR_INVALID_EXE_SIGNATURE 191 #define ERROR_EXE_MARKED_INVALID 192 #define ERROR_BAD_EXE_FORMAT 193 #define ERROR_ITERATED_DATA_EXCEEDS_64k 194 #define ERROR_INVALID_MINALLOCSIZE 195 #define ERROR_DYNLINK_FROM_INVALID_RING 196 #define ERROR_IOPL_NOT_ENABLED 197 #define ERROR_INVALID_SEGDPL 198 #define ERROR_AUTODATASEG_EXCEEDS_64k 199 #define ERROR_RING2SEG_MUST_BE_MOVABLE 200 #define ERROR_RELOC_CHAIN_XEEDS_SEGLIM 201 #define ERROR_INFLOOP_IN_RELOC_CHAIN 202 #define ERROR_ENVVAR_NOT_FOUND 203 #define ERROR_NO_SIGNAL_SENT 205 #define ERROR_FILENAME_EXCED_RANGE 206 #define ERROR_RING2_STACK_IN_USE 207 #define ERROR_META_EXPANSION_TOO_LONG 208 #define ERROR_INVALID_SIGNAL_NUMBER 209 #define ERROR_THREAD_1_INACTIVE 210 #define ERROR_LOCKED 212 #define ERROR_TOO_MANY_MODULES 214 #define ERROR_NESTING_NOT_ALLOWED 215 #define ERROR_EXE_MACHINE_TYPE_MISMATCH 216 #define ERROR_BAD_PIPE 230 #define ERROR_PIPE_BUSY 231 #define ERROR_NO_DATA 232 #define ERROR_PIPE_NOT_CONNECTED 233 #define ERROR_MORE_DATA 234 #define ERROR_VC_DISCONNECTED 240 #define ERROR_INVALID_EA_NAME 254 #define ERROR_EA_LIST_INCONSISTENT 255 #define ERROR_NO_MORE_ITEMS 259 #define ERROR_CANNOT_COPY 266 #define ERROR_DIRECTORY 267 #define ERROR_EAS_DIDNT_FIT 275 #define ERROR_EA_FILE_CORRUPT 276 #define ERROR_EA_TABLE_FULL 277 #define ERROR_INVALID_EA_HANDLE 278 #define ERROR_EAS_NOT_SUPPORTED 282 #define ERROR_NOT_OWNER 288 #define ERROR_TOO_MANY_POSTS 298 #define ERROR_PARTIAL_COPY 299 #define ERROR_OPLOCK_NOT_GRANTED 300 #define ERROR_INVALID_OPLOCK_PROTOCOL 301 #define ERROR_MR_MID_NOT_FOUND 317 #define ERROR_INVALID_ADDRESS 487 #define ERROR_ARITHMETIC_OVERFLOW 534 #define ERROR_PIPE_CONNECTED 535 #define ERROR_PIPE_LISTENING 536 #define ERROR_EA_ACCESS_DENIED 994 #define ERROR_OPERATION_ABORTED 995 #define ERROR_IO_INCOMPLETE 996 #define ERROR_IO_PENDING 997 #define ERROR_NOACCESS 998 #define ERROR_SWAPERROR 999 #define ERROR_STACK_OVERFLOW 1001 #define ERROR_INVALID_MESSAGE 1002 #define ERROR_CAN_NOT_COMPLETE 1003 #define ERROR_INVALID_FLAGS 1004 #define ERROR_UNRECOGNIZED_VOLUME 1005 #define ERROR_FILE_INVALID 1006 #define ERROR_FULLSCREEN_MODE 1007 #define ERROR_NO_TOKEN 1008 #define ERROR_BADDB 1009 #define ERROR_BADKEY 1010 #define ERROR_CANTOPEN 1011 #define ERROR_CANTREAD 1012 #define ERROR_CANTWRITE 1013 #define ERROR_REGISTRY_RECOVERED 1014 #define ERROR_REGISTRY_CORRUPT 1015 #define ERROR_REGISTRY_IO_FAILED 1016 #define ERROR_NOT_REGISTRY_FILE 1017 #define ERROR_KEY_DELETED 1018 #define ERROR_NO_LOG_SPACE 1019 #define ERROR_KEY_HAS_CHILDREN 1020 #define ERROR_CHILD_MUST_BE_VOLATILE 1021 #define ERROR_NOTIFY_ENUM_DIR 1022 #define ERROR_DEPENDENT_SERVICES_RUNNING 1051 #define ERROR_INVALID_SERVICE_CONTROL 1052 #define ERROR_SERVICE_REQUEST_TIMEOUT 1053 #define ERROR_SERVICE_NO_THREAD 1054 #define ERROR_SERVICE_DATABASE_LOCKED 1055 #define ERROR_SERVICE_ALREADY_RUNNING 1056 #define ERROR_INVALID_SERVICE_ACCOUNT 1057 #define ERROR_SERVICE_DISABLED 1058 #define ERROR_CIRCULAR_DEPENDENCY 1059 #define ERROR_SERVICE_DOES_NOT_EXIST 1060 #define ERROR_SERVICE_CANNOT_ACCEPT_CTRL 1061 #define ERROR_SERVICE_NOT_ACTIVE 1062 #define ERROR_FAILED_SERVICE_CONTROLLER_CONNECT 1063 #define ERROR_EXCEPTION_IN_SERVICE 1064 #define ERROR_DATABASE_DOES_NOT_EXIST 1065 #define ERROR_SERVICE_SPECIFIC_ERROR 1066 #define ERROR_PROCESS_ABORTED 1067 #define ERROR_SERVICE_DEPENDENCY_FAIL 1068 #define ERROR_SERVICE_LOGON_FAILED 1069 #define ERROR_SERVICE_START_HANG 1070 #define ERROR_INVALID_SERVICE_LOCK 1071 #define ERROR_SERVICE_MARKED_FOR_DELETE 1072 #define ERROR_SERVICE_EXISTS 1073 #define ERROR_ALREADY_RUNNING_LKG 1074 #define ERROR_SERVICE_DEPENDENCY_DELETED 1075 #define ERROR_BOOT_ALREADY_ACCEPTED 1076 #define ERROR_SERVICE_NEVER_STARTED 1077 #define ERROR_DUPLICATE_SERVICE_NAME 1078 #define ERROR_DIFFERENT_SERVICE_ACCOUNT 1079 #define ERROR_CANNOT_DETECT_DRIVER_FAILURE 1080 #define ERROR_CANNOT_DETECT_PROCESS_ABORT 1081 #define ERROR_NO_RECOVERY_PROGRAM 1082 #define ERROR_SERVICE_NOT_IN_EXE 1083 #define ERROR_END_OF_MEDIA 1100 #define ERROR_FILEMARK_DETECTED 1101 #define ERROR_BEGINNING_OF_MEDIA 1102 #define ERROR_SETMARK_DETECTED 1103 #define ERROR_NO_DATA_DETECTED 1104 #define ERROR_PARTITION_FAILURE 1105 #define ERROR_INVALID_BLOCK_LENGTH 1106 #define ERROR_DEVICE_NOT_PARTITIONED 1107 #define ERROR_UNABLE_TO_LOCK_MEDIA 1108 #define ERROR_UNABLE_TO_UNLOAD_MEDIA 1109 #define ERROR_MEDIA_CHANGED 1110 #define ERROR_BUS_RESET 1111 #define ERROR_NO_MEDIA_IN_DRIVE 1112 #define ERROR_NO_UNICODE_TRANSLATION 1113 #define ERROR_DLL_INIT_FAILED 1114 #define ERROR_SHUTDOWN_IN_PROGRESS 1115 #define ERROR_NO_SHUTDOWN_IN_PROGRESS 1116 #define ERROR_IO_DEVICE 1117 #define ERROR_SERIAL_NO_DEVICE 1118 #define ERROR_IRQ_BUSY 1119 #define ERROR_MORE_WRITES 1120 #define ERROR_COUNTER_TIMEOUT 1121 #define ERROR_FLOPPY_ID_MARK_NOT_FOUND 1122 #define ERROR_FLOPPY_WRONG_CYLINDER 1123 #define ERROR_FLOPPY_UNKNOWN_ERROR 1124 #define ERROR_FLOPPY_BAD_REGISTERS 1125 #define ERROR_DISK_RECALIBRATE_FAILED 1126 #define ERROR_DISK_OPERATION_FAILED 1127 #define ERROR_DISK_RESET_FAILED 1128 #define ERROR_EOM_OVERFLOW 1129 #define ERROR_NOT_ENOUGH_SERVER_MEMORY 1130 #define ERROR_POSSIBLE_DEADLOCK 1131 #define ERROR_MAPPED_ALIGNMENT 1132 #define ERROR_SET_POWER_STATE_VETOED 1140 #define ERROR_SET_POWER_STATE_FAILED 1141 #define ERROR_TOO_MANY_LINKS 1142 #define ERROR_OLD_WIN_VERSION 1150 #define ERROR_APP_WRONG_OS 1151 #define ERROR_SINGLE_INSTANCE_APP 1152 #define ERROR_RMODE_APP 1153 #define ERROR_INVALID_DLL 1154 #define ERROR_NO_ASSOCIATION 1155 #define ERROR_DDE_FAIL 1156 #define ERROR_DLL_NOT_FOUND 1157 #define ERROR_NO_MORE_USER_HANDLES 1158 #define ERROR_MESSAGE_SYNC_ONLY 1159 #define ERROR_SOURCE_ELEMENT_EMPTY 1160 #define ERROR_DESTINATION_ELEMENT_FULL 1161 #define ERROR_ILLEGAL_ELEMENT_ADDRESS 1162 #define ERROR_MAGAZINE_NOT_PRESENT 1163 #define ERROR_DEVICE_REINITIALIZATION_NEEDED 1164 #define ERROR_DEVICE_REQUIRES_CLEANING 1165 #define ERROR_DEVICE_DOOR_OPEN 1166 #define ERROR_DEVICE_NOT_CONNECTED 1167 #define ERROR_NOT_FOUND 1168 #define ERROR_NO_MATCH 1169 #define ERROR_SET_NOT_FOUND 1170 #define ERROR_POINT_NOT_FOUND 1171 #define ERROR_NO_TRACKING_SERVICE 1172 #define ERROR_NO_VOLUME_ID 1173 #define ERROR_UNABLE_TO_REMOVE_REPLACED 1175 #define ERROR_UNABLE_TO_MOVE_REPLACEMENT 1176 #define ERROR_UNABLE_TO_MOVE_REPLACEMENT_2 1177 #define ERROR_JOURNAL_DELETE_IN_PROGRESS 1178 #define ERROR_JOURNAL_NOT_ACTIVE 1179 #define ERROR_POTENTIAL_FILE_FOUND 1180 #define ERROR_JOURNAL_ENTRY_DELETED 1181 #define ERROR_BAD_DEVICE 1200 #define ERROR_CONNECTION_UNAVAIL 1201 #define ERROR_DEVICE_ALREADY_REMEMBERED 1202 #define ERROR_NO_NET_OR_BAD_PATH 1203 #define ERROR_BAD_PROVIDER 1204 #define ERROR_CANNOT_OPEN_PROFILE 1205 #define ERROR_BAD_PROFILE 1206 #define ERROR_NOT_CONTAINER 1207 #define ERROR_EXTENDED_ERROR 1208 #define ERROR_INVALID_GROUPNAME 1209 #define ERROR_INVALID_COMPUTERNAME 1210 #define ERROR_INVALID_EVENTNAME 1211 #define ERROR_INVALID_DOMAINNAME 1212 #define ERROR_INVALID_SERVICENAME 1213 #define ERROR_INVALID_NETNAME 1214 #define ERROR_INVALID_SHARENAME 1215 #define ERROR_INVALID_PASSWORDNAME 1216 #define ERROR_INVALID_MESSAGENAME 1217 #define ERROR_INVALID_MESSAGEDEST 1218 #define ERROR_SESSION_CREDENTIAL_CONFLICT 1219 #define ERROR_REMOTE_SESSION_LIMIT_EXCEEDED 1220 #define ERROR_DUP_DOMAINNAME 1221 #define ERROR_NO_NETWORK 1222 #define ERROR_CANCELLED 1223 #define ERROR_USER_MAPPED_FILE 1224 #define ERROR_CONNECTION_REFUSED 1225 #define ERROR_GRACEFUL_DISCONNECT 1226 #define ERROR_ADDRESS_ALREADY_ASSOCIATED 1227 #define ERROR_ADDRESS_NOT_ASSOCIATED 1228 #define ERROR_CONNECTION_INVALID 1229 #define ERROR_CONNECTION_ACTIVE 1230 #define ERROR_NETWORK_UNREACHABLE 1231 #define ERROR_HOST_UNREACHABLE 1232 #define ERROR_PROTOCOL_UNREACHABLE 1233 #define ERROR_PORT_UNREACHABLE 1234 #define ERROR_REQUEST_ABORTED 1235 #define ERROR_CONNECTION_ABORTED 1236 #define ERROR_RETRY 1237 #define ERROR_CONNECTION_COUNT_LIMIT 1238 #define ERROR_LOGIN_TIME_RESTRICTION 1239 #define ERROR_LOGIN_WKSTA_RESTRICTION 1240 #define ERROR_INCORRECT_ADDRESS 1241 #define ERROR_ALREADY_REGISTERED 1242 #define ERROR_SERVICE_NOT_FOUND 1243 #define ERROR_NOT_AUTHENTICATED 1244 #define ERROR_NOT_LOGGED_ON 1245 #define ERROR_CONTINUE 1246 #define ERROR_ALREADY_INITIALIZED 1247 #define ERROR_NO_MORE_DEVICES 1248 #define ERROR_NO_SUCH_SITE 1249 #define ERROR_DOMAIN_CONTROLLER_EXISTS 1250 #define ERROR_ONLY_IF_CONNECTED 1251 #define ERROR_OVERRIDE_NOCHANGES 1252 #define ERROR_BAD_USER_PROFILE 1253 #define ERROR_NOT_SUPPORTED_ON_SBS 1254 #define ERROR_NOT_ALL_ASSIGNED 1300 #define ERROR_SOME_NOT_MAPPED 1301 #define ERROR_NO_QUOTAS_FOR_ACCOUNT 1302 #define ERROR_LOCAL_USER_SESSION_KEY 1303 #define ERROR_NULL_LM_PASSWORD 1304 #define ERROR_UNKNOWN_REVISION 1305 #define ERROR_REVISION_MISMATCH 1306 #define ERROR_INVALID_OWNER 1307 #define ERROR_INVALID_PRIMARY_GROUP 1308 #define ERROR_NO_IMPERSONATION_TOKEN 1309 #define ERROR_CANT_DISABLE_MANDATORY 1310 #define ERROR_NO_LOGON_SERVERS 1311 #define ERROR_NO_SUCH_LOGON_SESSION 1312 #define ERROR_NO_SUCH_PRIVILEGE 1313 #define ERROR_PRIVILEGE_NOT_HELD 1314 #define ERROR_INVALID_ACCOUNT_NAME 1315 #define ERROR_USER_EXISTS 1316 #define ERROR_NO_SUCH_USER 1317 #define ERROR_GROUP_EXISTS 1318 #define ERROR_NO_SUCH_GROUP 1319 #define ERROR_MEMBER_IN_GROUP 1320 #define ERROR_MEMBER_NOT_IN_GROUP 1321 #define ERROR_LAST_ADMIN 1322 #define ERROR_WRONG_PASSWORD 1323 #define ERROR_ILL_FORMED_PASSWORD 1324 #define ERROR_PASSWORD_RESTRICTION 1325 #define ERROR_LOGON_FAILURE 1326 #define ERROR_ACCOUNT_RESTRICTION 1327 #define ERROR_INVALID_LOGON_HOURS 1328 #define ERROR_INVALID_WORKSTATION 1329 #define ERROR_PASSWORD_EXPIRED 1330 #define ERROR_ACCOUNT_DISABLED 1331 #define ERROR_NONE_MAPPED 1332 #define ERROR_TOO_MANY_LUIDS_REQUESTED 1333 #define ERROR_LUIDS_EXHAUSTED 1334 #define ERROR_INVALID_SUB_AUTHORITY 1335 #define ERROR_INVALID_ACL 1336 #define ERROR_INVALID_SID 1337 #define ERROR_INVALID_SECURITY_DESCR 1338 #define ERROR_BAD_INHERITANCE_ACL 1340 #define ERROR_SERVER_DISABLED 1341 #define ERROR_SERVER_NOT_DISABLED 1342 #define ERROR_INVALID_ID_AUTHORITY 1343 #define ERROR_ALLOTTED_SPACE_EXCEEDED 1344 #define ERROR_INVALID_GROUP_ATTRIBUTES 1345 #define ERROR_BAD_IMPERSONATION_LEVEL 1346 #define ERROR_CANT_OPEN_ANONYMOUS 1347 #define ERROR_BAD_VALIDATION_CLASS 1348 #define ERROR_BAD_TOKEN_TYPE 1349 #define ERROR_NO_SECURITY_ON_OBJECT 1350 #define ERROR_CANT_ACCESS_DOMAIN_INFO 1351 #define ERROR_INVALID_SERVER_STATE 1352 #define ERROR_INVALID_DOMAIN_STATE 1353 #define ERROR_INVALID_DOMAIN_ROLE 1354 #define ERROR_NO_SUCH_DOMAIN 1355 #define ERROR_DOMAIN_EXISTS 1356 #define ERROR_DOMAIN_LIMIT_EXCEEDED 1357 #define ERROR_INTERNAL_DB_CORRUPTION 1358 #define ERROR_INTERNAL_ERROR 1359 #define ERROR_GENERIC_NOT_MAPPED 1360 #define ERROR_BAD_DESCRIPTOR_FORMAT 1361 #define ERROR_NOT_LOGON_PROCESS 1362 #define ERROR_LOGON_SESSION_EXISTS 1363 #define ERROR_NO_SUCH_PACKAGE 1364 #define ERROR_BAD_LOGON_SESSION_STATE 1365 #define ERROR_LOGON_SESSION_COLLISION 1366 #define ERROR_INVALID_LOGON_TYPE 1367 #define ERROR_CANNOT_IMPERSONATE 1368 #define ERROR_RXACT_INVALID_STATE 1369 #define ERROR_RXACT_COMMIT_FAILURE 1370 #define ERROR_SPECIAL_ACCOUNT 1371 #define ERROR_SPECIAL_GROUP 1372 #define ERROR_SPECIAL_USER 1373 #define ERROR_MEMBERS_PRIMARY_GROUP 1374 #define ERROR_TOKEN_ALREADY_IN_USE 1375 #define ERROR_NO_SUCH_ALIAS 1376 #define ERROR_MEMBER_NOT_IN_ALIAS 1377 #define ERROR_MEMBER_IN_ALIAS 1378 #define ERROR_ALIAS_EXISTS 1379 #define ERROR_LOGON_NOT_GRANTED 1380 #define ERROR_TOO_MANY_SECRETS 1381 #define ERROR_SECRET_TOO_LONG 1382 #define ERROR_INTERNAL_DB_ERROR 1383 #define ERROR_TOO_MANY_CONTEXT_IDS 1384 #define ERROR_LOGON_TYPE_NOT_GRANTED 1385 #define ERROR_NT_CROSS_ENCRYPTION_REQUIRED 1386 #define ERROR_NO_SUCH_MEMBER 1387 #define ERROR_INVALID_MEMBER 1388 #define ERROR_TOO_MANY_SIDS 1389 #define ERROR_LM_CROSS_ENCRYPTION_REQUIRED 1390 #define ERROR_NO_INHERITANCE 1391 #define ERROR_FILE_CORRUPT 1392 #define ERROR_DISK_CORRUPT 1393 #define ERROR_NO_USER_SESSION_KEY 1394 #define ERROR_LICENSE_QUOTA_EXCEEDED 1395 #define ERROR_WRONG_TARGET_NAME 1396 #define ERROR_MUTUAL_AUTH_FAILED 1397 #define ERROR_TIME_SKEW 1398 #define ERROR_INVALID_WINDOW_HANDLE 1400 #define ERROR_INVALID_MENU_HANDLE 1401 #define ERROR_INVALID_CURSOR_HANDLE 1402 #define ERROR_INVALID_ACCEL_HANDLE 1403 #define ERROR_INVALID_HOOK_HANDLE 1404 #define ERROR_INVALID_DWP_HANDLE 1405 #define ERROR_TLW_WITH_WSCHILD 1406 #define ERROR_CANNOT_FIND_WND_CLASS 1407 #define ERROR_WINDOW_OF_OTHER_THREAD 1408 #define ERROR_HOTKEY_ALREADY_REGISTERED 1409 #define ERROR_CLASS_ALREADY_EXISTS 1410 #define ERROR_CLASS_DOES_NOT_EXIST 1411 #define ERROR_CLASS_HAS_WINDOWS 1412 #define ERROR_INVALID_INDEX 1413 #define ERROR_INVALID_ICON_HANDLE 1414 #define ERROR_PRIVATE_DIALOG_INDEX 1415 #define ERROR_LISTBOX_ID_NOT_FOUND 1416 #define ERROR_NO_WILDCARD_CHARACTERS 1417 #define ERROR_CLIPBOARD_NOT_OPEN 1418 #define ERROR_HOTKEY_NOT_REGISTERED 1419 #define ERROR_WINDOW_NOT_DIALOG 1420 #define ERROR_CONTROL_ID_NOT_FOUND 1421 #define ERROR_INVALID_COMBOBOX_MESSAGE 1422 #define ERROR_WINDOW_NOT_COMBOBOX 1423 #define ERROR_INVALID_EDIT_HEIGHT 1424 #define ERROR_DC_NOT_FOUND 1425 #define ERROR_INVALID_HOOK_FILTER 1426 #define ERROR_INVALID_FILTER_PROC 1427 #define ERROR_HOOK_NEEDS_HMOD 1428 #define ERROR_GLOBAL_ONLY_HOOK 1429 #define ERROR_JOURNAL_HOOK_SET 1430 #define ERROR_HOOK_NOT_INSTALLED 1431 #define ERROR_INVALID_LB_MESSAGE 1432 #define ERROR_SETCOUNT_ON_BAD_LB 1433 #define ERROR_LB_WITHOUT_TABSTOPS 1434 #define ERROR_DESTROY_OBJECT_OF_OTHER_THREAD 1435 #define ERROR_CHILD_WINDOW_MENU 1436 #define ERROR_NO_SYSTEM_MENU 1437 #define ERROR_INVALID_MSGBOX_STYLE 1438 #define ERROR_INVALID_SPI_VALUE 1439 #define ERROR_SCREEN_ALREADY_LOCKED 1440 #define ERROR_HWNDS_HAVE_DIFF_PARENT 1441 #define ERROR_NOT_CHILD_WINDOW 1442 #define ERROR_INVALID_GW_COMMAND 1443 #define ERROR_INVALID_THREAD_ID 1444 #define ERROR_NON_MDICHILD_WINDOW 1445 #define ERROR_POPUP_ALREADY_ACTIVE 1446 #define ERROR_NO_SCROLLBARS 1447 #define ERROR_INVALID_SCROLLBAR_RANGE 1448 #define ERROR_INVALID_SHOWWIN_COMMAND 1449 #define ERROR_NO_SYSTEM_RESOURCES 1450 #define ERROR_NONPAGED_SYSTEM_RESOURCES 1451 #define ERROR_PAGED_SYSTEM_RESOURCES 1452 #define ERROR_WORKING_SET_QUOTA 1453 #define ERROR_PAGEFILE_QUOTA 1454 #define ERROR_COMMITMENT_LIMIT 1455 #define ERROR_MENU_ITEM_NOT_FOUND 1456 #define ERROR_INVALID_KEYBOARD_HANDLE 1457 #define ERROR_HOOK_TYPE_NOT_ALLOWED 1458 #define ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION 1459 #define ERROR_TIMEOUT 1460 #define ERROR_INVALID_MONITOR_HANDLE 1461 #define ERROR_EVENTLOG_FILE_CORRUPT 1500 #define ERROR_EVENTLOG_CANT_START 1501 #define ERROR_LOG_FILE_FULL 1502 #define ERROR_EVENTLOG_FILE_CHANGED 1503 #define ERROR_INSTALL_SERVICE_FAILURE 1601 #define ERROR_INSTALL_USEREXIT 1602 #define ERROR_INSTALL_FAILURE 1603 #define ERROR_INSTALL_SUSPEND 1604 #define ERROR_UNKNOWN_PRODUCT 1605 #define ERROR_UNKNOWN_FEATURE 1606 #define ERROR_UNKNOWN_COMPONENT 1607 #define ERROR_UNKNOWN_PROPERTY 1608 #define ERROR_INVALID_HANDLE_STATE 1609 #define ERROR_BAD_CONFIGURATION 1610 #define ERROR_INDEX_ABSENT 1611 #define ERROR_INSTALL_SOURCE_ABSENT 1612 #define ERROR_INSTALL_PACKAGE_VERSION 1613 #define ERROR_PRODUCT_UNINSTALLED 1614 #define ERROR_BAD_QUERY_SYNTAX 1615 #define ERROR_INVALID_FIELD 1616 #define ERROR_DEVICE_REMOVED 1617 #define ERROR_INSTALL_ALREADY_RUNNING 1618 #define ERROR_INSTALL_PACKAGE_OPEN_FAILED 1619 #define ERROR_INSTALL_PACKAGE_INVALID 1620 #define ERROR_INSTALL_UI_FAILURE 1621 #define ERROR_INSTALL_LOG_FAILURE 1622 #define ERROR_INSTALL_LANGUAGE_UNSUPPORTED 1623 #define ERROR_INSTALL_TRANSFORM_FAILURE 1624 #define ERROR_INSTALL_PACKAGE_REJECTED 1625 #define ERROR_FUNCTION_NOT_CALLED 1626 #define ERROR_FUNCTION_FAILED 1627 #define ERROR_INVALID_TABLE 1628 #define ERROR_DATATYPE_MISMATCH 1629 #define ERROR_UNSUPPORTED_TYPE 1630 #define ERROR_CREATE_FAILED 1631 #define ERROR_INSTALL_TEMP_UNWRITABLE 1632 #define ERROR_INSTALL_PLATFORM_UNSUPPORTED 1633 #define ERROR_INSTALL_NOTUSED 1634 #define ERROR_PATCH_PACKAGE_OPEN_FAILED 1635 #define ERROR_PATCH_PACKAGE_INVALID 1636 #define ERROR_PATCH_PACKAGE_UNSUPPORTED 1637 #define ERROR_PRODUCT_VERSION 1638 #define ERROR_INVALID_COMMAND_LINE 1639 #define ERROR_INSTALL_REMOTE_DISALLOWED 1640 #define ERROR_SUCCESS_REBOOT_INITIATED 1641 #define RPC_S_INVALID_STRING_BINDING 1700 #define RPC_S_WRONG_KIND_OF_BINDING 1701 #define RPC_S_INVALID_BINDING 1702 #define RPC_S_PROTSEQ_NOT_SUPPORTED 1703 #define RPC_S_INVALID_RPC_PROTSEQ 1704 #define RPC_S_INVALID_STRING_UUID 1705 #define RPC_S_INVALID_ENDPOINT_FORMAT 1706 #define RPC_S_INVALID_NET_ADDR 1707 #define RPC_S_NO_ENDPOINT_FOUND 1708 #define RPC_S_INVALID_TIMEOUT 1709 #define RPC_S_OBJECT_NOT_FOUND 1710 #define RPC_S_ALREADY_REGISTERED 1711 #define RPC_S_TYPE_ALREADY_REGISTERED 1712 #define RPC_S_ALREADY_LISTENING 1713 #define RPC_S_NO_PROTSEQS_REGISTERED 1714 #define RPC_S_NOT_LISTENING 1715 #define RPC_S_UNKNOWN_MGR_TYPE 1716 #define RPC_S_UNKNOWN_IF 1717 #define RPC_S_NO_BINDINGS 1718 #define RPC_S_NO_PROTSEQS 1719 #define RPC_S_CANT_CREATE_ENDPOINT 1720 #define RPC_S_OUT_OF_RESOURCES 1721 #define RPC_S_SERVER_UNAVAILABLE 1722 #define RPC_S_SERVER_TOO_BUSY 1723 #define RPC_S_INVALID_NETWORK_OPTIONS 1724 #define RPC_S_NO_CALL_ACTIVE 1725 #define RPC_S_CALL_FAILED 1726 #define RPC_S_CALL_FAILED_DNE 1727 #define RPC_S_PROTOCOL_ERROR 1728 #define RPC_S_UNSUPPORTED_TRANS_SYN 1730 #define RPC_S_UNSUPPORTED_TYPE 1732 #define RPC_S_INVALID_TAG 1733 #define RPC_S_INVALID_BOUND 1734 #define RPC_S_NO_ENTRY_NAME 1735 #define RPC_S_INVALID_NAME_SYNTAX 1736 #define RPC_S_UNSUPPORTED_NAME_SYNTAX 1737 #define RPC_S_UUID_NO_ADDRESS 1739 #define RPC_S_DUPLICATE_ENDPOINT 1740 #define RPC_S_UNKNOWN_AUTHN_TYPE 1741 #define RPC_S_MAX_CALLS_TOO_SMALL 1742 #define RPC_S_STRING_TOO_LONG 1743 #define RPC_S_PROTSEQ_NOT_FOUND 1744 #define RPC_S_PROCNUM_OUT_OF_RANGE 1745 #define RPC_S_BINDING_HAS_NO_AUTH 1746 #define RPC_S_UNKNOWN_AUTHN_SERVICE 1747 #define RPC_S_UNKNOWN_AUTHN_LEVEL 1748 #define RPC_S_INVALID_AUTH_IDENTITY 1749 #define RPC_S_UNKNOWN_AUTHZ_SERVICE 1750 #define EPT_S_INVALID_ENTRY 1751 #define EPT_S_CANT_PERFORM_OP 1752 #define EPT_S_NOT_REGISTERED 1753 #define RPC_S_NOTHING_TO_EXPORT 1754 #define RPC_S_INCOMPLETE_NAME 1755 #define RPC_S_INVALID_VERS_OPTION 1756 #define RPC_S_NO_MORE_MEMBERS 1757 #define RPC_S_NOT_ALL_OBJS_UNEXPORTED 1758 #define RPC_S_INTERFACE_NOT_FOUND 1759 #define RPC_S_ENTRY_ALREADY_EXISTS 1760 #define RPC_S_ENTRY_NOT_FOUND 1761 #define RPC_S_NAME_SERVICE_UNAVAILABLE 1762 #define RPC_S_INVALID_NAF_ID 1763 #define RPC_S_CANNOT_SUPPORT 1764 #define RPC_S_NO_CONTEXT_AVAILABLE 1765 #define RPC_S_INTERNAL_ERROR 1766 #define RPC_S_ZERO_DIVIDE 1767 #define RPC_S_ADDRESS_ERROR 1768 #define RPC_S_FP_DIV_ZERO 1769 #define RPC_S_FP_UNDERFLOW 1770 #define RPC_S_FP_OVERFLOW 1771 #define RPC_X_NO_MORE_ENTRIES 1772 #define RPC_X_SS_CHAR_TRANS_OPEN_FAIL 1773 #define RPC_X_SS_CHAR_TRANS_SHORT_FILE 1774 #define RPC_X_SS_IN_NULL_CONTEXT 1775 #define RPC_X_SS_CONTEXT_DAMAGED 1777 #define RPC_X_SS_HANDLES_MISMATCH 1778 #define RPC_X_SS_CANNOT_GET_CALL_HANDLE 1779 #define RPC_X_NULL_REF_POINTER 1780 #define RPC_X_ENUM_VALUE_OUT_OF_RANGE 1781 #define RPC_X_BYTE_COUNT_TOO_SMALL 1782 #define RPC_X_BAD_STUB_DATA 1783 #define ERROR_INVALID_USER_BUFFER 1784 #define ERROR_UNRECOGNIZED_MEDIA 1785 #define ERROR_NO_TRUST_LSA_SECRET 1786 #define ERROR_NO_TRUST_SAM_ACCOUNT 1787 #define ERROR_TRUSTED_DOMAIN_FAILURE 1788 #define ERROR_TRUSTED_RELATIONSHIP_FAILURE 1789 #define ERROR_TRUST_FAILURE 1790 #define RPC_S_CALL_IN_PROGRESS 1791 #define ERROR_NETLOGON_NOT_STARTED 1792 #define ERROR_ACCOUNT_EXPIRED 1793 #define ERROR_REDIRECTOR_HAS_OPEN_HANDLES 1794 #define ERROR_PRINTER_DRIVER_ALREADY_INSTALLED 1795 #define ERROR_UNKNOWN_PORT 1796 #define ERROR_UNKNOWN_PRINTER_DRIVER 1797 #define ERROR_UNKNOWN_PRINTPROCESSOR 1798 #define ERROR_INVALID_SEPARATOR_FILE 1799 #define ERROR_INVALID_PRIORITY 1800 #define ERROR_INVALID_PRINTER_NAME 1801 #define ERROR_PRINTER_ALREADY_EXISTS 1802 #define ERROR_INVALID_PRINTER_COMMAND 1803 #define ERROR_INVALID_DATATYPE 1804 #define ERROR_INVALID_ENVIRONMENT 1805 #define RPC_S_NO_MORE_BINDINGS 1806 #define ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT 1807 #define ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT 1808 #define ERROR_NOLOGON_SERVER_TRUST_ACCOUNT 1809 #define ERROR_DOMAIN_TRUST_INCONSISTENT 1810 #define ERROR_SERVER_HAS_OPEN_HANDLES 1811 #define ERROR_RESOURCE_DATA_NOT_FOUND 1812 #define ERROR_RESOURCE_TYPE_NOT_FOUND 1813 #define ERROR_RESOURCE_NAME_NOT_FOUND 1814 #define ERROR_RESOURCE_LANG_NOT_FOUND 1815 #define ERROR_NOT_ENOUGH_QUOTA 1816 #define RPC_S_NO_INTERFACES 1817 #define RPC_S_CALL_CANCELLED 1818 #define RPC_S_BINDING_INCOMPLETE 1819 #define RPC_S_COMM_FAILURE 1820 #define RPC_S_UNSUPPORTED_AUTHN_LEVEL 1821 #define RPC_S_NO_PRINC_NAME 1822 #define RPC_S_NOT_RPC_ERROR 1823 #define RPC_S_UUID_LOCAL_ONLY 1824 #define RPC_S_SEC_PKG_ERROR 1825 #define RPC_S_NOT_CANCELLED 1826 #define RPC_X_INVALID_ES_ACTION 1827 #define RPC_X_WRONG_ES_VERSION 1828 #define RPC_X_WRONG_STUB_VERSION 1829 #define RPC_X_INVALID_PIPE_OBJECT 1830 #define RPC_X_WRONG_PIPE_ORDER 1831 #define RPC_X_WRONG_PIPE_VERSION 1832 #define RPC_S_GROUP_MEMBER_NOT_FOUND 1898 #define EPT_S_CANT_CREATE 1899 #define RPC_S_INVALID_OBJECT 1900 #define ERROR_INVALID_TIME 1901 #define ERROR_INVALID_FORM_NAME 1902 #define ERROR_INVALID_FORM_SIZE 1903 #define ERROR_ALREADY_WAITING 1904 #define ERROR_PRINTER_DELETED 1905 #define ERROR_INVALID_PRINTER_STATE 1906 #define ERROR_PASSWORD_MUST_CHANGE 1907 #define ERROR_DOMAIN_CONTROLLER_NOT_FOUND 1908 #define ERROR_ACCOUNT_LOCKED_OUT 1909 #define OR_INVALID_OXID 1910 #define OR_INVALID_OID 1911 #define OR_INVALID_SET 1912 #define RPC_S_SEND_INCOMPLETE 1913 #define RPC_S_INVALID_ASYNC_HANDLE 1914 #define RPC_S_INVALID_ASYNC_CALL 1915 #define RPC_X_PIPE_CLOSED 1916 #define RPC_X_PIPE_DISCIPLINE_ERROR 1917 #define RPC_X_PIPE_EMPTY 1918 #define ERROR_NO_SITENAME 1919 #define ERROR_CANT_ACCESS_FILE 1920 #define ERROR_CANT_RESOLVE_FILENAME 1921 #define RPC_S_ENTRY_TYPE_MISMATCH 1922 #define RPC_S_NOT_ALL_OBJS_EXPORTED 1923 #define RPC_S_INTERFACE_NOT_EXPORTED 1924 #define RPC_S_PROFILE_NOT_ADDED 1925 #define RPC_S_PRF_ELT_NOT_ADDED 1926 #define RPC_S_PRF_ELT_NOT_REMOVED 1927 #define RPC_S_GRP_ELT_NOT_ADDED 1928 #define RPC_S_GRP_ELT_NOT_REMOVED 1929 #define ERROR_INVALID_PIXEL_FORMAT 2000 #define ERROR_BAD_DRIVER 2001 #define ERROR_INVALID_WINDOW_STYLE 2002 #define ERROR_METAFILE_NOT_SUPPORTED 2003 #define ERROR_TRANSFORM_NOT_SUPPORTED 2004 #define ERROR_CLIPPING_NOT_SUPPORTED 2005 #define ERROR_INVALID_CMM 2010 #define ERROR_INVALID_PROFILE 2011 #define ERROR_TAG_NOT_FOUND 2012 #define ERROR_TAG_NOT_PRESENT 2013 #define ERROR_DUPLICATE_TAG 2014 #define ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE 2015 #define ERROR_PROFILE_NOT_FOUND 2016 #define ERROR_INVALID_COLORSPACE 2017 #define ERROR_ICM_NOT_ENABLED 2018 #define ERROR_DELETING_ICM_XFORM 2019 #define ERROR_INVALID_TRANSFORM 2020 #define ERROR_COLORSPACE_MISMATCH 2021 #define ERROR_INVALID_COLORINDEX 2022 #define ERROR_CONNECTED_OTHER_PASSWORD 2108 #define ERROR_BAD_USERNAME 2202 #define ERROR_NOT_CONNECTED 2250 #define ERROR_OPEN_FILES 2401 #define ERROR_ACTIVE_CONNECTIONS 2402 #define ERROR_DEVICE_IN_USE 2404 #define ERROR_UNKNOWN_PRINT_MONITOR 3000 #define ERROR_PRINTER_DRIVER_IN_USE 3001 #define ERROR_SPOOL_FILE_NOT_FOUND 3002 #define ERROR_SPL_NO_STARTDOC 3003 #define ERROR_SPL_NO_ADDJOB 3004 #define ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED 3005 #define ERROR_PRINT_MONITOR_ALREADY_INSTALLED 3006 #define ERROR_INVALID_PRINT_MONITOR 3007 #define ERROR_PRINT_MONITOR_IN_USE 3008 #define ERROR_PRINTER_HAS_JOBS_QUEUED 3009 #define ERROR_SUCCESS_REBOOT_REQUIRED 3010 #define ERROR_SUCCESS_RESTART_REQUIRED 3011 #define ERROR_PRINTER_NOT_FOUND 3012 #define ERROR_WINS_INTERNAL 4000 #define ERROR_CAN_NOT_DEL_LOCAL_WINS 4001 #define ERROR_STATIC_INIT 4002 #define ERROR_INC_BACKUP 4003 #define ERROR_FULL_BACKUP 4004 #define ERROR_REC_NON_EXISTENT 4005 #define ERROR_RPL_NOT_ALLOWED 4006 #define ERROR_DHCP_ADDRESS_CONFLICT 4100 #define ERROR_WMI_GUID_NOT_FOUND 4200 #define ERROR_WMI_INSTANCE_NOT_FOUND 4201 #define ERROR_WMI_ITEMID_NOT_FOUND 4202 #define ERROR_WMI_TRY_AGAIN 4203 #define ERROR_WMI_DP_NOT_FOUND 4204 #define ERROR_WMI_UNRESOLVED_INSTANCE_REF 4205 #define ERROR_WMI_ALREADY_ENABLED 4206 #define ERROR_WMI_GUID_DISCONNECTED 4207 #define ERROR_WMI_SERVER_UNAVAILABLE 4208 #define ERROR_WMI_DP_FAILED 4209 #define ERROR_WMI_INVALID_MOF 4210 #define ERROR_WMI_INVALID_REGINFO 4211 #define ERROR_WMI_ALREADY_DISABLED 4212 #define ERROR_WMI_READ_ONLY 4213 #define ERROR_WMI_SET_FAILURE 4214 #define ERROR_INVALID_MEDIA 4300 #define ERROR_INVALID_LIBRARY 4301 #define ERROR_INVALID_MEDIA_POOL 4302 #define ERROR_DRIVE_MEDIA_MISMATCH 4303 #define ERROR_MEDIA_OFFLINE 4304 #define ERROR_LIBRARY_OFFLINE 4305 #define ERROR_EMPTY 4306 #define ERROR_NOT_EMPTY 4307 #define ERROR_MEDIA_UNAVAILABLE 4308 #define ERROR_RESOURCE_DISABLED 4309 #define ERROR_INVALID_CLEANER 4310 #define ERROR_UNABLE_TO_CLEAN 4311 #define ERROR_OBJECT_NOT_FOUND 4312 #define ERROR_DATABASE_FAILURE 4313 #define ERROR_DATABASE_FULL 4314 #define ERROR_MEDIA_INCOMPATIBLE 4315 #define ERROR_RESOURCE_NOT_PRESENT 4316 #define ERROR_INVALID_OPERATION 4317 #define ERROR_MEDIA_NOT_AVAILABLE 4318 #define ERROR_DEVICE_NOT_AVAILABLE 4319 #define ERROR_REQUEST_REFUSED 4320 #define ERROR_INVALID_DRIVE_OBJECT 4321 #define ERROR_LIBRARY_FULL 4322 #define ERROR_MEDIUM_NOT_ACCESSIBLE 4323 #define ERROR_UNABLE_TO_LOAD_MEDIUM 4324 #define ERROR_UNABLE_TO_INVENTORY_DRIVE 4325 #define ERROR_UNABLE_TO_INVENTORY_SLOT 4326 #define ERROR_UNABLE_TO_INVENTORY_TRANSPORT 4327 #define ERROR_TRANSPORT_FULL 4328 #define ERROR_CONTROLLING_IEPORT 4329 #define ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA 4330 #define ERROR_CLEANER_SLOT_SET 4331 #define ERROR_CLEANER_SLOT_NOT_SET 4332 #define ERROR_CLEANER_CARTRIDGE_SPENT 4333 #define ERROR_UNEXPECTED_OMID 4334 #define ERROR_CANT_DELETE_LAST_ITEM 4335 #define ERROR_MESSAGE_EXCEEDS_MAX_SIZE 4336 #define ERROR_VOLUME_CONTAINS_SYS_FILES 4337 #define ERROR_INDIGENOUS_TYPE 4338 #define ERROR_NO_SUPPORTING_DRIVES 4339 #define ERROR_FILE_OFFLINE 4350 #define ERROR_REMOTE_STORAGE_NOT_ACTIVE 4351 #define ERROR_REMOTE_STORAGE_MEDIA_ERROR 4352 #define ERROR_NOT_A_REPARSE_POINT 4390 #define ERROR_REPARSE_ATTRIBUTE_CONFLICT 4391 #define ERROR_INVALID_REPARSE_DATA 4392 #define ERROR_REPARSE_TAG_INVALID 4393 #define ERROR_REPARSE_TAG_MISMATCH 4394 #define ERROR_VOLUME_NOT_SIS_ENABLED 4500 #define ERROR_DEPENDENT_RESOURCE_EXISTS 5001 #define ERROR_DEPENDENCY_NOT_FOUND 5002 #define ERROR_DEPENDENCY_ALREADY_EXISTS 5003 #define ERROR_RESOURCE_NOT_ONLINE 5004 #define ERROR_HOST_NODE_NOT_AVAILABLE 5005 #define ERROR_RESOURCE_NOT_AVAILABLE 5006 #define ERROR_RESOURCE_NOT_FOUND 5007 #define ERROR_SHUTDOWN_CLUSTER 5008 #define ERROR_CANT_EVICT_ACTIVE_NODE 5009 #define ERROR_OBJECT_ALREADY_EXISTS 5010 #define ERROR_OBJECT_IN_LIST 5011 #define ERROR_GROUP_NOT_AVAILABLE 5012 #define ERROR_GROUP_NOT_FOUND 5013 #define ERROR_GROUP_NOT_ONLINE 5014 #define ERROR_HOST_NODE_NOT_RESOURCE_OWNER 5015 #define ERROR_HOST_NODE_NOT_GROUP_OWNER 5016 #define ERROR_RESMON_CREATE_FAILED 5017 #define ERROR_RESMON_ONLINE_FAILED 5018 #define ERROR_RESOURCE_ONLINE 5019 #define ERROR_QUORUM_RESOURCE 5020 #define ERROR_NOT_QUORUM_CAPABLE 5021 #define ERROR_CLUSTER_SHUTTING_DOWN 5022 #define ERROR_INVALID_STATE 5023 #define ERROR_RESOURCE_PROPERTIES_STORED 5024 #define ERROR_NOT_QUORUM_CLASS 5025 #define ERROR_CORE_RESOURCE 5026 #define ERROR_QUORUM_RESOURCE_ONLINE_FAILED 5027 #define ERROR_QUORUMLOG_OPEN_FAILED 5028 #define ERROR_CLUSTERLOG_CORRUPT 5029 #define ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE 5030 #define ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE 5031 #define ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND 5032 #define ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE 5033 #define ERROR_QUORUM_OWNER_ALIVE 5034 #define ERROR_NETWORK_NOT_AVAILABLE 5035 #define ERROR_NODE_NOT_AVAILABLE 5036 #define ERROR_ALL_NODES_NOT_AVAILABLE 5037 #define ERROR_RESOURCE_FAILED 5038 #define ERROR_CLUSTER_INVALID_NODE 5039 #define ERROR_CLUSTER_NODE_EXISTS 5040 #define ERROR_CLUSTER_JOIN_IN_PROGRESS 5041 #define ERROR_CLUSTER_NODE_NOT_FOUND 5042 #define ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND 5043 #define ERROR_CLUSTER_NETWORK_EXISTS 5044 #define ERROR_CLUSTER_NETWORK_NOT_FOUND 5045 #define ERROR_CLUSTER_NETINTERFACE_EXISTS 5046 #define ERROR_CLUSTER_NETINTERFACE_NOT_FOUND 5047 #define ERROR_CLUSTER_INVALID_REQUEST 5048 #define ERROR_CLUSTER_INVALID_NETWORK_PROVIDER 5049 #define ERROR_CLUSTER_NODE_DOWN 5050 #define ERROR_CLUSTER_NODE_UNREACHABLE 5051 #define ERROR_CLUSTER_NODE_NOT_MEMBER 5052 #define ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS 5053 #define ERROR_CLUSTER_INVALID_NETWORK 5054 #define ERROR_CLUSTER_NODE_UP 5056 #define ERROR_CLUSTER_IPADDR_IN_USE 5057 #define ERROR_CLUSTER_NODE_NOT_PAUSED 5058 #define ERROR_CLUSTER_NO_SECURITY_CONTEXT 5059 #define ERROR_CLUSTER_NETWORK_NOT_INTERNAL 5060 #define ERROR_CLUSTER_NODE_ALREADY_UP 5061 #define ERROR_CLUSTER_NODE_ALREADY_DOWN 5062 #define ERROR_CLUSTER_NETWORK_ALREADY_ONLINE 5063 #define ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE 5064 #define ERROR_CLUSTER_NODE_ALREADY_MEMBER 5065 #define ERROR_CLUSTER_LAST_INTERNAL_NETWORK 5066 #define ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS 5067 #define ERROR_INVALID_OPERATION_ON_QUORUM 5068 #define ERROR_DEPENDENCY_NOT_ALLOWED 5069 #define ERROR_CLUSTER_NODE_PAUSED 5070 #define ERROR_NODE_CANT_HOST_RESOURCE 5071 #define ERROR_CLUSTER_NODE_NOT_READY 5072 #define ERROR_CLUSTER_NODE_SHUTTING_DOWN 5073 #define ERROR_CLUSTER_JOIN_ABORTED 5074 #define ERROR_CLUSTER_INCOMPATIBLE_VERSIONS 5075 #define ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED 5076 #define ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED 5077 #define ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND 5078 #define ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED 5079 #define ERROR_CLUSTER_RESNAME_NOT_FOUND 5080 #define ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED 5081 #define ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST 5082 #define ERROR_CLUSTER_DATABASE_SEQMISMATCH 5083 #define ERROR_RESMON_INVALID_STATE 5084 #define ERROR_CLUSTER_GUM_NOT_LOCKER 5085 #define ERROR_QUORUM_DISK_NOT_FOUND 5086 #define ERROR_DATABASE_BACKUP_CORRUPT 5087 #define ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT 5088 #define ERROR_RESOURCE_PROPERTY_UNCHANGEABLE 5089 #define ERROR_ENCRYPTION_FAILED 6000 #define ERROR_DECRYPTION_FAILED 6001 #define ERROR_FILE_ENCRYPTED 6002 #define ERROR_NO_RECOVERY_POLICY 6003 #define ERROR_NO_EFS 6004 #define ERROR_WRONG_EFS 6005 #define ERROR_NO_USER_KEYS 6006 #define ERROR_FILE_NOT_ENCRYPTED 6007 #define ERROR_NOT_EXPORT_FORMAT 6008 #define ERROR_FILE_READ_ONLY 6009 #define ERROR_DIR_EFS_DISALLOWED 6010 #define ERROR_EFS_SERVER_NOT_TRUSTED 6011 #define ERROR_NO_BROWSER_SERVERS_FOUND 6118 #define SCHED_E_SERVICE_NOT_LOCALSYSTEM 6200 #define ERROR_CTX_WINSTATION_NAME_INVALID 7001 #define ERROR_CTX_INVALID_PD 7002 #define ERROR_CTX_PD_NOT_FOUND 7003 #define ERROR_CTX_WD_NOT_FOUND 7004 #define ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY 7005 #define ERROR_CTX_SERVICE_NAME_COLLISION 7006 #define ERROR_CTX_CLOSE_PENDING 7007 #define ERROR_CTX_NO_OUTBUF 7008 #define ERROR_CTX_MODEM_INF_NOT_FOUND 7009 #define ERROR_CTX_INVALID_MODEMNAME 7010 #define ERROR_CTX_MODEM_RESPONSE_ERROR 7011 #define ERROR_CTX_MODEM_RESPONSE_TIMEOUT 7012 #define ERROR_CTX_MODEM_RESPONSE_NO_CARRIER 7013 #define ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE 7014 #define ERROR_CTX_MODEM_RESPONSE_BUSY 7015 #define ERROR_CTX_MODEM_RESPONSE_VOICE 7016 #define ERROR_CTX_TD_ERROR 7017 #define ERROR_CTX_WINSTATION_NOT_FOUND 7022 #define ERROR_CTX_WINSTATION_ALREADY_EXISTS 7023 #define ERROR_CTX_WINSTATION_BUSY 7024 #define ERROR_CTX_BAD_VIDEO_MODE 7025 #define ERROR_CTX_GRAPHICS_INVALID 7035 #define ERROR_CTX_LOGON_DISABLED 7037 #define ERROR_CTX_NOT_CONSOLE 7038 #define ERROR_CTX_CLIENT_QUERY_TIMEOUT 7040 #define ERROR_CTX_CONSOLE_DISCONNECT 7041 #define ERROR_CTX_CONSOLE_CONNECT 7042 #define ERROR_CTX_SHADOW_DENIED 7044 #define ERROR_CTX_WINSTATION_ACCESS_DENIED 7045 #define ERROR_CTX_INVALID_WD 7049 #define ERROR_CTX_SHADOW_INVALID 7050 #define ERROR_CTX_SHADOW_DISABLED 7051 #define ERROR_CTX_CLIENT_LICENSE_IN_USE 7052 #define ERROR_CTX_CLIENT_LICENSE_NOT_SET 7053 #define ERROR_CTX_LICENSE_NOT_AVAILABLE 7054 #define ERROR_CTX_LICENSE_CLIENT_INVALID 7055 #define ERROR_CTX_LICENSE_EXPIRED 7056 #define FRS_ERR_INVALID_API_SEQUENCE 8001 #define FRS_ERR_STARTING_SERVICE 8002 #define FRS_ERR_STOPPING_SERVICE 8003 #define FRS_ERR_INTERNAL_API 8004 #define FRS_ERR_INTERNAL 8005 #define FRS_ERR_SERVICE_COMM 8006 #define FRS_ERR_INSUFFICIENT_PRIV 8007 #define FRS_ERR_AUTHENTICATION 8008 #define FRS_ERR_PARENT_INSUFFICIENT_PRIV 8009 #define FRS_ERR_PARENT_AUTHENTICATION 8010 #define FRS_ERR_CHILD_TO_PARENT_COMM 8011 #define FRS_ERR_PARENT_TO_CHILD_COMM 8012 #define FRS_ERR_SYSVOL_POPULATE 8013 #define FRS_ERR_SYSVOL_POPULATE_TIMEOUT 8014 #define FRS_ERR_SYSVOL_IS_BUSY 8015 #define FRS_ERR_SYSVOL_DEMOTE 8016 #define FRS_ERR_INVALID_SERVICE_PARAMETER 8017 #define ERROR_DS_NOT_INSTALLED 8200 #define ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY 8201 #define ERROR_DS_NO_ATTRIBUTE_OR_VALUE 8202 #define ERROR_DS_INVALID_ATTRIBUTE_SYNTAX 8203 #define ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED 8204 #define ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS 8205 #define ERROR_DS_BUSY 8206 #define ERROR_DS_UNAVAILABLE 8207 #define ERROR_DS_NO_RIDS_ALLOCATED 8208 #define ERROR_DS_NO_MORE_RIDS 8209 #define ERROR_DS_INCORRECT_ROLE_OWNER 8210 #define ERROR_DS_RIDMGR_INIT_ERROR 8211 #define ERROR_DS_OBJ_CLASS_VIOLATION 8212 #define ERROR_DS_CANT_ON_NON_LEAF 8213 #define ERROR_DS_CANT_ON_RDN 8214 #define ERROR_DS_CANT_MOD_OBJ_CLASS 8215 #define ERROR_DS_CROSS_DOM_MOVE_ERROR 8216 #define ERROR_DS_GC_NOT_AVAILABLE 8217 #define ERROR_SHARED_POLICY 8218 #define ERROR_POLICY_OBJECT_NOT_FOUND 8219 #define ERROR_POLICY_ONLY_IN_DS 8220 #define ERROR_PROMOTION_ACTIVE 8221 #define ERROR_NO_PROMOTION_ACTIVE 8222 #define ERROR_DS_OPERATIONS_ERROR 8224 #define ERROR_DS_PROTOCOL_ERROR 8225 #define ERROR_DS_TIMELIMIT_EXCEEDED 8226 #define ERROR_DS_SIZELIMIT_EXCEEDED 8227 #define ERROR_DS_ADMIN_LIMIT_EXCEEDED 8228 #define ERROR_DS_COMPARE_FALSE 8229 #define ERROR_DS_COMPARE_TRUE 8230 #define ERROR_DS_AUTH_METHOD_NOT_SUPPORTED 8231 #define ERROR_DS_STRONG_AUTH_REQUIRED 8232 #define ERROR_DS_INAPPROPRIATE_AUTH 8233 #define ERROR_DS_AUTH_UNKNOWN 8234 #define ERROR_DS_REFERRAL 8235 #define ERROR_DS_UNAVAILABLE_CRIT_EXTENSION 8236 #define ERROR_DS_CONFIDENTIALITY_REQUIRED 8237 #define ERROR_DS_INAPPROPRIATE_MATCHING 8238 #define ERROR_DS_CONSTRAINT_VIOLATION 8239 #define ERROR_DS_NO_SUCH_OBJECT 8240 #define ERROR_DS_ALIAS_PROBLEM 8241 #define ERROR_DS_INVALID_DN_SYNTAX 8242 #define ERROR_DS_IS_LEAF 8243 #define ERROR_DS_ALIAS_DEREF_PROBLEM 8244 #define ERROR_DS_UNWILLING_TO_PERFORM 8245 #define ERROR_DS_LOOP_DETECT 8246 #define ERROR_DS_NAMING_VIOLATION 8247 #define ERROR_DS_OBJECT_RESULTS_TOO_LARGE 8248 #define ERROR_DS_AFFECTS_MULTIPLE_DSAS 8249 #define ERROR_DS_SERVER_DOWN 8250 #define ERROR_DS_LOCAL_ERROR 8251 #define ERROR_DS_ENCODING_ERROR 8252 #define ERROR_DS_DECODING_ERROR 8253 #define ERROR_DS_FILTER_UNKNOWN 8254 #define ERROR_DS_PARAM_ERROR 8255 #define ERROR_DS_NOT_SUPPORTED 8256 #define ERROR_DS_NO_RESULTS_RETURNED 8257 #define ERROR_DS_CONTROL_NOT_FOUND 8258 #define ERROR_DS_CLIENT_LOOP 8259 #define ERROR_DS_REFERRAL_LIMIT_EXCEEDED 8260 #define ERROR_DS_ROOT_MUST_BE_NC 8301 #define ERROR_DS_ADD_REPLICA_INHIBITED 8302 #define ERROR_DS_ATT_NOT_DEF_IN_SCHEMA 8303 #define ERROR_DS_MAX_OBJ_SIZE_EXCEEDED 8304 #define ERROR_DS_OBJ_STRING_NAME_EXISTS 8305 #define ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA 8306 #define ERROR_DS_RDN_DOESNT_MATCH_SCHEMA 8307 #define ERROR_DS_NO_REQUESTED_ATTS_FOUND 8308 #define ERROR_DS_USER_BUFFER_TO_SMALL 8309 #define ERROR_DS_ATT_IS_NOT_ON_OBJ 8310 #define ERROR_DS_ILLEGAL_MOD_OPERATION 8311 #define ERROR_DS_OBJ_TOO_LARGE 8312 #define ERROR_DS_BAD_INSTANCE_TYPE 8313 #define ERROR_DS_MASTERDSA_REQUIRED 8314 #define ERROR_DS_OBJECT_CLASS_REQUIRED 8315 #define ERROR_DS_MISSING_REQUIRED_ATT 8316 #define ERROR_DS_ATT_NOT_DEF_FOR_CLASS 8317 #define ERROR_DS_ATT_ALREADY_EXISTS 8318 #define ERROR_DS_CANT_ADD_ATT_VALUES 8320 #define ERROR_DS_SINGLE_VALUE_CONSTRAINT 8321 #define ERROR_DS_RANGE_CONSTRAINT 8322 #define ERROR_DS_ATT_VAL_ALREADY_EXISTS 8323 #define ERROR_DS_CANT_REM_MISSING_ATT 8324 #define ERROR_DS_CANT_REM_MISSING_ATT_VAL 8325 #define ERROR_DS_ROOT_CANT_BE_SUBREF 8326 #define ERROR_DS_NO_CHAINING 8327 #define ERROR_DS_NO_CHAINED_EVAL 8328 #define ERROR_DS_NO_PARENT_OBJECT 8329 #define ERROR_DS_PARENT_IS_AN_ALIAS 8330 #define ERROR_DS_CANT_MIX_MASTER_AND_REPS 8331 #define ERROR_DS_CHILDREN_EXIST 8332 #define ERROR_DS_OBJ_NOT_FOUND 8333 #define ERROR_DS_ALIASED_OBJ_MISSING 8334 #define ERROR_DS_BAD_NAME_SYNTAX 8335 #define ERROR_DS_ALIAS_POINTS_TO_ALIAS 8336 #define ERROR_DS_CANT_DEREF_ALIAS 8337 #define ERROR_DS_OUT_OF_SCOPE 8338 #define ERROR_DS_CANT_DELETE_DSA_OBJ 8340 #define ERROR_DS_GENERIC_ERROR 8341 #define ERROR_DS_DSA_MUST_BE_INT_MASTER 8342 #define ERROR_DS_CLASS_NOT_DSA 8343 #define ERROR_DS_INSUFF_ACCESS_RIGHTS 8344 #define ERROR_DS_ILLEGAL_SUPERIOR 8345 #define ERROR_DS_ATTRIBUTE_OWNED_BY_SAM 8346 #define ERROR_DS_NAME_TOO_MANY_PARTS 8347 #define ERROR_DS_NAME_TOO_LONG 8348 #define ERROR_DS_NAME_VALUE_TOO_LONG 8349 #define ERROR_DS_NAME_UNPARSEABLE 8350 #define ERROR_DS_NAME_TYPE_UNKNOWN 8351 #define ERROR_DS_NOT_AN_OBJECT 8352 #define ERROR_DS_SEC_DESC_TOO_SHORT 8353 #define ERROR_DS_SEC_DESC_INVALID 8354 #define ERROR_DS_NO_DELETED_NAME 8355 #define ERROR_DS_SUBREF_MUST_HAVE_PARENT 8356 #define ERROR_DS_NCNAME_MUST_BE_NC 8357 #define ERROR_DS_CANT_ADD_SYSTEM_ONLY 8358 #define ERROR_DS_CLASS_MUST_BE_CONCRETE 8359 #define ERROR_DS_INVALID_DMD 8360 #define ERROR_DS_OBJ_GUID_EXISTS 8361 #define ERROR_DS_NOT_ON_BACKLINK 8362 #define ERROR_DS_NO_CROSSREF_FOR_NC 8363 #define ERROR_DS_SHUTTING_DOWN 8364 #define ERROR_DS_UNKNOWN_OPERATION 8365 #define ERROR_DS_INVALID_ROLE_OWNER 8366 #define ERROR_DS_COULDNT_CONTACT_FSMO 8367 #define ERROR_DS_CROSS_NC_DN_RENAME 8368 #define ERROR_DS_CANT_MOD_SYSTEM_ONLY 8369 #define ERROR_DS_REPLICATOR_ONLY 8370 #define ERROR_DS_OBJ_CLASS_NOT_DEFINED 8371 #define ERROR_DS_OBJ_CLASS_NOT_SUBCLASS 8372 #define ERROR_DS_NAME_REFERENCE_INVALID 8373 #define ERROR_DS_CROSS_REF_EXISTS 8374 #define ERROR_DS_CANT_DEL_MASTER_CROSSREF 8375 #define ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD 8376 #define ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX 8377 #define ERROR_DS_DUP_RDN 8378 #define ERROR_DS_DUP_OID 8379 #define ERROR_DS_DUP_MAPI_ID 8380 #define ERROR_DS_DUP_SCHEMA_ID_GUID 8381 #define ERROR_DS_DUP_LDAP_DISPLAY_NAME 8382 #define ERROR_DS_SEMANTIC_ATT_TEST 8383 #define ERROR_DS_SYNTAX_MISMATCH 8384 #define ERROR_DS_EXISTS_IN_MUST_HAVE 8385 #define ERROR_DS_EXISTS_IN_MAY_HAVE 8386 #define ERROR_DS_NONEXISTENT_MAY_HAVE 8387 #define ERROR_DS_NONEXISTENT_MUST_HAVE 8388 #define ERROR_DS_AUX_CLS_TEST_FAIL 8389 #define ERROR_DS_NONEXISTENT_POSS_SUP 8390 #define ERROR_DS_SUB_CLS_TEST_FAIL 8391 #define ERROR_DS_BAD_RDN_ATT_ID_SYNTAX 8392 #define ERROR_DS_EXISTS_IN_AUX_CLS 8393 #define ERROR_DS_EXISTS_IN_SUB_CLS 8394 #define ERROR_DS_EXISTS_IN_POSS_SUP 8395 #define ERROR_DS_RECALCSCHEMA_FAILED 8396 #define ERROR_DS_TREE_DELETE_NOT_FINISHED 8397 #define ERROR_DS_CANT_DELETE 8398 #define ERROR_DS_ATT_SCHEMA_REQ_ID 8399 #define ERROR_DS_BAD_ATT_SCHEMA_SYNTAX 8400 #define ERROR_DS_CANT_CACHE_ATT 8401 #define ERROR_DS_CANT_CACHE_CLASS 8402 #define ERROR_DS_CANT_REMOVE_ATT_CACHE 8403 #define ERROR_DS_CANT_REMOVE_CLASS_CACHE 8404 #define ERROR_DS_CANT_RETRIEVE_DN 8405 #define ERROR_DS_MISSING_SUPREF 8406 #define ERROR_DS_CANT_RETRIEVE_INSTANCE 8407 #define ERROR_DS_CODE_INCONSISTENCY 8408 #define ERROR_DS_DATABASE_ERROR 8409 #define ERROR_DS_GOVERNSID_MISSING 8410 #define ERROR_DS_MISSING_EXPECTED_ATT 8411 #define ERROR_DS_NCNAME_MISSING_CR_REF 8412 #define ERROR_DS_SECURITY_CHECKING_ERROR 8413 #define ERROR_DS_SCHEMA_NOT_LOADED 8414 #define ERROR_DS_SCHEMA_ALLOC_FAILED 8415 #define ERROR_DS_ATT_SCHEMA_REQ_SYNTAX 8416 #define ERROR_DS_GCVERIFY_ERROR 8417 #define ERROR_DS_DRA_SCHEMA_MISMATCH 8418 #define ERROR_DS_CANT_FIND_DSA_OBJ 8419 #define ERROR_DS_CANT_FIND_EXPECTED_NC 8420 #define ERROR_DS_CANT_FIND_NC_IN_CACHE 8421 #define ERROR_DS_CANT_RETRIEVE_CHILD 8422 #define ERROR_DS_SECURITY_ILLEGAL_MODIFY 8423 #define ERROR_DS_CANT_REPLACE_HIDDEN_REC 8424 #define ERROR_DS_BAD_HIERARCHY_FILE 8425 #define ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED 8426 #define ERROR_DS_CONFIG_PARAM_MISSING 8427 #define ERROR_DS_COUNTING_AB_INDICES_FAILED 8428 #define ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED 8429 #define ERROR_DS_INTERNAL_FAILURE 8430 #define ERROR_DS_UNKNOWN_ERROR 8431 #define ERROR_DS_ROOT_REQUIRES_CLASS_TOP 8432 #define ERROR_DS_REFUSING_FSMO_ROLES 8433 #define ERROR_DS_MISSING_FSMO_SETTINGS 8434 #define ERROR_DS_UNABLE_TO_SURRENDER_ROLES 8435 #define ERROR_DS_DRA_GENERIC 8436 #define ERROR_DS_DRA_INVALID_PARAMETER 8437 #define ERROR_DS_DRA_BUSY 8438 #define ERROR_DS_DRA_BAD_DN 8439 #define ERROR_DS_DRA_BAD_NC 8440 #define ERROR_DS_DRA_DN_EXISTS 8441 #define ERROR_DS_DRA_INTERNAL_ERROR 8442 #define ERROR_DS_DRA_INCONSISTENT_DIT 8443 #define ERROR_DS_DRA_CONNECTION_FAILED 8444 #define ERROR_DS_DRA_BAD_INSTANCE_TYPE 8445 #define ERROR_DS_DRA_OUT_OF_MEM 8446 #define ERROR_DS_DRA_MAIL_PROBLEM 8447 #define ERROR_DS_DRA_REF_ALREADY_EXISTS 8448 #define ERROR_DS_DRA_REF_NOT_FOUND 8449 #define ERROR_DS_DRA_OBJ_IS_REP_SOURCE 8450 #define ERROR_DS_DRA_DB_ERROR 8451 #define ERROR_DS_DRA_NO_REPLICA 8452 #define ERROR_DS_DRA_ACCESS_DENIED 8453 #define ERROR_DS_DRA_NOT_SUPPORTED 8454 #define ERROR_DS_DRA_RPC_CANCELLED 8455 #define ERROR_DS_DRA_SOURCE_DISABLED 8456 #define ERROR_DS_DRA_SINK_DISABLED 8457 #define ERROR_DS_DRA_NAME_COLLISION 8458 #define ERROR_DS_DRA_SOURCE_REINSTALLED 8459 #define ERROR_DS_DRA_MISSING_PARENT 8460 #define ERROR_DS_DRA_PREEMPTED 8461 #define ERROR_DS_DRA_ABANDON_SYNC 8462 #define ERROR_DS_DRA_SHUTDOWN 8463 #define ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET 8464 #define ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA 8465 #define ERROR_DS_DRA_EXTN_CONNECTION_FAILED 8466 #define ERROR_DS_INSTALL_SCHEMA_MISMATCH 8467 #define ERROR_DS_DUP_LINK_ID 8468 #define ERROR_DS_NAME_ERROR_RESOLVING 8469 #define ERROR_DS_NAME_ERROR_NOT_FOUND 8470 #define ERROR_DS_NAME_ERROR_NOT_UNIQUE 8471 #define ERROR_DS_NAME_ERROR_NO_MAPPING 8472 #define ERROR_DS_NAME_ERROR_DOMAIN_ONLY 8473 #define ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING 8474 #define ERROR_DS_CONSTRUCTED_ATT_MOD 8475 #define ERROR_DS_WRONG_OM_OBJ_CLASS 8476 #define ERROR_DS_DRA_REPL_PENDING 8477 #define ERROR_DS_DS_REQUIRED 8478 #define ERROR_DS_INVALID_LDAP_DISPLAY_NAME 8479 #define ERROR_DS_NON_BASE_SEARCH 8480 #define ERROR_DS_CANT_RETRIEVE_ATTS 8481 #define ERROR_DS_BACKLINK_WITHOUT_LINK 8482 #define ERROR_DS_EPOCH_MISMATCH 8483 #define ERROR_DS_SRC_NAME_MISMATCH 8484 #define ERROR_DS_SRC_AND_DST_NC_IDENTICAL 8485 #define ERROR_DS_DST_NC_MISMATCH 8486 #define ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC 8487 #define ERROR_DS_SRC_GUID_MISMATCH 8488 #define ERROR_DS_CANT_MOVE_DELETED_OBJECT 8489 #define ERROR_DS_PDC_OPERATION_IN_PROGRESS 8490 #define ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD 8491 #define ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION 8492 #define ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS 8493 #define ERROR_DS_NC_MUST_HAVE_NC_PARENT 8494 #define ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE 8495 #define ERROR_DS_DST_DOMAIN_NOT_NATIVE 8496 #define ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER 8497 #define ERROR_DS_CANT_MOVE_ACCOUNT_GROUP 8498 #define ERROR_DS_CANT_MOVE_RESOURCE_GROUP 8499 #define ERROR_DS_INVALID_SEARCH_FLAG 8500 #define ERROR_DS_NO_TREE_DELETE_ABOVE_NC 8501 #define ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE 8502 #define ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE 8503 #define ERROR_DS_SAM_INIT_FAILURE 8504 #define ERROR_DS_SENSITIVE_GROUP_VIOLATION 8505 #define ERROR_DS_CANT_MOD_PRIMARYGROUPID 8506 #define ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD 8507 #define ERROR_DS_NONSAFE_SCHEMA_CHANGE 8508 #define ERROR_DS_SCHEMA_UPDATE_DISALLOWED 8509 #define ERROR_DS_CANT_CREATE_UNDER_SCHEMA 8510 #define ERROR_DS_INSTALL_NO_SRC_SCH_VERSION 8511 #define ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE 8512 #define ERROR_DS_INVALID_GROUP_TYPE 8513 #define ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN 8514 #define ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN 8515 #define ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER 8516 #define ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER 8517 #define ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER 8518 #define ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER 8519 #define ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER 8520 #define ERROR_DS_HAVE_PRIMARY_MEMBERS 8521 #define ERROR_DS_STRING_SD_CONVERSION_FAILED 8522 #define ERROR_DS_NAMING_MASTER_GC 8523 #define ERROR_DS_LOOKUP_FAILURE 8524 #define ERROR_DS_COULDNT_UPDATE_SPNS 8525 #define ERROR_DS_CANT_RETRIEVE_SD 8526 #define ERROR_DS_KEY_NOT_UNIQUE 8527 #define ERROR_DS_WRONG_LINKED_ATT_SYNTAX 8528 #define ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD 8529 #define ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY 8530 #define ERROR_DS_CANT_START 8531 #define ERROR_DS_INIT_FAILURE 8532 #define ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION 8533 #define ERROR_DS_SOURCE_DOMAIN_IN_FOREST 8534 #define ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST 8535 #define ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED 8536 #define ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN 8537 #define ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER 8538 #define ERROR_DS_SRC_SID_EXISTS_IN_FOREST 8539 #define ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH 8540 #define ERROR_SAM_INIT_FAILURE 8541 #define ERROR_DS_DRA_SCHEMA_INFO_SHIP 8542 #define ERROR_DS_DRA_SCHEMA_CONFLICT 8543 #define ERROR_DS_DRA_EARLIER_SCHEMA_CONLICT 8544 #define ERROR_DS_DRA_OBJ_NC_MISMATCH 8545 #define ERROR_DS_NC_STILL_HAS_DSAS 8546 #define ERROR_DS_GC_REQUIRED 8547 #define ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY 8548 #define ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS 8549 #define ERROR_DS_CANT_ADD_TO_GC 8550 #define ERROR_DS_NO_CHECKPOINT_WITH_PDC 8551 #define ERROR_DS_SOURCE_AUDITING_NOT_ENABLED 8552 #define ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC 8553 #define ERROR_DS_INVALID_NAME_FOR_SPN 8554 #define ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS 8555 #define ERROR_DS_UNICODEPWD_NOT_IN_QUOTES 8556 #define ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED 8557 #define ERROR_DS_MUST_BE_RUN_ON_DST_DC 8558 #define ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER 8559 #define ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ 8560 #define DNS_ERROR_RCODE_FORMAT_ERROR 9001 #define DNS_ERROR_RCODE_SERVER_FAILURE 9002 #define DNS_ERROR_RCODE_NAME_ERROR 9003 #define DNS_ERROR_RCODE_NOT_IMPLEMENTED 9004 #define DNS_ERROR_RCODE_REFUSED 9005 #define DNS_ERROR_RCODE_YXDOMAIN 9006 #define DNS_ERROR_RCODE_YXRRSET 9007 #define DNS_ERROR_RCODE_NXRRSET 9008 #define DNS_ERROR_RCODE_NOTAUTH 9009 #define DNS_ERROR_RCODE_NOTZONE 9010 #define DNS_ERROR_RCODE_BADSIG 9016 #define DNS_ERROR_RCODE_BADKEY 9017 #define DNS_ERROR_RCODE_BADTIME 9018 #define DNS_INFO_NO_RECORDS 9501 #define DNS_ERROR_BAD_PACKET 9502 #define DNS_ERROR_NO_PACKET 9503 #define DNS_ERROR_RCODE 9504 #define DNS_ERROR_UNSECURE_PACKET 9505 #define DNS_ERROR_INVALID_TYPE 9551 #define DNS_ERROR_INVALID_IP_ADDRESS 9552 #define DNS_ERROR_INVALID_PROPERTY 9553 #define DNS_ERROR_TRY_AGAIN_LATER 9554 #define DNS_ERROR_NOT_UNIQUE 9555 #define DNS_ERROR_NON_RFC_NAME 9556 #define DNS_STATUS_FQDN 9557 #define DNS_STATUS_DOTTED_NAME 9558 #define DNS_STATUS_SINGLE_PART_NAME 9559 #define DNS_ERROR_INVALID_NAME_CHAR 9560 #define DNS_ERROR_NUMERIC_NAME 9561 #define DNS_ERROR_ZONE_DOES_NOT_EXIST 9601 #define DNS_ERROR_NO_ZONE_INFO 9602 #define DNS_ERROR_INVALID_ZONE_OPERATION 9603 #define DNS_ERROR_ZONE_CONFIGURATION_ERROR 9604 #define DNS_ERROR_ZONE_HAS_NO_SOA_RECORD 9605 #define DNS_ERROR_ZONE_HAS_NO_NS_RECORDS 9606 #define DNS_ERROR_ZONE_LOCKED 9607 #define DNS_ERROR_ZONE_CREATION_FAILED 9608 #define DNS_ERROR_ZONE_ALREADY_EXISTS 9609 #define DNS_ERROR_AUTOZONE_ALREADY_EXISTS 9610 #define DNS_ERROR_INVALID_ZONE_TYPE 9611 #define DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP 9612 #define DNS_ERROR_ZONE_NOT_SECONDARY 9613 #define DNS_ERROR_NEED_SECONDARY_ADDRESSES 9614 #define DNS_ERROR_WINS_INIT_FAILED 9615 #define DNS_ERROR_NEED_WINS_SERVERS 9616 #define DNS_ERROR_NBSTAT_INIT_FAILED 9617 #define DNS_ERROR_SOA_DELETE_INVALID 9618 #define DNS_ERROR_PRIMARY_REQUIRES_DATAFILE 9651 #define DNS_ERROR_INVALID_DATAFILE_NAME 9652 #define DNS_ERROR_DATAFILE_OPEN_FAILURE 9653 #define DNS_ERROR_FILE_WRITEBACK_FAILED 9654 #define DNS_ERROR_DATAFILE_PARSING 9655 #define DNS_ERROR_RECORD_DOES_NOT_EXIST 9701 #define DNS_ERROR_RECORD_FORMAT 9702 #define DNS_ERROR_NODE_CREATION_FAILED 9703 #define DNS_ERROR_UNKNOWN_RECORD_TYPE 9704 #define DNS_ERROR_RECORD_TIMED_OUT 9705 #define DNS_ERROR_NAME_NOT_IN_ZONE 9706 #define DNS_ERROR_CNAME_LOOP 9707 #define DNS_ERROR_NODE_IS_CNAME 9708 #define DNS_ERROR_CNAME_COLLISION 9709 #define DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT 9710 #define DNS_ERROR_RECORD_ALREADY_EXISTS 9711 #define DNS_ERROR_SECONDARY_DATA 9712 #define DNS_ERROR_NO_CREATE_CACHE_DATA 9713 #define DNS_ERROR_NAME_DOES_NOT_EXIST 9714 #define DNS_WARNING_PTR_CREATE_FAILED 9715 #define DNS_WARNING_DOMAIN_UNDELETED 9716 #define DNS_ERROR_DS_UNAVAILABLE 9717 #define DNS_ERROR_DS_ZONE_ALREADY_EXISTS 9718 #define DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE 9719 #define DNS_INFO_AXFR_COMPLETE 9751 #define DNS_ERROR_AXFR 9752 #define DNS_INFO_ADDED_LOCAL_WINS 9753 #define DNS_STATUS_CONTINUE_NEEDED 9801 #define DNS_ERROR_NO_TCPIP 9851 #define DNS_ERROR_NO_DNS_SERVERS 9852 /* HRESULT values for OLE, SHELL and other Interface stuff */ /* the codes 4000-40ff are reserved for OLE */ #define NOERROR 0L #define S_OK ((HRESULT)0L) #define S_FALSE ((HRESULT)1L) #define DISP_E_UNKNOWNINTERFACE 0x80020001L #define DISP_E_MEMBERNOTFOUND 0x80020003L #define DISP_E_PARAMNOTFOUND 0x80020004L #define DISP_E_TYPEMISMATCH 0x80020005L #define DISP_E_UNKNOWNNAME 0x80020006L #define DISP_E_NONAMEDARGS 0x80020007L #define DISP_E_BADVARTYPE 0x80020008L #define DISP_E_EXCEPTION 0x80020009L #define DISP_E_OVERFLOW 0x8002000AL #define DISP_E_BADINDEX 0x8002000BL #define DISP_E_UNKNOWNLCID 0x8002000CL #define DISP_E_ARRAYISLOCKED 0x8002000DL #define DISP_E_BADPARAMCOUNT 0x8002000EL #define DISP_E_PARAMNOTOPTIONAL 0x8002000FL #define TYPE_E_ELEMENTNOTFOUND 0x8002802BL #define TYPE_E_CANTLOADLIBRARY 0x80029C4AL /* OLE Clipboard */ #define CLIPBRD_E_FIRST 0x800401D0L #define CLIPBRD_E_LAST 0x800401DFL #define CLIPBRD_S_FIRST 0x000401D0L #define CLIPBRD_S_LAST 0x000401DFL #define CLIPBRD_E_CANT_OPEN 0x800401D0L #define CLIPBRD_E_CANT_EMPTY 0x800401D1L #define CLIPBRD_E_CANT_SET 0x800401D2L #define CLIPBRD_E_BAD_DATA 0x800401D3L #define CLIPBRD_E_CANT_CLOSE 0x800401D4L /* Drag and Drop */ #define DRAGDROP_S_DROP 0x00040100L #define DRAGDROP_S_CANCEL 0x00040101L #define DRAGDROP_E_NOTREGISTERED 0x80040100L #define DRAGDROP_E_ALREADYREGISTERED 0x80040101L #define DRAGDROP_S_USEDEFAULTCURSORS 0x00040102L #define E_UNEXPECTED 0x8000FFFF #define E_NOTIMPL 0x80004001 #define E_NOINTERFACE 0x80004002 #define E_POINTER 0x80004003 #define E_ABORT 0x80004004 #define E_FAIL 0x80004005 #define E_UNSPEC E_FAIL /* must to be defined (used by FileMoniker, IOleLink and DoDragDrop as a return value) */ /*#define CO_E_INIT_TLS 0x80004006 #define CO_E_INIT_SHARED_ALLOCATOR 0x80004007 #define CO_E_INIT_MEMORY_ALLOCATOR 0x80004008 #define CO_E_INIT_CLASS_CACHE 0x80004009 #define CO_E_INIT_RPC_CHANNEL 0x8000400A #define CO_E_INIT_TLS_SET_CHANNEL_CONTROL 0x8000400B #define CO_E_INIT_TLS_CHANNEL_CONTROL 0x8000400C #define CO_E_INIT_UNACCEPTED_USER_ALLOCATOR 0x8000400D #define CO_E_INIT_SCM_MUTEX_EXISTS 0x8000400E #define CO_E_INIT_SCM_FILE_MAPPING_EXISTS 0x8000400F #define CO_E_INIT_SCM_MAP_VIEW_OF_FILE 0x80004010 #define CO_E_INIT_SCM_EXEC_FAILURE 0x80004011 #define CO_E_INIT_ONLY_SINGLE_THREADED 0x80004012 */ #define CO_S_NOTALLINTERFACES 0x00080012 #define CO_E_NOTINITIALIZED 0x800401F0 #define CO_E_ERRORINDLL 0x800401F9 #define CO_E_OBJISREG 0x800401FB #define OLE_E_FIRST 0x80040000L #define OLE_E_LAST 0x800400FFL #define OLE_S_FIRST 0x00040000L #define OLE_S_LAST 0x000400FFL #define OLE_E_ENUM_NOMORE 0x80040002 #define OLE_E_ADVISENOTSUPPORTED 0x80040003 #define OLE_E_NOCONNECTION 0x80040004 #define OLE_E_NOTRUNNING 0x80040005 #define OLE_E_NOCACHE 0x80040006 #define OLE_E_BLANK 0x80040007 #define OLE_E_NOT_INPLACEACTIVE 0x80040010 #define OLE_E_STATIC 0x8004000B #define OLE_E_PROMPTSAVECANCELLED 0x8004000C #define OLE_S_USEREG 0x00040000 #define OLE_S_STATIC 0x00040001 #define DV_E_FORMATETC 0x80040064 #define DV_E_DVASPECT 0x8004006B #define DV_E_LINDEX 0x80040068 #define DV_E_TYMED 0x80040069 #define CLASS_E_NOAGGREGATION 0x80040110 #define CLASS_E_CLASSNOTAVAILABLE 0x80040111 #define DATA_S_SAMEFORMATETC 0x80040130 #define E_ACCESSDENIED 0x80070005 #define E_HANDLE 0x80070006 #define E_OUTOFMEMORY 0x8007000E #define E_INVALIDARG 0x80070057 /*#define OLE_E_FIRST 0x80040000L */ /*#define OLE_E_LAST 0x800400FFL */ /*#define OLE_S_FIRST 0x00040000L */ /*#define OLE_S_LAST 0x000400FFL */ #define MK_S_REDUCED_TO_SELF 0x000401E2 #define MK_S_ME 0x000401E4 #define MK_S_HIM 0x000401E5 #define MK_S_US 0x000401E6 #define MK_S_MONIKERALREADYREGISTERED 0x000401E7 #define MK_E_EXCEEDEDDEADLINE 0x800401E1 #define MK_E_NEEDGENERIC 0x800401E2 #define MK_E_UNAVAILABLE 0x800401E3 #define MK_E_SYNTAX 0x800401E4 #define MK_E_NOOBJECT 0x800401E5 #define MK_E_INVALIDEXTENSION 0x800401E6 #define MK_E_INTERMEDIATEINTERFACENOTSUPPORTED 0x800401E7 #define MK_E_NOTBINDABLE 0x800401E8 #define MK_E_NOTBOUND 0x800401E9 #define MK_E_CANTOPENFILE 0x800401EA #define MK_E_MIUSTBOTHERUSER 0x800401EB #define MK_E_NOINVERSE 0x800401EC #define MK_E_NOSTORAGE 0x800401ED #define MK_E_NOPREFIX 0x800401EE #define STG_E_INVALIDFUNCTION 0x80030001 #define STG_E_FILENOTFOUND 0x80030002 #define STG_E_PATHNOTFOUND 0x80030003 #define STG_E_TOOMANYOPENFILES 0x80030004 #define STG_E_ACCESSDENIED 0x80030005 #define STG_E_INVALIDHANDLE 0x80030006 #define STG_E_INSUFFICIENTMEMORY 0x80030008 #define STG_E_INVALIDPOINTER 0x80030009 #define STG_E_NOMOREFILES 0x80030012 #define STG_E_DISKISWRITEPROTECTED 0x80030013 #define STG_E_SEEKERROR 0x80030019 #define STG_E_WRITEFAULT 0x8003001D #define STG_E_READFAULT 0x8003001E #define STG_E_SHAREVIOLATION 0x80030020 #define STG_E_LOCKVIOLATION 0x80030021 #define STG_E_FILEALREADYEXISTS 0x80030050 #define STG_E_INVALIDPARAMETER 0x80030057 #define STG_E_MEDIUMFULL 0x80030070 #define STG_E_ABNORMALAPIEXIT 0x800300FA #define STG_E_INVALIDHEADER 0x800300FB #define STG_E_INVALIDNAME 0x800300FC #define STG_E_UNKNOWN 0x800300FD #define STG_E_UNIMPLEMENTEDFUNCTION 0x800300FE #define STG_E_INVALIDFLAG 0x800300FF #define STG_E_INUSE 0x80030100 #define STG_E_NOTCURRENT 0x80030101 #define STG_E_REVERTED 0x80030102 #define STG_E_CANTSAVE 0x80030103 #define STG_E_OLDFORMAT 0x80030104 #define STG_E_OLDDLL 0x80030105 #define STG_E_SHAREREQUIRED 0x80030106 #define STG_E_NOTFILEBASEDSTORAGE 0x80030107 #define STG_E_EXTANTMARSHALLINGS 0x80030108 #define CONVERT10_E_OLESTREAM_GET 0x800401C0 #define CONVERT10_E_OLESTREAM_PUT 0x800401C1 #define CONVERT10_E_OLESTREAM_FMT 0x800401C2 #define CONVERT10_E_OLESTREAM_BITMAP_TO_DIB 0x800401C3 #define CONVERT10_E_STG_FMT 0x800401C4 #define CONVERT10_E_STG_NO_STD_STREAM 0x800401C5 #define CONVERT10_E_STG_DIB_TO_BITMAP 0x800401C6 /* alten versionen #define E_NOTIMPL 0x80000001 #define E_OUTOFMEMORY 0x80000002 #define E_INVALIDARG 0x80000003 #define E_NOINTERFACE 0x80000004 #define E_POINTER 0x80000005 #define E_HANDLE 0x80000006 #define E_ABORT 0x80000007 #define E_FAIL 0x80000008 #define E_ACCESSDENIED 0x80000009 */ /* Obtained from lcc-win32 include files */ #define GDI_ERROR 0xffffffff /* registry errors */ #define REGDB_E_READREGDB 0x80040150 #define REGDB_E_CLASSNOTREG 0x80040154 #define INPLACE_E_NOTUNDOABLE 0x800401A0 #define INPLACE_E_NOTOOLSPACE 0x800401A1 #define DATA_E_FORMATETC DV_E_FORMATETC #define CLASSFACTORY_E_FIRST 0x80040110L #define CLASSFACTORY_E_LAST 0x8004011FL #define CLASSFACTORY_S_FIRST 0x80040110L #define CLASSFACTORY_S_LAST 0x8004011FL #define CLASS_E_NOTLICENSED (CLASSFACTORY_E_FIRST+2) #define CLASS_E_NOAGGREGATION 0x80040110 #define CLASS_E_CLASSNOTAVAILABLE 0x80040111 #define OLEOBJ_E_NOVERBS 0x00040180L #define OLEOBJ_E_INVALIDVERB 0x00040181L #define OLEOBJ_S_INVALIDVERB 0x00040180L #endif /* __WINE_WINERROR_H */ bml-0.6.1/dllwrapper/wine/win32.h0000644042355400116100000000134611576362500013461 00000000000000#ifndef loader_win32_h #define loader_win32_h #include #include "windef.h" #include "winbase.h" #include "com.h" extern char* win32_def_path; extern void my_garbagecollection(void); typedef struct { UINT uDriverSignature; HINSTANCE hDriverModule; DRIVERPROC DriverProc; DWORD dwDriverID; } DRVR; typedef DRVR *PDRVR; typedef DRVR *NPDRVR; typedef DRVR *LPDRVR; typedef struct tls_s tls_t; extern void* LookupExternal(const char* library, int ordinal); extern void* LookupExternalByName(const char* library, const char* name); extern int expRegisterClassA(const void/*WNDCLASSA*/ *wc); extern int expUnregisterClassA(const char *className, HINSTANCE hInstance); #endif bml-0.6.1/dllwrapper/wine/pshpack8.h0000644042355400116100000000051411576362500014234 00000000000000#ifndef __WINE_PSHPACK_H #define __WINE_PSHPACK_H 8 #if 0 //#pragma pack(8) #elif !defined(RC_INVOKED) #error "8 as alignment is not supported" #endif /* 0 ; !defined(RC_INVOKED) */ #else /* !defined(__WINE_PSHPACK_H) */ #error "Nested pushing of alignment isn't supported by the compiler" #endif /* !defined(__WINE_PSHPACK_H) */ bml-0.6.1/dllwrapper/wine/ldt_keeper.c0000644042355400116100000002321611576362500014630 00000000000000/* * contents: * * Allocate an LDT entry for the TEB (thread environment block) * TEB is a the only thread specific structure provided to userspace * by MS Windows. * Any W32 dll may access the TEB through FS:0, so we must provide it. * * Additional notes: * aviplay used to use the same LDT/TEB/FS to all his threads and did it * by calling these functions before any threads have been created. this * is a ugly hack, as the main code includes a plugin function at its * initialization. * Also, IMHO, that was slightly wrong. The TEB is supposed to be unique * per W32 thread. The current xine implementation will allocate different * TEBs for the audio and video codecs. * */ /** * OLD AVIFILE COMMENT: * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! * This file MUST be in main library because LDT must * be modified before program creates first thread * - avifile includes this file from C++ code * and initializes it at the start of player! * it might sound like a hack and it really is - but * as aviplay is deconding video with more than just one * thread currently it's necessary to do it this way * this might change in the future */ /* applied some modification to make make our xine friend more happy */ #include "ldt_keeper.h" #include "config.h" #include #include #include #include #include #include #include #include #include "debugtools.h" #ifdef __linux__ #include #include /* 2.5.xx+ calls this user_desc: */ #include #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,47) #define modify_ldt_ldt_s user_desc #endif /* prototype it here, so we won't depend on kernel headers */ #ifdef __cplusplus extern "C" { #endif int modify_ldt(int func, void *ptr, unsigned long bytecount); #ifdef __cplusplus } #endif #else #if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) #include #include #endif #ifdef __svr4__ #include #include /* solaris x86: add missing prototype for sysi86() */ #ifndef HAVE_SYSI86 #ifdef __cplusplus extern "C" { #endif int sysi86(int, void*); #ifdef __cplusplus } #endif #endif #ifndef NUMSYSLDTS /* SunOS 2.5.1 does not define NUMSYSLDTS */ #define NUMSYSLDTS 6 /* Let's hope the SunOS 5.8 value is OK */ #endif #define TEB_SEL_IDX NUMSYSLDTS #endif #define LDT_ENTRIES 8192 #define LDT_ENTRY_SIZE 8 #pragma pack(4) struct modify_ldt_ldt_s { unsigned int entry_number; unsigned long base_addr; unsigned int limit; unsigned int seg_32bit:1; unsigned int contents:2; unsigned int read_exec_only:1; unsigned int limit_in_pages:1; unsigned int seg_not_present:1; unsigned int useable:1; }; #define MODIFY_LDT_CONTENTS_DATA 0 #define MODIFY_LDT_CONTENTS_STACK 1 #define MODIFY_LDT_CONTENTS_CODE 2 #endif /* user level (privilege level: 3) ldt (1<<2) segment selector */ #define LDT_SEL(idx) ((idx) << 3 | 1 << 2 | 3) /* * linuxthreads can use all LDT entries from 0 to PTHREAD_THREADS_MAX-1. * by default PTHREAD_THREADS_MAX = 1024, so unless one has recompiled * it's own glibc/linuxthreads this should be a safe value. */ #ifndef TEB_SEL_IDX #define TEB_SEL_IDX 1024 #endif static ldt_fs_t global_ldt_fs; static int global_usage_count = 0; #ifdef __cplusplus extern "C" #endif void Setup_FS_Segment(ldt_fs_t *ldt_fs) { __asm__ __volatile__( "movl %0,%%eax; movw %%ax, %%fs" : : "r" (ldt_fs->teb_sel) : "%eax" ); } void Check_FS_Segment(ldt_fs_t *ldt_fs) { #if defined(__FreeBSD__) && defined(LDT_AUTO_ALLOC) int fs; __asm__ __volatile__( "movw %%fs,%%ax; mov %%eax,%0" : "=r" (fs) :: "%eax" ); fs = fs & 0xffff; if( fs != ldt_fs->teb_sel ) { printf("ldt_keeper: FS segment is not set or has being lost!\n"); printf(" Please report this error to xine-devel@lists.sourceforge.net\n"); printf(" Aborting....\n"); abort(); } #else Setup_FS_Segment(ldt_fs); #endif } #if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) static void LDT_EntryToBytes( unsigned long *buffer, const struct modify_ldt_ldt_s *content ) { *buffer++ = ((content->base_addr & 0x0000ffff) << 16) | (content->limit & 0x0ffff); *buffer = (content->base_addr & 0xff000000) | ((content->base_addr & 0x00ff0000)>>16) | (content->limit & 0xf0000) | (content->contents << 10) | ((content->read_exec_only == 0) << 9) | ((content->seg_32bit != 0) << 22) | ((content->limit_in_pages != 0) << 23) | 0xf000; } #endif static int _modify_ldt(ldt_fs_t *ldt_fs, struct modify_ldt_ldt_s array) { int ret = 0; ldt_fs->teb_sel = LDT_SEL(TEB_SEL_IDX); #ifdef __linux__ ret=modify_ldt(0x1, &array, sizeof(struct modify_ldt_ldt_s)); if(ret<0) { perror("install_fs"); printf("Couldn't install fs segment, expect segfault\n"); } #endif /*linux*/ #if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) { unsigned long d[2]; LDT_EntryToBytes( d, &array ); #if defined(__FreeBSD__) && defined(LDT_AUTO_ALLOC) ret = i386_set_ldt(LDT_AUTO_ALLOC, (union descriptor *)d, 1); array.entry_number = ret; ldt_fs->teb_sel = LDT_SEL(ret); #else ret = i386_set_ldt(array.entry_number, (union descriptor *)d, 1); #endif if (ret < 0) { perror("install_fs"); printf("Couldn't install fs segment, expect segfault\n"); printf("Did you reconfigure the kernel with \"options USER_LDT\"?\n"); } printf("Set_LDT\n"); } #endif /* __NetBSD__ || __FreeBSD__ || __OpenBSD__ */ #if defined(__svr4__) { struct ssd ssd; ssd.sel = ldt_fs->teb_sel; ssd.bo = array.base_addr; ssd.ls = array.limit; ssd.acc1 = ((array.read_exec_only == 0) << 1) | (array.contents << 2) | 0xf0; /* P(resent) | DPL3 | S */ ssd.acc2 = 0x4; /* byte limit, 32-bit segment */ if (sysi86(SI86DSCR, &ssd) < 0) { perror("sysi86(SI86DSCR)"); printf("Couldn't install fs segment, expect segfault\n"); } } #endif return ret; } ldt_fs_t* Setup_LDT_Keeper(void) { struct modify_ldt_ldt_s array; /*int ret;*/ int ldt_already_set = 0; ldt_fs_t* ldt_fs = (ldt_fs_t*) malloc(sizeof(ldt_fs_t)); if (!ldt_fs) return NULL; #ifdef __linux__ /* * LDT might be shared by different threads, so we must * check it here to avoid filling the segment descriptor again. */ { unsigned char *ldt = malloc((TEB_SEL_IDX+1)*8); unsigned int limit; memset (ldt, 0, (TEB_SEL_IDX+1)*8); modify_ldt(0, ldt, (TEB_SEL_IDX+1)*8); /* printf("ldt_keeper: old LDT entry = [%x] [%x]\n", *(unsigned int *) (&ldt[TEB_SEL_IDX*8]), *(unsigned int *) (&ldt[TEB_SEL_IDX*8+4]) ); */ limit = ((*(unsigned int *) (&ldt[TEB_SEL_IDX*8])) & 0xffff) | ((*(unsigned int *) (&ldt[TEB_SEL_IDX*8+4])) & 0xf0000); if( limit ) { if( limit == getpagesize()-1 ) { ldt_already_set = 1; } else { TRACE("ldt_keeper: LDT entry seems to be used by someone else. [%x] [%x]\n", *(unsigned int *) (&ldt[TEB_SEL_IDX*8]), *(unsigned int *) (&ldt[TEB_SEL_IDX*8+4]) ); } } free(ldt); } #endif /*linux*/ if( !ldt_already_set ) { TRACE("ldt_keeper: creating a new segment descriptor.\n"); ldt_fs->fd = open("/dev/zero", O_RDWR); if(ldt_fs->fd<0){ perror( "Cannot open /dev/zero for READ+WRITE. Check permissions! error: "); free(ldt_fs); return NULL; } ldt_fs->fs_seg = mmap(NULL, getpagesize(), PROT_READ | PROT_WRITE, MAP_PRIVATE, ldt_fs->fd, 0); if (ldt_fs->fs_seg == (void*)-1) { perror("ERROR: Couldn't allocate memory for fs segment"); close(ldt_fs->fd); free(ldt_fs); return NULL; } *(void**)((char*)ldt_fs->fs_seg+0x18) = ldt_fs->fs_seg; memset (&array, 0, sizeof (array)); array.base_addr=(unsigned long)ldt_fs->fs_seg; array.entry_number=TEB_SEL_IDX; array.limit=getpagesize()-1; array.seg_32bit=1; array.read_exec_only=0; array.seg_not_present=0; array.contents=MODIFY_LDT_CONTENTS_DATA; array.limit_in_pages=0; /*ret = */ _modify_ldt(ldt_fs, array); ldt_fs->prev_struct = (char*)malloc(sizeof(char) * 8); *(void**)array.base_addr = ldt_fs->prev_struct; memcpy( &global_ldt_fs, ldt_fs, sizeof(ldt_fs_t) ); } else { TRACE("ldt_keeper: LDT entry already set, reusing.\n"); global_usage_count++; memcpy( ldt_fs, &global_ldt_fs, sizeof(ldt_fs_t) ); } Setup_FS_Segment(ldt_fs); return ldt_fs; } void Restore_LDT_Keeper(ldt_fs_t* ldt_fs) { struct modify_ldt_ldt_s array; if (ldt_fs == NULL || ldt_fs->fs_seg == 0) return; if( global_usage_count ) { TRACE("ldt_keeper: shared LDT, restore does nothing.\n"); /* shared LDT. only the last user can free. */ global_usage_count--; } else { TRACE("ldt_keeper: freeing LDT entry.\n"); if (ldt_fs->prev_struct) free(ldt_fs->prev_struct); munmap((char*)ldt_fs->fs_seg, getpagesize()); ldt_fs->fs_seg = 0; close(ldt_fs->fd); /* mark LDT entry as free again */ memset(&array, 0, sizeof(struct modify_ldt_ldt_s)); array.entry_number=TEB_SEL_IDX; _modify_ldt(ldt_fs, array); } free(ldt_fs); } bml-0.6.1/dllwrapper/wine/winuser.h0000644042355400116100000025113711576362500014220 00000000000000#ifndef _WINUSER_ #define _WINUSER_ #ifndef RC_INVOKED #include #endif #ifdef __cplusplus extern "C" { #endif #include "pshpack1.h" /* flags for HIGHCONTRAST dwFlags field */ #define HCF_HIGHCONTRASTON 0x00000001 #define HCF_AVAILABLE 0x00000002 #define HCF_HOTKEYACTIVE 0x00000004 #define HCF_CONFIRMHOTKEY 0x00000008 #define HCF_HOTKEYSOUND 0x00000010 #define HCF_INDICATOR 0x00000020 #define HCF_HOTKEYAVAILABLE 0x00000040 typedef struct tagHIGHCONTRASTA { UINT cbSize; DWORD dwFlags; LPSTR lpszDefaultScheme; } HIGHCONTRASTA, *LPHIGHCONTRASTA; typedef struct tagHIGHCONTRASTW { UINT cbSize; DWORD dwFlags; LPWSTR lpszDefaultScheme; } HIGHCONTRASTW, *LPHIGHCONTRASTW; DECL_WINELIB_TYPE_AW(HIGHCONTRAST) DECL_WINELIB_TYPE_AW(LPHIGHCONTRAST) typedef struct { UINT message; UINT paramL; UINT paramH; DWORD time; HWND hwnd; } EVENTMSG, *LPEVENTMSG; /* Mouse hook structure */ typedef struct { POINT pt; HWND hwnd; UINT wHitTestCode; DWORD dwExtraInfo; } MOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT, *LPMOUSEHOOKSTRUCT; /* Hardware hook structure */ typedef struct { HWND hWnd; UINT wMessage; WPARAM wParam; LPARAM lParam; } HARDWAREHOOKSTRUCT, *LPHARDWAREHOOKSTRUCT; /* Debug hook structure */ typedef struct { DWORD idThread; DWORD idThreadInstaller; LPARAM lParam; WPARAM wParam; INT code; } DEBUGHOOKINFO, *LPDEBUGHOOKINFO; #define HKL_PREV 0 #define HKL_NEXT 1 #define KLF_ACTIVATE 0x00000001 #define KLF_SUBSTITUTE_OK 0x00000002 #define KLF_UNLOADPREVIOUS 0x00000004 #define KLF_REORDER 0x00000008 #define KLF_REPLACELANG 0x00000010 #define KLF_NOTELLSHELL 0x00000080 #define KL_NAMELENGTH 9 /***** Dialogs *****/ #ifdef FSHIFT /* Gcc on Solaris has a version of this that we don't care about. */ #undef FSHIFT #endif #define FVIRTKEY TRUE /* Assumed to be == TRUE */ #define FNOINVERT 0x02 #define FSHIFT 0x04 #define FCONTROL 0x08 #define FALT 0x10 typedef struct tagANIMATIONINFO { UINT cbSize; INT iMinAnimate; } ANIMATIONINFO, *LPANIMATIONINFO; typedef struct tagNMHDR { HWND hwndFrom; UINT idFrom; UINT code; } NMHDR, *LPNMHDR; typedef struct { UINT cbSize; INT iTabLength; INT iLeftMargin; INT iRightMargin; UINT uiLengthDrawn; } DRAWTEXTPARAMS,*LPDRAWTEXTPARAMS; #define WM_USER 0x0400 #define DT_EDITCONTROL 0x00002000 #define DT_PATH_ELLIPSIS 0x00004000 #define DT_END_ELLIPSIS 0x00008000 #define DT_MODIFYSTRING 0x00010000 #define DT_RTLREADING 0x00020000 #define DT_WORD_ELLIPSIS 0x00040000 typedef struct { LPARAM lParam; WPARAM16 wParam; UINT16 message; HWND16 hwnd; } CWPSTRUCT16, *LPCWPSTRUCT16; typedef struct { LPARAM lParam; WPARAM wParam; UINT message; HWND hwnd; } CWPSTRUCT, *LPCWPSTRUCT; typedef struct { LRESULT lResult; LPARAM lParam; WPARAM16 wParam; DWORD message; HWND16 hwnd; } CWPRETSTRUCT16, *LPCWPRETSTRUCT16; typedef struct { LRESULT lResult; LPARAM lParam; WPARAM wParam; DWORD message; HWND hwnd; } CWPRETSTRUCT, *LPCWPRETSTRUCT; typedef struct { UINT length; UINT flags; UINT showCmd; POINT ptMinPosition WINE_PACKED; POINT ptMaxPosition WINE_PACKED; RECT rcNormalPosition WINE_PACKED; } WINDOWPLACEMENT, *LPWINDOWPLACEMENT; /* WINDOWPLACEMENT flags */ #define WPF_SETMINPOSITION 0x0001 #define WPF_RESTORETOMAXIMIZED 0x0002 /***** Dialogs *****/ /* cbWndExtra bytes for dialog class */ #define DLGWINDOWEXTRA 30 /* Button control styles */ #define BS_PUSHBUTTON 0x00000000L #define BS_DEFPUSHBUTTON 0x00000001L #define BS_CHECKBOX 0x00000002L #define BS_AUTOCHECKBOX 0x00000003L #define BS_RADIOBUTTON 0x00000004L #define BS_3STATE 0x00000005L #define BS_AUTO3STATE 0x00000006L #define BS_GROUPBOX 0x00000007L #define BS_USERBUTTON 0x00000008L #define BS_AUTORADIOBUTTON 0x00000009L #define BS_OWNERDRAW 0x0000000BL #define BS_LEFTTEXT 0x00000020L #define BS_TEXT 0x00000000L #define BS_ICON 0x00000040L #define BS_BITMAP 0x00000080L #define BS_LEFT 0x00000100L #define BS_RIGHT 0x00000200L #define BS_CENTER 0x00000300L #define BS_TOP 0x00000400L #define BS_BOTTOM 0x00000800L #define BS_VCENTER 0x00000C00L #define BS_PUSHLIKE 0x00001000L #define BS_MULTILINE 0x00002000L #define BS_NOTIFY 0x00004000L #define BS_FLAT 0x00008000L /* Dialog styles */ #define DS_ABSALIGN 0x0001 #define DS_SYSMODAL 0x0002 #define DS_3DLOOK 0x0004 /* win95 */ #define DS_FIXEDSYS 0x0008 /* win95 */ #define DS_NOFAILCREATE 0x0010 /* win95 */ #define DS_LOCALEDIT 0x0020 #define DS_SETFONT 0x0040 #define DS_MODALFRAME 0x0080 #define DS_NOIDLEMSG 0x0100 #define DS_SETFOREGROUND 0x0200 /* win95 */ #define DS_CONTROL 0x0400 /* win95 */ #define DS_CENTER 0x0800 /* win95 */ #define DS_CENTERMOUSE 0x1000 /* win95 */ #define DS_CONTEXTHELP 0x2000 /* win95 */ /* Dialog messages */ #define DM_GETDEFID (WM_USER+0) #define DM_SETDEFID (WM_USER+1) #define DC_HASDEFID 0x534b /* Owner draw control types */ #define ODT_MENU 1 #define ODT_LISTBOX 2 #define ODT_COMBOBOX 3 #define ODT_BUTTON 4 #define ODT_STATIC 5 /* Owner draw actions */ #define ODA_DRAWENTIRE 0x0001 #define ODA_SELECT 0x0002 #define ODA_FOCUS 0x0004 /* Owner draw state */ #define ODS_SELECTED 0x0001 #define ODS_GRAYED 0x0002 #define ODS_DISABLED 0x0004 #define ODS_CHECKED 0x0008 #define ODS_FOCUS 0x0010 #define ODS_COMBOBOXEDIT 0x1000 #define ODS_HOTLIGHT 0x0040 #define ODS_INACTIVE 0x0080 /* Edit control styles */ #define ES_LEFT 0x00000000 #define ES_CENTER 0x00000001 #define ES_RIGHT 0x00000002 #define ES_MULTILINE 0x00000004 #define ES_UPPERCASE 0x00000008 #define ES_LOWERCASE 0x00000010 #define ES_PASSWORD 0x00000020 #define ES_AUTOVSCROLL 0x00000040 #define ES_AUTOHSCROLL 0x00000080 #define ES_NOHIDESEL 0x00000100 #define ES_OEMCONVERT 0x00000400 #define ES_READONLY 0x00000800 #define ES_WANTRETURN 0x00001000 #define ES_NUMBER 0x00002000 /* OEM Resource Ordinal Numbers */ #define OBM_CLOSED 32731 #define OBM_RADIOCHECK 32732 #define OBM_TRTYPE 32733 #define OBM_LFARROWI 32734 #define OBM_RGARROWI 32735 #define OBM_DNARROWI 32736 #define OBM_UPARROWI 32737 #define OBM_COMBO 32738 #define OBM_MNARROW 32739 #define OBM_LFARROWD 32740 #define OBM_RGARROWD 32741 #define OBM_DNARROWD 32742 #define OBM_UPARROWD 32743 #define OBM_RESTORED 32744 #define OBM_ZOOMD 32745 #define OBM_REDUCED 32746 #define OBM_RESTORE 32747 #define OBM_ZOOM 32748 #define OBM_REDUCE 32749 #define OBM_LFARROW 32750 #define OBM_RGARROW 32751 #define OBM_DNARROW 32752 #define OBM_UPARROW 32753 #define OBM_CLOSE 32754 #define OBM_OLD_RESTORE 32755 #define OBM_OLD_ZOOM 32756 #define OBM_OLD_REDUCE 32757 #define OBM_BTNCORNERS 32758 #define OBM_CHECKBOXES 32759 #define OBM_CHECK 32760 #define OBM_BTSIZE 32761 #define OBM_OLD_LFARROW 32762 #define OBM_OLD_RGARROW 32763 #define OBM_OLD_DNARROW 32764 #define OBM_OLD_UPARROW 32765 #define OBM_SIZE 32766 #define OBM_OLD_CLOSE 32767 #define OCR_BUMMER 100 #define OCR_DRAGOBJECT 101 #define OCR_NORMAL 32512 #define OCR_IBEAM 32513 #define OCR_WAIT 32514 #define OCR_CROSS 32515 #define OCR_UP 32516 #define OCR_SIZE 32640 #define OCR_ICON 32641 #define OCR_SIZENWSE 32642 #define OCR_SIZENESW 32643 #define OCR_SIZEWE 32644 #define OCR_SIZENS 32645 #define OCR_SIZEALL 32646 #define OCR_ICOCUR 32647 #define OCR_NO 32648 #define OCR_APPSTARTING 32650 #define OCR_HELP 32651 /* only defined in wine */ #define OIC_SAMPLE 32512 #define OIC_HAND 32513 #define OIC_QUES 32514 #define OIC_BANG 32515 #define OIC_NOTE 32516 #define OIC_PORTRAIT 32517 #define OIC_LANDSCAPE 32518 #define OIC_WINEICON 32519 #define OIC_FOLDER 32520 #define OIC_FOLDER2 32521 #define OIC_FLOPPY 32522 #define OIC_CDROM 32523 #define OIC_HDISK 32524 #define OIC_NETWORK 32525 #define COLOR_SCROLLBAR 0 #define COLOR_BACKGROUND 1 #define COLOR_ACTIVECAPTION 2 #define COLOR_INACTIVECAPTION 3 #define COLOR_MENU 4 #define COLOR_WINDOW 5 #define COLOR_WINDOWFRAME 6 #define COLOR_MENUTEXT 7 #define COLOR_WINDOWTEXT 8 #define COLOR_CAPTIONTEXT 9 #define COLOR_ACTIVEBORDER 10 #define COLOR_INACTIVEBORDER 11 #define COLOR_APPWORKSPACE 12 #define COLOR_HIGHLIGHT 13 #define COLOR_HIGHLIGHTTEXT 14 #define COLOR_BTNFACE 15 #define COLOR_BTNSHADOW 16 #define COLOR_GRAYTEXT 17 #define COLOR_BTNTEXT 18 #define COLOR_INACTIVECAPTIONTEXT 19 #define COLOR_BTNHIGHLIGHT 20 /* win95 colors */ #define COLOR_3DDKSHADOW 21 #define COLOR_3DLIGHT 22 #define COLOR_INFOTEXT 23 #define COLOR_INFOBK 24 #define COLOR_DESKTOP COLOR_BACKGROUND #define COLOR_3DFACE COLOR_BTNFACE #define COLOR_3DSHADOW COLOR_BTNSHADOW #define COLOR_3DHIGHLIGHT COLOR_BTNHIGHLIGHT #define COLOR_3DHILIGHT COLOR_BTNHIGHLIGHT #define COLOR_BTNHILIGHT COLOR_BTNHIGHLIGHT /* win98 colors */ #define COLOR_ALTERNATEBTNFACE 25 /* undocumented, constant's name unknown */ #define COLOR_HOTLIGHT 26 #define COLOR_GRADIENTACTIVECAPTION 27 #define COLOR_GRADIENTINACTIVECAPTION 28 /* WM_CTLCOLOR values */ #define CTLCOLOR_MSGBOX 0 #define CTLCOLOR_EDIT 1 #define CTLCOLOR_LISTBOX 2 #define CTLCOLOR_BTN 3 #define CTLCOLOR_DLG 4 #define CTLCOLOR_SCROLLBAR 5 #define CTLCOLOR_STATIC 6 /* Edit control messages */ #define EM_GETSEL 0x00b0 #define EM_SETSEL 0x00b1 #define EM_GETRECT 0x00b2 #define EM_SETRECT 0x00b3 #define EM_SETRECTNP 0x00b4 #define EM_SCROLL 0x00b5 #define EM_LINESCROLL 0x00b6 #define EM_SCROLLCARET 0x00b7 #define EM_GETMODIFY 0x00b8 #define EM_SETMODIFY 0x00b9 #define EM_GETLINECOUNT 0x00ba #define EM_LINEINDEX 0x00bb #define EM_SETHANDLE 0x00bc #define EM_GETHANDLE 0x00bd #define EM_GETTHUMB 0x00be /* FIXME : missing from specs 0x00bf and 0x00c0 */ #define EM_LINELENGTH 0x00c1 #define EM_REPLACESEL 0x00c2 /* FIXME : missing from specs 0x00c3 */ #define EM_GETLINE 0x00c4 #define EM_LIMITTEXT 0x00c5 #define EM_CANUNDO 0x00c6 #define EM_UNDO 0x00c7 #define EM_FMTLINES 0x00c8 #define EM_LINEFROMCHAR 0x00c9 /* FIXME : missing from specs 0x00ca */ #define EM_SETTABSTOPS 0x00cb #define EM_SETPASSWORDCHAR 0x00cc #define EM_EMPTYUNDOBUFFER 0x00cd #define EM_GETFIRSTVISIBLELINE 0x00ce #define EM_SETREADONLY 0x00cf #define EM_SETWORDBREAKPROC 0x00d0 #define EM_GETWORDBREAKPROC 0x00d1 #define EM_GETPASSWORDCHAR 0x00d2 #define EM_SETMARGINS 0x00d3 #define EM_GETMARGINS 0x00d4 #define EM_GETLIMITTEXT 0x00d5 #define EM_POSFROMCHAR 0x00d6 #define EM_CHARFROMPOS 0x00d7 /* a name change since win95 */ #define EM_SETLIMITTEXT EM_LIMITTEXT /* EDITWORDBREAKPROC code values */ #define WB_LEFT 0 #define WB_RIGHT 1 #define WB_ISDELIMITER 2 /* Edit control notification codes */ #define EN_SETFOCUS 0x0100 #define EN_KILLFOCUS 0x0200 #define EN_CHANGE 0x0300 #define EN_UPDATE 0x0400 #define EN_ERRSPACE 0x0500 #define EN_MAXTEXT 0x0501 #define EN_HSCROLL 0x0601 #define EN_VSCROLL 0x0602 /* New since win95 : EM_SETMARGIN parameters */ #define EC_LEFTMARGIN 0x0001 #define EC_RIGHTMARGIN 0x0002 #define EC_USEFONTINFO 0xffff /* Messages */ /* WM_GETDLGCODE values */ #define WM_NULL 0x0000 #define WM_CREATE 0x0001 #define WM_DESTROY 0x0002 #define WM_MOVE 0x0003 #define WM_SIZEWAIT 0x0004 #define WM_SIZE 0x0005 #define WM_ACTIVATE 0x0006 #define WM_SETFOCUS 0x0007 #define WM_KILLFOCUS 0x0008 #define WM_SETVISIBLE 0x0009 #define WM_ENABLE 0x000a #define WM_SETREDRAW 0x000b #define WM_SETTEXT 0x000c #define WM_GETTEXT 0x000d #define WM_GETTEXTLENGTH 0x000e #define WM_PAINT 0x000f #define WM_CLOSE 0x0010 #define WM_QUERYENDSESSION 0x0011 #define WM_QUIT 0x0012 #define WM_QUERYOPEN 0x0013 #define WM_ERASEBKGND 0x0014 #define WM_SYSCOLORCHANGE 0x0015 #define WM_ENDSESSION 0x0016 #define WM_SYSTEMERROR 0x0017 #define WM_SHOWWINDOW 0x0018 #define WM_CTLCOLOR 0x0019 #define WM_WININICHANGE 0x001a #define WM_SETTINGCHANGE WM_WININICHANGE #define WM_DEVMODECHANGE 0x001b #define WM_ACTIVATEAPP 0x001c #define WM_FONTCHANGE 0x001d #define WM_TIMECHANGE 0x001e #define WM_CANCELMODE 0x001f #define WM_SETCURSOR 0x0020 #define WM_MOUSEACTIVATE 0x0021 #define WM_CHILDACTIVATE 0x0022 #define WM_QUEUESYNC 0x0023 #define WM_GETMINMAXINFO 0x0024 #define WM_PAINTICON 0x0026 #define WM_ICONERASEBKGND 0x0027 #define WM_NEXTDLGCTL 0x0028 #define WM_ALTTABACTIVE 0x0029 #define WM_SPOOLERSTATUS 0x002a #define WM_DRAWITEM 0x002b #define WM_MEASUREITEM 0x002c #define WM_DELETEITEM 0x002d #define WM_VKEYTOITEM 0x002e #define WM_CHARTOITEM 0x002f #define WM_SETFONT 0x0030 #define WM_GETFONT 0x0031 #define WM_SETHOTKEY 0x0032 #define WM_GETHOTKEY 0x0033 #define WM_FILESYSCHANGE 0x0034 #define WM_ISACTIVEICON 0x0035 #define WM_QUERYPARKICON 0x0036 #define WM_QUERYDRAGICON 0x0037 #define WM_QUERYSAVESTATE 0x0038 #define WM_COMPAREITEM 0x0039 #define WM_TESTING 0x003a #define WM_OTHERWINDOWCREATED 0x003c #define WM_OTHERWINDOWDESTROYED 0x003d #define WM_ACTIVATESHELLWINDOW 0x003e #define WM_COMPACTING 0x0041 #define WM_COMMNOTIFY 0x0044 #define WM_WINDOWPOSCHANGING 0x0046 #define WM_WINDOWPOSCHANGED 0x0047 #define WM_POWER 0x0048 /* Win32 4.0 messages */ #define WM_COPYDATA 0x004a #define WM_CANCELJOURNAL 0x004b #define WM_NOTIFY 0x004e #define WM_HELP 0x0053 #define WM_NOTIFYFORMAT 0x0055 #define WM_CONTEXTMENU 0x007b #define WM_STYLECHANGING 0x007c #define WM_STYLECHANGED 0x007d #define WM_DISPLAYCHANGE 0x007e #define WM_GETICON 0x007f #define WM_SETICON 0x0080 /* Non-client system messages */ #define WM_NCCREATE 0x0081 #define WM_NCDESTROY 0x0082 #define WM_NCCALCSIZE 0x0083 #define WM_NCHITTEST 0x0084 #define WM_NCPAINT 0x0085 #define WM_NCACTIVATE 0x0086 #define WM_GETDLGCODE 0x0087 #define WM_SYNCPAINT 0x0088 #define WM_SYNCTASK 0x0089 /* Non-client mouse messages */ #define WM_NCMOUSEMOVE 0x00a0 #define WM_NCLBUTTONDOWN 0x00a1 #define WM_NCLBUTTONUP 0x00a2 #define WM_NCLBUTTONDBLCLK 0x00a3 #define WM_NCRBUTTONDOWN 0x00a4 #define WM_NCRBUTTONUP 0x00a5 #define WM_NCRBUTTONDBLCLK 0x00a6 #define WM_NCMBUTTONDOWN 0x00a7 #define WM_NCMBUTTONUP 0x00a8 #define WM_NCMBUTTONDBLCLK 0x00a9 /* Keyboard messages */ #define WM_KEYDOWN 0x0100 #define WM_KEYUP 0x0101 #define WM_CHAR 0x0102 #define WM_DEADCHAR 0x0103 #define WM_SYSKEYDOWN 0x0104 #define WM_SYSKEYUP 0x0105 #define WM_SYSCHAR 0x0106 #define WM_SYSDEADCHAR 0x0107 #define WM_KEYFIRST WM_KEYDOWN #define WM_KEYLAST 0x0108 /* Win32 4.0 messages for IME */ #define WM_IME_STARTCOMPOSITION 0x010d #define WM_IME_ENDCOMPOSITION 0x010e #define WM_IME_COMPOSITION 0x010f #define WM_IME_KEYLAST 0x010f #define WM_INITDIALOG 0x0110 #define WM_COMMAND 0x0111 #define WM_SYSCOMMAND 0x0112 #define WM_TIMER 0x0113 #define WM_SYSTIMER 0x0118 /* scroll messages */ #define WM_HSCROLL 0x0114 #define WM_VSCROLL 0x0115 /* Menu messages */ #define WM_INITMENU 0x0116 #define WM_INITMENUPOPUP 0x0117 #define WM_MENUSELECT 0x011F #define WM_MENUCHAR 0x0120 #define WM_ENTERIDLE 0x0121 #define WM_LBTRACKPOINT 0x0131 /* Win32 CTLCOLOR messages */ #define WM_CTLCOLORMSGBOX 0x0132 #define WM_CTLCOLOREDIT 0x0133 #define WM_CTLCOLORLISTBOX 0x0134 #define WM_CTLCOLORBTN 0x0135 #define WM_CTLCOLORDLG 0x0136 #define WM_CTLCOLORSCROLLBAR 0x0137 #define WM_CTLCOLORSTATIC 0x0138 /* Mouse messages */ #define WM_MOUSEMOVE 0x0200 #define WM_LBUTTONDOWN 0x0201 #define WM_LBUTTONUP 0x0202 #define WM_LBUTTONDBLCLK 0x0203 #define WM_RBUTTONDOWN 0x0204 #define WM_RBUTTONUP 0x0205 #define WM_RBUTTONDBLCLK 0x0206 #define WM_MBUTTONDOWN 0x0207 #define WM_MBUTTONUP 0x0208 #define WM_MBUTTONDBLCLK 0x0209 #define WM_MOUSEWHEEL 0x020A #define WM_MOUSEFIRST WM_MOUSEMOVE #define WM_MOUSELAST WM_MOUSEWHEEL #define WHEEL_DELTA 120 #define WHEEL_PAGESCROLL (UINT_MAX) #define WM_PARENTNOTIFY 0x0210 #define WM_ENTERMENULOOP 0x0211 #define WM_EXITMENULOOP 0x0212 #define WM_NEXTMENU 0x0213 /* Win32 4.0 messages */ #define WM_SIZING 0x0214 #define WM_CAPTURECHANGED 0x0215 #define WM_MOVING 0x0216 /* MDI messages */ #define WM_MDICREATE 0x0220 #define WM_MDIDESTROY 0x0221 #define WM_MDIACTIVATE 0x0222 #define WM_MDIRESTORE 0x0223 #define WM_MDINEXT 0x0224 #define WM_MDIMAXIMIZE 0x0225 #define WM_MDITILE 0x0226 #define WM_MDICASCADE 0x0227 #define WM_MDIICONARRANGE 0x0228 #define WM_MDIGETACTIVE 0x0229 #define WM_MDIREFRESHMENU 0x0234 /* D&D messages */ #define WM_DROPOBJECT 0x022A #define WM_QUERYDROPOBJECT 0x022B #define WM_BEGINDRAG 0x022C #define WM_DRAGLOOP 0x022D #define WM_DRAGSELECT 0x022E #define WM_DRAGMOVE 0x022F #define WM_MDISETMENU 0x0230 #define WM_ENTERSIZEMOVE 0x0231 #define WM_EXITSIZEMOVE 0x0232 #define WM_DROPFILES 0x0233 /* Win32 4.0 messages for IME */ #define WM_IME_SETCONTEXT 0x0281 #define WM_IME_NOTIFY 0x0282 #define WM_IME_CONTROL 0x0283 #define WM_IME_COMPOSITIONFULL 0x0284 #define WM_IME_SELECT 0x0285 #define WM_IME_CHAR 0x0286 /* Win32 5.0 messages for IME */ #define WM_IME_REQUEST 0x0288 /* Win32 4.0 messages for IME */ #define WM_IME_KEYDOWN 0x0290 #define WM_IME_KEYUP 0x0291 /* Clipboard command messages */ #define WM_CUT 0x0300 #define WM_COPY 0x0301 #define WM_PASTE 0x0302 #define WM_CLEAR 0x0303 #define WM_UNDO 0x0304 /* Clipboard owner messages */ #define WM_RENDERFORMAT 0x0305 #define WM_RENDERALLFORMATS 0x0306 #define WM_DESTROYCLIPBOARD 0x0307 /* Clipboard viewer messages */ #define WM_DRAWCLIPBOARD 0x0308 #define WM_PAINTCLIPBOARD 0x0309 #define WM_VSCROLLCLIPBOARD 0x030A #define WM_SIZECLIPBOARD 0x030B #define WM_ASKCBFORMATNAME 0x030C #define WM_CHANGECBCHAIN 0x030D #define WM_HSCROLLCLIPBOARD 0x030E #define WM_QUERYNEWPALETTE 0x030F #define WM_PALETTEISCHANGING 0x0310 #define WM_PALETTECHANGED 0x0311 #define WM_HOTKEY 0x0312 #define WM_PRINT 0x0317 #define WM_PRINTCLIENT 0x0318 /* FIXME: This does not belong to any libwine interface header */ /* MFC messages [360-38f] */ #define WM_QUERYAFXWNDPROC 0x0360 #define WM_SIZEPARENT 0x0361 #define WM_SETMESSAGESTRING 0x0362 #define WM_IDLEUPDATECMDUI 0x0363 #define WM_INITIALUPDATE 0x0364 #define WM_COMMANDHELP 0x0365 #define WM_HELPHITTEST 0x0366 #define WM_EXITHELPMODE 0x0367 #define WM_RECALCPARENT 0x0368 #define WM_SIZECHILD 0x0369 #define WM_KICKIDLE 0x036A #define WM_QUERYCENTERWND 0x036B #define WM_DISABLEMODAL 0x036C #define WM_FLOATSTATUS 0x036D #define WM_ACTIVATETOPLEVEL 0x036E #define WM_QUERY3DCONTROLS 0x036F #define WM_SOCKET_NOTIFY 0x0373 #define WM_SOCKET_DEAD 0x0374 #define WM_POPMESSAGESTRING 0x0375 #define WM_OCC_LOADFROMSTREAM 0x0376 #define WM_OCC_LOADFROMSTORAGE 0x0377 #define WM_OCC_INITNEW 0x0378 #define WM_OCC_LOADFROMSTREAM_EX 0x037A #define WM_OCC_LOADFROMSTORAGE_EX 0x037B #define WM_QUEUE_SENTINEL 0x0379 #define WM_PENWINFIRST 0x0380 #define WM_PENWINLAST 0x038F /* end of MFC messages */ /* FIXME: The following two lines do not belong to any libwine interface header */ #define WM_COALESCE_FIRST 0x0390 #define WM_COALESCE_LAST 0x039F #define WM_APP 0x8000 #define DLGC_WANTARROWS 0x0001 #define DLGC_WANTTAB 0x0002 #define DLGC_WANTALLKEYS 0x0004 #define DLGC_WANTMESSAGE 0x0004 #define DLGC_HASSETSEL 0x0008 #define DLGC_DEFPUSHBUTTON 0x0010 #define DLGC_UNDEFPUSHBUTTON 0x0020 #define DLGC_RADIOBUTTON 0x0040 #define DLGC_WANTCHARS 0x0080 #define DLGC_STATIC 0x0100 #define DLGC_BUTTON 0x2000 /* Standard dialog button IDs */ #define IDOK 1 #define IDCANCEL 2 #define IDABORT 3 #define IDRETRY 4 #define IDIGNORE 5 #define IDYES 6 #define IDNO 7 #define IDCLOSE 8 #define IDHELP 9 /****** Window classes ******/ typedef struct tagCREATESTRUCTA { LPVOID lpCreateParams; HINSTANCE hInstance; HMENU hMenu; HWND hwndParent; INT cy; INT cx; INT y; INT x; LONG style; LPCSTR lpszName; LPCSTR lpszClass; DWORD dwExStyle; } CREATESTRUCTA, *LPCREATESTRUCTA; typedef struct { LPVOID lpCreateParams; HINSTANCE hInstance; HMENU hMenu; HWND hwndParent; INT cy; INT cx; INT y; INT x; LONG style; LPCWSTR lpszName; LPCWSTR lpszClass; DWORD dwExStyle; } CREATESTRUCTW, *LPCREATESTRUCTW; DECL_WINELIB_TYPE_AW(CREATESTRUCT) DECL_WINELIB_TYPE_AW(LPCREATESTRUCT) typedef struct { HDC hdc; WIN_BOOL fErase; RECT rcPaint; WIN_BOOL fRestore; WIN_BOOL fIncUpdate; BYTE rgbReserved[32]; } PAINTSTRUCT, *PPAINTSTRUCT, *LPPAINTSTRUCT; typedef struct { HMENU hWindowMenu; UINT idFirstChild; } CLIENTCREATESTRUCT, *LPCLIENTCREATESTRUCT; typedef struct { LPCSTR szClass; LPCSTR szTitle; HINSTANCE hOwner; INT x; INT y; INT cx; INT cy; DWORD style; LPARAM lParam; } MDICREATESTRUCTA, *LPMDICREATESTRUCTA; typedef struct { LPCWSTR szClass; LPCWSTR szTitle; HINSTANCE hOwner; INT x; INT y; INT cx; INT cy; DWORD style; LPARAM lParam; } MDICREATESTRUCTW, *LPMDICREATESTRUCTW; DECL_WINELIB_TYPE_AW(MDICREATESTRUCT) DECL_WINELIB_TYPE_AW(LPMDICREATESTRUCT) #define MDITILE_VERTICAL 0x0000 #define MDITILE_HORIZONTAL 0x0001 #define MDITILE_SKIPDISABLED 0x0002 #define MDIS_ALLCHILDSTYLES 0x0001 typedef struct { DWORD styleOld; DWORD styleNew; } STYLESTRUCT, *LPSTYLESTRUCT; /* Offsets for GetWindowLong() and GetWindowWord() */ #define GWL_USERDATA (-21) #define GWL_EXSTYLE (-20) #define GWL_STYLE (-16) #define GWW_ID (-12) #define GWL_ID GWW_ID #define GWW_HWNDPARENT (-8) #define GWL_HWNDPARENT GWW_HWNDPARENT #define GWW_HINSTANCE (-6) #define GWL_HINSTANCE GWW_HINSTANCE #define GWL_WNDPROC (-4) #define DWL_MSGRESULT 0 #define DWL_DLGPROC 4 #define DWL_USER 8 /* GetWindow() constants */ #define GW_HWNDFIRST 0 #define GW_HWNDLAST 1 #define GW_HWNDNEXT 2 #define GW_HWNDPREV 3 #define GW_OWNER 4 #define GW_CHILD 5 /* WM_GETMINMAXINFO struct */ typedef struct { POINT ptReserved; POINT ptMaxSize; POINT ptMaxPosition; POINT ptMinTrackSize; POINT ptMaxTrackSize; } MINMAXINFO, *PMINMAXINFO, *LPMINMAXINFO; /* RedrawWindow() flags */ #define RDW_INVALIDATE 0x0001 #define RDW_INTERNALPAINT 0x0002 #define RDW_ERASE 0x0004 #define RDW_VALIDATE 0x0008 #define RDW_NOINTERNALPAINT 0x0010 #define RDW_NOERASE 0x0020 #define RDW_NOCHILDREN 0x0040 #define RDW_ALLCHILDREN 0x0080 #define RDW_UPDATENOW 0x0100 #define RDW_ERASENOW 0x0200 #define RDW_FRAME 0x0400 #define RDW_NOFRAME 0x0800 /* debug flags */ #define DBGFILL_ALLOC 0xfd #define DBGFILL_FREE 0xfb #define DBGFILL_BUFFER 0xf9 #define DBGFILL_STACK 0xf7 /* WM_WINDOWPOSCHANGING/CHANGED struct */ typedef struct tagWINDOWPOS { HWND hwnd; HWND hwndInsertAfter; INT x; INT y; INT cx; INT cy; UINT flags; } WINDOWPOS, *PWINDOWPOS, *LPWINDOWPOS; /* WM_MOUSEACTIVATE return values */ #define MA_ACTIVATE 1 #define MA_ACTIVATEANDEAT 2 #define MA_NOACTIVATE 3 #define MA_NOACTIVATEANDEAT 4 /* WM_ACTIVATE wParam values */ #define WA_INACTIVE 0 #define WA_ACTIVE 1 #define WA_CLICKACTIVE 2 /* WM_GETICON/WM_SETICON params values */ #define ICON_SMALL 0 #define ICON_BIG 1 /* WM_NCCALCSIZE parameter structure */ typedef struct { RECT rgrc[3]; WINDOWPOS *lppos; } NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS; /* WM_NCCALCSIZE return flags */ #define WVR_ALIGNTOP 0x0010 #define WVR_ALIGNLEFT 0x0020 #define WVR_ALIGNBOTTOM 0x0040 #define WVR_ALIGNRIGHT 0x0080 #define WVR_HREDRAW 0x0100 #define WVR_VREDRAW 0x0200 #define WVR_REDRAW (WVR_HREDRAW | WVR_VREDRAW) #define WVR_VALIDRECTS 0x0400 /* WM_NCHITTEST return codes */ #define HTERROR (-2) #define HTTRANSPARENT (-1) #define HTNOWHERE 0 #define HTCLIENT 1 #define HTCAPTION 2 #define HTSYSMENU 3 #define HTSIZE 4 #define HTMENU 5 #define HTHSCROLL 6 #define HTVSCROLL 7 #define HTMINBUTTON 8 #define HTMAXBUTTON 9 #define HTLEFT 10 #define HTRIGHT 11 #define HTTOP 12 #define HTTOPLEFT 13 #define HTTOPRIGHT 14 #define HTBOTTOM 15 #define HTBOTTOMLEFT 16 #define HTBOTTOMRIGHT 17 #define HTBORDER 18 #define HTGROWBOX HTSIZE #define HTREDUCE HTMINBUTTON #define HTZOOM HTMAXBUTTON #define HTOBJECT 19 #define HTCLOSE 20 #define HTHELP 21 #define HTSIZEFIRST HTLEFT #define HTSIZELAST HTBOTTOMRIGHT /* WM_SYSCOMMAND parameters */ #ifdef SC_SIZE /* at least HP-UX: already defined in /usr/include/sys/signal.h */ #undef SC_SIZE #endif #define SC_SIZE 0xf000 #define SC_MOVE 0xf010 #define SC_MINIMIZE 0xf020 #define SC_MAXIMIZE 0xf030 #define SC_NEXTWINDOW 0xf040 #define SC_PREVWINDOW 0xf050 #define SC_CLOSE 0xf060 #define SC_VSCROLL 0xf070 #define SC_HSCROLL 0xf080 #define SC_MOUSEMENU 0xf090 #define SC_KEYMENU 0xf100 #define SC_ARRANGE 0xf110 #define SC_RESTORE 0xf120 #define SC_TASKLIST 0xf130 #define SC_SCREENSAVE 0xf140 #define SC_HOTKEY 0xf150 #define CS_VREDRAW 0x0001 #define CS_HREDRAW 0x0002 #define CS_KEYCVTWINDOW 0x0004 #define CS_DBLCLKS 0x0008 #define CS_OWNDC 0x0020 #define CS_CLASSDC 0x0040 #define CS_PARENTDC 0x0080 #define CS_NOKEYCVT 0x0100 #define CS_NOCLOSE 0x0200 #define CS_SAVEBITS 0x0800 #define CS_BYTEALIGNCLIENT 0x1000 #define CS_BYTEALIGNWINDOW 0x2000 #define CS_GLOBALCLASS 0x4000 #define CS_IME 0x00010000 #define PRF_CHECKVISIBLE 0x00000001L #define PRF_NONCLIENT 0x00000002L #define PRF_CLIENT 0x00000004L #define PRF_ERASEBKGND 0x00000008L #define PRF_CHILDREN 0x00000010L #define PRF_OWNED 0x00000020L /* Offsets for GetClassLong() and GetClassWord() */ #define GCL_MENUNAME (-8) #define GCW_HBRBACKGROUND (-10) #define GCL_HBRBACKGROUND GCW_HBRBACKGROUND #define GCW_HCURSOR (-12) #define GCL_HCURSOR GCW_HCURSOR #define GCW_HICON (-14) #define GCL_HICON GCW_HICON #define GCW_HMODULE (-16) #define GCL_HMODULE GCW_HMODULE #define GCW_CBWNDEXTRA (-18) #define GCL_CBWNDEXTRA GCW_CBWNDEXTRA #define GCW_CBCLSEXTRA (-20) #define GCL_CBCLSEXTRA GCW_CBCLSEXTRA #define GCL_WNDPROC (-24) #define GCW_STYLE (-26) #define GCL_STYLE GCW_STYLE #define GCW_ATOM (-32) #define GCW_HICONSM (-34) #define GCL_HICONSM GCW_HICONSM /***** Window hooks *****/ /* Hook values */ #define WH_MIN (-1) #define WH_MSGFILTER (-1) #define WH_JOURNALRECORD 0 #define WH_JOURNALPLAYBACK 1 #define WH_KEYBOARD 2 #define WH_GETMESSAGE 3 #define WH_CALLWNDPROC 4 #define WH_CBT 5 #define WH_SYSMSGFILTER 6 #define WH_MOUSE 7 #define WH_HARDWARE 8 #define WH_DEBUG 9 #define WH_SHELL 10 #define WH_FOREGROUNDIDLE 11 #define WH_CALLWNDPROCRET 12 #define WH_MAX 12 #define WH_MINHOOK WH_MIN #define WH_MAXHOOK WH_MAX #define WH_NB_HOOKS (WH_MAXHOOK-WH_MINHOOK+1) /* Hook action codes */ #define HC_ACTION 0 #define HC_GETNEXT 1 #define HC_SKIP 2 #define HC_NOREMOVE 3 #define HC_NOREM HC_NOREMOVE #define HC_SYSMODALON 4 #define HC_SYSMODALOFF 5 /* CallMsgFilter() values */ #define MSGF_DIALOGBOX 0 #define MSGF_MESSAGEBOX 1 #define MSGF_MENU 2 #define MSGF_MOVE 3 #define MSGF_SIZE 4 #define MSGF_SCROLLBAR 5 #define MSGF_NEXTWINDOW 6 #define MSGF_MAINLOOP 8 #define MSGF_USER 4096 typedef struct { UINT style; WNDPROC lpfnWndProc; INT cbClsExtra; INT cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCSTR lpszMenuName; LPCSTR lpszClassName; } WNDCLASSA, *LPWNDCLASSA; typedef struct { UINT style; WNDPROC lpfnWndProc; INT cbClsExtra; INT cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCWSTR lpszMenuName; LPCWSTR lpszClassName; } WNDCLASSW, *LPWNDCLASSW; DECL_WINELIB_TYPE_AW(WNDCLASS) DECL_WINELIB_TYPE_AW(LPWNDCLASS) typedef struct { DWORD dwData; DWORD cbData; LPVOID lpData; } COPYDATASTRUCT, *PCOPYDATASTRUCT, *LPCOPYDATASTRUCT; typedef struct { HMENU hmenuIn; HMENU hmenuNext; HWND hwndNext; } MDINEXTMENU, *PMDINEXTMENU, *LPMDINEXTMENU; /* WinHelp internal structure */ typedef struct { WORD size; WORD command; LONG data; LONG reserved; WORD ofsFilename; WORD ofsData; } WINHELP,*LPWINHELP; typedef struct { UINT16 mkSize; BYTE mkKeyList; BYTE szKeyphrase[1]; } MULTIKEYHELP, *LPMULTIKEYHELP; typedef struct { WORD wStructSize; WORD x; WORD y; WORD dx; WORD dy; WORD wMax; char rgchMember[2]; } HELPWININFO, *LPHELPWININFO; #define HELP_CONTEXT 0x0001 #define HELP_QUIT 0x0002 #define HELP_INDEX 0x0003 #define HELP_CONTENTS 0x0003 #define HELP_HELPONHELP 0x0004 #define HELP_SETINDEX 0x0005 #define HELP_SETCONTENTS 0x0005 #define HELP_CONTEXTPOPUP 0x0008 #define HELP_FORCEFILE 0x0009 #define HELP_KEY 0x0101 #define HELP_COMMAND 0x0102 #define HELP_PARTIALKEY 0x0105 #define HELP_MULTIKEY 0x0201 #define HELP_SETWINPOS 0x0203 #define HELP_CONTEXTMENU 0x000a #define HELP_FINDER 0x000b #define HELP_WM_HELP 0x000c #define HELP_SETPOPUP_POS 0x000d #define HELP_TCARD 0x8000 #define HELP_TCARD_DATA 0x0010 #define HELP_TCARD_OTHER_CALLER 0x0011 /* ChangeDisplaySettings return codes */ #define DISP_CHANGE_SUCCESSFUL 0 #define DISP_CHANGE_RESTART 1 #define DISP_CHANGE_FAILED (-1) #define DISP_CHANGE_BADMODE (-2) #define DISP_CHANGE_NOTUPDATED (-3) #define DISP_CHANGE_BADFLAGS (-4) #define DISP_CHANGE_BADPARAM (-5) /* ChangeDisplaySettings.dwFlags */ #define CDS_UPDATEREGISTRY 0x00000001 #define CDS_TEST 0x00000002 #define CDS_FULLSCREEN 0x00000004 #define CDS_GLOBAL 0x00000008 #define CDS_SET_PRIMARY 0x00000010 #define CDS_RESET 0x40000000 #define CDS_SETRECT 0x20000000 #define CDS_NORESET 0x10000000 /* flags to FormatMessage */ #define FORMAT_MESSAGE_ALLOCATE_BUFFER 0x00000100 #define FORMAT_MESSAGE_IGNORE_INSERTS 0x00000200 #define FORMAT_MESSAGE_FROM_STRING 0x00000400 #define FORMAT_MESSAGE_FROM_HMODULE 0x00000800 #define FORMAT_MESSAGE_FROM_SYSTEM 0x00001000 #define FORMAT_MESSAGE_ARGUMENT_ARRAY 0x00002000 #define FORMAT_MESSAGE_MAX_WIDTH_MASK 0x000000FF typedef struct { UINT cbSize; UINT style; WNDPROC lpfnWndProc; INT cbClsExtra; INT cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCSTR lpszMenuName; LPCSTR lpszClassName; HICON hIconSm; } WNDCLASSEXA, *LPWNDCLASSEXA; typedef struct { UINT cbSize; UINT style; WNDPROC lpfnWndProc; INT cbClsExtra; INT cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCWSTR lpszMenuName; LPCWSTR lpszClassName; HICON hIconSm; } WNDCLASSEXW, *LPWNDCLASSEXW; DECL_WINELIB_TYPE_AW(WNDCLASSEX) DECL_WINELIB_TYPE_AW(LPWNDCLASSEX) typedef struct tagMSG { HWND hwnd; UINT message; WPARAM wParam; LPARAM lParam; DWORD time; POINT pt; } MSG, *LPMSG; #define POINTSTOPOINT(pt, pts) \ { (pt).x = (LONG)(SHORT)LOWORD(*(LONG*)&pts); \ (pt).y = (LONG)(SHORT)HIWORD(*(LONG*)&pts); } #define POINTTOPOINTS(pt) (MAKELONG((short)((pt).x), (short)((pt).y))) /* Cursors / Icons */ typedef struct { WIN_BOOL fIcon; DWORD xHotspot; DWORD yHotspot; HBITMAP hbmMask; HBITMAP hbmColor; } ICONINFO,*LPICONINFO; /* this is the 6 byte accel struct used in Win32 when presented to the user */ typedef struct { BYTE fVirt; BYTE pad0; WORD key; WORD cmd; } ACCEL, *LPACCEL; /* this is the 8 byte accel struct used in Win32 resources (internal only) */ typedef struct { BYTE fVirt; BYTE pad0; WORD key; WORD cmd; WORD pad1; } PE_ACCEL, *LPPE_ACCEL; /* Flags for TrackPopupMenu */ #define TPM_LEFTBUTTON 0x0000 #define TPM_RIGHTBUTTON 0x0002 #define TPM_LEFTALIGN 0x0000 #define TPM_CENTERALIGN 0x0004 #define TPM_RIGHTALIGN 0x0008 #define TPM_TOPALIGN 0x0000 #define TPM_VCENTERALIGN 0x0010 #define TPM_BOTTOMALIGN 0x0020 #define TPM_HORIZONTAL 0x0000 #define TPM_VERTICAL 0x0040 #define TPM_NONOTIFY 0x0080 #define TPM_RETURNCMD 0x0100 typedef struct { UINT cbSize; RECT rcExclude; } TPMPARAMS, *LPTPMPARAMS; /* FIXME: not sure this one is correct */ typedef struct { UINT cbSize; UINT fMask; UINT fType; UINT fState; UINT wID; HMENU hSubMenu; HBITMAP hbmpChecked; HBITMAP hbmpUnchecked; DWORD dwItemData; LPSTR dwTypeData; UINT cch; HBITMAP hbmpItem; } MENUITEMINFOA, *LPMENUITEMINFOA; typedef struct { UINT cbSize; UINT fMask; UINT fType; UINT fState; UINT wID; HMENU hSubMenu; HBITMAP hbmpChecked; HBITMAP hbmpUnchecked; DWORD dwItemData; LPWSTR dwTypeData; UINT cch; HBITMAP hbmpItem; } MENUITEMINFOW, *LPMENUITEMINFOW; DECL_WINELIB_TYPE_AW(MENUITEMINFO) DECL_WINELIB_TYPE_AW(LPMENUITEMINFO) typedef struct { DWORD cbSize; DWORD fMask; DWORD dwStyle; UINT cyMax; HBRUSH hbrBack; DWORD dwContextHelpID; DWORD dwMenuData; } MENUINFO, *LPMENUINFO; typedef MENUINFO const * LPCMENUINFO; #define MIM_MAXHEIGHT 0x00000001 #define MIM_BACKGROUND 0x00000002 #define MIM_HELPID 0x00000004 #define MIM_MENUDATA 0x00000008 #define MIM_STYLE 0x00000010 #define MIM_APPLYTOSUBMENUS 0x80000000 typedef struct { WORD versionNumber; WORD offset; } MENUITEMTEMPLATEHEADER, *PMENUITEMTEMPLATEHEADER; typedef struct { WORD mtOption; WORD mtID; WCHAR mtString[1]; } MENUITEMTEMPLATE, *PMENUITEMTEMPLATE; typedef VOID MENUTEMPLATE; typedef PVOID *LPMENUTEMPLATE; /* Field specifiers for MENUITEMINFO[AW] type. */ #define MIIM_STATE 0x00000001 #define MIIM_ID 0x00000002 #define MIIM_SUBMENU 0x00000004 #define MIIM_CHECKMARKS 0x00000008 #define MIIM_TYPE 0x00000010 #define MIIM_DATA 0x00000020 #define MIIM_STRING 0x00000040 #define MIIM_BITMAP 0x00000080 #define MIIM_FTYPE 0x00000100 #define HBMMENU_CALLBACK ((HBITMAP) -1) #define HBMMENU_SYSTEM ((HBITMAP) 1) #define HBMMENU_MBAR_RESTORE ((HBITMAP) 2) #define HBMMENU_MBAR_MINIMIZE ((HBITMAP) 3) #define HBMMENU_MBAR_CLOSE ((HBITMAP) 5) #define HBMMENU_MBAR_CLOSE_D ((HBITMAP) 6) #define HBMMENU_MBAR_MINIMIZE_D ((HBITMAP) 7) #define HBMMENU_POPUP_CLOSE ((HBITMAP) 8) #define HBMMENU_POPUP_RESTORE ((HBITMAP) 9) #define HBMMENU_POPUP_MAXIMIZE ((HBITMAP) 10) #define HBMMENU_POPUP_MINIMIZE ((HBITMAP) 11) /* DrawState defines ... */ typedef WIN_BOOL CALLBACK (*DRAWSTATEPROC)(HDC,LPARAM,WPARAM,INT,INT); /* WM_H/VSCROLL commands */ #define SB_LINEUP 0 #define SB_LINELEFT 0 #define SB_LINEDOWN 1 #define SB_LINERIGHT 1 #define SB_PAGEUP 2 #define SB_PAGELEFT 2 #define SB_PAGEDOWN 3 #define SB_PAGERIGHT 3 #define SB_THUMBPOSITION 4 #define SB_THUMBTRACK 5 #define SB_TOP 6 #define SB_LEFT 6 #define SB_BOTTOM 7 #define SB_RIGHT 7 #define SB_ENDSCROLL 8 /* Scroll bar selection constants */ #define SB_HORZ 0 #define SB_VERT 1 #define SB_CTL 2 #define SB_BOTH 3 /* Scrollbar styles */ #define SBS_HORZ 0x0000L #define SBS_VERT 0x0001L #define SBS_TOPALIGN 0x0002L #define SBS_LEFTALIGN 0x0002L #define SBS_BOTTOMALIGN 0x0004L #define SBS_RIGHTALIGN 0x0004L #define SBS_SIZEBOXTOPLEFTALIGN 0x0002L #define SBS_SIZEBOXBOTTOMRIGHTALIGN 0x0004L #define SBS_SIZEBOX 0x0008L #define SBS_SIZEGRIP 0x0010L /* EnableScrollBar() flags */ #define ESB_ENABLE_BOTH 0x0000 #define ESB_DISABLE_BOTH 0x0003 #define ESB_DISABLE_LEFT 0x0001 #define ESB_DISABLE_RIGHT 0x0002 #define ESB_DISABLE_UP 0x0001 #define ESB_DISABLE_DOWN 0x0002 #define ESB_DISABLE_LTUP ESB_DISABLE_LEFT #define ESB_DISABLE_RTDN ESB_DISABLE_RIGHT /* Win32 button control messages */ #define BM_GETCHECK 0x00f0 #define BM_SETCHECK 0x00f1 #define BM_GETSTATE 0x00f2 #define BM_SETSTATE 0x00f3 #define BM_SETSTYLE 0x00f4 #define BM_CLICK 0x00f5 #define BM_GETIMAGE 0x00f6 #define BM_SETIMAGE 0x00f7 /* Winelib button control messages */ /* Button notification codes */ #define BN_CLICKED 0 #define BN_PAINT 1 #define BN_HILITE 2 #define BN_UNHILITE 3 #define BN_DISABLE 4 #define BN_DOUBLECLICKED 5 /* Button states */ #define BST_UNCHECKED 0x0000 #define BST_CHECKED 0x0001 #define BST_INDETERMINATE 0x0002 #define BST_PUSHED 0x0004 #define BST_FOCUS 0x0008 /* Static Control Styles */ #define SS_LEFT 0x00000000L #define SS_CENTER 0x00000001L #define SS_RIGHT 0x00000002L #define SS_ICON 0x00000003L #define SS_BLACKRECT 0x00000004L #define SS_GRAYRECT 0x00000005L #define SS_WHITERECT 0x00000006L #define SS_BLACKFRAME 0x00000007L #define SS_GRAYFRAME 0x00000008L #define SS_WHITEFRAME 0x00000009L #define SS_SIMPLE 0x0000000BL #define SS_LEFTNOWORDWRAP 0x0000000CL #define SS_OWNERDRAW 0x0000000DL #define SS_BITMAP 0x0000000EL #define SS_ENHMETAFILE 0x0000000FL #define SS_ETCHEDHORZ 0x00000010L #define SS_ETCHEDVERT 0x00000011L #define SS_ETCHEDFRAME 0x00000012L #define SS_TYPEMASK 0x0000001FL #define SS_NOPREFIX 0x00000080L #define SS_NOTIFY 0x00000100L #define SS_CENTERIMAGE 0x00000200L #define SS_RIGHTJUST 0x00000400L #define SS_REALSIZEIMAGE 0x00000800L #define SS_SUNKEN 0x00001000L /* Static Control Messages */ #define STM_SETICON 0x0170 #define STM_GETICON 0x0171 #define STM_SETIMAGE 0x0172 #define STM_GETIMAGE 0x0173 /* Scrollbar messages */ #define SBM_SETPOS 0x00e0 #define SBM_GETPOS 0x00e1 #define SBM_SETRANGE 0x00e2 #define SBM_GETRANGE 0x00e3 #define SBM_ENABLE_ARROWS 0x00e4 #define SBM_SETRANGEREDRAW 0x00e6 #define SBM_SETSCROLLINFO 0x00e9 #define SBM_GETSCROLLINFO 0x00ea /* Scrollbar info */ typedef struct { UINT cbSize; UINT fMask; INT nMin; INT nMax; UINT nPage; INT nPos; INT nTrackPos; } SCROLLINFO, *LPSCROLLINFO; /* GetScrollInfo() flags */ #define SIF_RANGE 0x0001 #define SIF_PAGE 0x0002 #define SIF_POS 0x0004 #define SIF_DISABLENOSCROLL 0x0008 #define SIF_TRACKPOS 0x0010 #define SIF_ALL (SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS) /* Listbox styles */ #define LBS_NOTIFY 0x0001 #define LBS_SORT 0x0002 #define LBS_NOREDRAW 0x0004 #define LBS_MULTIPLESEL 0x0008 #define LBS_OWNERDRAWFIXED 0x0010 #define LBS_OWNERDRAWVARIABLE 0x0020 #define LBS_HASSTRINGS 0x0040 #define LBS_USETABSTOPS 0x0080 #define LBS_NOINTEGRALHEIGHT 0x0100 #define LBS_MULTICOLUMN 0x0200 #define LBS_WANTKEYBOARDINPUT 0x0400 #define LBS_EXTENDEDSEL 0x0800 #define LBS_DISABLENOSCROLL 0x1000 #define LBS_NODATA 0x2000 #define LBS_NOSEL 0x4000 #define LBS_STANDARD (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER) /* Listbox messages */ #define LB_ADDSTRING 0x0180 #define LB_INSERTSTRING 0x0181 #define LB_DELETESTRING 0x0182 #define LB_SELITEMRANGEEX 0x0183 #define LB_RESETCONTENT 0x0184 #define LB_SETSEL 0x0185 #define LB_SETCURSEL 0x0186 #define LB_GETSEL 0x0187 #define LB_GETCURSEL 0x0188 #define LB_GETTEXT 0x0189 #define LB_GETTEXTLEN 0x018a #define LB_GETCOUNT 0x018b #define LB_SELECTSTRING 0x018c #define LB_DIR 0x018d #define LB_GETTOPINDEX 0x018e #define LB_FINDSTRING 0x018f #define LB_GETSELCOUNT 0x0190 #define LB_GETSELITEMS 0x0191 #define LB_SETTABSTOPS 0x0192 #define LB_GETHORIZONTALEXTENT 0x0193 #define LB_SETHORIZONTALEXTENT 0x0194 #define LB_SETCOLUMNWIDTH 0x0195 #define LB_ADDFILE 0x0196 #define LB_SETTOPINDEX 0x0197 #define LB_GETITEMRECT 0x0198 #define LB_GETITEMDATA 0x0199 #define LB_SETITEMDATA 0x019a #define LB_SELITEMRANGE 0x019b #define LB_SETANCHORINDEX 0x019c #define LB_GETANCHORINDEX 0x019d #define LB_SETCARETINDEX 0x019e #define LB_GETCARETINDEX 0x019f #define LB_SETITEMHEIGHT 0x01a0 #define LB_GETITEMHEIGHT 0x01a1 #define LB_FINDSTRINGEXACT 0x01a2 #define LB_CARETON 0x01a3 #define LB_CARETOFF 0x01a4 #define LB_SETLOCALE 0x01a5 #define LB_GETLOCALE 0x01a6 #define LB_SETCOUNT 0x01a7 #define LB_INITSTORAGE 0x01a8 #define LB_ITEMFROMPOINT 0x01a9 /* Listbox notification codes */ #define LBN_ERRSPACE (-2) #define LBN_SELCHANGE 1 #define LBN_DBLCLK 2 #define LBN_SELCANCEL 3 #define LBN_SETFOCUS 4 #define LBN_KILLFOCUS 5 /* Listbox message return values */ #define LB_OKAY 0 #define LB_ERR (-1) #define LB_ERRSPACE (-2) #define LB_CTLCODE 0L /* Combo box styles */ #define CBS_SIMPLE 0x0001L #define CBS_DROPDOWN 0x0002L #define CBS_DROPDOWNLIST 0x0003L #define CBS_OWNERDRAWFIXED 0x0010L #define CBS_OWNERDRAWVARIABLE 0x0020L #define CBS_AUTOHSCROLL 0x0040L #define CBS_OEMCONVERT 0x0080L #define CBS_SORT 0x0100L #define CBS_HASSTRINGS 0x0200L #define CBS_NOINTEGRALHEIGHT 0x0400L #define CBS_DISABLENOSCROLL 0x0800L #define CBS_UPPERCASE 0x2000L #define CBS_LOWERCASE 0x4000L /* Combo box messages */ #define CB_GETEDITSEL 0x0140 #define CB_LIMITTEXT 0x0141 #define CB_SETEDITSEL 0x0142 #define CB_ADDSTRING 0x0143 #define CB_DELETESTRING 0x0144 #define CB_DIR 0x0145 #define CB_GETCOUNT 0x0146 #define CB_GETCURSEL 0x0147 #define CB_GETLBTEXT 0x0148 #define CB_GETLBTEXTLEN 0x0149 #define CB_INSERTSTRING 0x014a #define CB_RESETCONTENT 0x014b #define CB_FINDSTRING 0x014c #define CB_SELECTSTRING 0x014d #define CB_SETCURSEL 0x014e #define CB_SHOWDROPDOWN 0x014f #define CB_GETITEMDATA 0x0150 #define CB_SETITEMDATA 0x0151 #define CB_GETDROPPEDCONTROLRECT 0x0152 #define CB_SETITEMHEIGHT 0x0153 #define CB_GETITEMHEIGHT 0x0154 #define CB_SETEXTENDEDUI 0x0155 #define CB_GETEXTENDEDUI 0x0156 #define CB_GETDROPPEDSTATE 0x0157 #define CB_FINDSTRINGEXACT 0x0158 #define CB_SETLOCALE 0x0159 #define CB_GETLOCALE 0x015a #define CB_GETTOPINDEX 0x015b #define CB_SETTOPINDEX 0x015c #define CB_GETHORIZONTALEXTENT 0x015d #define CB_SETHORIZONTALEXTENT 0x015e #define CB_GETDROPPEDWIDTH 0x015f #define CB_SETDROPPEDWIDTH 0x0160 #define CB_INITSTORAGE 0x0161 /* Combo box notification codes */ #define CBN_ERRSPACE (-1) #define CBN_SELCHANGE 1 #define CBN_DBLCLK 2 #define CBN_SETFOCUS 3 #define CBN_KILLFOCUS 4 #define CBN_EDITCHANGE 5 #define CBN_EDITUPDATE 6 #define CBN_DROPDOWN 7 #define CBN_CLOSEUP 8 #define CBN_SELENDOK 9 #define CBN_SELENDCANCEL 10 /* Combo box message return values */ #define CB_OKAY 0 #define CB_ERR (-1) #define CB_ERRSPACE (-2) #define MB_OK 0x00000000 #define MB_OKCANCEL 0x00000001 #define MB_ABORTRETRYIGNORE 0x00000002 #define MB_YESNOCANCEL 0x00000003 #define MB_YESNO 0x00000004 #define MB_RETRYCANCEL 0x00000005 #define MB_TYPEMASK 0x0000000F #define MB_ICONHAND 0x00000010 #define MB_ICONQUESTION 0x00000020 #define MB_ICONEXCLAMATION 0x00000030 #define MB_ICONASTERISK 0x00000040 #define MB_USERICON 0x00000080 #define MB_ICONMASK 0x000000F0 #define MB_ICONINFORMATION MB_ICONASTERISK #define MB_ICONSTOP MB_ICONHAND #define MB_ICONWARNING MB_ICONEXCLAMATION #define MB_ICONERROR MB_ICONHAND #define MB_DEFBUTTON1 0x00000000 #define MB_DEFBUTTON2 0x00000100 #define MB_DEFBUTTON3 0x00000200 #define MB_DEFBUTTON4 0x00000300 #define MB_DEFMASK 0x00000F00 #define MB_APPLMODAL 0x00000000 #define MB_SYSTEMMODAL 0x00001000 #define MB_TASKMODAL 0x00002000 #define MB_MODEMASK 0x00003000 #define MB_HELP 0x00004000 #define MB_NOFOCUS 0x00008000 #define MB_MISCMASK 0x0000C000 #define MB_SETFOREGROUND 0x00010000 #define MB_DEFAULT_DESKTOP_ONLY 0x00020000 #define MB_SERVICE_NOTIFICATION 0x00040000 #define MB_TOPMOST 0x00040000 #define MB_RIGHT 0x00080000 #define MB_RTLREADING 0x00100000 #define HELPINFO_WINDOW 0x0001 #define HELPINFO_MENUITEM 0x0002 /* Structure pointed to by lParam of WM_HELP */ typedef struct { UINT cbSize; /* Size in bytes of this struct */ INT iContextType; /* Either HELPINFO_WINDOW or HELPINFO_MENUITEM */ INT iCtrlId; /* Control Id or a Menu item Id. */ HANDLE hItemHandle; /* hWnd of control or hMenu. */ DWORD dwContextId; /* Context Id associated with this item */ POINT MousePos; /* Mouse Position in screen co-ordinates */ } HELPINFO,*LPHELPINFO; typedef void CALLBACK (*MSGBOXCALLBACK)(LPHELPINFO lpHelpInfo); typedef struct { UINT cbSize; HWND hwndOwner; HINSTANCE hInstance; LPCSTR lpszText; LPCSTR lpszCaption; DWORD dwStyle; LPCSTR lpszIcon; DWORD dwContextHelpId; MSGBOXCALLBACK lpfnMsgBoxCallback; DWORD dwLanguageId; } MSGBOXPARAMSA,*LPMSGBOXPARAMSA; typedef struct { UINT cbSize; HWND hwndOwner; HINSTANCE hInstance; LPCWSTR lpszText; LPCWSTR lpszCaption; DWORD dwStyle; LPCWSTR lpszIcon; DWORD dwContextHelpId; MSGBOXCALLBACK lpfnMsgBoxCallback; DWORD dwLanguageId; } MSGBOXPARAMSW,*LPMSGBOXPARAMSW; DECL_WINELIB_TYPE_AW(MSGBOXPARAMS) DECL_WINELIB_TYPE_AW(LPMSGBOXPARAMS) typedef struct _numberfmt32a { UINT NumDigits; UINT LeadingZero; UINT Grouping; LPCSTR lpDecimalSep; LPCSTR lpThousandSep; UINT NegativeOrder; } NUMBERFMTA; typedef struct _numberfmt32w { UINT NumDigits; UINT LeadingZero; UINT Grouping; LPCWSTR lpDecimalSep; LPCWSTR lpThousandSep; UINT NegativeOrder; } NUMBERFMTW; typedef struct _currencyfmt32a { UINT NumDigits; UINT LeadingZero; UINT Grouping; LPCSTR lpDecimalSep; LPCSTR lpThousandSep; UINT NegativeOrder; UINT PositiveOrder; LPCSTR lpCurrencySymbol; } CURRENCYFMTA; typedef struct _currencyfmt32w { UINT NumDigits; UINT LeadingZero; UINT Grouping; LPCWSTR lpDecimalSep; LPCWSTR lpThousandSep; UINT NegativeOrder; UINT PositiveOrder; LPCWSTR lpCurrencySymbol; } CURRENCYFMTW; #define MONITOR_DEFAULTTONULL 0x00000000 #define MONITOR_DEFAULTTOPRIMARY 0x00000001 #define MONITOR_DEFAULTTONEAREST 0x00000002 #define MONITORINFOF_PRIMARY 0x00000001 typedef struct tagMONITORINFO { DWORD cbSize; RECT rcMonitor; RECT rcWork; DWORD dwFlags; } MONITORINFO, *LPMONITORINFO; typedef WIN_BOOL CALLBACK (*MONITORENUMPROC)(HMONITOR,HDC,LPRECT,LPARAM); /* FIXME: use this instead of LPCVOID for CreateDialogIndirectParam and DialogBoxIndirectParam */ typedef struct tagDLGTEMPLATE { DWORD style; DWORD dwExtendedStyle; WORD cdit; short x; short y; short cx; short cy; } DLGTEMPLATE; typedef DLGTEMPLATE *LPDLGTEMPLATEA; typedef DLGTEMPLATE *LPDLGTEMPLATEW; #define LPDLGTEMPLATE WINELIB_NAME_AW(LPDLGTEMPLATE) typedef const DLGTEMPLATE *LPCDLGTEMPLATEA; typedef const DLGTEMPLATE *LPCDLGTEMPLATEW; #define LPCDLGTEMPLATE WINELIB_NAME_AW(LPCDLGTEMPLATE) typedef struct tagDLGITEMTEMPLATE { DWORD style; DWORD dwExtendedStyle; short x; short y; short cx; short cy; WORD id; } DLGITEMTEMPLATE; typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEA; typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEW; #define LPDLGITEMTEMPLATE WINELIB_NAME_AW(LPDLGITEMTEMPLATE) typedef const DLGITEMTEMPLATE *LPCDLGITEMTEMPLATEA; typedef const DLGITEMTEMPLATE *LPCDLGITEMTEMPLATEW; #define LPCDLGITEMTEMPLATE WINELIB_NAME_AW(LPCDLGITEMTEMPLATE) /* CBT hook values */ #define HCBT_MOVESIZE 0 #define HCBT_MINMAX 1 #define HCBT_QS 2 #define HCBT_CREATEWND 3 #define HCBT_DESTROYWND 4 #define HCBT_ACTIVATE 5 #define HCBT_CLICKSKIPPED 6 #define HCBT_KEYSKIPPED 7 #define HCBT_SYSCOMMAND 8 #define HCBT_SETFOCUS 9 /* CBT hook structures */ typedef struct { CREATESTRUCTA *lpcs; HWND hwndInsertAfter; } CBT_CREATEWNDA, *LPCBT_CREATEWNDA; typedef struct { CREATESTRUCTW *lpcs; HWND hwndInsertAfter; } CBT_CREATEWNDW, *LPCBT_CREATEWNDW; DECL_WINELIB_TYPE_AW(CBT_CREATEWND) DECL_WINELIB_TYPE_AW(LPCBT_CREATEWND) typedef struct { WIN_BOOL fMouse; HWND hWndActive; } CBTACTIVATESTRUCT, *LPCBTACTIVATESTRUCT; /* modifiers for RegisterHotKey */ #define MOD_ALT 0x0001 #define MOD_CONTROL 0x0002 #define MOD_SHIFT 0x0004 #define MOD_WIN 0x0008 /* ids for RegisterHotKey */ #define IDHOT_SNAPWINDOW (-1) /* SHIFT-PRINTSCRN */ #define IDHOT_SNAPDESKTOP (-2) /* PRINTSCRN */ /* keybd_event flags */ #define KEYEVENTF_EXTENDEDKEY 0x0001 #define KEYEVENTF_KEYUP 0x0002 #define KEYEVENTF_WINE_FORCEEXTENDED 0x8000 /* mouse_event flags */ #define MOUSEEVENTF_MOVE 0x0001 #define MOUSEEVENTF_LEFTDOWN 0x0002 #define MOUSEEVENTF_LEFTUP 0x0004 #define MOUSEEVENTF_RIGHTDOWN 0x0008 #define MOUSEEVENTF_RIGHTUP 0x0010 #define MOUSEEVENTF_MIDDLEDOWN 0x0020 #define MOUSEEVENTF_MIDDLEUP 0x0040 #define MOUSEEVENTF_WHEEL 0x0800 #define MOUSEEVENTF_ABSOLUTE 0x8000 /* ExitWindows() flags */ #define EW_RESTARTWINDOWS 0x0042 #define EW_REBOOTSYSTEM 0x0043 #define EW_EXITANDEXECAPP 0x0044 /* ExitWindowsEx() flags */ #define EWX_LOGOFF 0 #define EWX_SHUTDOWN 1 #define EWX_REBOOT 2 #define EWX_FORCE 4 #define EWX_POWEROFF 8 /* SetLastErrorEx types */ #define SLE_ERROR 0x00000001 #define SLE_MINORERROR 0x00000002 #define SLE_WARNING 0x00000003 /* Predefined resources */ #define IDI_APPLICATIONA MAKEINTRESOURCEA(32512) #define IDI_APPLICATIONW MAKEINTRESOURCEW(32512) #define IDI_APPLICATION WINELIB_NAME_AW(IDI_APPLICATION) #define IDI_HANDA MAKEINTRESOURCEA(32513) #define IDI_HANDW MAKEINTRESOURCEW(32513) #define IDI_HAND WINELIB_NAME_AW(IDI_HAND) #define IDI_QUESTIONA MAKEINTRESOURCEA(32514) #define IDI_QUESTIONW MAKEINTRESOURCEW(32514) #define IDI_QUESTION WINELIB_NAME_AW(IDI_QUESTION) #define IDI_EXCLAMATIONA MAKEINTRESOURCEA(32515) #define IDI_EXCLAMATIONW MAKEINTRESOURCEW(32515) #define IDI_EXCLAMATION WINELIB_NAME_AW(IDI_EXCLAMATION) #define IDI_ASTERISKA MAKEINTRESOURCEA(32516) #define IDI_ASTERISKW MAKEINTRESOURCEW(32516) #define IDI_ASTERISK WINELIB_NAME_AW(IDI_ASTERISK) #define IDC_BUMMERA MAKEINTRESOURCEA(100) #define IDC_BUMMERW MAKEINTRESOURCEW(100) #define IDC_BUMMER WINELIB_NAME_AW(IDC_BUMMER) #define IDC_ARROWA MAKEINTRESOURCEA(32512) #define IDC_ARROWW MAKEINTRESOURCEW(32512) #define IDC_ARROW WINELIB_NAME_AW(IDC_ARROW) #define IDC_IBEAMA MAKEINTRESOURCEA(32513) #define IDC_IBEAMW MAKEINTRESOURCEW(32513) #define IDC_IBEAM WINELIB_NAME_AW(IDC_IBEAM) #define IDC_WAITA MAKEINTRESOURCEA(32514) #define IDC_WAITW MAKEINTRESOURCEW(32514) #define IDC_WAIT WINELIB_NAME_AW(IDC_WAIT) #define IDC_CROSSA MAKEINTRESOURCEA(32515) #define IDC_CROSSW MAKEINTRESOURCEW(32515) #define IDC_CROSS WINELIB_NAME_AW(IDC_CROSS) #define IDC_UPARROWA MAKEINTRESOURCEA(32516) #define IDC_UPARROWW MAKEINTRESOURCEW(32516) #define IDC_UPARROW WINELIB_NAME_AW(IDC_UPARROW) #define IDC_SIZEA MAKEINTRESOURCEA(32640) #define IDC_SIZEW MAKEINTRESOURCEW(32640) #define IDC_SIZE WINELIB_NAME_AW(IDC_SIZE) #define IDC_ICONA MAKEINTRESOURCEA(32641) #define IDC_ICONW MAKEINTRESOURCEW(32641) #define IDC_ICON WINELIB_NAME_AW(IDC_ICON) #define IDC_SIZENWSEA MAKEINTRESOURCEA(32642) #define IDC_SIZENWSEW MAKEINTRESOURCEW(32642) #define IDC_SIZENWSE WINELIB_NAME_AW(IDC_SIZENWSE) #define IDC_SIZENESWA MAKEINTRESOURCEA(32643) #define IDC_SIZENESWW MAKEINTRESOURCEW(32643) #define IDC_SIZENESW WINELIB_NAME_AW(IDC_SIZENESW) #define IDC_SIZEWEA MAKEINTRESOURCEA(32644) #define IDC_SIZEWEW MAKEINTRESOURCEW(32644) #define IDC_SIZEWE WINELIB_NAME_AW(IDC_SIZEWE) #define IDC_SIZENSA MAKEINTRESOURCEA(32645) #define IDC_SIZENSW MAKEINTRESOURCEW(32645) #define IDC_SIZENS WINELIB_NAME_AW(IDC_SIZENS) #define IDC_SIZEALLA MAKEINTRESOURCEA(32646) #define IDC_SIZEALLW MAKEINTRESOURCEW(32646) #define IDC_SIZEALL WINELIB_NAME_AW(IDC_SIZEALL) #define IDC_NOA MAKEINTRESOURCEA(32648) #define IDC_NOW MAKEINTRESOURCEW(32648) #define IDC_NO WINELIB_NAME_AW(IDC_NO) #define IDC_APPSTARTINGA MAKEINTRESOURCEA(32650) #define IDC_APPSTARTINGW MAKEINTRESOURCEW(32650) #define IDC_APPSTARTING WINELIB_NAME_AW(IDC_APPSTARTING) #define IDC_HELPA MAKEINTRESOURCEA(32651) #define IDC_HELPW MAKEINTRESOURCEW(32651) #define IDC_HELP WINELIB_NAME_AW(IDC_HELP) #define MNC_IGNORE 0 #define MNC_CLOSE 1 #define MNC_EXECUTE 2 #define MNC_SELECT 3 /* SystemParametersInfo */ /* defines below are for all win versions */ #define SPI_GETBEEP 1 #define SPI_SETBEEP 2 #define SPI_GETMOUSE 3 #define SPI_SETMOUSE 4 #define SPI_GETBORDER 5 #define SPI_SETBORDER 6 #define SPI_GETKEYBOARDSPEED 10 #define SPI_SETKEYBOARDSPEED 11 #define SPI_LANGDRIVER 12 #define SPI_ICONHORIZONTALSPACING 13 #define SPI_GETSCREENSAVETIMEOUT 14 #define SPI_SETSCREENSAVETIMEOUT 15 #define SPI_GETSCREENSAVEACTIVE 16 #define SPI_SETSCREENSAVEACTIVE 17 #define SPI_GETGRIDGRANULARITY 18 #define SPI_SETGRIDGRANULARITY 19 #define SPI_SETDESKWALLPAPER 20 #define SPI_SETDESKPATTERN 21 #define SPI_GETKEYBOARDDELAY 22 #define SPI_SETKEYBOARDDELAY 23 #define SPI_ICONVERTICALSPACING 24 #define SPI_GETICONTITLEWRAP 25 #define SPI_SETICONTITLEWRAP 26 #define SPI_GETMENUDROPALIGNMENT 27 #define SPI_SETMENUDROPALIGNMENT 28 #define SPI_SETDOUBLECLKWIDTH 29 #define SPI_SETDOUBLECLKHEIGHT 30 #define SPI_GETICONTITLELOGFONT 31 #define SPI_SETDOUBLECLICKTIME 32 #define SPI_SETMOUSEBUTTONSWAP 33 #define SPI_SETICONTITLELOGFONT 34 #define SPI_GETFASTTASKSWITCH 35 #define SPI_SETFASTTASKSWITCH 36 #define SPI_SETDRAGFULLWINDOWS 37 #define SPI_GETDRAGFULLWINDOWS 38 #define SPI_GETFILTERKEYS 50 #define SPI_SETFILTERKEYS 51 #define SPI_GETTOGGLEKEYS 52 #define SPI_SETTOGGLEKEYS 53 #define SPI_GETMOUSEKEYS 54 #define SPI_SETMOUSEKEYS 55 #define SPI_GETSHOWSOUNDS 56 #define SPI_SETSHOWSOUNDS 57 #define SPI_GETSTICKYKEYS 58 #define SPI_SETSTICKYKEYS 59 #define SPI_GETACCESSTIMEOUT 60 #define SPI_SETACCESSTIMEOUT 61 #define SPI_GETSOUNDSENTRY 64 #define SPI_SETSOUNDSENTRY 65 /* defines below are for all win versions WINVER >= 0x0400 */ #define SPI_SETDRAGFULLWINDOWS 37 #define SPI_GETDRAGFULLWINDOWS 38 #define SPI_GETNONCLIENTMETRICS 41 #define SPI_SETNONCLIENTMETRICS 42 #define SPI_GETMINIMIZEDMETRICS 43 #define SPI_SETMINIMIZEDMETRICS 44 #define SPI_GETICONMETRICS 45 #define SPI_SETICONMETRICS 46 #define SPI_SETWORKAREA 47 #define SPI_GETWORKAREA 48 #define SPI_SETPENWINDOWS 49 #define SPI_GETSERIALKEYS 62 #define SPI_SETSERIALKEYS 63 #define SPI_GETHIGHCONTRAST 66 #define SPI_SETHIGHCONTRAST 67 #define SPI_GETKEYBOARDPREF 68 #define SPI_SETKEYBOARDPREF 69 #define SPI_GETSCREENREADER 70 #define SPI_SETSCREENREADER 71 #define SPI_GETANIMATION 72 #define SPI_SETANIMATION 73 #define SPI_GETFONTSMOOTHING 74 #define SPI_SETFONTSMOOTHING 75 #define SPI_SETDRAGWIDTH 76 #define SPI_SETDRAGHEIGHT 77 #define SPI_SETHANDHELD 78 #define SPI_GETLOWPOWERTIMEOUT 79 #define SPI_GETPOWEROFFTIMEOUT 80 #define SPI_SETLOWPOWERTIMEOUT 81 #define SPI_SETPOWEROFFTIMEOUT 82 #define SPI_GETLOWPOWERACTIVE 83 #define SPI_GETPOWEROFFACTIVE 84 #define SPI_SETLOWPOWERACTIVE 85 #define SPI_SETPOWEROFFACTIVE 86 #define SPI_SETCURSORS 87 #define SPI_SETICONS 88 #define SPI_GETDEFAULTINPUTLANG 89 #define SPI_SETDEFAULTINPUTLANG 90 #define SPI_SETLANGTOGGLE 91 #define SPI_GETWINDOWSEXTENSION 92 #define SPI_SETMOUSETRAILS 93 #define SPI_GETMOUSETRAILS 94 #define SPI_SETSCREENSAVERRUNNING 97 #define SPI_SCREENSAVERRUNNING SPI_SETSCREENSAVERRUNNING /* defines below are for all win versions (_WIN32_WINNT >= 0x0400) || * (_WIN32_WINDOWS > 0x0400) */ #define SPI_GETMOUSEHOVERWIDTH 98 #define SPI_SETMOUSEHOVERWIDTH 99 #define SPI_GETMOUSEHOVERHEIGHT 100 #define SPI_SETMOUSEHOVERHEIGHT 101 #define SPI_GETMOUSEHOVERTIME 102 #define SPI_SETMOUSEHOVERTIME 103 #define SPI_GETWHEELSCROLLLINES 104 #define SPI_SETWHEELSCROLLLINES 105 #define SPI_GETSHOWIMEUI 110 #define SPI_SETSHOWIMEUI 111 /* defines below are for all win versions WINVER >= 0x0500 */ #define SPI_GETMOUSESPEED 112 #define SPI_SETMOUSESPEED 113 #define SPI_GETSCREENSAVERRUNNING 114 #define SPI_GETACTIVEWINDOWTRACKING 0x1000 #define SPI_SETACTIVEWINDOWTRACKING 0x1001 #define SPI_GETMENUANIMATION 0x1002 #define SPI_SETMENUANIMATION 0x1003 #define SPI_GETCOMBOBOXANIMATION 0x1004 #define SPI_SETCOMBOBOXANIMATION 0x1005 #define SPI_GETLISTBOXSMOOTHSCROLLING 0x1006 #define SPI_SETLISTBOXSMOOTHSCROLLING 0x1007 #define SPI_GETGRADIENTCAPTIONS 0x1008 #define SPI_SETGRADIENTCAPTIONS 0x1009 #define SPI_GETMENUUNDERLINES 0x100A #define SPI_SETMENUUNDERLINES 0x100B #define SPI_GETACTIVEWNDTRKZORDER 0x100C #define SPI_SETACTIVEWNDTRKZORDER 0x100D #define SPI_GETHOTTRACKING 0x100E #define SPI_SETHOTTRACKING 0x100F #define SPI_GETFOREGROUNDLOCKTIMEOUT 0x2000 #define SPI_SETFOREGROUNDLOCKTIMEOUT 0x2001 #define SPI_GETACTIVEWNDTRKTIMEOUT 0x2002 #define SPI_SETACTIVEWNDTRKTIMEOUT 0x2003 #define SPI_GETFOREGROUNDFLASHCOUNT 0x2004 #define SPI_SETFOREGROUNDFLASHCOUNT 0x2005 /* SystemParametersInfo flags */ #define SPIF_UPDATEINIFILE 1 #define SPIF_SENDWININICHANGE 2 #define SPIF_SENDCHANGE SPIF_SENDWININICHANGE /* Window Styles */ #define WS_OVERLAPPED 0x00000000L #define WS_POPUP 0x80000000L #define WS_CHILD 0x40000000L #define WS_MINIMIZE 0x20000000L #define WS_VISIBLE 0x10000000L #define WS_DISABLED 0x08000000L #define WS_CLIPSIBLINGS 0x04000000L #define WS_CLIPCHILDREN 0x02000000L #define WS_MAXIMIZE 0x01000000L #define WS_CAPTION 0x00C00000L #define WS_BORDER 0x00800000L #define WS_DLGFRAME 0x00400000L #define WS_VSCROLL 0x00200000L #define WS_HSCROLL 0x00100000L #define WS_SYSMENU 0x00080000L #define WS_THICKFRAME 0x00040000L #define WS_GROUP 0x00020000L #define WS_TABSTOP 0x00010000L #define WS_MINIMIZEBOX 0x00020000L #define WS_MAXIMIZEBOX 0x00010000L #define WS_TILED WS_OVERLAPPED #define WS_ICONIC WS_MINIMIZE #define WS_SIZEBOX WS_THICKFRAME #define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME| WS_MINIMIZEBOX | WS_MAXIMIZEBOX) #define WS_POPUPWINDOW (WS_POPUP | WS_BORDER | WS_SYSMENU) #define WS_CHILDWINDOW (WS_CHILD) #define WS_TILEDWINDOW (WS_OVERLAPPEDWINDOW) /* Window extended styles */ #define WS_EX_DLGMODALFRAME 0x00000001L #define WS_EX_DRAGDETECT 0x00000002L #define WS_EX_NOPARENTNOTIFY 0x00000004L #define WS_EX_TOPMOST 0x00000008L #define WS_EX_ACCEPTFILES 0x00000010L #define WS_EX_TRANSPARENT 0x00000020L /* New Win95/WinNT4 styles */ #define WS_EX_MDICHILD 0x00000040L #define WS_EX_TOOLWINDOW 0x00000080L #define WS_EX_WINDOWEDGE 0x00000100L #define WS_EX_CLIENTEDGE 0x00000200L #define WS_EX_CONTEXTHELP 0x00000400L #define WS_EX_RIGHT 0x00001000L #define WS_EX_LEFT 0x00000000L #define WS_EX_RTLREADING 0x00002000L #define WS_EX_LTRREADING 0x00000000L #define WS_EX_LEFTSCROLLBAR 0x00004000L #define WS_EX_RIGHTSCROLLBAR 0x00000000L #define WS_EX_CONTROLPARENT 0x00010000L #define WS_EX_STATICEDGE 0x00020000L #define WS_EX_APPWINDOW 0x00040000L #define WS_EX_OVERLAPPEDWINDOW (WS_EX_WINDOWEDGE|WS_EX_CLIENTEDGE) #define WS_EX_PALETTEWINDOW (WS_EX_WINDOWEDGE|WS_EX_TOOLWINDOW|WS_EX_TOPMOST) /* WINE internal... */ #define WS_EX_TRAYWINDOW 0x80000000L /* Window scrolling */ #define SW_SCROLLCHILDREN 0x0001 #define SW_INVALIDATE 0x0002 #define SW_ERASE 0x0004 /* CreateWindow() coordinates */ #define CW_USEDEFAULT ((INT)0x80000000) /* ChildWindowFromPointEx Flags */ #define CWP_ALL 0x0000 #define CWP_SKIPINVISIBLE 0x0001 #define CWP_SKIPDISABLED 0x0002 #define CWP_SKIPTRANSPARENT 0x0004 /* PeekMessage() options */ #define PM_NOREMOVE 0x0000 #define PM_REMOVE 0x0001 #define PM_NOYIELD 0x0002 /* WM_SHOWWINDOW wParam codes */ #define SW_PARENTCLOSING 1 #define SW_OTHERMAXIMIZED 2 #define SW_PARENTOPENING 3 #define SW_OTHERRESTORED 4 /* ShowWindow() codes */ #define SW_HIDE 0 #define SW_SHOWNORMAL 1 #define SW_NORMAL 1 #define SW_SHOWMINIMIZED 2 #define SW_SHOWMAXIMIZED 3 #define SW_MAXIMIZE 3 #define SW_SHOWNOACTIVATE 4 #define SW_SHOW 5 #define SW_MINIMIZE 6 #define SW_SHOWMINNOACTIVE 7 #define SW_SHOWNA 8 #define SW_RESTORE 9 #define SW_SHOWDEFAULT 10 #define SW_MAX 10 #define SW_NORMALNA 0xCC /* undoc. flag in MinMaximize */ /* WM_SIZE message wParam values */ #define SIZE_RESTORED 0 #define SIZE_MINIMIZED 1 #define SIZE_MAXIMIZED 2 #define SIZE_MAXSHOW 3 #define SIZE_MAXHIDE 4 #define SIZENORMAL SIZE_RESTORED #define SIZEICONIC SIZE_MINIMIZED #define SIZEFULLSCREEN SIZE_MAXIMIZED #define SIZEZOOMSHOW SIZE_MAXSHOW #define SIZEZOOMHIDE SIZE_MAXHIDE /* SetWindowPos() and WINDOWPOS flags */ #define SWP_NOSIZE 0x0001 #define SWP_NOMOVE 0x0002 #define SWP_NOZORDER 0x0004 #define SWP_NOREDRAW 0x0008 #define SWP_NOACTIVATE 0x0010 #define SWP_FRAMECHANGED 0x0020 /* The frame changed: send WM_NCCALCSIZE */ #define SWP_SHOWWINDOW 0x0040 #define SWP_HIDEWINDOW 0x0080 #define SWP_NOCOPYBITS 0x0100 #define SWP_NOOWNERZORDER 0x0200 /* Don't do owner Z ordering */ #define SWP_DRAWFRAME SWP_FRAMECHANGED #define SWP_NOREPOSITION SWP_NOOWNERZORDER #define SWP_NOSENDCHANGING 0x0400 #define SWP_DEFERERASE 0x2000 #define SWP_ASYNCWINDOWPOS 0x4000 #define HWND_DESKTOP ((HWND)0) #define HWND_BROADCAST ((HWND)0xffff) /* SetWindowPos() hwndInsertAfter field values */ #define HWND_TOP ((HWND)0) #define HWND_BOTTOM ((HWND)1) #define HWND_TOPMOST ((HWND)-1) #define HWND_NOTOPMOST ((HWND)-2) #define MF_INSERT 0x0000 #define MF_CHANGE 0x0080 #define MF_APPEND 0x0100 #define MF_DELETE 0x0200 #define MF_REMOVE 0x1000 #define MF_END 0x0080 #define MF_ENABLED 0x0000 #define MF_GRAYED 0x0001 #define MF_DISABLED 0x0002 #define MF_STRING 0x0000 #define MF_BITMAP 0x0004 #define MF_UNCHECKED 0x0000 #define MF_CHECKED 0x0008 #define MF_POPUP 0x0010 #define MF_MENUBARBREAK 0x0020 #define MF_MENUBREAK 0x0040 #define MF_UNHILITE 0x0000 #define MF_HILITE 0x0080 #define MF_OWNERDRAW 0x0100 #define MF_USECHECKBITMAPS 0x0200 #define MF_BYCOMMAND 0x0000 #define MF_BYPOSITION 0x0400 #define MF_SEPARATOR 0x0800 #define MF_DEFAULT 0x1000 #define MF_SYSMENU 0x2000 #define MF_HELP 0x4000 #define MF_RIGHTJUSTIFY 0x4000 #define MF_MOUSESELECT 0x8000 /* Flags for extended menu item types. */ #define MFT_STRING MF_STRING #define MFT_BITMAP MF_BITMAP #define MFT_MENUBARBREAK MF_MENUBARBREAK #define MFT_MENUBREAK MF_MENUBREAK #define MFT_OWNERDRAW MF_OWNERDRAW #define MFT_RADIOCHECK 0x00000200L #define MFT_SEPARATOR MF_SEPARATOR #define MFT_RIGHTORDER 0x00002000L #define MFT_RIGHTJUSTIFY MF_RIGHTJUSTIFY /* Flags for extended menu item states. */ #define MFS_GRAYED 0x00000003L #define MFS_DISABLED MFS_GRAYED #define MFS_CHECKED MF_CHECKED #define MFS_HILITE MF_HILITE #define MFS_ENABLED MF_ENABLED #define MFS_UNCHECKED MF_UNCHECKED #define MFS_UNHILITE MF_UNHILITE #define MFS_DEFAULT MF_DEFAULT #define MFS_MASK 0x0000108BL #define MFS_HOTTRACKDRAWN 0x10000000L #define MFS_CACHEDBMP 0x20000000L #define MFS_BOTTOMGAPDROP 0x40000000L #define MFS_TOPGAPDROP 0x80000000L #define MFS_GAPDROP 0xC0000000L /* for GetMenuDefaultItem */ #define GMDI_USEDISABLED 0x0001L #define GMDI_GOINTOPOPUPS 0x0002L #define DT_TOP 0 #define DT_LEFT 0 #define DT_CENTER 1 #define DT_RIGHT 2 #define DT_VCENTER 4 #define DT_BOTTOM 8 #define DT_WORDBREAK 16 #define DT_SINGLELINE 32 #define DT_EXPANDTABS 64 #define DT_TABSTOP 128 #define DT_NOCLIP 256 #define DT_EXTERNALLEADING 512 #define DT_CALCRECT 1024 #define DT_NOPREFIX 2048 #define DT_INTERNAL 4096 /* DrawCaption()/DrawCaptionTemp() flags */ #define DC_ACTIVE 0x0001 #define DC_SMALLCAP 0x0002 #define DC_ICON 0x0004 #define DC_TEXT 0x0008 #define DC_INBUTTON 0x0010 /* DrawEdge() flags */ #define BDR_RAISEDOUTER 0x0001 #define BDR_SUNKENOUTER 0x0002 #define BDR_RAISEDINNER 0x0004 #define BDR_SUNKENINNER 0x0008 #define BDR_OUTER 0x0003 #define BDR_INNER 0x000c #define BDR_RAISED 0x0005 #define BDR_SUNKEN 0x000a #define EDGE_RAISED (BDR_RAISEDOUTER | BDR_RAISEDINNER) #define EDGE_SUNKEN (BDR_SUNKENOUTER | BDR_SUNKENINNER) #define EDGE_ETCHED (BDR_SUNKENOUTER | BDR_RAISEDINNER) #define EDGE_BUMP (BDR_RAISEDOUTER | BDR_SUNKENINNER) /* border flags */ #define BF_LEFT 0x0001 #define BF_TOP 0x0002 #define BF_RIGHT 0x0004 #define BF_BOTTOM 0x0008 #define BF_DIAGONAL 0x0010 #define BF_MIDDLE 0x0800 /* Fill in the middle */ #define BF_SOFT 0x1000 /* For softer buttons */ #define BF_ADJUST 0x2000 /* Calculate the space left over */ #define BF_FLAT 0x4000 /* For flat rather than 3D borders */ #define BF_MONO 0x8000 /* For monochrome borders */ #define BF_TOPLEFT (BF_TOP | BF_LEFT) #define BF_TOPRIGHT (BF_TOP | BF_RIGHT) #define BF_BOTTOMLEFT (BF_BOTTOM | BF_LEFT) #define BF_BOTTOMRIGHT (BF_BOTTOM | BF_RIGHT) #define BF_RECT (BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM) #define BF_DIAGONAL_ENDTOPRIGHT (BF_DIAGONAL | BF_TOP | BF_RIGHT) #define BF_DIAGONAL_ENDTOPLEFT (BF_DIAGONAL | BF_TOP | BF_LEFT) #define BF_DIAGONAL_ENDBOTTOMLEFT (BF_DIAGONAL | BF_BOTTOM | BF_LEFT) #define BF_DIAGONAL_ENDBOTTOMRIGHT (BF_DIAGONAL | BF_BOTTOM | BF_RIGHT) /* DrawFrameControl() uType's */ #define DFC_CAPTION 1 #define DFC_MENU 2 #define DFC_SCROLL 3 #define DFC_BUTTON 4 /* uState's */ #define DFCS_CAPTIONCLOSE 0x0000 #define DFCS_CAPTIONMIN 0x0001 #define DFCS_CAPTIONMAX 0x0002 #define DFCS_CAPTIONRESTORE 0x0003 #define DFCS_CAPTIONHELP 0x0004 /* Windows 95 only */ #define DFCS_MENUARROW 0x0000 #define DFCS_MENUCHECK 0x0001 #define DFCS_MENUBULLET 0x0002 #define DFCS_MENUARROWRIGHT 0x0004 #define DFCS_SCROLLUP 0x0000 #define DFCS_SCROLLDOWN 0x0001 #define DFCS_SCROLLLEFT 0x0002 #define DFCS_SCROLLRIGHT 0x0003 #define DFCS_SCROLLCOMBOBOX 0x0005 #define DFCS_SCROLLSIZEGRIP 0x0008 #define DFCS_SCROLLSIZEGRIPRIGHT 0x0010 #define DFCS_BUTTONCHECK 0x0000 #define DFCS_BUTTONRADIOIMAGE 0x0001 #define DFCS_BUTTONRADIOMASK 0x0002 /* to draw nonsquare button */ #define DFCS_BUTTONRADIO 0x0004 #define DFCS_BUTTON3STATE 0x0008 #define DFCS_BUTTONPUSH 0x0010 /* additional state of the control */ #define DFCS_INACTIVE 0x0100 #define DFCS_PUSHED 0x0200 #define DFCS_CHECKED 0x0400 #define DFCS_ADJUSTRECT 0x2000 /* exclude surrounding edge */ #define DFCS_FLAT 0x4000 #define DFCS_MONO 0x8000 /* Image type */ #define DST_COMPLEX 0x0000 #define DST_TEXT 0x0001 #define DST_PREFIXTEXT 0x0002 #define DST_ICON 0x0003 #define DST_BITMAP 0x0004 /* State type */ #define DSS_NORMAL 0x0000 #define DSS_UNION 0x0010 /* Gray string appearance */ #define DSS_DISABLED 0x0020 #define DSS_DEFAULT 0x0040 /* Make it bold */ #define DSS_MONO 0x0080 #define DSS_RIGHT 0x8000 typedef struct { UINT CtlType; UINT CtlID; UINT itemID; UINT itemAction; UINT itemState; HWND hwndItem; HDC hDC; RECT rcItem WINE_PACKED; DWORD itemData WINE_PACKED; } DRAWITEMSTRUCT, *PDRAWITEMSTRUCT, *LPDRAWITEMSTRUCT; typedef struct { UINT CtlType; UINT CtlID; UINT itemID; UINT itemWidth; UINT itemHeight; DWORD itemData; } MEASUREITEMSTRUCT, *PMEASUREITEMSTRUCT, *LPMEASUREITEMSTRUCT; typedef struct { UINT CtlType; UINT CtlID; UINT itemID; HWND hwndItem; DWORD itemData; } DELETEITEMSTRUCT, *LPDELETEITEMSTRUCT; typedef struct { UINT CtlType; UINT CtlID; HWND hwndItem; UINT itemID1; DWORD itemData1; UINT itemID2; DWORD itemData2; DWORD dwLocaleId; } COMPAREITEMSTRUCT, *PCOMPAREITEMSTRUCT, *LPCOMPAREITEMSTRUCT; /* WM_KEYUP/DOWN/CHAR HIWORD(lParam) flags */ #define KF_EXTENDED 0x0100 #define KF_DLGMODE 0x0800 #define KF_MENUMODE 0x1000 #define KF_ALTDOWN 0x2000 #define KF_REPEAT 0x4000 #define KF_UP 0x8000 /* Virtual key codes */ #define VK_LBUTTON 0x01 #define VK_RBUTTON 0x02 #define VK_CANCEL 0x03 #define VK_MBUTTON 0x04 /* 0x05-0x07 Undefined */ #define VK_BACK 0x08 #define VK_TAB 0x09 /* 0x0A-0x0B Undefined */ #define VK_CLEAR 0x0C #define VK_RETURN 0x0D /* 0x0E-0x0F Undefined */ #define VK_SHIFT 0x10 #define VK_CONTROL 0x11 #define VK_MENU 0x12 #define VK_PAUSE 0x13 #define VK_CAPITAL 0x14 /* 0x15-0x19 Reserved for Kanji systems */ /* 0x1A Undefined */ #define VK_ESCAPE 0x1B /* 0x1C-0x1F Reserved for Kanji systems */ #define VK_SPACE 0x20 #define VK_PRIOR 0x21 #define VK_NEXT 0x22 #define VK_END 0x23 #define VK_HOME 0x24 #define VK_LEFT 0x25 #define VK_UP 0x26 #define VK_RIGHT 0x27 #define VK_DOWN 0x28 #define VK_SELECT 0x29 #define VK_PRINT 0x2A /* OEM specific in Windows 3.1 SDK */ #define VK_EXECUTE 0x2B #define VK_SNAPSHOT 0x2C #define VK_INSERT 0x2D #define VK_DELETE 0x2E #define VK_HELP 0x2F #define VK_0 0x30 #define VK_1 0x31 #define VK_2 0x32 #define VK_3 0x33 #define VK_4 0x34 #define VK_5 0x35 #define VK_6 0x36 #define VK_7 0x37 #define VK_8 0x38 #define VK_9 0x39 /* 0x3A-0x40 Undefined */ #define VK_A 0x41 #define VK_B 0x42 #define VK_C 0x43 #define VK_D 0x44 #define VK_E 0x45 #define VK_F 0x46 #define VK_G 0x47 #define VK_H 0x48 #define VK_I 0x49 #define VK_J 0x4A #define VK_K 0x4B #define VK_L 0x4C #define VK_M 0x4D #define VK_N 0x4E #define VK_O 0x4F #define VK_P 0x50 #define VK_Q 0x51 #define VK_R 0x52 #define VK_S 0x53 #define VK_T 0x54 #define VK_U 0x55 #define VK_V 0x56 #define VK_W 0x57 #define VK_X 0x58 #define VK_Y 0x59 #define VK_Z 0x5A #define VK_LWIN 0x5B #define VK_RWIN 0x5C #define VK_APPS 0x5D /* 0x5E-0x5F Unassigned */ #define VK_NUMPAD0 0x60 #define VK_NUMPAD1 0x61 #define VK_NUMPAD2 0x62 #define VK_NUMPAD3 0x63 #define VK_NUMPAD4 0x64 #define VK_NUMPAD5 0x65 #define VK_NUMPAD6 0x66 #define VK_NUMPAD7 0x67 #define VK_NUMPAD8 0x68 #define VK_NUMPAD9 0x69 #define VK_MULTIPLY 0x6A #define VK_ADD 0x6B #define VK_SEPARATOR 0x6C #define VK_SUBTRACT 0x6D #define VK_DECIMAL 0x6E #define VK_DIVIDE 0x6F #define VK_F1 0x70 #define VK_F2 0x71 #define VK_F3 0x72 #define VK_F4 0x73 #define VK_F5 0x74 #define VK_F6 0x75 #define VK_F7 0x76 #define VK_F8 0x77 #define VK_F9 0x78 #define VK_F10 0x79 #define VK_F11 0x7A #define VK_F12 0x7B #define VK_F13 0x7C #define VK_F14 0x7D #define VK_F15 0x7E #define VK_F16 0x7F #define VK_F17 0x80 #define VK_F18 0x81 #define VK_F19 0x82 #define VK_F20 0x83 #define VK_F21 0x84 #define VK_F22 0x85 #define VK_F23 0x86 #define VK_F24 0x87 /* 0x88-0x8F Unassigned */ #define VK_NUMLOCK 0x90 #define VK_SCROLL 0x91 /* 0x92-0x9F Unassigned */ /* * differencing between right and left shift/control/alt key. * Used only by GetAsyncKeyState() and GetKeyState(). */ #define VK_LSHIFT 0xA0 #define VK_RSHIFT 0xA1 #define VK_LCONTROL 0xA2 #define VK_RCONTROL 0xA3 #define VK_LMENU 0xA4 #define VK_RMENU 0xA5 /* 0xA6-0xB9 Unassigned */ #define VK_OEM_1 0xBA #define VK_OEM_PLUS 0xBB #define VK_OEM_COMMA 0xBC #define VK_OEM_MINUS 0xBD #define VK_OEM_PERIOD 0xBE #define VK_OEM_2 0xBF #define VK_OEM_3 0xC0 /* 0xC1-0xDA Unassigned */ #define VK_OEM_4 0xDB #define VK_OEM_5 0xDC #define VK_OEM_6 0xDD #define VK_OEM_7 0xDE /* 0xDF-0xE4 OEM specific */ #define VK_PROCESSKEY 0xE5 /* 0xE6 OEM specific */ /* 0xE7-0xE8 Unassigned */ /* 0xE9-0xF5 OEM specific */ #define VK_ATTN 0xF6 #define VK_CRSEL 0xF7 #define VK_EXSEL 0xF8 #define VK_EREOF 0xF9 #define VK_PLAY 0xFA #define VK_ZOOM 0xFB #define VK_NONAME 0xFC #define VK_PA1 0xFD #define VK_OEM_CLEAR 0xFE /* Key status flags for mouse events */ #define MK_LBUTTON 0x0001 #define MK_RBUTTON 0x0002 #define MK_SHIFT 0x0004 #define MK_CONTROL 0x0008 #define MK_MBUTTON 0x0010 /* Queue status flags */ #define QS_KEY 0x0001 #define QS_MOUSEMOVE 0x0002 #define QS_MOUSEBUTTON 0x0004 #define QS_MOUSE (QS_MOUSEMOVE | QS_MOUSEBUTTON) #define QS_POSTMESSAGE 0x0008 #define QS_TIMER 0x0010 #define QS_PAINT 0x0020 #define QS_SENDMESSAGE 0x0040 #define QS_HOTKEY 0x0080 #define QS_INPUT (QS_MOUSE | QS_KEY) #define QS_ALLEVENTS (QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY) #define QS_ALLINPUT (QS_ALLEVENTS | QS_SENDMESSAGE) #define DDL_READWRITE 0x0000 #define DDL_READONLY 0x0001 #define DDL_HIDDEN 0x0002 #define DDL_SYSTEM 0x0004 #define DDL_DIRECTORY 0x0010 #define DDL_ARCHIVE 0x0020 #define DDL_POSTMSGS 0x2000 #define DDL_DRIVES 0x4000 #define DDL_EXCLUSIVE 0x8000 /* Shell hook values */ #define HSHELL_WINDOWCREATED 1 #define HSHELL_WINDOWDESTROYED 2 #define HSHELL_ACTIVATESHELLWINDOW 3 /* Predefined Clipboard Formats */ #define CF_TEXT 1 #define CF_BITMAP 2 #define CF_METAFILEPICT 3 #define CF_SYLK 4 #define CF_DIF 5 #define CF_TIFF 6 #define CF_OEMTEXT 7 #define CF_DIB 8 #define CF_PALETTE 9 #define CF_PENDATA 10 #define CF_RIFF 11 #define CF_WAVE 12 #define CF_ENHMETAFILE 14 #define CF_HDROP 15 #define CF_LOCALE 16 #define CF_MAX 17 #define CF_OWNERDISPLAY 0x0080 #define CF_DSPTEXT 0x0081 #define CF_DSPBITMAP 0x0082 #define CF_DSPMETAFILEPICT 0x0083 /* "Private" formats don't get GlobalFree()'d */ #define CF_PRIVATEFIRST 0x0200 #define CF_PRIVATELAST 0x02FF /* "GDIOBJ" formats do get DeleteObject()'d */ #define CF_GDIOBJFIRST 0x0300 #define CF_GDIOBJLAST 0x03FF /* DragObject stuff */ typedef struct { HWND16 hWnd; HANDLE16 hScope; WORD wFlags; HANDLE16 hList; HANDLE16 hOfStruct; POINT16 pt WINE_PACKED; LONG l WINE_PACKED; } DRAGINFO, *LPDRAGINFO; #define DRAGOBJ_PROGRAM 0x0001 #define DRAGOBJ_DATA 0x0002 #define DRAGOBJ_DIRECTORY 0x0004 #define DRAGOBJ_MULTIPLE 0x0008 #define DRAGOBJ_EXTERNAL 0x8000 #define DRAG_PRINT 0x544E5250 #define DRAG_FILE 0x454C4946 /* types of LoadImage */ #define IMAGE_BITMAP 0 #define IMAGE_ICON 1 #define IMAGE_CURSOR 2 #define IMAGE_ENHMETAFILE 3 /* loadflags to LoadImage */ #define LR_DEFAULTCOLOR 0x0000 #define LR_MONOCHROME 0x0001 #define LR_COLOR 0x0002 #define LR_COPYRETURNORG 0x0004 #define LR_COPYDELETEORG 0x0008 #define LR_LOADFROMFILE 0x0010 #define LR_LOADTRANSPARENT 0x0020 #define LR_DEFAULTSIZE 0x0040 #define LR_VGA_COLOR 0x0080 #define LR_LOADMAP3DCOLORS 0x1000 #define LR_CREATEDIBSECTION 0x2000 #define LR_COPYFROMRESOURCE 0x4000 #define LR_SHARED 0x8000 /* Flags for DrawIconEx. */ #define DI_MASK 1 #define DI_IMAGE 2 #define DI_NORMAL (DI_MASK | DI_IMAGE) #define DI_COMPAT 4 #define DI_DEFAULTSIZE 8 /* misc messages */ #define WM_CPL_LAUNCH (WM_USER + 1000) #define WM_CPL_LAUNCHED (WM_USER + 1001) /* WM_NOTIFYFORMAT commands and return values */ #define NFR_ANSI 1 #define NFR_UNICODE 2 #define NF_QUERY 3 #define NF_REQUERY 4 #include "poppack.h" #define EnumTaskWindows(handle,proc,lparam) \ EnumThreadWindows(handle,proc,lparam) #define OemToAnsiA OemToCharA #define OemToAnsiW OemToCharW #define OemToAnsi WINELIB_NAME_AW(OemToAnsi) #define OemToAnsiBuffA OemToCharBuffA #define OemToAnsiBuffW OemToCharBuffW #define OemToAnsiBuff WINELIB_NAME_AW(OemToAnsiBuff) #define AnsiToOemA CharToOemA #define AnsiToOemW CharToOemW #define AnsiToOem WINELIB_NAME_AW(AnsiToOem) #define AnsiToOemBuffA CharToOemBuffA #define AnsiToOemBuffW CharToOemBuffW #define AnsiToOemBuff WINELIB_NAME_AW(AnsiToOemBuff) /* NOTE: This is SYSTEM.3, not USER.182, which is also named KillSystemTimer */ WORD WINAPI SYSTEM_KillSystemTimer( WORD ); /* Extra functions that don't exist in the Windows API */ HPEN WINAPI GetSysColorPen(INT); INT WINAPI LoadMessageA(HMODULE,UINT,WORD,LPSTR,INT); INT WINAPI LoadMessageW(HMODULE,UINT,WORD,LPWSTR,INT); VOID WINAPI ScreenSwitchEnable16(WORD); #define WC_DIALOG (LPSTR)((DWORD)((WORD)( 0x8002))) #ifdef __cplusplus } #endif #endif /* _WINUSER_ */ bml-0.6.1/dllwrapper/wine/pshpack2.h0000644042355400116100000000072211576362500014227 00000000000000#ifndef __WINE_PSHPACK_H #define __WINE_PSHPACK_H 2 #if defined(__GNUC__) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) || defined(__ICC) #pragma pack(2) #elif !defined(RC_INVOKED) #error "2 as alignment isn't supported by the compiler" #endif /* defined(__GNUC__) || defined(__SUNPRO_CC) ; !defined(RC_INVOKED) */ #else /* !defined(__WINE_PSHPACK_H) */ #error "Nested pushing of alignment isn't supported by the compiler" #endif /* !defined(__WINE_PSHPACK_H) */ bml-0.6.1/dllwrapper/wine/module.h0000644042355400116100000000703611576362500014006 00000000000000/* * Module definitions * * Copyright 1995 Alexandre Julliard */ #ifndef __WINE_MODULE_H #define __WINE_MODULE_H #include "windef.h" #include "pe_image.h" typedef struct { BYTE type; BYTE flags; BYTE segnum; WORD offs WINE_PACKED; } ET_ENTRY; typedef struct { WORD first; /* ordinal */ WORD last; /* ordinal */ WORD next; /* bundle */ } ET_BUNDLE; /* In-memory segment table */ typedef struct { WORD filepos; /* Position in file, in sectors */ WORD size; /* Segment size on disk */ WORD flags; /* Segment flags */ WORD minsize; /* Min. size of segment in memory */ HANDLE16 hSeg; /* Selector or handle (selector - 1) */ /* of segment in memory */ } SEGTABLEENTRY; /* Self-loading modules contain this structure in their first segment */ #include "pshpack1.h" typedef struct { WORD version; /* Must be "A0" (0x3041) */ WORD reserved; FARPROC16 BootApp; /* startup procedure */ FARPROC16 LoadAppSeg; /* procedure to load a segment */ FARPROC16 reserved2; FARPROC16 MyAlloc; /* memory allocation procedure, * wine must write this field */ FARPROC16 EntryAddrProc; FARPROC16 ExitProc; /* exit procedure */ WORD reserved3[4]; FARPROC16 SetOwner; /* Set Owner procedure, exported by wine */ } SELFLOADHEADER; /* Parameters for LoadModule() */ typedef struct { HGLOBAL16 hEnvironment; /* Environment segment */ SEGPTR cmdLine WINE_PACKED; /* Command-line */ SEGPTR showCmd WINE_PACKED; /* Code for ShowWindow() */ SEGPTR reserved WINE_PACKED; } LOADPARAMS16; typedef struct { LPSTR lpEnvAddress; LPSTR lpCmdLine; UINT16 *lpCmdShow; DWORD dwReserved; } LOADPARAMS; #include "poppack.h" /* internal representation of 32bit modules. per process. */ typedef enum { MODULE32_PE = 1, MODULE32_ELF, MODULE32_ELFDLL } MODULE32_TYPE; typedef struct _wine_modref { struct _wine_modref *next; struct _wine_modref *prev; MODULE32_TYPE type; union { PE_MODREF pe; ELF_MODREF elf; } binfmt; HMODULE module; int nDeps; struct _wine_modref **deps; int flags; int refCount; char *filename; char *modname; char *short_filename; char *short_modname; } WINE_MODREF; #define WINE_MODREF_INTERNAL 0x00000001 #define WINE_MODREF_NO_DLL_CALLS 0x00000002 #define WINE_MODREF_PROCESS_ATTACHED 0x00000004 #define WINE_MODREF_LOAD_AS_DATAFILE 0x00000010 #define WINE_MODREF_DONT_RESOLVE_REFS 0x00000020 #define WINE_MODREF_MARKER 0x80000000 /* Resource types */ typedef struct resource_typeinfo_s NE_TYPEINFO; typedef struct resource_nameinfo_s NE_NAMEINFO; #define NE_SEG_TABLE(pModule) \ ((SEGTABLEENTRY *)((char *)(pModule) + (pModule)->seg_table)) #define NE_MODULE_TABLE(pModule) \ ((WORD *)((char *)(pModule) + (pModule)->modref_table)) #define NE_MODULE_NAME(pModule) \ (((OFSTRUCT *)((char*)(pModule) + (pModule)->fileinfo))->szPathName) struct modref_list_t; typedef struct modref_list_t { WINE_MODREF* wm; struct modref_list_t *next; struct modref_list_t *prev; } modref_list; /* module.c */ extern FARPROC MODULE_GetProcAddress( HMODULE hModule, LPCSTR function, WIN_BOOL snoop ); extern WINE_MODREF *MODULE32_LookupHMODULE( HMODULE hModule ); extern WINE_MODREF *MODULE_FindModule( LPCSTR path ); /* resource.c */ extern INT WINAPI AccessResource(HMODULE,HRSRC); #endif /* __WINE_MODULE_H */ bml-0.6.1/dllwrapper/wine/registry.h0000644042355400116100000000235211576362500014365 00000000000000#ifndef AVIFILE_REGISTRY_H #define AVIFILE_REGISTRY_H /******************************************************** * * Declaration of registry access functions * Copyright 2000 Eugene Kuznetsov (divx@euro.ru) * ********************************************************/ #ifdef __cplusplus extern "C" { #endif void free_registry(void); long RegOpenKeyExA(long key, const char* subkey, long reserved, long access, int* newkey); long RegCloseKey(long key); long RegQueryValueExA(long key, const char* value, int* reserved, int* type, int* data, int* count); long RegCreateKeyExA(long key, const char* name, long reserved, void* classs, long options, long security, void* sec_attr, int* newkey, int* status); long RegSetValueExA(long key, const char* name, long v1, long v2, const void* data, long size); #ifdef __WINE_WINERROR_H long RegEnumKeyExA(HKEY hKey, DWORD dwIndex, LPSTR lpName, LPDWORD lpcbName, LPDWORD lpReserved, LPSTR lpClass, LPDWORD lpcbClass, LPFILETIME lpftLastWriteTime); long RegEnumValueA(HKEY hkey, DWORD index, LPSTR value, LPDWORD val_count, LPDWORD reserved, LPDWORD type, LPBYTE data, LPDWORD count); #endif #ifdef __cplusplus }; #endif #endif // AVIFILE_REGISTRY_H bml-0.6.1/dllwrapper/wine/vfl.c0000644042355400116100000001301011576362500013270 00000000000000/* * Copyright 1998 Marcus Meissner */ #include #include #include #include #include "win32.h" #include "loader.h" #include "winbase.h" #include "windef.h" #include "winuser.h" #include "vfw.h" #include "winestring.h" #include "driver.h" #include "avifmt.h" #include "driver.h" #define FIXME_(X) printf #define FIXME printf #define OpenDriverA DrvOpen #define CloseDriver DrvClose /*********************************************************************** * VideoForWindowsVersion [MSVFW.2][MSVIDEO.2] * Returns the version in major.minor form. * In Windows95 this returns 0x040003b6 (4.950) */ long VFWAPI VideoForWindowsVersion(void) { return 0x040003B6; /* 4.950 */ } /* system.ini: [drivers] */ /*********************************************************************** * ICInfo [MSVFW.33] * Get information about an installable compressor. Return TRUE if there * is one. */ int VFWAPI ICInfo( long fccType, /* [in] type of compressor ('vidc') */ long fccHandler, /* [in] th compressor */ ICINFO *lpicinfo /* [out] information about compressor */ ) { /* does OpenDriver/CloseDriver */ lpicinfo->dwSize = sizeof(ICINFO); lpicinfo->fccType = fccType; lpicinfo->dwFlags = 0; return TRUE; } /*********************************************************************** * ICOpen [MSVFW.37] * Opens an installable compressor. Return special handle. */ HIC VFWAPI //ICOpen(long fccType,long fccHandler,unsigned int wMode) { ICOpen(long filename,long fccHandler,unsigned int wMode) { ICOPEN icopen; HDRVR hdrv; WINE_HIC *whic; /* Well, lParam2 is in fact a LPVIDEO_OPEN_PARMS, but it has the * same layout as ICOPEN */ icopen.fccType = 0x63646976; // "vidc" //fccType; icopen.fccHandler = fccHandler; icopen.dwSize = sizeof(ICOPEN); icopen.dwFlags = wMode; icopen.pV1Reserved = (void*)filename; /* FIXME: do we need to fill out the rest too? */ hdrv=OpenDriverA((long)&icopen); if (!hdrv) return 0; whic = (WINE_HIC*)malloc(sizeof(WINE_HIC)); whic->hdrv = hdrv; whic->driverproc= ((DRVR*)hdrv)->DriverProc; // whic->private = ICSendMessage((HIC)whic,DRV_OPEN,0,(long)&icopen); whic->driverid = ((DRVR*)hdrv)->dwDriverID; return (HIC)whic; } /*********************************************************************** * ICGetInfo [MSVFW.30] */ LRESULT VFWAPI ICGetInfo(HIC hic,ICINFO *picinfo,long cb) { LRESULT ret; ret = ICSendMessage(hic,ICM_GETINFO,(long)picinfo,cb); return ret; } /*********************************************************************** * ICCompress [MSVFW.23] */ long VFWAPIV ICCompress( HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiOutput,void* lpData, LPBITMAPINFOHEADER lpbiInput,void* lpBits,long* lpckid, long* lpdwFlags,long lFrameNum,long dwFrameSize,long dwQuality, LPBITMAPINFOHEADER lpbiPrev,void* lpPrev ) { ICCOMPRESS iccmp; iccmp.dwFlags = dwFlags; iccmp.lpbiOutput = lpbiOutput; iccmp.lpOutput = lpData; iccmp.lpbiInput = lpbiInput; iccmp.lpInput = lpBits; iccmp.lpckid = lpckid; iccmp.lpdwFlags = lpdwFlags; iccmp.lFrameNum = lFrameNum; iccmp.dwFrameSize = dwFrameSize; iccmp.dwQuality = dwQuality; iccmp.lpbiPrev = lpbiPrev; iccmp.lpPrev = lpPrev; return ICSendMessage(hic,ICM_COMPRESS,(long)&iccmp,sizeof(iccmp)); } /*********************************************************************** * ICDecompress [MSVFW.26] */ long VFWAPIV ICDecompress(HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiFormat,void* lpData,LPBITMAPINFOHEADER lpbi,void* lpBits) { ICDECOMPRESS icd; int result; icd.dwFlags = dwFlags; icd.lpbiInput = lpbiFormat; icd.lpInput = lpData; icd.lpbiOutput = lpbi; icd.lpOutput = lpBits; icd.ckid = 0; result=ICSendMessage(hic,ICM_DECOMPRESS,(long)&icd,sizeof(icd)); return result; } /*********************************************************************** * ICDecompressEx [MSVFW.26] */ long VFWAPIV ICDecompressEx(HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiFormat,void* lpData,LPBITMAPINFOHEADER lpbi,void* lpBits) { ICDECOMPRESSEX icd; int result; icd.dwFlags = dwFlags; icd.lpbiSrc = lpbiFormat; icd.lpSrc = lpData; icd.lpbiDst = lpbi; icd.lpDst = lpBits; icd.xSrc=icd.ySrc=0; icd.dxSrc=lpbiFormat->biWidth; icd.dySrc=abs(lpbiFormat->biHeight); icd.xDst=icd.yDst=0; icd.dxDst=lpbi->biWidth; icd.dyDst=abs(lpbi->biHeight); //icd.ckid = 0; result=ICSendMessage(hic,ICM_DECOMPRESSEX,(long)&icd,sizeof(icd)); return result; } long VFWAPIV ICUniversalEx(HIC hic,int command,LPBITMAPINFOHEADER lpbiFormat,LPBITMAPINFOHEADER lpbi) { ICDECOMPRESSEX icd; int result; icd.dwFlags = 0; icd.lpbiSrc = lpbiFormat; icd.lpSrc = 0; icd.lpbiDst = lpbi; icd.lpDst = 0; icd.xSrc=icd.ySrc=0; icd.dxSrc=lpbiFormat->biWidth; icd.dySrc=abs(lpbiFormat->biHeight); icd.xDst=icd.yDst=0; icd.dxDst=lpbi->biWidth; icd.dyDst=abs(lpbi->biHeight); //icd.ckid = 0; result=ICSendMessage(hic,command,(long)&icd,sizeof(icd)); return result; } /*********************************************************************** * ICSendMessage [MSVFW.40] */ LRESULT VFWAPI ICSendMessage(HIC hic,unsigned int msg,long lParam1,long lParam2) { WINE_HIC *whic = (WINE_HIC*)hic; return SendDriverMessage(whic->hdrv, msg, lParam1,lParam2); } /*********************************************************************** * ICClose [MSVFW.22] */ LRESULT VFWAPI ICClose(HIC hic) { WINE_HIC *whic = (WINE_HIC*)hic; /* FIXME: correct? */ // CloseDriver(whic->hdrv,0,0); DrvClose(whic->hdrv); //#warning FIXME: DrvClose free(whic); return 0; } int VFWAPI ICDoSomething() { return 0; } bml-0.6.1/dllwrapper/wine/registry.c0000644042355400116100000002672211666464225014376 00000000000000#include "config.h" #include #include #include #include #include #include #include "winbase.h" #include "winreg.h" #include "winnt.h" #include "winerror.h" #include "ext.h" #include "registry.h" #include "debugtools.h" //#undef TRACE //#define TRACE printf extern char *get_path ( char * ); // ...can be set before init_registry() call char* regpathname = NULL; static char* localregpathname = NULL; typedef struct reg_handle_s { int handle; char* name; struct reg_handle_s* next; struct reg_handle_s* prev; } reg_handle_t; struct reg_value { int type; char* name; int len; char* value; }; static struct reg_value* regs = NULL; static int reg_size; static reg_handle_t* head = NULL; #define DIR -25 static void create_registry(void); static void open_registry(void); static void save_registry(void); static void init_registry(void); static void create_registry(void){ if(regs) { printf("Logic error: create_registry() called with existing registry\n"); save_registry(); return; } regs=(struct reg_value*)malloc(3*sizeof(struct reg_value)); regs[0].type=regs[1].type=DIR; regs[0].name=(char*)malloc(5); strcpy(regs[0].name, "HKLM"); regs[1].name=(char*)malloc(5); strcpy(regs[1].name, "HKCU"); regs[0].value=regs[1].value=NULL; regs[0].len=regs[1].len=0; reg_size=2; head = 0; save_registry(); } static void open_registry(void) { int fd; int i; unsigned int len; size_t res; if(regs) { printf("Multiple open_registry(>\n"); return; } fd = open(localregpathname, O_RDONLY); if (fd == -1) { printf("Creating new registry\n"); create_registry(); return; } res=read(fd, ®_size, 4); regs=(struct reg_value*)malloc(reg_size*sizeof(struct reg_value)); head = 0; for(i=0; iname) free(t->name); t=t->prev; free(f); } head = 0; if (regs) { int i; for(i=0; iprev) { if(!strcmp(t->name, name)) { return t; } } return 0; } #endif static struct reg_value* find_value_by_name(const char* name) { int i; for(i=0; iprev) { if(t->handle==handle) { return t; } } return 0; } static int generate_handle() { static int zz=249; zz++; while((zz==HKEY_LOCAL_MACHINE) || (zz==HKEY_CURRENT_USER)) zz++; return zz; } static reg_handle_t* insert_handle(long handle, const char* name) { reg_handle_t* t; t=(reg_handle_t*)malloc(sizeof(reg_handle_t)); if(head==0) { t->prev=0; } else { head->next=t; t->prev=head; } t->next=0; t->name=(char*)malloc(strlen(name)+1); strcpy(t->name, name); t->handle=handle; head=t; return t; } static char* build_keyname(long key, const char* subkey) { char* full_name; reg_handle_t* t; if((t=find_handle(key))==0) { TRACE("Invalid key\n"); return NULL; } if(subkey==NULL) subkey=""; full_name=(char*)malloc(strlen(t->name)+strlen(subkey)+10); strcpy(full_name, t->name); strcat(full_name, "\\"); strcat(full_name, subkey); return full_name; } static struct reg_value* insert_reg_value(int handle, const char* name, int type, const void* value, int len) { /* reg_handle_t* t; -- unused */ struct reg_value* v; char* fullname; if((fullname=build_keyname(handle, name))==NULL) { TRACE("Invalid handle\n"); return NULL; } if((v=find_value_by_name(fullname))==0) //creating new value in registry { if(regs==0) create_registry(); regs=(struct reg_value*)realloc(regs, sizeof(struct reg_value)*(reg_size+1)); //regs=(struct reg_value*)my_realloc(regs, sizeof(struct reg_value)*(reg_size+1)); v=regs+reg_size; reg_size++; } else //replacing old one { free(v->value); free(v->name); } v->type=type; v->len=len; v->value=(char*)malloc(len); memcpy(v->value, value, len); v->name=(char*)malloc(strlen(fullname)+1); strcpy(v->name, fullname); free(fullname); save_registry(); return v; } static void init_registry(void) { TRACE("Initializing registry\n"); // can't be free-ed - it's static and probably thread // unsafe structure which is stored in glibc #ifdef MPLAYER regpathname = get_path("registry"); localregpathname = regpathname; #else #ifdef XINE_MAJOR localregpathname = (char *)malloc(strlen(xine_get_homedir()) + 21); sprintf(localregpathname, "%s/.xine/win32registry", xine_get_homedir()); #else // regpathname is an external pointer // // registry.c is holding it's own internal pointer // localregpathname - which is being allocate/deallocated if (localregpathname == 0) { /* FIXME: use .config or something like it */ const char* pthn = regpathname; if (!regpathname) { // avifile - for now reading data from user's home struct passwd* pwent; pwent = getpwuid(geteuid()); pthn = pwent->pw_dir; } localregpathname = (char*)malloc(strlen(pthn)+20); strcpy(localregpathname, pthn); strcat(localregpathname, "/.registry"); } #endif #endif open_registry(); insert_handle(HKEY_LOCAL_MACHINE, "HKLM"); insert_handle(HKEY_CURRENT_USER, "HKCU"); /* FIXME: fake a buzz registry jeskola\buzz\settings\audio jeskola\buzz\settings\theme jeskola\buzz\settings\buzzpath */ } #if 0 /* UNUSED function */ static reg_handle_t* find_handle_2(long key, const char* subkey) { char* full_name; reg_handle_t* t; if((t=find_handle(key))==0) { TRACE("Invalid key\n"); return (reg_handle_t*)-1; } if(subkey==NULL) return t; full_name=(char*)malloc(strlen(t->name)+strlen(subkey)+10); strcpy(full_name, t->name); strcat(full_name, "\\"); strcat(full_name, subkey); t=find_handle_by_name(full_name); free(full_name); return t; } #endif long RegOpenKeyExA(long key, const char* subkey, long reserved, long access, int* newkey) { char* full_name; reg_handle_t* t; /*struct reg_value* v;*/ if(!regs) init_registry(); TRACE("Opening key %s\n", subkey); /* t=find_handle_2(key, subkey); if(t==0) return -1; if(t==(reg_handle_t*)-1) return -1; */ full_name=build_keyname(key, subkey); if(!full_name) return -1; TRACE("Opening key Fullname %s\n", full_name); /*v=*/find_value_by_name(full_name); t=insert_handle(generate_handle(), full_name); *newkey=t->handle; free(full_name); return 0; } long RegCloseKey(long key) { reg_handle_t *handle; if(key==HKEY_LOCAL_MACHINE) return 0; if(key==HKEY_CURRENT_USER) return 0; handle=find_handle(key); if(handle==0) return 0; if(handle->prev) handle->prev->next=handle->next; if(handle->next) handle->next->prev=handle->prev; if(handle->name) free(handle->name); if(handle==head) head=head->prev; free(handle); return 1; } long RegQueryValueExA(long key, const char* value, int* reserved, int* type, int* data, int* count) { struct reg_value* t; char* c; if(!regs) init_registry(); TRACE("Querying value %s\n", value); c=build_keyname(key, value); if (!c) return 1; t=find_value_by_name(c); free(c); if (t==0) return 2; if (type) *type=t->type; if (data) { memcpy(data, t->value, (t->len<*count)?t->len:*count); TRACE("returning %d bytes: %d\n", t->len, *(int*)data); } if(*countlen) { *count=t->len; return ERROR_MORE_DATA; } else { *count=t->len; } return 0; } long RegCreateKeyExA(long key, const char* name, long reserved, void* classs, long options, long security, void* sec_attr, int* newkey, int* status) { reg_handle_t* t; char* fullname; struct reg_value* v; if(!regs) init_registry(); //TRACE("Creating/Opening key %s\n", name); fullname=build_keyname(key, name); if (!fullname) return 1; TRACE("Creating/Opening key %s\n", fullname); v=find_value_by_name(fullname); if(v==0) { int qw=45708; /*v=*/insert_reg_value(key, name, DIR, &qw, 4); if (status) *status=REG_CREATED_NEW_KEY; // return 0; } t=insert_handle(generate_handle(), fullname); *newkey=t->handle; free(fullname); return 0; } /* LONG RegEnumValue( HKEY hKey, // handle to key to query DWORD dwIndex, // index of value to query LPTSTR lpValueName, // address of buffer for value string LPDWORD lpcbValueName, // address for size of value buffer LPDWORD lpReserved, // reserved LPDWORD lpType, // address of buffer for type code LPBYTE lpData, // address of buffer for value data LPDWORD lpcbData // address for size of data buffer ); */ long RegEnumValueA(HKEY hkey, DWORD index, LPSTR value, LPDWORD val_count, LPDWORD reserved, LPDWORD type, LPBYTE data, LPDWORD count) { // currenly just made to support MSZH & ZLIB TRACE("Reg Enum 0x%x %d %s %d data: %p %d %d >%s<\n", hkey, index, value, *val_count, data, *count, reg_size, data); reg_handle_t* t = find_handle(hkey); if (t && index < 10) { struct reg_value* v=find_value_by_name(t->name); if (v) { memcpy(data, v->value, (v->len < *count) ? v->len : *count); if(*count < v->len) *count = v->len; if (type) *type = v->type; //printf("Found handle %s\n", v->name); return 0; } } return ERROR_NO_MORE_ITEMS; } long RegSetValueExA(long key, const char* name, long v1, long v2, const void* data, long size) { /* struct reg_value* t; -- unused */ char* c; TRACE("Request to set value %s\n", name); if(!regs) init_registry(); c=build_keyname(key, name); if(c==NULL) return 1; insert_reg_value(key, name, v2, data, size); free(c); return 0; } long RegEnumKeyExA(HKEY hKey, DWORD dwIndex, LPSTR lpName, LPDWORD lpcbName, LPDWORD lpReserved, LPSTR lpClass, LPDWORD lpcbClass, LPFILETIME lpftLastWriteTime) { return ERROR_NO_MORE_ITEMS; } bml-0.6.1/dllwrapper/wine/Makefile.in0000644042355400116100000010427411701127005014404 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = dllwrapper/wine DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libloader_la_LIBADD = am_libloader_la_OBJECTS = libloader_la-ldt_keeper.lo \ libloader_la-pe_image.lo libloader_la-module.lo \ libloader_la-ext.lo libloader_la-win32.lo \ libloader_la-driver.lo libloader_la-pe_resource.lo \ libloader_la-resource.lo libloader_la-registry.lo \ libloader_la-elfdll.lo libloader_la-afl.lo libloader_la-vfl.lo \ libloader_la-stubs.lo libloader_la-wrapper.lo libloader_la_OBJECTS = $(am_libloader_la_OBJECTS) AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) am__v_lt_0 = --silent libloader_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libloader_la_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) LTCPPASCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CCASFLAGS) $(CCASFLAGS) AM_V_CPPAS = $(am__v_CPPAS_$(V)) am__v_CPPAS_ = $(am__v_CPPAS_$(AM_DEFAULT_VERBOSITY)) am__v_CPPAS_0 = @echo " CPPAS " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_$(V)) am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) am__v_CC_0 = @echo " CC " $@; CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_$(V)) am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) am__v_CCLD_0 = @echo " CCLD " $@; CCASCOMPILE = $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS) LTCCASCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(AM_CCASFLAGS) \ $(CCASFLAGS) AM_V_CCAS = $(am__v_CCAS_$(V)) am__v_CCAS_ = $(am__v_CCAS_$(AM_DEFAULT_VERBOSITY)) am__v_CCAS_0 = @echo " CCAS " $@; AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libloader_la_SOURCES) DIST_SOURCES = $(libloader_la_SOURCES) HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARCH_CCASFLAGS = @ARCH_CCASFLAGS@ ARCH_CFLAGS = @ARCH_CFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BML_CFLAGS = @BML_CFLAGS@ BML_CXXFLAGS = @BML_CXXFLAGS@ BML_LIBS = @BML_LIBS@ BML_MAJOR_VERSION = @BML_MAJOR_VERSION@ BML_MICRO_VERSION = @BML_MICRO_VERSION@ BML_MINOR_VERSION = @BML_MINOR_VERSION@ BML_VERSION = @BML_VERSION@ BML_VERSION_INFO = @BML_VERSION_INFO@ BML_VERSION_NUMBER = @BML_VERSION_NUMBER@ CC = @CC@ CCAS = $(CC) CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ locv_path = @locv_path@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_LTLIBRARIES = libloader.la #%.o: %.s # $(CCAS) -c $< -o $@ libloader_la_SOURCES = \ ldt_keeper.c \ pe_image.c \ module.c \ ext.c \ win32.c \ driver.c \ pe_resource.c \ resource.c \ registry.c \ elfdll.c \ afl.c \ vfl.c \ stubs.s \ wrapper.S libloader_la_CFLAGS = $(BML_CFLAGS) $(ARCH_CFLAGS) -ffast-math libloader_la_CCASFLAGS = $(ARCH_CCASFLAGS) # Note: gcc-3.0 produces buggy code for acmStreamOpen() with # "-O3 -fomit-frame-pointer" or "-O2 -fomit-frame-pointer # -finline-functions -frename-registers" (code is OK with sole -O2), # the bad code accesses parameters via %ebp without setting up a # propper %ebp first! # -fno-omit-frame-pointer works around this gcc-3.0 bug. gcc-2.95.2 is OK. AM_CPPFLAGS = \ -D__WINE__ \ -DWIN32_PATH=\"/usr/lib/win32\" \ -DWIN32_LIB_PATH=\"$(libdir)/win32\" \ -fno-omit-frame-pointer \ -mno-omit-leaf-frame-pointer noinst_HEADERS = \ avifmt.h \ basetsd.h \ com.h \ debugtools.h \ driver.h \ elfdll.h \ ext.h \ heap.h \ ldt.h \ ldt_keeper.h \ loader.h \ mmreg.h \ module.h \ msacmdrv.h \ msacm.h \ ntdef.h \ pe_image.h \ poppack.h \ pshpack1.h \ pshpack2.h \ pshpack4.h \ pshpack8.h \ registry.h \ resource.h \ vfw.h \ win32.h \ winbase.h \ windef.h \ windows.h \ wineacm.h \ winerror.h \ winestring.h \ winnt.h \ winreg.h \ winuser.h \ wrapper.h all: all-am .SUFFIXES: .SUFFIXES: .S .c .lo .o .obj .s $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu dllwrapper/wine/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu dllwrapper/wine/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libloader.la: $(libloader_la_OBJECTS) $(libloader_la_DEPENDENCIES) $(AM_V_CCLD)$(libloader_la_LINK) $(libloader_la_OBJECTS) $(libloader_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libloader_la-afl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libloader_la-driver.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libloader_la-elfdll.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libloader_la-ext.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libloader_la-ldt_keeper.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libloader_la-module.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libloader_la-pe_image.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libloader_la-pe_resource.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libloader_la-registry.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libloader_la-resource.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libloader_la-vfl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libloader_la-win32.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libloader_la-wrapper.Plo@am__quote@ .S.o: @am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)$(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCCAS_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCCAS_FALSE@ $(AM_V_CPPAS) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCCAS_FALSE@ $(CPPASCOMPILE) -c -o $@ $< .S.obj: @am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)$(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCCAS_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCCAS_FALSE@ $(AM_V_CPPAS) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCCAS_FALSE@ $(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .S.lo: @am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)$(LTCPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCCAS_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @am__fastdepCCAS_FALSE@ $(AM_V_CPPAS) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCCAS_FALSE@ $(LTCPPASCOMPILE) -c -o $@ $< libloader_la-wrapper.lo: wrapper.S @am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)$(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CCASFLAGS) $(CCASFLAGS) -MT libloader_la-wrapper.lo -MD -MP -MF $(DEPDIR)/libloader_la-wrapper.Tpo -c -o libloader_la-wrapper.lo `test -f 'wrapper.S' || echo '$(srcdir)/'`wrapper.S @am__fastdepCCAS_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libloader_la-wrapper.Tpo $(DEPDIR)/libloader_la-wrapper.Plo @am__fastdepCCAS_FALSE@ $(AM_V_CPPAS) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ source='wrapper.S' object='libloader_la-wrapper.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCCAS_FALSE@ $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CCASFLAGS) $(CCASFLAGS) -c -o libloader_la-wrapper.lo `test -f 'wrapper.S' || echo '$(srcdir)/'`wrapper.S .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libloader_la-ldt_keeper.lo: ldt_keeper.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CFLAGS) $(CFLAGS) -MT libloader_la-ldt_keeper.lo -MD -MP -MF $(DEPDIR)/libloader_la-ldt_keeper.Tpo -c -o libloader_la-ldt_keeper.lo `test -f 'ldt_keeper.c' || echo '$(srcdir)/'`ldt_keeper.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libloader_la-ldt_keeper.Tpo $(DEPDIR)/libloader_la-ldt_keeper.Plo @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ldt_keeper.c' object='libloader_la-ldt_keeper.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CFLAGS) $(CFLAGS) -c -o libloader_la-ldt_keeper.lo `test -f 'ldt_keeper.c' || echo '$(srcdir)/'`ldt_keeper.c libloader_la-pe_image.lo: pe_image.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CFLAGS) $(CFLAGS) -MT libloader_la-pe_image.lo -MD -MP -MF $(DEPDIR)/libloader_la-pe_image.Tpo -c -o libloader_la-pe_image.lo `test -f 'pe_image.c' || echo '$(srcdir)/'`pe_image.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libloader_la-pe_image.Tpo $(DEPDIR)/libloader_la-pe_image.Plo @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pe_image.c' object='libloader_la-pe_image.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CFLAGS) $(CFLAGS) -c -o libloader_la-pe_image.lo `test -f 'pe_image.c' || echo '$(srcdir)/'`pe_image.c libloader_la-module.lo: module.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CFLAGS) $(CFLAGS) -MT libloader_la-module.lo -MD -MP -MF $(DEPDIR)/libloader_la-module.Tpo -c -o libloader_la-module.lo `test -f 'module.c' || echo '$(srcdir)/'`module.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libloader_la-module.Tpo $(DEPDIR)/libloader_la-module.Plo @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='module.c' object='libloader_la-module.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CFLAGS) $(CFLAGS) -c -o libloader_la-module.lo `test -f 'module.c' || echo '$(srcdir)/'`module.c libloader_la-ext.lo: ext.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CFLAGS) $(CFLAGS) -MT libloader_la-ext.lo -MD -MP -MF $(DEPDIR)/libloader_la-ext.Tpo -c -o libloader_la-ext.lo `test -f 'ext.c' || echo '$(srcdir)/'`ext.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libloader_la-ext.Tpo $(DEPDIR)/libloader_la-ext.Plo @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ext.c' object='libloader_la-ext.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CFLAGS) $(CFLAGS) -c -o libloader_la-ext.lo `test -f 'ext.c' || echo '$(srcdir)/'`ext.c libloader_la-win32.lo: win32.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CFLAGS) $(CFLAGS) -MT libloader_la-win32.lo -MD -MP -MF $(DEPDIR)/libloader_la-win32.Tpo -c -o libloader_la-win32.lo `test -f 'win32.c' || echo '$(srcdir)/'`win32.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libloader_la-win32.Tpo $(DEPDIR)/libloader_la-win32.Plo @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='win32.c' object='libloader_la-win32.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CFLAGS) $(CFLAGS) -c -o libloader_la-win32.lo `test -f 'win32.c' || echo '$(srcdir)/'`win32.c libloader_la-driver.lo: driver.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CFLAGS) $(CFLAGS) -MT libloader_la-driver.lo -MD -MP -MF $(DEPDIR)/libloader_la-driver.Tpo -c -o libloader_la-driver.lo `test -f 'driver.c' || echo '$(srcdir)/'`driver.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libloader_la-driver.Tpo $(DEPDIR)/libloader_la-driver.Plo @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='driver.c' object='libloader_la-driver.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CFLAGS) $(CFLAGS) -c -o libloader_la-driver.lo `test -f 'driver.c' || echo '$(srcdir)/'`driver.c libloader_la-pe_resource.lo: pe_resource.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CFLAGS) $(CFLAGS) -MT libloader_la-pe_resource.lo -MD -MP -MF $(DEPDIR)/libloader_la-pe_resource.Tpo -c -o libloader_la-pe_resource.lo `test -f 'pe_resource.c' || echo '$(srcdir)/'`pe_resource.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libloader_la-pe_resource.Tpo $(DEPDIR)/libloader_la-pe_resource.Plo @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pe_resource.c' object='libloader_la-pe_resource.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CFLAGS) $(CFLAGS) -c -o libloader_la-pe_resource.lo `test -f 'pe_resource.c' || echo '$(srcdir)/'`pe_resource.c libloader_la-resource.lo: resource.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CFLAGS) $(CFLAGS) -MT libloader_la-resource.lo -MD -MP -MF $(DEPDIR)/libloader_la-resource.Tpo -c -o libloader_la-resource.lo `test -f 'resource.c' || echo '$(srcdir)/'`resource.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libloader_la-resource.Tpo $(DEPDIR)/libloader_la-resource.Plo @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='resource.c' object='libloader_la-resource.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CFLAGS) $(CFLAGS) -c -o libloader_la-resource.lo `test -f 'resource.c' || echo '$(srcdir)/'`resource.c libloader_la-registry.lo: registry.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CFLAGS) $(CFLAGS) -MT libloader_la-registry.lo -MD -MP -MF $(DEPDIR)/libloader_la-registry.Tpo -c -o libloader_la-registry.lo `test -f 'registry.c' || echo '$(srcdir)/'`registry.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libloader_la-registry.Tpo $(DEPDIR)/libloader_la-registry.Plo @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='registry.c' object='libloader_la-registry.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CFLAGS) $(CFLAGS) -c -o libloader_la-registry.lo `test -f 'registry.c' || echo '$(srcdir)/'`registry.c libloader_la-elfdll.lo: elfdll.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CFLAGS) $(CFLAGS) -MT libloader_la-elfdll.lo -MD -MP -MF $(DEPDIR)/libloader_la-elfdll.Tpo -c -o libloader_la-elfdll.lo `test -f 'elfdll.c' || echo '$(srcdir)/'`elfdll.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libloader_la-elfdll.Tpo $(DEPDIR)/libloader_la-elfdll.Plo @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elfdll.c' object='libloader_la-elfdll.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CFLAGS) $(CFLAGS) -c -o libloader_la-elfdll.lo `test -f 'elfdll.c' || echo '$(srcdir)/'`elfdll.c libloader_la-afl.lo: afl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CFLAGS) $(CFLAGS) -MT libloader_la-afl.lo -MD -MP -MF $(DEPDIR)/libloader_la-afl.Tpo -c -o libloader_la-afl.lo `test -f 'afl.c' || echo '$(srcdir)/'`afl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libloader_la-afl.Tpo $(DEPDIR)/libloader_la-afl.Plo @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='afl.c' object='libloader_la-afl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CFLAGS) $(CFLAGS) -c -o libloader_la-afl.lo `test -f 'afl.c' || echo '$(srcdir)/'`afl.c libloader_la-vfl.lo: vfl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CFLAGS) $(CFLAGS) -MT libloader_la-vfl.lo -MD -MP -MF $(DEPDIR)/libloader_la-vfl.Tpo -c -o libloader_la-vfl.lo `test -f 'vfl.c' || echo '$(srcdir)/'`vfl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libloader_la-vfl.Tpo $(DEPDIR)/libloader_la-vfl.Plo @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vfl.c' object='libloader_la-vfl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libloader_la_CFLAGS) $(CFLAGS) -c -o libloader_la-vfl.lo `test -f 'vfl.c' || echo '$(srcdir)/'`vfl.c .s.o: $(AM_V_CCAS) @AM_BACKSLASH@ $(CCASCOMPILE) -c -o $@ $< .s.obj: $(AM_V_CCAS) @AM_BACKSLASH@ $(CCASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .s.lo: $(AM_V_CCAS) @AM_BACKSLASH@ $(LTCCASCOMPILE) -c -o $@ $< libloader_la-stubs.lo: stubs.s $(AM_V_CCAS) @AM_BACKSLASH@ $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(libloader_la_CCASFLAGS) $(CCASFLAGS) -c -o libloader_la-stubs.lo `test -f 'stubs.s' || echo '$(srcdir)/'`stubs.s mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: bml-0.6.1/dllwrapper/wine/ext.c0000644042355400116100000003415211666464225013322 00000000000000/******************************************************** * * * Stub functions for Wine module * * ********************************************************/ #include "config.h" #include #include #ifdef HAVE_MALLOC_H #include #endif #include #include #include #include #include #include #include #include "windef.h" #include "winbase.h" #include "debugtools.h" #include "heap.h" #include "ext.h" #if 0 //REMOVE SIMPLIFY static void* mymalloc(unsigned int size) { printf("malloc %d\n", size); return malloc(size); } #undef malloc #define malloc mymalloc #endif int dbg_header_err( const char *dbg_channel, const char *func ) { return 0; } int dbg_header_warn( const char *dbg_channel, const char *func ) { return 0; } int dbg_header_fixme( const char *dbg_channel, const char *func ) { return 0; } int dbg_header_trace( const char *dbg_channel, const char *func ) { return 0; } int dbg_vprintf( const char *format, va_list args ) { return 0; } int __vprintf( const char *format, ... ) { #ifdef DETAILED_OUT va_list va; va_start(va, format); vprintf(format, va); va_end(va); #endif return 0; } HANDLE WINAPI GetProcessHeap(void) { return 1; } LPVOID WINAPI HeapAlloc(HANDLE heap, DWORD flags, DWORD size) { //static int i = 5; void* m = (flags & 0x8) ? calloc(size, 1) : malloc(size); //printf("HeapAlloc %p %d (%d)\n", m, size, flags); //if (--i == 0) // abort(); return m; } WIN_BOOL WINAPI HeapFree(HANDLE heap, DWORD flags, LPVOID mem) { if (mem) free(mem); //printf("HeapFree %p\n", mem); //if (!mem) // abort(); return 1; } static int last_error; DWORD WINAPI GetLastError(void) { return last_error; } VOID WINAPI SetLastError(DWORD error) { last_error=error; } WIN_BOOL WINAPI ReadFile(HANDLE handle, LPVOID mem, DWORD size, LPDWORD result, LPOVERLAPPED flags) { *result=read(handle, mem, size); return *result; } INT WINAPI lstrcmpiA(LPCSTR c1, LPCSTR c2) { return strcasecmp(c1,c2); } LPSTR WINAPI lstrcpynA(LPSTR dest, LPCSTR src, INT num) { return strncpy(dest,src,num); } INT WINAPI lstrlenA(LPCSTR s) { return strlen(s); } INT WINAPI lstrlenW(LPCWSTR s) { int l; if(!s) return 0; l=0; while(s[l]) l++; return l; } LPSTR WINAPI lstrcpynWtoA(LPSTR dest, LPCWSTR src, INT count) { LPSTR result = dest; int moved=0; if((dest==0) || (src==0)) return 0; while(moved0) { if (((*s1 | *s2) & 0xff00) || toupper((char)*s1) != toupper((char)*s2)) { if(*s1<*s2) return -1; else if(*s1>*s2) return 1; else if(*s1==0) return 0; } s1++; s2++; n--; } return 0; } WIN_BOOL WINAPI IsBadReadPtr(LPCVOID data, UINT size) { if(size==0) return 0; if(data==NULL) return 1; return 0; } LPSTR HEAP_strdupA(HANDLE heap, DWORD flags, LPCSTR string) { // return strdup(string); char* answ=malloc(strlen(string)+1); strcpy(answ, string); return answ; } LPWSTR HEAP_strdupAtoW(HANDLE heap, DWORD flags, LPCSTR string) { int size, i; short* answer; if(string==0) return 0; size=strlen(string); answer=malloc(2 * (size + 1)); for(i=0; i<=size; i++) answer[i]=(short)string[i]; return (LPWSTR)answer; } LPSTR HEAP_strdupWtoA(HANDLE heap, DWORD flags, LPCWSTR string) { int size, i; char* answer; if(string==0) return 0; size=0; while(string[size]) size++; answer=malloc(size+2); for(i=0; i<=size; i++) answer[i]=(char)string[i]; return answer; } /*********************************************************************** * FILE_dommap */ //#define MAP_PRIVATE //#define MAP_SHARED #undef MAP_ANON LPVOID FILE_dommap( int unix_handle, LPVOID start, DWORD size_high, DWORD size_low, DWORD offset_high, DWORD offset_low, int prot, int flags ) { int fd = -1; int pos; LPVOID ret; ssize_t read_ret; if (size_high || offset_high) printf("offsets larger than 4Gb not supported\n"); if (unix_handle == -1) { #ifdef MAP_ANON // printf("Anonymous\n"); flags |= MAP_ANON; #else static int fdzero = -1; if (fdzero == -1) { if ((fdzero = open( "/dev/zero", O_RDONLY )) == -1) { perror( "Cannot open /dev/zero for READ. Check permissions! error: " ); abort(); } } fd = fdzero; #endif /* MAP_ANON */ /* Linux EINVAL's on us if we don't pass MAP_PRIVATE to an anon mmap */ #ifdef MAP_SHARED flags &= ~MAP_SHARED; #endif #ifdef MAP_PRIVATE flags |= MAP_PRIVATE; #endif } else fd = unix_handle; // printf("fd %x, start %x, size %x, pos %x, prot %x\n",fd,start,size_low, offset_low, prot); // if ((ret = mmap( start, size_low, prot, // flags, fd, offset_low )) != (LPVOID)-1) if ((ret = mmap( start, size_low, prot, MAP_PRIVATE | MAP_FIXED, fd, offset_low )) != (LPVOID)-1) { // printf("address %08x\n", *(int*)ret); // printf("%x\n", ret); return ret; } // printf("mmap %d\n", errno); /* mmap() failed; if this is because the file offset is not */ /* page-aligned (EINVAL), or because the underlying filesystem */ /* does not support mmap() (ENOEXEC), we do it by hand. */ if (unix_handle == -1) return ret; if ((errno != ENOEXEC) && (errno != EINVAL)) return ret; if (prot & PROT_WRITE) { /* We cannot fake shared write mappings */ #ifdef MAP_SHARED if (flags & MAP_SHARED) return ret; #endif #ifdef MAP_PRIVATE if (!(flags & MAP_PRIVATE)) return ret; #endif } /* printf( "FILE_mmap: mmap failed (%d), faking it\n", errno );*/ /* Reserve the memory with an anonymous mmap */ ret = FILE_dommap( -1, start, size_high, size_low, 0, 0, PROT_READ | PROT_WRITE, flags ); if (ret == (LPVOID)-1) // { // perror( return ret; /* Now read in the file */ if ((pos = lseek( fd, offset_low, SEEK_SET )) == -1) { FILE_munmap( ret, size_high, size_low ); // printf("lseek\n"); return (LPVOID)-1; } if ((read_ret = read( fd, ret, size_low )) != size_low) { FILE_munmap( ret, size_high, size_low ); // printf("read\n"); return (LPVOID)-1; } /* Restore the file pointer */ if (lseek( fd, pos, SEEK_SET ) == -1) { FILE_munmap( ret, size_high, size_low ); // printf("lseek back\n"); return (LPVOID)-1; } /* Set the right protection */ if (mprotect( ret, size_low, prot ) == -1) { FILE_munmap( ret, size_high, size_low ); // printf("mprotect\n"); return (LPVOID)-1; } // printf("address %08x\n", *(int*)ret); return ret; } /*********************************************************************** * FILE_munmap */ int FILE_munmap( LPVOID start, DWORD size_high, DWORD size_low ) { if (size_high) printf("offsets larger than 4Gb not supported\n"); return munmap( start, size_low ); } //static int mapping_size=0; struct file_mapping_s; typedef struct file_mapping_s { int mapping_size; char* name; LPVOID handle; struct file_mapping_s* next; struct file_mapping_s* prev; }file_mapping; static file_mapping* fm=0; #define PAGE_NOACCESS 0x01 #define PAGE_READONLY 0x02 #define PAGE_READWRITE 0x04 #define PAGE_WRITECOPY 0x08 #define PAGE_EXECUTE 0x10 #define PAGE_EXECUTE_READ 0x20 #define PAGE_EXECUTE_READWRITE 0x40 #define PAGE_EXECUTE_WRITECOPY 0x80 #define PAGE_GUARD 0x100 #define PAGE_NOCACHE 0x200 HANDLE WINAPI CreateFileMappingA(HANDLE handle, LPSECURITY_ATTRIBUTES lpAttr, DWORD flProtect, DWORD dwMaxHigh, DWORD dwMaxLow, LPCSTR name) { int hFile = (int)handle; unsigned int len=dwMaxLow; LPVOID answer; int anon=0; int mmap_access=0; if(hFile<0) { anon=1; hFile=open("/dev/zero", O_RDWR); if(hFile<0){ perror( "Cannot open /dev/zero for READ+WRITE. Check permissions! error: " ); return 0; } } if(!anon) { off_t ret=lseek(hFile, 0, SEEK_END); if(ret!=-1) len=ret; lseek(hFile, 0, SEEK_SET); } if(flProtect & PAGE_READONLY) mmap_access |=PROT_READ; else mmap_access |=PROT_READ|PROT_WRITE; answer=mmap(NULL, len, mmap_access, MAP_PRIVATE, hFile, 0); if(anon) close(hFile); if(answer!=(LPVOID)-1) { if(fm==0) { fm=malloc(sizeof(file_mapping)); fm->prev=NULL; } else { fm->next=malloc(sizeof(file_mapping)); fm->next->prev=fm; fm=fm->next; } fm->next=NULL; fm->handle=answer; if(name) { fm->name=malloc(strlen(name)+1); strcpy(fm->name, name); } else fm->name=NULL; fm->mapping_size=len; if(anon) close(hFile); return (HANDLE)answer; } return (HANDLE)0; } WIN_BOOL WINAPI UnmapViewOfFile(LPVOID handle) { file_mapping* p; int result; if(fm==0) return 0; for(p=fm; p; p=p->next) { if(p->handle==handle) { result=munmap((void*)handle, p->mapping_size); if(p->next)p->next->prev=p->prev; if(p->prev)p->prev->next=p->next; if(p->name) free(p->name); if(p==fm) fm=p->prev; free(p); return result; } } return 0; } //static int va_size=0; struct virt_alloc_s; typedef struct virt_alloc_s { int mapping_size; char* address; struct virt_alloc_s* next; struct virt_alloc_s* prev; int state; }virt_alloc; static virt_alloc* vm=0; #define MEM_COMMIT 0x00001000 #define MEM_RESERVE 0x00002000 LPVOID WINAPI VirtualAlloc(LPVOID address, DWORD size, DWORD type, DWORD protection) { void* answer; int fd; long pgsz; if ((type&(MEM_RESERVE|MEM_COMMIT)) == 0) return NULL; fd=open("/dev/zero", O_RDWR); if(fd<0){ perror( "Cannot open /dev/zero for READ+WRITE. Check permissions! error: " ); return NULL; } if (type&MEM_RESERVE && (void*)((unsigned long)address&0xffff)) { size += (unsigned long)address&0xffff; address = (LPVOID)((unsigned long)address & ~0xffff); } pgsz = sysconf(_SC_PAGESIZE); if (type&MEM_COMMIT && (void*)((unsigned long)address%pgsz)) { size += (unsigned long)address%pgsz; address -= (unsigned long)address%pgsz; } if (type&MEM_RESERVE && size<0x10000) size = 0x10000; if (size%pgsz) size += pgsz - size%pgsz; if(address!=0) { //check whether we can allow to allocate this virt_alloc* str=vm; while(str) { if((void*)((unsigned long)address)>=(void*)((unsigned long)str->address+str->mapping_size)) { str=str->prev; continue; } if((void*)((unsigned long)address+size)<=(void*)((unsigned long)str->address)) { str=str->prev; continue; } if(str->state==0) { //#warning FIXME if( (address >= (void*)(unsigned long)str->address) && ((void*)((unsigned long)address+size)<=(void*)((unsigned long)str->address+str->mapping_size)) && (type & MEM_COMMIT)) { close(fd); return address; //returning previously reserved memory } } close(fd); return NULL; } } answer=mmap(address, size, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE, fd, 0); // answer=FILE_dommap(-1, address, 0, size, 0, 0, // PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE); close(fd); if (answer != (void *)-1 && address && answer != address) { /* It is dangerous to try mmap() with MAP_FIXED since it does not always detect conflicts or non-allocation and chaos ensues after a successful call but an overlapping or non-allocated region. */ munmap(answer, size); answer = (void *) -1; errno = EINVAL; } if(answer==(void*)-1) { return NULL; } else { virt_alloc *new_vm=malloc(sizeof(virt_alloc)); new_vm->mapping_size=size; new_vm->address=answer; new_vm->prev=vm; if(type == MEM_RESERVE) new_vm->state=0; else new_vm->state=1; if(vm) vm->next=new_vm; vm=new_vm; vm->next=0; //if(va_size!=0) // printf("Multiple VirtualAlloc!\n"); //printf("answer=0x%08x\n", answer); return answer; } } WIN_BOOL WINAPI VirtualFree(LPVOID address, SIZE_T dwSize, DWORD dwFreeType)//not sure { virt_alloc* str=vm; while(str) { if(address!=str->address) { str=str->prev; continue; } //printf("VirtualFree(0x%08X, %d - %d)\n", str->address, dwSize, str->mapping_size); munmap(str->address, str->mapping_size); if(str->next) str->next->prev=str->prev; if(str->prev) str->prev->next=str->next; if(vm==str) vm=str->prev; free(str); return 0; } return -1; } INT WINAPI WideCharToMultiByte(UINT codepage, DWORD flags, LPCWSTR src, INT srclen,LPSTR dest, INT destlen, LPCSTR defch, WIN_BOOL* used_defch) { int i; if(src==0) return 0; if ((srclen==-1)&&(dest==0)) return 0; if(srclen==-1){srclen=0; while(src[srclen++]);} // for(i=0; iprev) { if(p->name==0) continue; if(strcmp(p->name, name)==0) return (HANDLE)p->handle; } return 0; } bml-0.6.1/dllwrapper/wine/winreg.h0000644042355400116100000000260011576362500014004 00000000000000/* * Win32 registry defines (see also winnt.h) */ #ifndef __WINE_WINREG_H #define __WINE_WINREG_H #include "winbase.h" #include "winnt.h" #ifdef __cplusplus extern "C" { #endif /* defined(__cplusplus) */ /* #define SHELL_ERROR_SUCCESS 0L #define SHELL_ERROR_BADDB 1L #define SHELL_ERROR_BADKEY 2L #define SHELL_ERROR_CANTOPEN 3L #define SHELL_ERROR_CANTREAD 4L #define SHELL_ERROR_CANTWRITE 5L #define SHELL_ERROR_OUTOFMEMORY 6L #define SHELL_ERROR_INVALID_PARAMETER 7L #define SHELL_ERROR_ACCESS_DENIED 8L */ #define HKEY_CLASSES_ROOT ((HKEY) 0x80000000) #define HKEY_CURRENT_USER ((HKEY) 0x80000001) #define HKEY_LOCAL_MACHINE ((HKEY) 0x80000002) #define HKEY_USERS ((HKEY) 0x80000003) #define HKEY_PERFORMANCE_DATA ((HKEY) 0x80000004) #define HKEY_CURRENT_CONFIG ((HKEY) 0x80000005) #define HKEY_DYN_DATA ((HKEY) 0x80000006) /* * registry provider structs */ typedef struct value_entA { LPSTR ve_valuename; DWORD ve_valuelen; DWORD_PTR ve_valueptr; DWORD ve_type; } VALENTA, *PVALENTA; typedef struct value_entW { LPWSTR ve_valuename; DWORD ve_valuelen; DWORD_PTR ve_valueptr; DWORD ve_type; } VALENTW, *PVALENTW; typedef ACCESS_MASK REGSAM; #ifdef __cplusplus } /* extern "C" */ #endif /* defined(__cplusplus) */ #endif /* __WINE_WINREG_H */ bml-0.6.1/dllwrapper/wine/stubs.s0000644042355400116100000000115711576362500013672 00000000000000 .data .LC0: .string "Called unk_%s\n" .align 4 .globl unk_exp1 unk_exp1: pushl %ebp movl %esp,%ebp subl $4,%esp movl $1,-4(%ebp) movl -4(%ebp),%eax movl %eax,%ecx movl %ecx,%edx sall $4,%edx subl %eax,%edx leal 0(,%edx,2),%eax movl %eax,%edx addl $export_names,%edx pushl %edx pushl $.LC0 call printf addl $8,%esp xorl %eax,%eax leave ret # Provided for VC++ binary compatibility only .globl exp_EH_prolog exp_EH_prolog: pushl $0xff pushl %eax pushl %fs:0 movl %esp, %fs:0 movl 12(%esp), %eax movl %ebp, 12(%esp) leal 12(%esp), %ebp pushl %eax ret .section .note.GNU-stack,"",@progbits bml-0.6.1/dllwrapper/wine/pshpack1.h0000644042355400116100000000075211576362500014231 00000000000000#ifndef __WINE_PSHPACK_H #define __WINE_PSHPACK_H 1 #if defined(__GNUC__) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) || defined(__ICC) #pragma pack(1) #elif !defined(RC_INVOKED) #error "1 as alignment isn't supported by the compiler" #endif /* defined(__GNUC__) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) ; !defined(RC_INVOKED) */ #else /* !defined(__WINE_PSHPACK_H) */ #error "Nested pushing of alignment isn't supported by the compiler" #endif /* !defined(__WINE_PSHPACK_H) */ bml-0.6.1/dllwrapper/wine/ldt.h0000644042355400116100000000675311576362500013311 00000000000000/* * LDT copy * * Copyright 1995 Alexandre Julliard */ #ifndef __WINE_LDT_H #define __WINE_LDT_H #include "windef.h" enum seg_type { SEGMENT_DATA = 0, SEGMENT_STACK = 1, SEGMENT_CODE = 2 }; /* This structure represents a real LDT entry. */ /* It is used by get_ldt_entry() and set_ldt_entry(). */ typedef struct { unsigned long base; /* base address */ unsigned long limit; /* segment limit (in pages or bytes) */ int seg_32bit; /* is segment 32-bit? */ int read_only; /* is segment read-only? */ int limit_in_pages; /* is the limit in pages or bytes? */ enum seg_type type; /* segment type */ } ldt_entry; #ifdef __cplusplus extern "C" { #endif extern void LDT_BytesToEntry( const unsigned long *buffer, ldt_entry *content); extern void LDT_EntryToBytes( unsigned long *buffer, const ldt_entry *content); extern int LDT_GetEntry( int entry, ldt_entry *content ); extern int LDT_SetEntry( int entry, const ldt_entry *content ); extern void LDT_Print( int start, int length ); /* This structure is used to build the local copy of the LDT. */ typedef struct { unsigned long base; /* base address or 0 if entry is free */ unsigned long limit; /* limit in bytes or 0 if entry is free */ } ldt_copy_entry; #define LDT_SIZE 8192 extern ldt_copy_entry ldt_copy[LDT_SIZE]; #define __AHSHIFT 3 /* don't change! */ #define __AHINCR (1 << __AHSHIFT) #define SELECTOR_TO_ENTRY(sel) (((int)(sel) & 0xffff) >> __AHSHIFT) #define ENTRY_TO_SELECTOR(i) ((i) ? (((int)(i) << __AHSHIFT) | 7) : 0) #define IS_LDT_ENTRY_FREE(i) (!(ldt_flags_copy[(i)] & LDT_FLAGS_ALLOCATED)) #define IS_SELECTOR_FREE(sel) (IS_LDT_ENTRY_FREE(SELECTOR_TO_ENTRY(sel))) #define GET_SEL_BASE(sel) (ldt_copy[SELECTOR_TO_ENTRY(sel)].base) #define GET_SEL_LIMIT(sel) (ldt_copy[SELECTOR_TO_ENTRY(sel)].limit) /* Convert a segmented ptr (16:16) to a linear (32) pointer */ #define PTR_SEG_OFF_TO_LIN(seg,off) \ ((void*)(GET_SEL_BASE(seg) + (unsigned int)(off))) #define PTR_SEG_TO_LIN(ptr) \ PTR_SEG_OFF_TO_LIN(SELECTOROF(ptr),OFFSETOF(ptr)) #define PTR_SEG_OFF_TO_SEGPTR(seg,off) \ ((SEGPTR)MAKELONG(off,seg)) #define PTR_SEG_OFF_TO_HUGEPTR(seg,off) \ PTR_SEG_OFF_TO_SEGPTR( (seg) + (HIWORD(off) << __AHSHIFT), LOWORD(off) ) #define W32S_APPLICATION() (PROCESS_Current()->flags & PDB32_WIN32S_PROC) #define W32S_OFFSET 0x10000 #define W32S_APP2WINE(addr, offset) ((addr)? (DWORD)(addr) + (DWORD)(offset) : 0) #define W32S_WINE2APP(addr, offset) ((addr)? (DWORD)(addr) - (DWORD)(offset) : 0) extern unsigned char ldt_flags_copy[LDT_SIZE]; #define LDT_FLAGS_TYPE 0x03 /* Mask for segment type */ #define LDT_FLAGS_READONLY 0x04 /* Segment is read-only (data) */ #define LDT_FLAGS_EXECONLY 0x04 /* Segment is execute-only (code) */ #define LDT_FLAGS_32BIT 0x08 /* Segment is 32-bit (code or stack) */ #define LDT_FLAGS_BIG 0x10 /* Segment is big (limit is in pages) */ #define LDT_FLAGS_ALLOCATED 0x80 /* Segment is allocated (no longer free) */ #define GET_SEL_FLAGS(sel) (ldt_flags_copy[SELECTOR_TO_ENTRY(sel)]) #define FIRST_LDT_ENTRY_TO_ALLOC 17 /* Determine if sel is a system selector (i.e. not managed by Wine) */ #define IS_SELECTOR_SYSTEM(sel) \ (!((sel) & 4) || (SELECTOR_TO_ENTRY(sel) < FIRST_LDT_ENTRY_TO_ALLOC)) #define IS_SELECTOR_32BIT(sel) \ (IS_SELECTOR_SYSTEM(sel) || (GET_SEL_FLAGS(sel) & LDT_FLAGS_32BIT)) #ifdef __cplusplus } #endif #endif /* __WINE_LDT_H */ bml-0.6.1/dllwrapper/wine/pshpack4.h0000644042355400116100000000075111576362500014233 00000000000000#ifndef __WINE_PSHPACK_H #define __WINE_PSHPACK_H 4 #if defined(__GNUC__) || defined(__SUNPRO_CC) || defined(__ICC) //#pragma pack(4) #elif defined(__SUNPRO_C) //#pragma pack() #elif !defined(RC_INVOKED) #error "4 as alignment isn't supported by the compiler" #endif /* defined(__GNUC__) || defined(__SUNPRO_CC) ; !defined(RC_INVOKED) */ #else /* !defined(__WINE_PSHPACK_H) */ #error "Nested pushing of alignment isn't supported by the compiler" #endif /* !defined(__WINE_PSHPACK_H) */ bml-0.6.1/dllwrapper/wine/driver.c0000644042355400116100000001024111576362500013777 00000000000000#include #include #ifdef HAVE_MALLOC_H #include #endif #include #ifdef __FreeBSD__ #include #endif #include "win32.h" #include "driver.h" #include "pe_image.h" #include "winreg.h" #include "vfw.h" #include "registry.h" #include "ldt_keeper.h" #include "ext.h" #include "debugtools.h" #if 1 /* * STORE_ALL/REST_ALL seems like an attempt to workaround problems due to * WINAPI/no-WINAPI bustage. * * There should be no need for the STORE_ALL/REST_ALL hack once all * function definitions agree with their prototypes (WINAPI-wise) and * we make sure, that we do not call these functions without a proper * prototype in scope. */ #define STORE_ALL #define REST_ALL #else // this asm code is no longer needed #define STORE_ALL \ __asm__ __volatile__ ( \ "push %%ebx\n\t" \ "push %%ecx\n\t" \ "push %%edx\n\t" \ "push %%esi\n\t" \ "push %%edi\n\t"::) #define REST_ALL \ __asm__ __volatile__ ( \ "pop %%edi\n\t" \ "pop %%esi\n\t" \ "pop %%edx\n\t" \ "pop %%ecx\n\t" \ "pop %%ebx\n\t"::) #endif #if 0 static int needs_free=0; void SetCodecPath(const char* path) { if(needs_free)free(win32_def_path); if(path==0) { win32_def_path=WIN32_PATH; needs_free=0; return; } win32_def_path = (char*) malloc(strlen(path)+1); strcpy(win32_def_path, path); needs_free=1; } #endif static DWORD dwDrvID = 0; LRESULT WINAPI SendDriverMessage(HDRVR hDriver, UINT message, LPARAM lParam1, LPARAM lParam2) { DRVR* module=(DRVR*)hDriver; int result; #ifndef __svr4__ char qw[300]; #endif #ifdef DETAILED_OUT printf("SendDriverMessage: driver %X, message %X, arg1 %X, arg2 %X\n", hDriver, message, lParam1, lParam2); #endif if (!module || !module->hDriverModule || !module->DriverProc) return -1; #ifndef __svr4__ __asm__ __volatile__ ("fsave (%0)\n\t": :"r"(&qw)); #endif #ifdef LDT_paranoia Setup_FS_Segment(); #endif STORE_ALL; result=module->DriverProc(module->dwDriverID, hDriver, message, lParam1, lParam2); REST_ALL; #ifndef __svr4__ __asm__ __volatile__ ("frstor (%0)\n\t": :"r"(&qw)); #endif #ifdef DETAILED_OUT printf("\t\tResult: %X\n", result); #endif return result; } void DrvClose(HDRVR hDriver) { if (hDriver) { DRVR* d = (DRVR*)hDriver; if (d->hDriverModule) { #ifdef LDT_paranoia Setup_FS_Segment(); #endif if (d->DriverProc) { SendDriverMessage(hDriver, DRV_CLOSE, 0, 0); d->dwDriverID = 0; SendDriverMessage(hDriver, DRV_FREE, 0, 0); } FreeLibrary(d->hDriverModule); } free(d); } CodecRelease(); } //DrvOpen(LPCSTR lpszDriverName, LPCSTR lpszSectionName, LPARAM lParam2) HDRVR DrvOpen(LPARAM lParam2) { NPDRVR hDriver; // int i; char unknown[0x124]; const char* filename = (const char*) ((ICOPEN*) lParam2)->pV1Reserved; #ifdef LDT_paranoia Setup_LDT_Keeper(); #endif printf("Loading codec DLL: '%s'\n",filename); hDriver = (NPDRVR) malloc(sizeof(DRVR)); if (!hDriver) return ((HDRVR) 0); memset((void*)hDriver, 0, sizeof(DRVR)); CodecAlloc(); #ifdef LDT_paranoia Setup_FS_Segment(); #endif hDriver->hDriverModule = LoadLibraryA(filename); if (!hDriver->hDriverModule) { printf("Can't open library %s\n", filename); DrvClose((HDRVR)hDriver); return ((HDRVR) 0); } hDriver->DriverProc = (DRIVERPROC) GetProcAddress(hDriver->hDriverModule, "DriverProc"); if (!hDriver->DriverProc) { printf("Library %s is not a valid VfW/ACM codec\n", filename); DrvClose((HDRVR)hDriver); return ((HDRVR) 0); } TRACE("DriverProc == %X\n", (unsigned int)hDriver->DriverProc); SendDriverMessage((HDRVR)hDriver, DRV_LOAD, 0, 0); TRACE("DRV_LOAD Ok!\n"); SendDriverMessage((HDRVR)hDriver, DRV_ENABLE, 0, 0); TRACE("DRV_ENABLE Ok!\n"); hDriver->dwDriverID = ++dwDrvID; // generate new id // open driver and remmeber proper DriverID hDriver->dwDriverID = SendDriverMessage((HDRVR)hDriver, DRV_OPEN, (LPARAM) unknown, lParam2); TRACE("DRV_OPEN Ok!(%X)\n", (unsigned int)hDriver->dwDriverID); printf("Loaded DLL driver %s\n", filename); return (HDRVR)hDriver; } bml-0.6.1/dllwrapper/wine/msacm.h0000644042355400116100000006626511576362500013632 00000000000000/* * msacm.h - Declarations for MSACM */ #ifndef __WINE_MSACM_H #define __WINE_MSACM_H #include "windef.h" #include "driver.h" #include "mmreg.h" #ifdef __cplusplus extern "C" { #endif /* defined(__cplusplus) */ //typedef WORD VERSION; /* major (high byte), minor (low byte) */ typedef UINT16 MMVERSION16; typedef UINT MMVERSION; typedef UINT16 MCIDEVICEID16; typedef UINT MCIDEVICEID; typedef UINT16 MMRESULT16; typedef UINT MMRESULT; typedef DWORD FOURCC; /* a four character code */ #define WAVE_FORMAT_PCM 1 /*********************************************************************** * Defines/Enums */ #define ACMERR_BASE 512 #define ACMERR_NOTPOSSIBLE (ACMERR_BASE + 0) #define ACMERR_BUSY (ACMERR_BASE + 1) #define ACMERR_UNPREPARED (ACMERR_BASE + 2) #define ACMERR_CANCELED (ACMERR_BASE + 3) #define MM_ACM_OPEN MM_STREAM_OPEN #define MM_ACM_CLOSE MM_STREAM_CLOSE #define MM_ACM_DONE MM_STREAM_DONE #define ACM_DRIVERADDF_FUNCTION 0x00000003L #define ACM_DRIVERADDF_NOTIFYHWND 0x00000004L #define ACM_DRIVERADDF_TYPEMASK 0x00000007L #define ACM_DRIVERADDF_LOCAL 0x00000000L #define ACM_DRIVERADDF_GLOBAL 0x00000008L #define ACMDRIVERDETAILS_SHORTNAME_CHARS 32 #define ACMDRIVERDETAILS_LONGNAME_CHARS 128 #define ACMDRIVERDETAILS_COPYRIGHT_CHARS 80 #define ACMDRIVERDETAILS_LICENSING_CHARS 128 #define ACMDRIVERDETAILS_FEATURES_CHARS 512 #define ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC mmioFOURCC('a', 'u', 'd', 'c') #define ACMDRIVERDETAILS_FCCCOMP_UNDEFINED mmioFOURCC('\0', '\0', '\0', '\0') #define ACMDRIVERDETAILS_SUPPORTF_CODEC 0x00000001L #define ACMDRIVERDETAILS_SUPPORTF_CONVERTER 0x00000002L #define ACMDRIVERDETAILS_SUPPORTF_FILTER 0x00000004L #define ACMDRIVERDETAILS_SUPPORTF_HARDWARE 0x00000008L #define ACMDRIVERDETAILS_SUPPORTF_ASYNC 0x00000010L #define ACMDRIVERDETAILS_SUPPORTF_LOCAL 0x40000000L #define ACMDRIVERDETAILS_SUPPORTF_DISABLED 0x80000000L #define ACM_DRIVERENUMF_NOLOCAL 0x40000000L #define ACM_DRIVERENUMF_DISABLED 0x80000000L #define ACM_DRIVERPRIORITYF_ENABLE 0x00000001L #define ACM_DRIVERPRIORITYF_DISABLE 0x00000002L #define ACM_DRIVERPRIORITYF_ABLEMASK 0x00000003L #define ACM_DRIVERPRIORITYF_BEGIN 0x00010000L #define ACM_DRIVERPRIORITYF_END 0x00020000L #define ACM_DRIVERPRIORITYF_DEFERMASK 0x00030000L #define MM_ACM_FILTERCHOOSE 0x8000 #define FILTERCHOOSE_MESSAGE 0 #define FILTERCHOOSE_FILTERTAG_VERIFY (FILTERCHOOSE_MESSAGE+0) #define FILTERCHOOSE_FILTER_VERIFY (FILTERCHOOSE_MESSAGE+1) #define FILTERCHOOSE_CUSTOM_VERIFY (FILTERCHOOSE_MESSAGE+2) #define ACMFILTERCHOOSE_STYLEF_SHOWHELP 0x00000004L #define ACMFILTERCHOOSE_STYLEF_ENABLEHOOK 0x00000008L #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L #define ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT 0x00000040L #define ACMFILTERCHOOSE_STYLEF_CONTEXTHELP 0x00000080L #define ACMFILTERDETAILS_FILTER_CHARS 128 #define ACM_FILTERDETAILSF_INDEX 0x00000000L #define ACM_FILTERDETAILSF_FILTER 0x00000001L #define ACM_FILTERDETAILSF_QUERYMASK 0x0000000FL #define ACMFILTERTAGDETAILS_FILTERTAG_CHARS 48 #define ACM_FILTERTAGDETAILSF_INDEX 0x00000000L #define ACM_FILTERTAGDETAILSF_FILTERTAG 0x00000001L #define ACM_FILTERTAGDETAILSF_LARGESTSIZE 0x00000002L #define ACM_FILTERTAGDETAILSF_QUERYMASK 0x0000000FL #define ACM_FILTERENUMF_DWFILTERTAG 0x00010000L #define ACMHELPMSGSTRINGA "acmchoose_help" #define ACMHELPMSGSTRINGW L"acmchoose_help" #define ACMHELPMSGSTRING16 "acmchoose_help" #define ACMHELPMSGCONTEXTMENUA "acmchoose_contextmenu" #define ACMHELPMSGCONTEXTMENUW L"acmchoose_contextmenu" #define ACMHELPMSGCONTEXTMENU16 "acmchoose_contextmenu" #define ACMHELPMSGCONTEXTHELPA "acmchoose_contexthelp" #define ACMHELPMSGCONTEXTHELPW L"acmchoose_contexthelp" #define ACMHELPMSGCONTEXTHELP16 "acmchoose_contexthelp" #define MM_ACM_FORMATCHOOSE 0x8000 #define FORMATCHOOSE_MESSAGE 0 #define FORMATCHOOSE_FORMATTAG_VERIFY (FORMATCHOOSE_MESSAGE+0) #define FORMATCHOOSE_FORMAT_VERIFY (FORMATCHOOSE_MESSAGE+1) #define FORMATCHOOSE_CUSTOM_VERIFY (FORMATCHOOSE_MESSAGE+2) #define ACMFORMATCHOOSE_STYLEF_SHOWHELP 0x00000004L #define ACMFORMATCHOOSE_STYLEF_ENABLEHOOK 0x00000008L #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L #define ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT 0x00000040L #define ACMFORMATCHOOSE_STYLEF_CONTEXTHELP 0x00000080L #define ACMFORMATDETAILS_FORMAT_CHARS 128 #define ACM_FORMATDETAILSF_INDEX 0x00000000L #define ACM_FORMATDETAILSF_FORMAT 0x00000001L #define ACM_FORMATDETAILSF_QUERYMASK 0x0000000FL #define ACM_FORMATENUMF_WFORMATTAG 0x00010000L #define ACM_FORMATENUMF_NCHANNELS 0x00020000L #define ACM_FORMATENUMF_NSAMPLESPERSEC 0x00040000L #define ACM_FORMATENUMF_WBITSPERSAMPLE 0x00080000L #define ACM_FORMATENUMF_CONVERT 0x00100000L #define ACM_FORMATENUMF_SUGGEST 0x00200000L #define ACM_FORMATENUMF_HARDWARE 0x00400000L #define ACM_FORMATENUMF_INPUT 0x00800000L #define ACM_FORMATENUMF_OUTPUT 0x01000000L #define ACM_FORMATSUGGESTF_WFORMATTAG 0x00010000L #define ACM_FORMATSUGGESTF_NCHANNELS 0x00020000L #define ACM_FORMATSUGGESTF_NSAMPLESPERSEC 0x00040000L #define ACM_FORMATSUGGESTF_WBITSPERSAMPLE 0x00080000L #define ACM_FORMATSUGGESTF_TYPEMASK 0x00FF0000L #define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 48 #define ACM_FORMATTAGDETAILSF_INDEX 0x00000000L #define ACM_FORMATTAGDETAILSF_FORMATTAG 0x00000001L #define ACM_FORMATTAGDETAILSF_LARGESTSIZE 0x00000002L #define ACM_FORMATTAGDETAILSF_QUERYMASK 0x0000000FL #define ACM_METRIC_COUNT_DRIVERS 1 #define ACM_METRIC_COUNT_CODECS 2 #define ACM_METRIC_COUNT_CONVERTERS 3 #define ACM_METRIC_COUNT_FILTERS 4 #define ACM_METRIC_COUNT_DISABLED 5 #define ACM_METRIC_COUNT_HARDWARE 6 #define ACM_METRIC_COUNT_LOCAL_DRIVERS 20 #define ACM_METRIC_COUNT_LOCAL_CODECS 21 #define ACM_METRIC_COUNT_LOCAL_CONVERTERS 22 #define ACM_METRIC_COUNT_LOCAL_FILTERS 23 #define ACM_METRIC_COUNT_LOCAL_DISABLED 24 #define ACM_METRIC_HARDWARE_WAVE_INPUT 30 #define ACM_METRIC_HARDWARE_WAVE_OUTPUT 31 #define ACM_METRIC_MAX_SIZE_FORMAT 50 #define ACM_METRIC_MAX_SIZE_FILTER 51 #define ACM_METRIC_DRIVER_SUPPORT 100 #define ACM_METRIC_DRIVER_PRIORITY 101 #define ACM_STREAMCONVERTF_BLOCKALIGN 0x00000004 #define ACM_STREAMCONVERTF_START 0x00000010 #define ACM_STREAMCONVERTF_END 0x00000020 #define ACMSTREAMHEADER_STATUSF_DONE 0x00010000L #define ACMSTREAMHEADER_STATUSF_PREPARED 0x00020000L #define ACMSTREAMHEADER_STATUSF_INQUEUE 0x00100000L #define ACM_STREAMOPENF_QUERY 0x00000001 #define ACM_STREAMOPENF_ASYNC 0x00000002 #define ACM_STREAMOPENF_NONREALTIME 0x00000004 #define ACM_STREAMSIZEF_SOURCE 0x00000000L #define ACM_STREAMSIZEF_DESTINATION 0x00000001L #define ACM_STREAMSIZEF_QUERYMASK 0x0000000FL #define ACMDM_USER (DRV_USER + 0x0000) #define ACMDM_RESERVED_LOW (DRV_USER + 0x2000) #define ACMDM_RESERVED_HIGH (DRV_USER + 0x2FFF) #define ACMDM_BASE ACMDM_RESERVED_LOW #define ACMDM_DRIVER_ABOUT (ACMDM_BASE + 11) /*********************************************************************** * Callbacks */ typedef WIN_BOOL CALLBACK ( *ACMDRIVERENUMCB)( HACMDRIVERID hadid, DWORD dwInstance, DWORD fdwSupport ); typedef WIN_BOOL16 CALLBACK ( *ACMDRIVERENUMCB16)( HACMDRIVERID16 hadid, DWORD dwInstance, DWORD fdwSupport ); typedef UINT CALLBACK ( *ACMFILTERCHOOSEHOOKPROCA)( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam ); typedef UINT CALLBACK ( *ACMFILTERCHOOSEHOOKPROCW)( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam ); typedef UINT CALLBACK ( *ACMFILTERCHOOSEHOOKPROC16)( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam ); typedef UINT CALLBACK ( *ACMFORMATCHOOSEHOOKPROCA)( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam ); typedef UINT CALLBACK ( *ACMFORMATCHOOSEHOOKPROCW)( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam ); typedef UINT16 CALLBACK ( *ACMFORMATCHOOSEHOOKPROC16)( HWND16 hwnd, UINT16 uMsg, WPARAM16 wParam, LPARAM lParam ); /*********************************************************************** * Structures */ typedef struct _ACMDRIVERDETAILSA { DWORD cbStruct; FOURCC fccType; FOURCC fccComp; WORD wMid; WORD wPid; DWORD vdwACM; DWORD vdwDriver; DWORD fdwSupport; DWORD cFormatTags; DWORD cFilterTags; HICON hicon; CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS]; CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS]; CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS]; CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS]; CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS]; } ACMDRIVERDETAILSA, *PACMDRIVERDETAILSA; typedef struct _ACMDRIVERDETAILSW { DWORD cbStruct; FOURCC fccType; FOURCC fccComp; WORD wMid; WORD wPid; DWORD vdwACM; DWORD vdwDriver; DWORD fdwSupport; DWORD cFormatTags; DWORD cFilterTags; HICON hicon; WCHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS]; WCHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS]; WCHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS]; WCHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS]; WCHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS]; } ACMDRIVERDETAILSW, *PACMDRIVERDETAILSW; typedef struct _ACMDRIVERDETAILS16 { DWORD cbStruct; FOURCC fccType; FOURCC fccComp; WORD wMid; WORD wPid; DWORD vdwACM; DWORD vdwDriver; DWORD fdwSupport; DWORD cFormatTags; DWORD cFilterTags; HICON16 hicon; CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS]; CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS]; CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS]; CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS]; CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS]; } ACMDRIVERDETAILS16, *NPACMDRIVERDETAILS16, *LPACMDRIVERDETAILS16; typedef struct _ACMFILTERCHOOSEA { DWORD cbStruct; DWORD fdwStyle; HWND hwndOwner; PWAVEFILTER pwfltr; DWORD cbwfltr; LPCSTR pszTitle; CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS]; CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS]; LPSTR pszName; DWORD cchName; DWORD fdwEnum; PWAVEFILTER pwfltrEnum; HINSTANCE hInstance; LPCSTR pszTemplateName; LPARAM lCustData; ACMFILTERCHOOSEHOOKPROCA pfnHook; } ACMFILTERCHOOSEA, *PACMFILTERCHOOSEA; typedef struct _ACMFILTERCHOOSEW { DWORD cbStruct; DWORD fdwStyle; HWND hwndOwner; PWAVEFILTER pwfltr; DWORD cbwfltr; LPCWSTR pszTitle; WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS]; WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS]; LPWSTR pszName; DWORD cchName; DWORD fdwEnum; PWAVEFILTER pwfltrEnum; HINSTANCE hInstance; LPCWSTR pszTemplateName; LPARAM lCustData; ACMFILTERCHOOSEHOOKPROCW pfnHook; } ACMFILTERCHOOSEW, *PACMFILTERCHOOSEW; typedef struct _ACMFILTERCHOOSE16 { DWORD cbStruct; DWORD fdwStyle; HWND16 hwndOwner; LPWAVEFILTER pwfltr; DWORD cbwfltr; LPCSTR pszTitle; char szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS]; char szFilter[ACMFILTERDETAILS_FILTER_CHARS]; LPSTR pszName; DWORD cchName; DWORD fdwEnum; LPWAVEFILTER pwfltrEnum; HINSTANCE16 hInstance; LPCSTR pszTemplateName; LPARAM lCustData; ACMFILTERCHOOSEHOOKPROC16 pfnHook; } ACMFILTERCHOOSE16, *NPACMFILTERCHOOSE16, *LPACMFILTERCHOOSE16; typedef struct _ACMFILTERDETAILSA { DWORD cbStruct; DWORD dwFilterIndex; DWORD dwFilterTag; DWORD fdwSupport; PWAVEFILTER pwfltr; DWORD cbwfltr; CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS]; } ACMFILTERDETAILSA, *PACMFILTERDETAILSA; typedef struct _ACMFILTERDETAILSW { DWORD cbStruct; DWORD dwFilterIndex; DWORD dwFilterTag; DWORD fdwSupport; PWAVEFILTER pwfltr; DWORD cbwfltr; WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS]; } ACMFILTERDETAILSW, *PACMFILTERDETAILSW; typedef struct _ACMFILTERDETAILS16 { DWORD cbStruct; DWORD dwFilterIndex; DWORD dwFilterTag; DWORD fdwSupport; LPWAVEFILTER pwfltr; DWORD cbwfltr; CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS]; } ACMFILTERDETAILS16, *NPACMFILTERDETAILS16, *LPACMFILTERDETAILS16; typedef struct _ACMFILTERTAGDETAILSA { DWORD cbStruct; DWORD dwFilterTagIndex; DWORD dwFilterTag; DWORD cbFilterSize; DWORD fdwSupport; DWORD cStandardFilters; CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS]; } ACMFILTERTAGDETAILSA, *PACMFILTERTAGDETAILSA; typedef struct _ACMFILTERTAGDETAILSW { DWORD cbStruct; DWORD dwFilterTagIndex; DWORD dwFilterTag; DWORD cbFilterSize; DWORD fdwSupport; DWORD cStandardFilters; WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS]; } ACMFILTERTAGDETAILSW, *PACMFILTERTAGDETAILSW; typedef struct _ACMFILTERTAGDETAILS16 { DWORD cbStruct; DWORD dwFilterTagIndex; DWORD dwFilterTag; DWORD cbFilterSize; DWORD fdwSupport; DWORD cStandardFilters; CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS]; } ACMFILTERTAGDETAILS16, *NPACMFILTERTAGDETAILS16, *LPACMFILTERTAGDETAILS16; typedef struct _ACMFORMATCHOOSEA { DWORD cbStruct; DWORD fdwStyle; HWND hwndOwner; PWAVEFORMATEX pwfx; DWORD cbwfx; LPCSTR pszTitle; CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; LPSTR pszName; DWORD cchName; DWORD fdwEnum; PWAVEFORMATEX pwfxEnum; HINSTANCE hInstance; LPCSTR pszTemplateName; LPARAM lCustData; ACMFORMATCHOOSEHOOKPROCA pfnHook; } ACMFORMATCHOOSEA, *PACMFORMATCHOOSEA; typedef struct _ACMFORMATCHOOSEW { DWORD cbStruct; DWORD fdwStyle; HWND hwndOwner; PWAVEFORMATEX pwfx; DWORD cbwfx; LPCWSTR pszTitle; WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; LPWSTR pszName; DWORD cchName; DWORD fdwEnum; LPWAVEFORMATEX pwfxEnum; HINSTANCE hInstance; LPCWSTR pszTemplateName; LPARAM lCustData; ACMFORMATCHOOSEHOOKPROCW pfnHook; } ACMFORMATCHOOSEW, *PACMFORMATCHOOSEW; typedef struct _ACMFORMATCHOOSE16 { DWORD cbStruct; DWORD fdwStyle; HWND16 hwndOwner; LPWAVEFORMATEX pwfx; DWORD cbwfx; LPCSTR pszTitle; CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; LPSTR pszName; DWORD cchName; DWORD fdwEnum; LPWAVEFORMATEX pwfxEnum; HINSTANCE16 hInstance; LPCSTR pszTemplateName; LPARAM lCustData; ACMFORMATCHOOSEHOOKPROC16 pfnHook; } ACMFORMATCHOOSE16, *NPACMFORMATCHOOSE16, *LPACMFORMATCHOOSE16; typedef struct _ACMFORMATDETAILSA { DWORD cbStruct; DWORD dwFormatIndex; DWORD dwFormatTag; DWORD fdwSupport; PWAVEFORMATEX pwfx; DWORD cbwfx; CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; } ACMFORMATDETAILSA, *PACMFORMATDETAILSA; typedef struct _ACMFORMATDETAILSW { DWORD cbStruct; DWORD dwFormatIndex; DWORD dwFormatTag; DWORD fdwSupport; PWAVEFORMATEX pwfx; DWORD cbwfx; WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; } ACMFORMATDETAILSW, *PACMFORMATDETAILSW; typedef struct _ACMFORMATDETAILS16 { DWORD cbStruct; DWORD dwFormatIndex; DWORD dwFormatTag; DWORD fdwSupport; LPWAVEFORMATEX pwfx; DWORD cbwfx; CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; } ACMFORMATDETAILS16, *NPACMFORMATDETAILS16, *LPACMFORMATDETAILS16; typedef struct _ACMFORMATTAGDETAILSA { DWORD cbStruct; DWORD dwFormatTagIndex; DWORD dwFormatTag; DWORD cbFormatSize; DWORD fdwSupport; DWORD cStandardFormats; CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; } ACMFORMATTAGDETAILSA, *PACMFORMATTAGDETAILSA; typedef struct _ACMFORMATTAGDETAILSW { DWORD cbStruct; DWORD dwFormatTagIndex; DWORD dwFormatTag; DWORD cbFormatSize; DWORD fdwSupport; DWORD cStandardFormats; WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; } ACMFORMATTAGDETAILSW, *PACMFORMATTAGDETAILSW; typedef struct _ACMFORMATTAGDETAILS16 { DWORD cbStruct; DWORD dwFormatTagIndex; DWORD dwFormatTag; DWORD cbFormatSize; DWORD fdwSupport; DWORD cStandardFormats; CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS]; } ACMFORMATTAGDETAILS16, *NPACMFORMATTAGDETAILS16, *LPACMFORMATTAGDETAILS16; typedef struct _ACMSTREAMHEADER { DWORD cbStruct; DWORD fdwStatus; DWORD dwUser; LPBYTE pbSrc; DWORD cbSrcLength; DWORD cbSrcLengthUsed; DWORD dwSrcUser; LPBYTE pbDst; DWORD cbDstLength; DWORD cbDstLengthUsed; DWORD dwDstUser; DWORD dwReservedDriver[10]; } ACMSTREAMHEADER16, *NPACMSTREAMHEADER16, *LPACMSTREAMHEADER16, ACMSTREAMHEADER, *PACMSTREAMHEADER; /*********************************************************************** * Callbacks 2 */ typedef WIN_BOOL CALLBACK ( *ACMFILTERENUMCBA)( HACMDRIVERID hadid, PACMFILTERDETAILSA pafd, DWORD dwInstance, DWORD fdwSupport ); typedef WIN_BOOL CALLBACK ( *ACMFILTERENUMCBW)( HACMDRIVERID hadid, PACMFILTERDETAILSW pafd, DWORD dwInstance, DWORD fdwSupport ); typedef WIN_BOOL16 CALLBACK ( *ACMFILTERENUMCB16)( HACMDRIVERID16 hadid, LPACMFILTERDETAILS16 pafd, DWORD dwInstance, DWORD fdwSupport ); typedef WIN_BOOL CALLBACK ( *ACMFILTERTAGENUMCBA)( HACMDRIVERID hadid, PACMFILTERTAGDETAILSA paftd, DWORD dwInstance, DWORD fdwSupport ); typedef WIN_BOOL CALLBACK ( *ACMFILTERTAGENUMCBW)( HACMDRIVERID hadid, PACMFILTERTAGDETAILSW paftd, DWORD dwInstance, DWORD fdwSupport ); typedef WIN_BOOL16 CALLBACK ( *ACMFILTERTAGENUMCB16)( HACMDRIVERID16 hadid, LPACMFILTERTAGDETAILS16 paftd, DWORD dwInstance, DWORD fdwSupport ); typedef WIN_BOOL CALLBACK ( *ACMFORMATENUMCBA)( HACMDRIVERID hadid, PACMFORMATDETAILSA pafd, DWORD dwInstance, DWORD fdwSupport ); typedef WIN_BOOL CALLBACK ( *ACMFORMATENUMCBW)( HACMDRIVERID hadid, PACMFORMATDETAILSW pafd, DWORD dwInstance, DWORD fdwSupport ); typedef WIN_BOOL16 CALLBACK ( *ACMFORMATENUMCB16)( HACMDRIVERID16 hadid, LPACMFORMATDETAILS16 pafd, DWORD dwInstance, DWORD fdwSupport ); typedef WIN_BOOL CALLBACK ( *ACMFORMATTAGENUMCBA)( HACMDRIVERID hadid, PACMFORMATTAGDETAILSA paftd, DWORD dwInstance, DWORD fdwSupport ); typedef WIN_BOOL CALLBACK ( *ACMFORMATTAGENUMCBW)( HACMDRIVERID hadid, PACMFORMATTAGDETAILSW paftd, DWORD dwInstance, DWORD fdwSupport ); typedef WIN_BOOL16 CALLBACK ( *ACMFORMATTAGENUMCB16)( HACMDRIVERID16 hadid, LPACMFORMATTAGDETAILS16 paftd, DWORD dwInstance, DWORD fdwSupport ); /*********************************************************************** * Functions - Win16 */ DWORD WINAPI acmGetVersion16( ); MMRESULT16 WINAPI acmMetrics16( HACMOBJ16 hao, UINT16 uMetric, LPVOID pMetric ); MMRESULT16 WINAPI acmDriverEnum16( ACMDRIVERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum ); MMRESULT16 WINAPI acmDriverDetails16( HACMDRIVERID16 hadid, LPACMDRIVERDETAILS16 padd, DWORD fdwDetails ); MMRESULT16 WINAPI acmDriverAdd16( LPHACMDRIVERID16 phadid, HINSTANCE16 hinstModule, LPARAM lParam, DWORD dwPriority, DWORD fdwAdd ); MMRESULT16 WINAPI acmDriverRemove16( HACMDRIVERID16 hadid, DWORD fdwRemove ); MMRESULT16 WINAPI acmDriverOpen16( LPHACMDRIVER16 phad, HACMDRIVERID16 hadid, DWORD fdwOpen ); MMRESULT16 WINAPI acmDriverClose16( HACMDRIVER16 had, DWORD fdwClose ); LRESULT WINAPI acmDriverMessage16( HACMDRIVER16 had, UINT16 uMsg, LPARAM lParam1, LPARAM lParam2 ); MMRESULT16 WINAPI acmDriverID16( HACMOBJ16 hao, LPHACMDRIVERID16 phadid, DWORD fdwDriverID ); MMRESULT16 WINAPI acmDriverPriority16( HACMDRIVERID16 hadid, DWORD dwPriority, DWORD fdwPriority ); MMRESULT16 WINAPI acmFormatTagDetails16( HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd, DWORD fdwDetails ); MMRESULT16 WINAPI acmFormatTagEnum16( HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd, ACMFORMATTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum ); MMRESULT16 WINAPI acmFormatChoose16( LPACMFORMATCHOOSE16 pafmtc ); MMRESULT16 WINAPI acmFormatDetails16( HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd, DWORD fdwDetails ); MMRESULT16 WINAPI acmFormatEnum16( HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd, ACMFORMATENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum ); MMRESULT16 WINAPI acmFormatSuggest16( HACMDRIVER16 had, LPWAVEFORMATEX pwfxSrc, LPWAVEFORMATEX pwfxDst, DWORD cbwfxDst, DWORD fdwSuggest ); MMRESULT16 WINAPI acmFilterTagDetails16( HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd, DWORD fdwDetails ); MMRESULT16 WINAPI acmFilterTagEnum16( HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd, ACMFILTERTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum ); MMRESULT16 WINAPI acmFilterChoose16( LPACMFILTERCHOOSE16 pafltrc ); MMRESULT16 WINAPI acmFilterDetails16( HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd, DWORD fdwDetails ); MMRESULT16 WINAPI acmFilterEnum16( HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd, ACMFILTERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum ); MMRESULT16 WINAPI acmStreamOpen16( LPHACMSTREAM16 phas, HACMDRIVER16 had, LPWAVEFORMATEX pwfxSrc, LPWAVEFORMATEX pwfxDst, LPWAVEFILTER pwfltr, DWORD dwCallback, DWORD dwInstance, DWORD fdwOpen ); MMRESULT16 WINAPI acmStreamClose16( HACMSTREAM16 has, DWORD fdwClose ); MMRESULT16 WINAPI acmStreamSize16( HACMSTREAM16 has, DWORD cbInput, LPDWORD pdwOutputBytes, DWORD fdwSize ); MMRESULT16 WINAPI acmStreamConvert16( HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwConvert ); MMRESULT16 WINAPI acmStreamReset16( HACMSTREAM16 has, DWORD fdwReset ); MMRESULT16 WINAPI acmStreamPrepareHeader16( HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwPrepare ); MMRESULT16 WINAPI acmStreamUnprepareHeader16( HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwUnprepare ); /*********************************************************************** * Functions - Win32 */ MMRESULT WINAPI acmDriverAddA( PHACMDRIVERID phadid, HINSTANCE hinstModule, LPARAM lParam, DWORD dwPriority, DWORD fdwAdd ); MMRESULT WINAPI acmDriverAddW( PHACMDRIVERID phadid, HINSTANCE hinstModule, LPARAM lParam, DWORD dwPriority, DWORD fdwAdd ); MMRESULT WINAPI acmDriverClose( HACMDRIVER had, DWORD fdwClose ); MMRESULT WINAPI acmDriverDetailsA( HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails ); MMRESULT WINAPI acmDriverDetailsW( HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails ); MMRESULT WINAPI acmDriverEnum( ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum ); MMRESULT WINAPI acmDriverID( HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID ); LRESULT WINAPI acmDriverMessage( HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2 ); MMRESULT WINAPI acmDriverOpen( PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen ); MMRESULT WINAPI acmDriverPriority( HACMDRIVERID hadid, DWORD dwPriority, DWORD fdwPriority ); MMRESULT WINAPI acmDriverRemove( HACMDRIVERID hadid, DWORD fdwRemove ); MMRESULT WINAPI acmFilterChooseA( PACMFILTERCHOOSEA pafltrc ); MMRESULT WINAPI acmFilterChooseW( PACMFILTERCHOOSEW pafltrc ); MMRESULT WINAPI acmFilterDetailsA( HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails ); MMRESULT WINAPI acmFilterDetailsW( HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails ); MMRESULT WINAPI acmFilterEnumA( HACMDRIVER had, PACMFILTERDETAILSA pafd, ACMFILTERENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum ); MMRESULT WINAPI acmFilterEnumW( HACMDRIVER had, PACMFILTERDETAILSW pafd, ACMFILTERENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum ); MMRESULT WINAPI acmFilterTagDetailsA( HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails ); MMRESULT WINAPI acmFilterTagDetailsW( HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails ); MMRESULT WINAPI acmFilterTagEnumA( HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, ACMFILTERTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum ); MMRESULT WINAPI acmFilterTagEnumW( HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, ACMFILTERTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum ); MMRESULT WINAPI acmFormatChooseA( PACMFORMATCHOOSEA pafmtc ); MMRESULT WINAPI acmFormatChooseW( PACMFORMATCHOOSEW pafmtc ); MMRESULT WINAPI acmFormatDetailsA( HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails ); MMRESULT WINAPI acmFormatDetailsW( HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails ); MMRESULT WINAPI acmFormatEnumA( HACMDRIVER had, PACMFORMATDETAILSA pafd, ACMFORMATENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum ); MMRESULT WINAPI acmFormatEnumW( HACMDRIVER had, PACMFORMATDETAILSW pafd, ACMFORMATENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum ); MMRESULT WINAPI acmFormatSuggest( HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst, DWORD cbwfxDst, DWORD fdwSuggest ); MMRESULT WINAPI acmFormatTagDetailsA( HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, DWORD fdwDetails ); MMRESULT WINAPI acmFormatTagDetailsW( HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails ); MMRESULT WINAPI acmFormatTagEnumA( HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, ACMFORMATTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum ); MMRESULT WINAPI acmFormatTagEnumW( HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, ACMFORMATTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum ); DWORD WINAPI acmGetVersion( ); MMRESULT WINAPI acmMetrics( HACMOBJ hao, UINT uMetric, LPVOID pMetric ); MMRESULT WINAPI acmStreamClose( HACMSTREAM has, DWORD fdwClose ); MMRESULT WINAPI acmStreamConvert( HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert ); MMRESULT WINAPI acmStreamMessage( HACMSTREAM has, UINT uMsg, LPARAM lParam1, LPARAM lParam2 ); MMRESULT WINAPI acmStreamOpen( PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD dwCallback, DWORD dwInstance, DWORD fdwOpen ); MMRESULT WINAPI acmStreamPrepareHeader( HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare ); MMRESULT WINAPI acmStreamReset( HACMSTREAM has, DWORD fdwReset ); MMRESULT WINAPI acmStreamSize( HACMSTREAM has, DWORD cbInput, LPDWORD pdwOutputBytes, DWORD fdwSize ); MMRESULT WINAPI acmStreamUnprepareHeader( HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare ); void MSACM_RegisterAllDrivers(void); #ifdef __cplusplus } /* extern "C" */ #endif /* defined(__cplusplus) */ #endif /* __WINE_MSACM_H */ bml-0.6.1/dllwrapper/wine/windef.h0000644042355400116100000004427011576362500013776 00000000000000/* * Basic types definitions * * Copyright 1996 Alexandre Julliard */ #ifndef __WINE_WINDEF_H #define __WINE_WINDEF_H #ifdef __WINE__ # include "config.h" # undef UNICODE #endif #ifdef _EGCS_ #define __stdcall #endif #ifdef __cplusplus extern "C" { #endif /* Misc. constants. */ #ifdef FALSE #undef FALSE #endif #define FALSE 0 #ifdef TRUE #undef TRUE #endif #define TRUE 1 #ifdef NULL #undef NULL #endif #define NULL 0 /* Macros to map Winelib names to the correct implementation name */ /* depending on __WINE__ and UNICODE macros. */ /* Note that Winelib is purely Win32. */ #ifdef __WINE__ # define WINELIB_NAME_AW(func) \ func##_must_be_suffixed_with_W_or_A_in_this_context \ func##_must_be_suffixed_with_W_or_A_in_this_context #else /* __WINE__ */ # ifdef UNICODE # define WINELIB_NAME_AW(func) func##W # else # define WINELIB_NAME_AW(func) func##A # endif /* UNICODE */ #endif /* __WINE__ */ #ifdef __WINE__ # define DECL_WINELIB_TYPE_AW(type) /* nothing */ #else /* __WINE__ */ # define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type; #endif /* __WINE__ */ #ifndef NONAMELESSSTRUCT # if defined(__WINE__) || !defined(_FORCENAMELESSSTRUCT) # define NONAMELESSSTRUCT # endif #endif /* !defined(NONAMELESSSTRUCT) */ #ifndef NONAMELESSUNION # if defined(__WINE__) || !defined(_FORCENAMELESSUNION) || !defined(__cplusplus) # define NONAMELESSUNION # endif #endif /* !defined(NONAMELESSUNION) */ #ifndef NONAMELESSSTRUCT #define DUMMYSTRUCTNAME #define DUMMYSTRUCTNAME1 #define DUMMYSTRUCTNAME2 #define DUMMYSTRUCTNAME3 #define DUMMYSTRUCTNAME4 #define DUMMYSTRUCTNAME5 #else /* !defined(NONAMELESSSTRUCT) */ #define DUMMYSTRUCTNAME s #define DUMMYSTRUCTNAME1 s1 #define DUMMYSTRUCTNAME2 s2 #define DUMMYSTRUCTNAME3 s3 #define DUMMYSTRUCTNAME4 s4 #define DUMMYSTRUCTNAME5 s5 #endif /* !defined(NONAMELESSSTRUCT) */ #ifndef NONAMELESSUNION #define DUMMYUNIONNAME #define DUMMYUNIONNAME1 #define DUMMYUNIONNAME2 #define DUMMYUNIONNAME3 #define DUMMYUNIONNAME4 #define DUMMYUNIONNAME5 #else /* !defined(NONAMELESSUNION) */ #define DUMMYUNIONNAME u #define DUMMYUNIONNAME1 u1 #define DUMMYUNIONNAME2 u2 #define DUMMYUNIONNAME3 u3 #define DUMMYUNIONNAME4 u4 #define DUMMYUNIONNAME5 u5 #endif /* !defined(NONAMELESSUNION) */ /* Calling conventions definitions */ #ifdef __i386__ # if defined(__GNUC__) && ((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 7))) # ifndef _EGCS_ #define __stdcall __attribute__((__stdcall__)) #define __cdecl __attribute__((__cdecl__)) # define __RESTORE_ES __asm__ __volatile__("pushl %ds\n\tpopl %es") # endif # else // # error You need gcc >= 2.7 to build Wine on a 386 # define __stdcall # define __cdecl # endif #else # define __stdcall # define __cdecl # define __RESTORE_ES #endif #define CALLBACK __stdcall #define WINAPI __stdcall #define APIPRIVATE __stdcall #define PASCAL __stdcall #define pascal __stdcall #define _pascal __stdcall #if !defined(__CYGWIN__) #define _stdcall __stdcall #endif #define _fastcall __stdcall #define __fastcall __stdcall #define __export __stdcall #define CDECL __cdecl #define _CDECL __cdecl #define cdecl __cdecl #if !defined(__CYGWIN__) #define _cdecl __cdecl #endif #define WINAPIV __cdecl #define APIENTRY WINAPI #if !defined(__CYGWIN__) #define __declspec(x) #endif #define dllimport #define dllexport #define CONST const /* Standard data types. These are the same for emulator and library. */ typedef void VOID; typedef int INT; typedef unsigned int UINT; typedef unsigned short WORD; typedef unsigned long DWORD; typedef unsigned long ULONG; typedef unsigned char BYTE; typedef long LONG; typedef short SHORT; typedef unsigned short USHORT; typedef char CHAR; typedef unsigned char UCHAR; typedef LONG SCODE; /* Some systems might have wchar_t, but we really need 16 bit characters */ typedef unsigned short WCHAR; typedef int WIN_BOOL; typedef double DATE; typedef double DOUBLE; typedef long long LONGLONG; typedef unsigned long long ULONGLONG; /* FIXME: Wine does not compile with strict on, therefore strict * handles are presently only usable on machines where sizeof(UINT) == * sizeof(void*). HANDLEs are supposed to be void* but a large amount * of WINE code operates on HANDLES as if they are UINTs. So to WINE * they exist as UINTs but to the Winelib user who turns on strict, * they exist as void*. If there is a size difference between UINT and * void* then things get ugly. */ #ifdef STRICT typedef VOID* HANDLE; #else typedef UINT HANDLE; #endif typedef HANDLE *LPHANDLE; /* Integer types. These are the same for emulator and library. */ typedef UINT WPARAM; typedef LONG LPARAM; typedef LONG HRESULT; typedef LONG LRESULT; typedef WORD ATOM; typedef WORD CATCHBUF[9]; typedef WORD *LPCATCHBUF; typedef HANDLE HHOOK; typedef HANDLE HMONITOR; typedef DWORD LCID; typedef WORD LANGID; typedef DWORD LCTYPE; typedef float FLOAT; /* Pointers types. These are the same for emulator and library. */ /* winnt types */ typedef VOID *PVOID; typedef const void *PCVOID; typedef CHAR *PCHAR; typedef UCHAR *PUCHAR; typedef BYTE *PBYTE; typedef WORD *PWORD; typedef USHORT *PUSHORT; typedef SHORT *PSHORT; typedef ULONG *PULONG; typedef LONG *PLONG; typedef DWORD *PDWORD; /* common win32 types */ typedef CHAR *LPSTR; typedef CHAR *PSTR; typedef const CHAR *LPCSTR; typedef const CHAR *PCSTR; typedef WCHAR *LPWSTR; typedef WCHAR *PWSTR; typedef const WCHAR *LPCWSTR; typedef const WCHAR *PCWSTR; typedef BYTE *LPBYTE; typedef WORD *LPWORD; typedef DWORD *LPDWORD; typedef LONG *LPLONG; typedef VOID *LPVOID; typedef const VOID *LPCVOID; typedef INT *PINT; typedef INT *LPINT; typedef UINT *PUINT; typedef UINT *LPUINT; typedef FLOAT *PFLOAT; typedef FLOAT *LPFLOAT; typedef WIN_BOOL *PWIN_BOOL; typedef WIN_BOOL *LPWIN_BOOL; /* Special case: a segmented pointer is just a pointer in the user's code. */ #ifdef __WINE__ typedef DWORD SEGPTR; #else typedef void* SEGPTR; #endif /* __WINE__ */ /* Handle types that exist both in Win16 and Win32. */ #ifdef STRICT #define DECLARE_HANDLE(a) \ typedef struct a##__ { int unused; } *a; \ typedef a *P##a; \ typedef a *LP##a #else /*STRICT*/ #define DECLARE_HANDLE(a) \ typedef HANDLE a; \ typedef a *P##a; \ typedef a *LP##a #endif /*STRICT*/ DECLARE_HANDLE(HACMDRIVERID); DECLARE_HANDLE(HACMDRIVER); DECLARE_HANDLE(HACMOBJ); DECLARE_HANDLE(HACMSTREAM); DECLARE_HANDLE(HMETAFILEPICT); DECLARE_HANDLE(HACCEL); DECLARE_HANDLE(HBITMAP); DECLARE_HANDLE(HBRUSH); DECLARE_HANDLE(HCOLORSPACE); DECLARE_HANDLE(HCURSOR); DECLARE_HANDLE(HDC); DECLARE_HANDLE(HDROP); DECLARE_HANDLE(HDRVR); DECLARE_HANDLE(HDWP); DECLARE_HANDLE(HENHMETAFILE); DECLARE_HANDLE(HFILE); DECLARE_HANDLE(HFONT); DECLARE_HANDLE(HICON); DECLARE_HANDLE(HINSTANCE); DECLARE_HANDLE(HKEY); DECLARE_HANDLE(HMENU); DECLARE_HANDLE(HMETAFILE); DECLARE_HANDLE(HMIDI); DECLARE_HANDLE(HMIDIIN); DECLARE_HANDLE(HMIDIOUT); DECLARE_HANDLE(HMIDISTRM); DECLARE_HANDLE(HMIXER); DECLARE_HANDLE(HMIXEROBJ); DECLARE_HANDLE(HMMIO); DECLARE_HANDLE(HPALETTE); DECLARE_HANDLE(HPEN); DECLARE_HANDLE(HQUEUE); DECLARE_HANDLE(HRGN); DECLARE_HANDLE(HRSRC); DECLARE_HANDLE(HTASK); DECLARE_HANDLE(HWAVE); DECLARE_HANDLE(HWAVEIN); DECLARE_HANDLE(HWAVEOUT); DECLARE_HANDLE(HWINSTA); DECLARE_HANDLE(HDESK); DECLARE_HANDLE(HWND); DECLARE_HANDLE(HKL); DECLARE_HANDLE(HIC); DECLARE_HANDLE(HRASCONN); /* Handle types that must remain interchangeable even with strict on */ typedef HINSTANCE HMODULE; typedef HANDLE HGDIOBJ; typedef HANDLE HGLOBAL; typedef HANDLE HLOCAL; typedef HANDLE GLOBALHANDLE; typedef HANDLE LOCALHANDLE; /* Callback function pointers types */ /*WIN_BOOL CALLBACK DATEFMT_ENUMPROCA(LPSTR); */ typedef WIN_BOOL CALLBACK (* DATEFMT_ENUMPROCA)(LPSTR); typedef WIN_BOOL CALLBACK (* DATEFMT_ENUMPROCW)(LPWSTR); DECL_WINELIB_TYPE_AW(DATEFMT_ENUMPROC) typedef WIN_BOOL CALLBACK (*DLGPROC)(HWND,UINT,WPARAM,LPARAM); typedef LRESULT CALLBACK (*DRIVERPROC)(DWORD,HDRVR,UINT,LPARAM,LPARAM); typedef INT CALLBACK (*EDITWORDBREAKPROCA)(LPSTR,INT,INT,INT); typedef INT CALLBACK (*EDITWORDBREAKPROCW)(LPWSTR,INT,INT,INT); DECL_WINELIB_TYPE_AW(EDITWORDBREAKPROC) typedef LRESULT CALLBACK (*FARPROC)(); typedef INT CALLBACK (*PROC)(); typedef WIN_BOOL CALLBACK (*GRAYSTRINGPROC)(HDC,LPARAM,INT); typedef LRESULT CALLBACK (*HOOKPROC)(INT,WPARAM,LPARAM); typedef WIN_BOOL CALLBACK (*PROPENUMPROCA)(HWND,LPCSTR,HANDLE); typedef WIN_BOOL CALLBACK (*PROPENUMPROCW)(HWND,LPCWSTR,HANDLE); DECL_WINELIB_TYPE_AW(PROPENUMPROC) typedef WIN_BOOL CALLBACK (*PROPENUMPROCEXA)(HWND,LPCSTR,HANDLE,LPARAM); typedef WIN_BOOL CALLBACK (*PROPENUMPROCEXW)(HWND,LPCWSTR,HANDLE,LPARAM); DECL_WINELIB_TYPE_AW(PROPENUMPROCEX) typedef WIN_BOOL CALLBACK (* TIMEFMT_ENUMPROCA)(LPSTR); typedef WIN_BOOL CALLBACK (* TIMEFMT_ENUMPROCW)(LPWSTR); DECL_WINELIB_TYPE_AW(TIMEFMT_ENUMPROC) typedef VOID CALLBACK (*TIMERPROC)(HWND,UINT,UINT,DWORD); typedef WIN_BOOL CALLBACK (*WNDENUMPROC)(HWND,LPARAM); typedef LRESULT CALLBACK (*WNDPROC)(HWND,UINT,WPARAM,LPARAM); /*---------------------------------------------------------------------------- ** FIXME: Better isolate Wine's reliance on the xxx16 type definitions. ** For now, we just isolate them to make the situation clear. **--------------------------------------------------------------------------*/ /* * Basic type definitions for 16 bit variations on Windows types. * These types are provided mostly to insure compatibility with * 16 bit windows code. */ #ifndef __WINE_WINDEF16_H #define __WINE_WINDEF16_H #include "windef.h" /* Standard data types */ typedef short INT16; typedef unsigned short UINT16; typedef unsigned short WIN_BOOL16; typedef UINT16 HANDLE16; typedef HANDLE16 *LPHANDLE16; typedef UINT16 WPARAM16; typedef INT16 *LPINT16; typedef UINT16 *LPUINT16; #define DECLARE_HANDLE16(a) \ typedef HANDLE16 a##16; \ typedef a##16 *P##a##16; \ typedef a##16 *NP##a##16; \ typedef a##16 *LP##a##16 DECLARE_HANDLE16(HACMDRIVERID); DECLARE_HANDLE16(HACMDRIVER); DECLARE_HANDLE16(HACMOBJ); DECLARE_HANDLE16(HACMSTREAM); DECLARE_HANDLE16(HMETAFILEPICT); DECLARE_HANDLE16(HACCEL); DECLARE_HANDLE16(HBITMAP); DECLARE_HANDLE16(HBRUSH); DECLARE_HANDLE16(HCOLORSPACE); DECLARE_HANDLE16(HCURSOR); DECLARE_HANDLE16(HDC); DECLARE_HANDLE16(HDROP); DECLARE_HANDLE16(HDRVR); DECLARE_HANDLE16(HDWP); DECLARE_HANDLE16(HENHMETAFILE); DECLARE_HANDLE16(HFILE); DECLARE_HANDLE16(HFONT); DECLARE_HANDLE16(HICON); DECLARE_HANDLE16(HINSTANCE); DECLARE_HANDLE16(HKEY); DECLARE_HANDLE16(HMENU); DECLARE_HANDLE16(HMETAFILE); DECLARE_HANDLE16(HMIDI); DECLARE_HANDLE16(HMIDIIN); DECLARE_HANDLE16(HMIDIOUT); DECLARE_HANDLE16(HMIDISTRM); DECLARE_HANDLE16(HMIXER); DECLARE_HANDLE16(HMIXEROBJ); DECLARE_HANDLE16(HMMIO); DECLARE_HANDLE16(HPALETTE); DECLARE_HANDLE16(HPEN); DECLARE_HANDLE16(HQUEUE); DECLARE_HANDLE16(HRGN); DECLARE_HANDLE16(HRSRC); DECLARE_HANDLE16(HTASK); DECLARE_HANDLE16(HWAVE); DECLARE_HANDLE16(HWAVEIN); DECLARE_HANDLE16(HWAVEOUT); DECLARE_HANDLE16(HWINSTA); DECLARE_HANDLE16(HDESK); DECLARE_HANDLE16(HWND); DECLARE_HANDLE16(HKL); DECLARE_HANDLE16(HIC); DECLARE_HANDLE16(HRASCONN); #undef DECLARE_HANDLE16 typedef HINSTANCE16 HMODULE16; typedef HANDLE16 HGDIOBJ16; typedef HANDLE16 HGLOBAL16; typedef HANDLE16 HLOCAL16; /* The SIZE structure */ typedef struct { INT16 cx; INT16 cy; } SIZE16, *PSIZE16, *LPSIZE16; /* The POINT structure */ typedef struct { INT16 x; INT16 y; } POINT16, *PPOINT16, *LPPOINT16; /* The RECT structure */ typedef struct { INT16 left; INT16 top; INT16 right; INT16 bottom; } RECT16, *LPRECT16; /* Callback function pointers types */ typedef LRESULT CALLBACK (*DRIVERPROC16)(DWORD,HDRVR16,UINT16,LPARAM,LPARAM); typedef WIN_BOOL16 CALLBACK (*DLGPROC16)(HWND16,UINT16,WPARAM16,LPARAM); typedef INT16 CALLBACK (*EDITWORDBREAKPROC16)(LPSTR,INT16,INT16,INT16); typedef LRESULT CALLBACK (*FARPROC16)(); typedef INT16 CALLBACK (*PROC16)(); typedef WIN_BOOL16 CALLBACK (*GRAYSTRINGPROC16)(HDC16,LPARAM,INT16); typedef LRESULT CALLBACK (*HOOKPROC16)(INT16,WPARAM16,LPARAM); typedef WIN_BOOL16 CALLBACK (*PROPENUMPROC16)(HWND16,SEGPTR,HANDLE16); typedef VOID CALLBACK (*TIMERPROC16)(HWND16,UINT16,UINT16,DWORD); typedef LRESULT CALLBACK (*WNDENUMPROC16)(HWND16,LPARAM); typedef LRESULT CALLBACK (*WNDPROC16)(HWND16,UINT16,WPARAM16,LPARAM); #endif /* __WINE_WINDEF16_H */ /* Define some empty macros for compatibility with Windows code. */ #ifndef __WINE__ #define NEAR #define FAR #define near #define far #define _near #define _far #define IN #define OUT #define OPTIONAL #endif /* __WINE__ */ /* Macro for structure packing. */ #if defined(__GNUC__) || defined(__ICC) #ifndef _EGCS_ #define WINE_PACKED __attribute__((packed)) #define WINE_UNUSED __attribute__((unused)) #define WINE_NORETURN __attribute__((noreturn)) #endif #else #define WINE_PACKED /* nothing */ #define WINE_UNUSED /* nothing */ #define WINE_NORETURN /* nothing */ #endif /* Macros to split words and longs. */ #define LOBYTE(w) ((BYTE)(WORD)(w)) #define HIBYTE(w) ((BYTE)((WORD)(w) >> 8)) #define LOWORD(l) ((WORD)(DWORD)(l)) #define HIWORD(l) ((WORD)((DWORD)(l) >> 16)) #define SLOWORD(l) ((INT16)(LONG)(l)) #define SHIWORD(l) ((INT16)((LONG)(l) >> 16)) #define MAKEWORD(low,high) ((WORD)(((BYTE)(low)) | ((WORD)((BYTE)(high))) << 8)) #define MAKELONG(low,high) ((LONG)(((WORD)(low)) | (((DWORD)((WORD)(high))) << 16))) #define MAKELPARAM(low,high) ((LPARAM)MAKELONG(low,high)) #define MAKEWPARAM(low,high) ((WPARAM)MAKELONG(low,high)) #define MAKELRESULT(low,high) ((LRESULT)MAKELONG(low,high)) #define MAKEINTATOM(atom) ((LPCSTR)MAKELONG((atom),0)) #define SELECTOROF(ptr) (HIWORD(ptr)) #define OFFSETOF(ptr) (LOWORD(ptr)) #ifdef __WINE__ /* macros to set parts of a DWORD (not in the Windows API) */ #define SET_LOWORD(dw,val) ((dw) = ((dw) & 0xffff0000) | LOWORD(val)) #define SET_LOBYTE(dw,val) ((dw) = ((dw) & 0xffffff00) | LOBYTE(val)) #define SET_HIBYTE(dw,val) ((dw) = ((dw) & 0xffff00ff) | (LOWORD(val) & 0xff00)) #define ADD_LOWORD(dw,val) ((dw) = ((dw) & 0xffff0000) | LOWORD((DWORD)(dw)+(val))) #endif /* Macros to access unaligned or wrong-endian WORDs and DWORDs. */ /* Note: These macros are semantically broken, at least for wrc. wrc spits out data in the platform's current binary format, *not* in little-endian format. These macros are used throughout the resource code to load and store data to the resources. Since it is unlikely that we'll ever be dealing with little-endian resource data, the byte-swapping nature of these macros has been disabled. Rather than remove the use of these macros from the resource loading code, the macros have simply been disabled. In the future, someone may want to reactivate these macros for other purposes. In that case, the resource code will have to be modified to use different macros. */ #if 1 #define PUT_WORD(ptr,w) (*(WORD *)(ptr) = (w)) #define GET_WORD(ptr) (*(WORD *)(ptr)) #define PUT_DWORD(ptr,dw) (*(DWORD *)(ptr) = (dw)) #define GET_DWORD(ptr) (*(DWORD *)(ptr)) #else #define PUT_WORD(ptr,w) (*(BYTE *)(ptr) = LOBYTE(w), \ *((BYTE *)(ptr) + 1) = HIBYTE(w)) #define GET_WORD(ptr) ((WORD)(*(BYTE *)(ptr) | \ (WORD)(*((BYTE *)(ptr)+1) << 8))) #define PUT_DWORD(ptr,dw) (PUT_WORD((ptr),LOWORD(dw)), \ PUT_WORD((WORD *)(ptr)+1,HIWORD(dw))) #define GET_DWORD(ptr) ((DWORD)(GET_WORD(ptr) | \ ((DWORD)GET_WORD((WORD *)(ptr)+1) << 16))) #endif /* 1 */ /* min and max macros */ #define __max(a,b) (((a) > (b)) ? (a) : (b)) #define __min(a,b) (((a) < (b)) ? (a) : (b)) #ifndef max #define max(a,b) (((a) > (b)) ? (a) : (b)) #endif #ifndef min #define min(a,b) (((a) < (b)) ? (a) : (b)) #endif #define _MAX_PATH 260 #define MAX_PATH 260 #define _MAX_DRIVE 3 #define _MAX_DIR 256 #define _MAX_FNAME 255 #define _MAX_EXT 256 #define HFILE_ERROR16 ((HFILE16)-1) #define HFILE_ERROR ((HFILE)-1) /* The SIZE structure */ typedef struct tagSIZE { INT cx; INT cy; } SIZE, *PSIZE, *LPSIZE; typedef SIZE SIZEL, *PSIZEL, *LPSIZEL; #define CONV_SIZE16TO32(s16,s32) \ ((s32)->cx = (INT)(s16)->cx, (s32)->cy = (INT)(s16)->cy) #define CONV_SIZE32TO16(s32,s16) \ ((s16)->cx = (INT16)(s32)->cx, (s16)->cy = (INT16)(s32)->cy) /* The POINT structure */ typedef struct tagPOINT { LONG x; LONG y; } POINT, *PPOINT, *LPPOINT; typedef struct _POINTL { LONG x; LONG y; } POINTL; #define CONV_POINT16TO32(p16,p32) \ ((p32)->x = (INT)(p16)->x, (p32)->y = (INT)(p16)->y) #define CONV_POINT32TO16(p32,p16) \ ((p16)->x = (INT16)(p32)->x, (p16)->y = (INT16)(p32)->y) #define MAKEPOINT16(l) (*((POINT16 *)&(l))) /* The POINTS structure */ typedef struct tagPOINTS { SHORT x; SHORT y; } POINTS, *PPOINTS, *LPPOINTS; #define MAKEPOINTS(l) (*((POINTS *)&(l))) /* The RECT structure */ typedef struct tagRECT { short left; short top; short right; short bottom; } RECT, *PRECT, *LPRECT; typedef const RECT *LPCRECT; typedef struct tagRECTL { LONG left; LONG top; LONG right; LONG bottom; } RECTL, *PRECTL, *LPRECTL; typedef const RECTL *LPCRECTL; #define CONV_RECT16TO32(r16,r32) \ ((r32)->left = (INT)(r16)->left, (r32)->top = (INT)(r16)->top, \ (r32)->right = (INT)(r16)->right, (r32)->bottom = (INT)(r16)->bottom) #define CONV_RECT32TO16(r32,r16) \ ((r16)->left = (INT16)(r32)->left, (r16)->top = (INT16)(r32)->top, \ (r16)->right = (INT16)(r32)->right, (r16)->bottom = (INT16)(r32)->bottom) #ifdef __cplusplus } #endif #endif /* __WINE_WINDEF_H */ bml-0.6.1/dllwrapper/wine/afl.c0000644042355400116100000005317111576362500013257 00000000000000/************************************************************************** This file will contain an interface to ACM drivers. Its content will be based mainly on wine/dlls/msacm32 actually, for audio decompression only the following functions are needed: acmStreamOpen ( takes formats of src and dest, returns stream handle ) acmStreamPrepareHeader ( takes stream handler and info on data ) acmStreamConvert ( the same as PrepareHeader ) acmStreamUnprepareHeader acmStreamClose acmStreamSize maybe acmStreamReset In future I'll also add functions for format enumeration, but not right now. ***************************************************************************/ #include "config.h" #include #include #include #include "winbase.h" #include "windef.h" #include "winuser.h" #include "vfw.h" #include "winestring.h" #include "driver.h" #include "winerror.h" #include "msacm.h" #include "msacmdrv.h" #include "wineacm.h" #include "ext.h" #include "debugtools.h" #include "driver.h" #include #include #include #pragma pack(1) #define OpenDriverA DrvOpen #define CloseDriver DrvClose #pragma pack(1) static PWINE_ACMSTREAM ACM_GetStream(HACMSTREAM has) { return (PWINE_ACMSTREAM)has; } /*********************************************************************** * acmDriverAddA (MSACM32.2) */ MMRESULT WINAPI acmDriverAddA(PHACMDRIVERID phadid, HINSTANCE hinstModule, LPARAM lParam, DWORD dwPriority, DWORD fdwAdd) { if (!phadid) return MMSYSERR_INVALPARAM; /* Check if any unknown flags */ if (fdwAdd & ~(ACM_DRIVERADDF_FUNCTION|ACM_DRIVERADDF_NOTIFYHWND| ACM_DRIVERADDF_GLOBAL)) return MMSYSERR_INVALFLAG; /* Check if any incompatible flags */ if ((fdwAdd & ACM_DRIVERADDF_FUNCTION) && (fdwAdd & ACM_DRIVERADDF_NOTIFYHWND)) return MMSYSERR_INVALFLAG; /* FIXME: in fact, should GetModuleFileName(hinstModule) and do a * LoadDriver on it, to be sure we can call SendDriverMessage on the * hDrvr handle. */ *phadid = (HACMDRIVERID) MSACM_RegisterDriver(NULL, NULL, hinstModule); /* FIXME: lParam, dwPriority and fdwAdd ignored */ return MMSYSERR_NOERROR; } /*********************************************************************** * acmDriverClose (MSACM32.4) */ MMRESULT WINAPI acmDriverClose(HACMDRIVER had, DWORD fdwClose) { PWINE_ACMDRIVER p; PWINE_ACMDRIVER* tp; if (fdwClose) return MMSYSERR_INVALFLAG; p = MSACM_GetDriver(had); if (!p) return MMSYSERR_INVALHANDLE; for (tp = &(p->obj.pACMDriverID->pACMDriverList); *tp; *tp = (*tp)->pNextACMDriver) { if (*tp == p) { *tp = (*tp)->pNextACMDriver; break; } } if (p->hDrvr && !p->obj.pACMDriverID->pACMDriverList) CloseDriver(p->hDrvr); HeapFree(MSACM_hHeap, 0, p); return MMSYSERR_NOERROR; } /*********************************************************************** * acmDriverEnum (MSACM32.7) */ MMRESULT WINAPI acmDriverEnum(ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum) { PWINE_ACMDRIVERID p; DWORD fdwSupport; if (!fnCallback) { return MMSYSERR_INVALPARAM; } if (fdwEnum && ~(ACM_DRIVERENUMF_NOLOCAL|ACM_DRIVERENUMF_DISABLED)) { return MMSYSERR_INVALFLAG; } for (p = MSACM_pFirstACMDriverID; p; p = p->pNextACMDriverID) { fdwSupport = ACMDRIVERDETAILS_SUPPORTF_CODEC; if (!p->bEnabled) { if (fdwEnum & ACM_DRIVERENUMF_DISABLED) fdwSupport |= ACMDRIVERDETAILS_SUPPORTF_DISABLED; else continue; } (*fnCallback)((HACMDRIVERID) p, dwInstance, fdwSupport); } return MMSYSERR_NOERROR; } /*********************************************************************** * acmDriverID (MSACM32.8) */ MMRESULT WINAPI acmDriverID(HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID) { PWINE_ACMOBJ pao; pao = MSACM_GetObj(hao); if (!pao) return MMSYSERR_INVALHANDLE; if (!phadid) return MMSYSERR_INVALPARAM; if (fdwDriverID) return MMSYSERR_INVALFLAG; *phadid = (HACMDRIVERID) pao->pACMDriverID; return MMSYSERR_NOERROR; } /*********************************************************************** * acmDriverMessage (MSACM32.9) * FIXME * Not implemented */ LRESULT WINAPI acmDriverMessage(HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2) { PWINE_ACMDRIVER pad = MSACM_GetDriver(had); if (!pad) return MMSYSERR_INVALPARAM; /* FIXME: Check if uMsg legal */ if (!SendDriverMessage(pad->hDrvr, uMsg, lParam1, lParam2)) return MMSYSERR_NOTSUPPORTED; return MMSYSERR_NOERROR; } /*********************************************************************** * acmDriverOpen (MSACM32.10) */ MMRESULT WINAPI acmDriverOpen(PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen) { PWINE_ACMDRIVERID padid; PWINE_ACMDRIVER pad; ICOPEN icopen; /* HDRVR hdrv; -- not used */ TRACE("(%p, %x, %08lu)\n", phad, hadid, fdwOpen); if (!phad) return MMSYSERR_INVALPARAM; padid = MSACM_GetDriverID(hadid); if (!padid) return MMSYSERR_INVALHANDLE; if (fdwOpen) return MMSYSERR_INVALFLAG; pad = HeapAlloc(MSACM_hHeap, 0, sizeof(WINE_ACMDRIVER)); if (!pad) return MMSYSERR_NOMEM; pad->obj.pACMDriverID = padid; icopen.fccType = mmioFOURCC('a', 'u', 'd', 'c'); icopen.fccHandler = (long)padid->pszFileName; icopen.dwSize = sizeof(ICOPEN); icopen.dwFlags = 0; icopen.pV1Reserved = padid->pszFileName; if (!padid->hInstModule) pad->hDrvr = OpenDriverA((long)&icopen); else pad->hDrvr = padid->hInstModule; if (!pad->hDrvr) { HeapFree(MSACM_hHeap, 0, pad); return MMSYSERR_ERROR; } pad->pfnDriverProc = GetProcAddress(pad->hDrvr, "DriverProc"); /* insert new pad at beg of list */ pad->pNextACMDriver = padid->pACMDriverList; padid->pACMDriverList = pad; /* FIXME: Create a WINE_ACMDRIVER32 */ *phad = (HACMDRIVER)pad; return MMSYSERR_NOERROR; } /*********************************************************************** * acmDriverRemove (MSACM32.12) */ MMRESULT WINAPI acmDriverRemove(HACMDRIVERID hadid, DWORD fdwRemove) { PWINE_ACMDRIVERID padid; padid = MSACM_GetDriverID(hadid); if (!padid) return MMSYSERR_INVALHANDLE; if (fdwRemove) return MMSYSERR_INVALFLAG; MSACM_UnregisterDriver(padid); return MMSYSERR_NOERROR; } /**********************************************************************/ HANDLE MSACM_hHeap = (HANDLE) NULL; PWINE_ACMDRIVERID MSACM_pFirstACMDriverID = NULL; PWINE_ACMDRIVERID MSACM_pLastACMDriverID = NULL; /*********************************************************************** * MSACM_RegisterDriver32() */ PWINE_ACMDRIVERID MSACM_RegisterDriver(const char* pszFileName, WORD wFormatTag, HINSTANCE hinstModule) { PWINE_ACMDRIVERID padid; TRACE("('%s', '%x', 0x%08x)\n", pszFileName, wFormatTag, hinstModule); padid = (PWINE_ACMDRIVERID) HeapAlloc(MSACM_hHeap, 0, sizeof(WINE_ACMDRIVERID)); padid->pszFileName = (char*)malloc(strlen(pszFileName)+1); strcpy(padid->pszFileName, pszFileName); // 1~strdup(pszDriverAlias); padid->wFormatTag = wFormatTag; padid->hInstModule = hinstModule; padid->bEnabled = TRUE; padid->pACMDriverList = NULL; padid->pNextACMDriverID = NULL; padid->pPrevACMDriverID = MSACM_pLastACMDriverID; if (MSACM_pLastACMDriverID) MSACM_pLastACMDriverID->pNextACMDriverID = padid; MSACM_pLastACMDriverID = padid; if (!MSACM_pFirstACMDriverID) MSACM_pFirstACMDriverID = padid; return padid; } /*********************************************************************** * MSACM_UnregisterDriver32() */ PWINE_ACMDRIVERID MSACM_UnregisterDriver(PWINE_ACMDRIVERID p) { PWINE_ACMDRIVERID pNextACMDriverID; while (p->pACMDriverList) acmDriverClose((HACMDRIVER) p->pACMDriverList, 0); if (p->pszFileName) free(p->pszFileName); if (p == MSACM_pFirstACMDriverID) MSACM_pFirstACMDriverID = p->pNextACMDriverID; if (p == MSACM_pLastACMDriverID) MSACM_pLastACMDriverID = p->pPrevACMDriverID; if (p->pPrevACMDriverID) p->pPrevACMDriverID->pNextACMDriverID = p->pNextACMDriverID; if (p->pNextACMDriverID) p->pNextACMDriverID->pPrevACMDriverID = p->pPrevACMDriverID; pNextACMDriverID = p->pNextACMDriverID; HeapFree(MSACM_hHeap, 0, p); return pNextACMDriverID; } /*********************************************************************** * MSACM_UnregisterAllDrivers32() * FIXME * Where should this function be called? */ void MSACM_UnregisterAllDrivers(void) { PWINE_ACMDRIVERID p; for (p = MSACM_pFirstACMDriverID; p; p = MSACM_UnregisterDriver(p)); } /*********************************************************************** * MSACM_GetDriverID32() */ PWINE_ACMDRIVERID MSACM_GetDriverID(HACMDRIVERID hDriverID) { return (PWINE_ACMDRIVERID)hDriverID; } /*********************************************************************** * MSACM_GetDriver32() */ PWINE_ACMDRIVER MSACM_GetDriver(HACMDRIVER hDriver) { return (PWINE_ACMDRIVER)hDriver; } /*********************************************************************** * MSACM_GetObj32() */ PWINE_ACMOBJ MSACM_GetObj(HACMOBJ hObj) { return (PWINE_ACMOBJ)hObj; } /*********************************************************************** * acmStreamOpen (MSACM32.40) */ MMRESULT WINAPI acmStreamOpen(PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD dwCallback, DWORD dwInstance, DWORD fdwOpen) { PWINE_ACMSTREAM was; PWINE_ACMDRIVER wad; MMRESULT ret; int wfxSrcSize; int wfxDstSize; TRACE("(%p, 0x%08x, %p, %p, %p, %ld, %ld, %ld)\n", phas, had, pwfxSrc, pwfxDst, pwfltr, dwCallback, dwInstance, fdwOpen); TRACE("src [wFormatTag=%u, nChannels=%u, nSamplesPerSec=%lu, nAvgBytesPerSec=%lu, nBlockAlign=%u, wBitsPerSample=%u, cbSize=%u]\n", pwfxSrc->wFormatTag, pwfxSrc->nChannels, pwfxSrc->nSamplesPerSec, pwfxSrc->nAvgBytesPerSec, pwfxSrc->nBlockAlign, pwfxSrc->wBitsPerSample, pwfxSrc->cbSize); TRACE("dst [wFormatTag=%u, nChannels=%u, nSamplesPerSec=%lu, nAvgBytesPerSec=%lu, nBlockAlign=%u, wBitsPerSample=%u, cbSize=%u]\n", pwfxDst->wFormatTag, pwfxDst->nChannels, pwfxDst->nSamplesPerSec, pwfxDst->nAvgBytesPerSec, pwfxDst->nBlockAlign, pwfxDst->wBitsPerSample, pwfxDst->cbSize); #define SIZEOF_WFX(wfx) (sizeof(WAVEFORMATEX) + ((wfx->wFormatTag == WAVE_FORMAT_PCM) ? 0 : wfx->cbSize)) wfxSrcSize = SIZEOF_WFX(pwfxSrc); wfxDstSize = SIZEOF_WFX(pwfxDst); #undef SIZEOF_WFX was = (PWINE_ACMSTREAM) HeapAlloc(MSACM_hHeap, 0, sizeof(*was) + wfxSrcSize + wfxDstSize + ((pwfltr) ? sizeof(WAVEFILTER) : 0)); if (was == NULL) return MMSYSERR_NOMEM; was->drvInst.cbStruct = sizeof(was->drvInst); was->drvInst.pwfxSrc = (PWAVEFORMATEX)((LPSTR)was + sizeof(*was)); memcpy(was->drvInst.pwfxSrc, pwfxSrc, wfxSrcSize); // LHACM is checking for 0x1 // but if this will not help // was->drvInst.pwfxSrc->wFormatTag = 1; was->drvInst.pwfxDst = (PWAVEFORMATEX)((LPSTR)was + sizeof(*was) + wfxSrcSize); memcpy(was->drvInst.pwfxDst, pwfxDst, wfxDstSize); if (pwfltr) { was->drvInst.pwfltr = (PWAVEFILTER)((LPSTR)was + sizeof(*was) + wfxSrcSize + wfxDstSize); memcpy(was->drvInst.pwfltr, pwfltr, sizeof(WAVEFILTER)); } else { was->drvInst.pwfltr = NULL; } was->drvInst.dwCallback = dwCallback; was->drvInst.dwInstance = dwInstance; was->drvInst.fdwOpen = fdwOpen; was->drvInst.fdwDriver = 0L; was->drvInst.dwDriver = 0L; was->drvInst.has = (HACMSTREAM)was; if (had) { if (!(wad = MSACM_GetDriver(had))) { ret = MMSYSERR_INVALPARAM; goto errCleanUp; } was->obj.pACMDriverID = wad->obj.pACMDriverID; was->pDrv = wad; was->hAcmDriver = 0; /* not to close it in acmStreamClose */ ret = SendDriverMessage(wad->hDrvr, ACMDM_STREAM_OPEN, (DWORD)&was->drvInst, 0L); if (ret != MMSYSERR_NOERROR) goto errCleanUp; } else { PWINE_ACMDRIVERID wadi; /* short drv_tag; -- not used */ ret = ACMERR_NOTPOSSIBLE; /* if(pwfxSrc->wFormatTag==1)//compression drv_tag=pwfxDst->wFormatTag; else if(pwfxDst->wFormatTag==1)//decompression drv_tag=pwfxSrc->wFormatTag; else goto errCleanUp; ret=acmDriverOpen2(drv_tag); if (ret == MMSYSERR_NOERROR) { if ((wad = MSACM_GetDriver(had)) != 0) { was->obj.pACMDriverID = wad->obj.pACMDriverID; was->pDrv = wad; was->hAcmDriver = had; ret = SendDriverMessage(wad->hDrvr, ACMDM_STREAM_OPEN, (DWORD)&was->drvInst, 0L); if (ret == MMSYSERR_NOERROR) { if (fdwOpen & ACM_STREAMOPENF_QUERY) { acmDriverClose(had, 0L); } break; } } acmDriverClose(had, 0L);*/ //if(MSACM_pFirstACMDriverID==NULL) // MSACM_RegisterAllDrivers(); for (wadi = MSACM_pFirstACMDriverID; wadi; wadi = wadi->pNextACMDriverID) { /* Check Format */ if ((int)wadi->wFormatTag != (int)pwfxSrc->wFormatTag) continue; ret = acmDriverOpen(&had, (HACMDRIVERID)wadi, 0L); if (ret == MMSYSERR_NOERROR) { if ((wad = MSACM_GetDriver(had)) != 0) { was->obj.pACMDriverID = wad->obj.pACMDriverID; was->pDrv = wad; was->hAcmDriver = had; ret = SendDriverMessage(wad->hDrvr, ACMDM_STREAM_OPEN, (DWORD)&was->drvInst, 0L); //lhacm - crash printf("RETOPEN %d\n", ret); //ret = 0; if (ret == MMSYSERR_NOERROR) { if (fdwOpen & ACM_STREAMOPENF_QUERY) { acmDriverClose(had, 0L); } break; } } // no match, close this acm driver and try next one acmDriverClose(had, 0L); } } if (ret != MMSYSERR_NOERROR) { ret = ACMERR_NOTPOSSIBLE; goto errCleanUp; } } ret = MMSYSERR_NOERROR; if (!(fdwOpen & ACM_STREAMOPENF_QUERY)) { if (phas) *phas = (HACMSTREAM)was; TRACE("=> (%d)\n", ret); CodecAlloc(); return ret; } errCleanUp: if (phas) *phas = (HACMSTREAM)0; HeapFree(MSACM_hHeap, 0, was); TRACE("=> (%d)\n", ret); return ret; } MMRESULT WINAPI acmStreamClose(HACMSTREAM has, DWORD fdwClose) { PWINE_ACMSTREAM was; MMRESULT ret; TRACE("(0x%08x, %ld)\n", has, fdwClose); if ((was = ACM_GetStream(has)) == NULL) { return MMSYSERR_INVALHANDLE; } ret = SendDriverMessage(was->pDrv->hDrvr, ACMDM_STREAM_CLOSE, (DWORD)&was->drvInst, 0); if (ret == MMSYSERR_NOERROR) { if (was->hAcmDriver) acmDriverClose(was->hAcmDriver, 0L); HeapFree(MSACM_hHeap, 0, was); CodecRelease(); } TRACE("=> (%d)\n", ret); return ret; } /*********************************************************************** * acmStreamConvert (MSACM32.38) */ MMRESULT WINAPI acmStreamConvert(HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert) { PWINE_ACMSTREAM was; MMRESULT ret = MMSYSERR_NOERROR; PACMDRVSTREAMHEADER padsh; TRACE("(0x%08x, %p, %ld)\n", has, pash, fdwConvert); if ((was = ACM_GetStream(has)) == NULL) return MMSYSERR_INVALHANDLE; if (!pash || pash->cbStruct < sizeof(ACMSTREAMHEADER)) return MMSYSERR_INVALPARAM; if (!(pash->fdwStatus & ACMSTREAMHEADER_STATUSF_PREPARED)) return ACMERR_UNPREPARED; /* Note: the ACMSTREAMHEADER and ACMDRVSTREAMHEADER structs are of same * size. some fields are private to msacm internals, and are exposed * in ACMSTREAMHEADER in the dwReservedDriver array */ padsh = (PACMDRVSTREAMHEADER)pash; /* check that pointers have not been modified */ if (padsh->pbPreparedSrc != padsh->pbSrc || padsh->cbPreparedSrcLength < padsh->cbSrcLength || padsh->pbPreparedDst != padsh->pbDst || padsh->cbPreparedDstLength < padsh->cbDstLength) { return MMSYSERR_INVALPARAM; } padsh->fdwConvert = fdwConvert; ret = SendDriverMessage(was->pDrv->hDrvr, ACMDM_STREAM_CONVERT, (DWORD)&was->drvInst, (DWORD)padsh); if (ret == MMSYSERR_NOERROR) { padsh->fdwStatus |= ACMSTREAMHEADER_STATUSF_DONE; } TRACE("=> (%d)\n", ret); return ret; } /*********************************************************************** * acmStreamPrepareHeader (MSACM32.41) */ MMRESULT WINAPI acmStreamPrepareHeader(HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare) { PWINE_ACMSTREAM was; MMRESULT ret = MMSYSERR_NOERROR; PACMDRVSTREAMHEADER padsh; TRACE("(0x%08x, %p, %ld)\n", has, pash, fdwPrepare); if ((was = ACM_GetStream(has)) == NULL) return MMSYSERR_INVALHANDLE; if (!pash || pash->cbStruct < sizeof(ACMSTREAMHEADER)) return MMSYSERR_INVALPARAM; if (fdwPrepare) ret = MMSYSERR_INVALFLAG; if (pash->fdwStatus & ACMSTREAMHEADER_STATUSF_DONE) return MMSYSERR_NOERROR; /* Note: the ACMSTREAMHEADER and ACMDRVSTREAMHEADER structs are of same * size. some fields are private to msacm internals, and are exposed * in ACMSTREAMHEADER in the dwReservedDriver array */ padsh = (PACMDRVSTREAMHEADER)pash; padsh->fdwConvert = fdwPrepare; padsh->padshNext = NULL; padsh->fdwDriver = padsh->dwDriver = 0L; padsh->fdwPrepared = 0; padsh->dwPrepared = 0; padsh->pbPreparedSrc = 0; padsh->cbPreparedSrcLength = 0; padsh->pbPreparedDst = 0; padsh->cbPreparedDstLength = 0; ret = SendDriverMessage(was->pDrv->hDrvr, ACMDM_STREAM_PREPARE, (DWORD)&was->drvInst, (DWORD)padsh); if (ret == MMSYSERR_NOERROR || ret == MMSYSERR_NOTSUPPORTED) { ret = MMSYSERR_NOERROR; padsh->fdwStatus &= ~(ACMSTREAMHEADER_STATUSF_DONE|ACMSTREAMHEADER_STATUSF_INQUEUE); padsh->fdwStatus |= ACMSTREAMHEADER_STATUSF_PREPARED; padsh->fdwPrepared = padsh->fdwStatus; padsh->dwPrepared = 0; padsh->pbPreparedSrc = padsh->pbSrc; padsh->cbPreparedSrcLength = padsh->cbSrcLength; padsh->pbPreparedDst = padsh->pbDst; padsh->cbPreparedDstLength = padsh->cbDstLength; } else { padsh->fdwPrepared = 0; padsh->dwPrepared = 0; padsh->pbPreparedSrc = 0; padsh->cbPreparedSrcLength = 0; padsh->pbPreparedDst = 0; padsh->cbPreparedDstLength = 0; } TRACE("=> (%d)\n", ret); return ret; } /*********************************************************************** * acmStreamReset (MSACM32.42) */ MMRESULT WINAPI acmStreamReset(HACMSTREAM has, DWORD fdwReset) { PWINE_ACMSTREAM was; MMRESULT ret = MMSYSERR_NOERROR; TRACE("(0x%08x, %ld)\n", has, fdwReset); if (fdwReset) { ret = MMSYSERR_INVALFLAG; } else if ((was = ACM_GetStream(has)) == NULL) { return MMSYSERR_INVALHANDLE; } else if (was->drvInst.fdwOpen & ACM_STREAMOPENF_ASYNC) { ret = SendDriverMessage(was->pDrv->hDrvr, ACMDM_STREAM_RESET, (DWORD)&was->drvInst, 0); } TRACE("=> (%d)\n", ret); return ret; } /*********************************************************************** * acmStreamSize (MSACM32.43) */ MMRESULT WINAPI acmStreamSize(HACMSTREAM has, DWORD cbInput, LPDWORD pdwOutputBytes, DWORD fdwSize) { PWINE_ACMSTREAM was; ACMDRVSTREAMSIZE adss; MMRESULT ret; TRACE("(0x%08x, %ld, %p, %ld)\n", has, cbInput, pdwOutputBytes, fdwSize); if ((was = ACM_GetStream(has)) == NULL) { return MMSYSERR_INVALHANDLE; } if ((fdwSize & ~ACM_STREAMSIZEF_QUERYMASK) != 0) { return MMSYSERR_INVALFLAG; } *pdwOutputBytes = 0L; switch (fdwSize & ACM_STREAMSIZEF_QUERYMASK) { case ACM_STREAMSIZEF_DESTINATION: adss.cbDstLength = cbInput; adss.cbSrcLength = 0; break; case ACM_STREAMSIZEF_SOURCE: adss.cbSrcLength = cbInput; adss.cbDstLength = 0; break; default: return MMSYSERR_INVALFLAG; } adss.cbStruct = sizeof(adss); adss.fdwSize = fdwSize; ret = SendDriverMessage(was->pDrv->hDrvr, ACMDM_STREAM_SIZE, (DWORD)&was->drvInst, (DWORD)&adss); if (ret == MMSYSERR_NOERROR) { switch (fdwSize & ACM_STREAMSIZEF_QUERYMASK) { case ACM_STREAMSIZEF_DESTINATION: *pdwOutputBytes = adss.cbSrcLength; break; case ACM_STREAMSIZEF_SOURCE: *pdwOutputBytes = adss.cbDstLength; break; } } TRACE("=> (%d) [%lu]\n", ret, *pdwOutputBytes); return ret; } /*********************************************************************** * acmStreamUnprepareHeader (MSACM32.44) */ MMRESULT WINAPI acmStreamUnprepareHeader(HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare) { PWINE_ACMSTREAM was; MMRESULT ret = MMSYSERR_NOERROR; PACMDRVSTREAMHEADER padsh; TRACE("(0x%08x, %p, %ld)\n", has, pash, fdwUnprepare); if ((was = ACM_GetStream(has)) == NULL) return MMSYSERR_INVALHANDLE; if (!pash || pash->cbStruct < sizeof(ACMSTREAMHEADER)) return MMSYSERR_INVALPARAM; if (!(pash->fdwStatus & ACMSTREAMHEADER_STATUSF_PREPARED)) return ACMERR_UNPREPARED; /* Note: the ACMSTREAMHEADER and ACMDRVSTREAMHEADER structs are of same * size. some fields are private to msacm internals, and are exposed * in ACMSTREAMHEADER in the dwReservedDriver array */ padsh = (PACMDRVSTREAMHEADER)pash; /* check that pointers have not been modified */ if (padsh->pbPreparedSrc != padsh->pbSrc || padsh->cbPreparedSrcLength < padsh->cbSrcLength || padsh->pbPreparedDst != padsh->pbDst || padsh->cbPreparedDstLength < padsh->cbDstLength) { return MMSYSERR_INVALPARAM; } padsh->fdwConvert = fdwUnprepare; ret = SendDriverMessage(was->pDrv->hDrvr, ACMDM_STREAM_UNPREPARE, (DWORD)&was->drvInst, (DWORD)padsh); if (ret == MMSYSERR_NOERROR || ret == MMSYSERR_NOTSUPPORTED) { ret = MMSYSERR_NOERROR; padsh->fdwStatus &= ~(ACMSTREAMHEADER_STATUSF_DONE|ACMSTREAMHEADER_STATUSF_INQUEUE|ACMSTREAMHEADER_STATUSF_PREPARED); } TRACE("=> (%d)\n", ret); return ret; } bml-0.6.1/dllwrapper/wine/elfdll.c0000644042355400116100000001511111576362500013747 00000000000000/* * Elf-dll loader functions * * Copyright 1999 Bertho A. Stultiens */ #include #ifdef HAVE_LIBDL #include "windef.h" #include "module.h" #include "heap.h" #include "elfdll.h" #include "debugtools.h" #include "winerror.h" #include "ext.h" #include "win32.h" //DEFAULT_DEBUG_CHANNEL(elfdll) #include #include #include #include #include //WINE_MODREF *local_wm=NULL; extern modref_list* local_wm; /*------------------ HACKS -----------------*/ extern DWORD fixup_imports(WINE_MODREF *wm); extern void dump_exports(HMODULE hModule); /*---------------- END HACKS ---------------*/ //char *extra_ld_library_path = "/usr/lib/win32"; struct elfdll_image { HMODULE pe_module_start; DWORD pe_module_size; }; /**************************************************************************** * ELFDLL_dlopen * * Wrapper for dlopen to search the EXTRA_LD_LIBRARY_PATH from wine.conf * manually because libdl.so caches the environment and does not accept our * changes. */ void *ELFDLL_dlopen(const char *libname, int flags) { char buffer[256]; int namelen; void *handle; char *ldpath; /* First try the default path search of dlopen() */ handle = dlopen(libname, flags); if(handle) return handle; /* Now try to construct searches through our extra search-path */ namelen = strlen(libname); ldpath = win32_def_path; while(ldpath && *ldpath) { int len; char *cptr; char *from; from = ldpath; cptr = strchr(ldpath, ':'); if(!cptr) { len = strlen(ldpath); ldpath = NULL; } else { len = cptr - ldpath; ldpath = cptr + 1; } if(len + namelen + 1 >= sizeof(buffer)) { ERR("Buffer overflow! Check EXTRA_LD_LIBRARY_PATH or increase buffer size.\n"); return NULL; } strncpy(buffer, from, len); if(len) { buffer[len] = '/'; strcpy(buffer + len + 1, libname); } else strcpy(buffer + len, libname); TRACE("Trying dlopen('%s', %d)\n", buffer, flags); handle = dlopen(buffer, flags); if(handle) return handle; } return NULL; } /**************************************************************************** * get_sobasename (internal) * */ static LPSTR get_sobasename(LPCSTR path, LPSTR name) { char *cptr; /* Strip the path from the library name */ if((cptr = strrchr(path, '/'))) { char *cp = strrchr(cptr+1, '\\'); if(cp && cp > cptr) cptr = cp; } else cptr = strrchr(path, '\\'); if(!cptr) cptr = (char *)path; /* No '/' nor '\\' in path */ else cptr++; strcpy(name, cptr); cptr = strrchr(name, '.'); if(cptr) *cptr = '\0'; /* Strip extension */ /* Convert to lower case. * This must be done manually because it is not sure that * other modules are accessible. */ for(cptr = name; *cptr; cptr++) *cptr = tolower(*cptr); return name; } /**************************************************************************** * ELFDLL_CreateModref (internal) * * INPUT * hModule - the header from the elf-dll's data-segment * path - requested path from original call * * OUTPUT * A WINE_MODREF pointer to the new object * * BUGS * - Does not handle errors due to dependencies correctly * - path can be wrong */ #define RVA(base, va) (((DWORD)base) + ((DWORD)va)) static WINE_MODREF *ELFDLL_CreateModref(HMODULE hModule, LPCSTR path) { //IMAGE_NT_HEADERS *nt = PE_HEADER(hModule); //IMAGE_DATA_DIRECTORY *dir; //IMAGE_IMPORT_DESCRIPTOR *pe_import = NULL; WINE_MODREF *wm; //int len; HANDLE procheap = GetProcessHeap(); wm = (WINE_MODREF *)HeapAlloc(procheap, HEAP_ZERO_MEMORY, sizeof(*wm)); if(!wm) return NULL; wm->module = hModule; wm->type = MODULE32_ELF; /* FIXME */ // dir = nt->OptionalHeader.DataDirectory+IMAGE_DIRECTORY_ENTRY_EXPORT; // if(dir->Size) // wm->binfmt.pe.pe_export = (PIMAGE_EXPORT_DIRECTORY)RVA(hModule, dir->VirtualAddress); // dir = nt->OptionalHeader.DataDirectory+IMAGE_DIRECTORY_ENTRY_IMPORT; // if(dir->Size) // pe_import = wm->binfmt.pe.pe_import = (PIMAGE_IMPORT_DESCRIPTOR)RVA(hModule, dir->VirtualAddress); // dir = nt->OptionalHeader.DataDirectory+IMAGE_DIRECTORY_ENTRY_RESOURCE; // if(dir->Size) // wm->binfmt.pe.pe_resource = (PIMAGE_RESOURCE_DIRECTORY)RVA(hModule, dir->VirtualAddress); wm->filename = malloc(strlen(path)+1); strcpy(wm->filename, path); wm->modname = strrchr( wm->filename, '\\' ); if (!wm->modname) wm->modname = wm->filename; else wm->modname++; /* len = GetShortPathNameA( wm->filename, NULL, 0 ); wm->short_filename = (char *)HeapAlloc( procheap, 0, len+1 ); GetShortPathNameA( wm->filename, wm->short_filename, len+1 ); wm->short_modname = strrchr( wm->short_filename, '\\' ); if (!wm->short_modname) wm->short_modname = wm->short_filename; else wm->short_modname++; */ /* Link MODREF into process list */ // EnterCriticalSection( &PROCESS_Current()->crit_section ); if(local_wm) { local_wm->next=malloc(sizeof(modref_list)); local_wm->next->prev=local_wm; local_wm->next->next=NULL; local_wm->next->wm=wm; local_wm=local_wm->next; } else { local_wm=malloc(sizeof(modref_list)); local_wm->next=local_wm->prev=NULL; local_wm->wm=wm; } // LeaveCriticalSection( &PROCESS_Current()->crit_section ); return wm; } /**************************************************************************** * ELFDLL_LoadLibraryExA (internal) * * Implementation of elf-dll loading for PE modules */ WINE_MODREF *ELFDLL_LoadLibraryExA(LPCSTR path, DWORD flags) { LPVOID dlhandle; //struct elfdll_image *image; char name[129]; char soname[129]; WINE_MODREF *wm; get_sobasename(path, name); strcpy(soname, name); strcat(soname, ".so"); /* Try to open the elf-dll */ dlhandle = ELFDLL_dlopen(soname, RTLD_LAZY); if(!dlhandle) { WARN("Could not load %s (%s)\n", soname, dlerror()); SetLastError( ERROR_FILE_NOT_FOUND ); return NULL; } /* Get the 'dllname_elfdll_image' variable */ /* strcpy(soname, name); strcat(soname, "_elfdll_image"); image = (struct elfdll_image *)dlsym(dlhandle, soname); if(!image) { ERR("Could not get elfdll image descriptor %s (%s)\n", soname, dlerror()); dlclose(dlhandle); SetLastError( ERROR_BAD_FORMAT ); return NULL; } */ wm = ELFDLL_CreateModref((int)dlhandle, path); if(!wm) { ERR("Could not create WINE_MODREF for %s\n", path); dlclose(dlhandle); SetLastError( ERROR_OUTOFMEMORY ); return NULL; } return wm; } /**************************************************************************** * ELFDLL_UnloadLibrary (internal) * * Unload an elf-dll completely from memory and deallocate the modref */ void ELFDLL_UnloadLibrary(WINE_MODREF *wm) { } #endif /*HAVE_LIBDL*/ bml-0.6.1/dllwrapper/wine/heap.h0000644042355400116100000000360311576362500013432 00000000000000/* * Win32 heap definitions * * Copyright 1996 Alexandre Julliard */ #ifndef __WINE_HEAP_H #define __WINE_HEAP_H #include "config.h" #include "winbase.h" extern HANDLE SystemHeap; extern HANDLE SegptrHeap; extern int HEAP_IsInsideHeap( HANDLE heap, DWORD flags, LPCVOID ptr ); extern SEGPTR HEAP_GetSegptr( HANDLE heap, DWORD flags, LPCVOID ptr ); extern LPSTR HEAP_strdupA( HANDLE heap, DWORD flags, LPCSTR str ); extern LPWSTR HEAP_strdupW( HANDLE heap, DWORD flags, LPCWSTR str ); extern LPWSTR HEAP_strdupAtoW( HANDLE heap, DWORD flags, LPCSTR str ); extern LPSTR HEAP_strdupWtoA( HANDLE heap, DWORD flags, LPCWSTR str ); /* SEGPTR helper macros */ #define SEGPTR_ALLOC(size) \ (HeapAlloc( SegptrHeap, 0, (size) )) #define SEGPTR_NEW(type) \ ((type *)HeapAlloc( SegptrHeap, 0, sizeof(type) )) #define SEGPTR_STRDUP(str) \ (HIWORD(str) ? HEAP_strdupA( SegptrHeap, 0, (str) ) : (LPSTR)(str)) #define SEGPTR_STRDUP_WtoA(str) \ (HIWORD(str) ? HEAP_strdupWtoA( SegptrHeap, 0, (str) ) : (LPSTR)(str)) #if 0 /* causes undefined symbols */ /* define an inline function, a macro won't do */ static inline SEGPTR WINE_UNUSED SEGPTR_Get(LPCVOID ptr) { return (HIWORD(ptr) ? HEAP_GetSegptr( SegptrHeap, 0, ptr ) : (SEGPTR)ptr); } #endif #define SEGPTR_GET(ptr) SEGPTR_Get(ptr) #define SEGPTR_FREE(ptr) \ (HIWORD(ptr) ? HeapFree( SegptrHeap, 0, (ptr) ) : 0) /* system heap private data */ /* you must lock the system heap before using this structure */ typedef struct { void *gdi; /* GDI heap */ void *user; /* USER handle table */ void *cursor; /* cursor information */ void *queue; /* message queues descriptor */ void *win; /* windows descriptor */ void *root; /* X11 root window */ } SYSTEM_HEAP_DESCR; extern SYSTEM_HEAP_DESCR *SystemHeapDescr; #endif /* __WINE_HEAP_H */ bml-0.6.1/dllwrapper/wine/module.c0000644042355400116100000007416711576362500014012 00000000000000/* * Modules * * Copyright 1995 Alexandre Julliard */ // define for quicktime calls debugging and/or MacOS-level emulation: #define EMU_QTX_API // define for quicktime debugging (verbose logging): //#define DEBUG_QTX_API #include "config.h" #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include "windef.h" #include "winerror.h" #include "heap.h" #include "module.h" #include "pe_image.h" #include "debugtools.h" #ifdef HAVE_LIBDL #include #include "elfdll.h" #endif #include "win32.h" #include "driver.h" #include "ext.h" #ifdef EMU_QTX_API #include "wrapper.h" int report_func(void *stack_base, int stack_size, reg386_t *reg, u_int32_t *flags); int report_func_ret(void *stack_base, int stack_size, reg386_t *reg, u_int32_t *flags); #endif //#undef TRACE //#define TRACE printf //WINE_MODREF *local_wm=NULL; modref_list* local_wm=NULL; HANDLE SegptrHeap; WINE_MODREF* MODULE_FindModule(LPCSTR m) { modref_list* list=local_wm; //TRACE("FindModule: Module %s request\n", m); if(list==NULL) return NULL; //while(strcmp(m, list->wm->filename)) while(!strcasestr(list->wm->filename, m)) { //TRACE("%s: %x\n", list->wm->filename, list->wm->module); list=list->prev; if(list==NULL) return NULL; } //TRACE("Resolved to %s\n", list->wm->filename); return list->wm; } static void MODULE_RemoveFromList(WINE_MODREF *mod) { modref_list* list=local_wm; if(list==0) return; if(mod==0) return; if((list->prev==NULL)&&(list->next==NULL)) { free(list); local_wm=NULL; // uninstall_fs(); return; } for(;list;list=list->prev) { if(list->wm==mod) { if(list->prev) list->prev->next=list->next; if(list->next) list->next->prev=list->prev; if(list==local_wm) local_wm=list->prev; free(list); return; } } } WINE_MODREF *MODULE32_LookupHMODULE(HMODULE m) { modref_list* list=local_wm; //TRACE("LookupHMODULE: Module %X request\n", m); if(list==NULL) { TRACE("LookupHMODULE %X failed\n", m); return NULL; } while(m!=list->wm->module) { // printf("Checking list %X wm %X module %X\n", // list, list->wm, list->wm->module); list=list->prev; if(list==NULL) { TRACE("LookupHMODULE %X failed\n", m); return NULL; } } //TRACE("LookupHMODULE hit %p\n", list->wm); return list->wm; } /************************************************************************* * MODULE_InitDll */ static WIN_BOOL MODULE_InitDll( WINE_MODREF *wm, DWORD type, LPVOID lpReserved ) { WIN_BOOL retv = TRUE; #ifdef LOG static LPCSTR typeName[] = { "PROCESS_DETACH", "PROCESS_ATTACH", "THREAD_ATTACH", "THREAD_DETACH" }; #endif assert( wm ); /* Skip calls for modules loaded with special load flags */ if ( ( wm->flags & WINE_MODREF_DONT_RESOLVE_REFS ) || ( wm->flags & WINE_MODREF_LOAD_AS_DATAFILE ) ) return TRUE; TRACE("(%s,%s,%p) - CALL\n", wm->modname, typeName[type], lpReserved ); /* Call the initialization routine */ switch ( wm->type ) { case MODULE32_PE: retv = PE_InitDLL( wm, type, lpReserved ); break; case MODULE32_ELF: /* no need to do that, dlopen() already does */ break; default: ERR("wine_modref type %d not handled.\n", wm->type ); retv = FALSE; break; } /* The state of the module list may have changed due to the call to PE_InitDLL. We cannot assume that this module has not been deleted. */ TRACE("(%p,%s,%p) - RETURN %d\n", wm, typeName[type], lpReserved, retv ); return retv; } /************************************************************************* * MODULE_DllProcessAttach * * Send the process attach notification to all DLLs the given module * depends on (recursively). This is somewhat complicated due to the fact that * * - we have to respect the module dependencies, i.e. modules implicitly * referenced by another module have to be initialized before the module * itself can be initialized * * - the initialization routine of a DLL can itself call LoadLibrary, * thereby introducing a whole new set of dependencies (even involving * the 'old' modules) at any time during the whole process * * (Note that this routine can be recursively entered not only directly * from itself, but also via LoadLibrary from one of the called initialization * routines.) * * Furthermore, we need to rearrange the main WINE_MODREF list to allow * the process *detach* notifications to be sent in the correct order. * This must not only take into account module dependencies, but also * 'hidden' dependencies created by modules calling LoadLibrary in their * attach notification routine. * * The strategy is rather simple: we move a WINE_MODREF to the head of the * list after the attach notification has returned. This implies that the * detach notifications are called in the reverse of the sequence the attach * notifications *returned*. * * NOTE: Assumes that the process critical section is held! * */ static WIN_BOOL MODULE_DllProcessAttach( WINE_MODREF *wm, LPVOID lpReserved ) { WIN_BOOL retv = TRUE; /* int i; -- not used */ assert( wm ); /* prevent infinite recursion in case of cyclical dependencies */ if ( ( wm->flags & WINE_MODREF_MARKER ) || ( wm->flags & WINE_MODREF_PROCESS_ATTACHED ) ) return retv; TRACE("DllProcessAttach for (%s,%p) - START\n", wm->modname, lpReserved ); /* Tag current MODREF to prevent recursive loop */ wm->flags |= WINE_MODREF_MARKER; /* Recursively attach all DLLs this one depends on */ /* for ( i = 0; retv && i < wm->nDeps; i++ ) if ( wm->deps[i] ) retv = MODULE_DllProcessAttach( wm->deps[i], lpReserved ); */ /* Call DLL entry point */ //local_wm=wm; if(local_wm) { local_wm->next = (modref_list*) malloc(sizeof(modref_list)); local_wm->next->prev=local_wm; local_wm->next->next=NULL; local_wm->next->wm=wm; local_wm=local_wm->next; } else { local_wm = (modref_list*)malloc(sizeof(modref_list)); local_wm->next=local_wm->prev=NULL; local_wm->wm=wm; } /* Remove recursion flag */ wm->flags &= ~WINE_MODREF_MARKER; if ( retv ) { retv = MODULE_InitDll( wm, DLL_PROCESS_ATTACH, lpReserved ); if ( retv ) wm->flags |= WINE_MODREF_PROCESS_ATTACHED; } TRACE("DllProcessAttach for (%s,%p) = %s - END\n", wm->modname, lpReserved, (retv?"TRUE":"FALSE")); return retv; } /************************************************************************* * MODULE_DllProcessDetach * * Send DLL process detach notifications. See the comment about calling * sequence at MODULE_DllProcessAttach. Unless the bForceDetach flag * is set, only DLLs with zero refcount are notified. */ static void MODULE_DllProcessDetach( WINE_MODREF* wm, WIN_BOOL bForceDetach, LPVOID lpReserved ) { // WINE_MODREF *wm=local_wm; /* modref_list* l = local_wm; -- not used */ wm->flags &= ~WINE_MODREF_PROCESS_ATTACHED; MODULE_InitDll( wm, DLL_PROCESS_DETACH, lpReserved ); /* while (l) { modref_list* f = l; l = l->next; free(f); } local_wm = 0;*/ } /*********************************************************************** * MODULE_LoadLibraryExA (internal) * * Load a PE style module according to the load order. * * The HFILE parameter is not used and marked reserved in the SDK. I can * only guess that it should force a file to be mapped, but I rather * ignore the parameter because it would be extremely difficult to * integrate this with different types of module represenations. * */ static WINE_MODREF *MODULE_LoadLibraryExA( LPCSTR libname, HFILE hfile, DWORD flags ) { DWORD err = GetLastError(); WINE_MODREF *pwm; /* int i; -- not used */ //module_loadorder_t *plo; SetLastError( ERROR_FILE_NOT_FOUND ); //TRACE("Trying native dll '%s'\n", libname); pwm = PE_LoadLibraryExA(libname, flags); #ifdef HAVE_LIBDL if(!pwm) { TRACE("Trying ELF dll '%s'\n", libname); pwm=(WINE_MODREF*)ELFDLL_LoadLibraryExA(libname, flags); } #endif if(pwm) { /* Initialize DLL just loaded */ TRACE("Loaded module '%s' at 0x%08x, \n", libname, pwm->module); /* Set the refCount here so that an attach failure will */ /* decrement the dependencies through the MODULE_FreeLibrary call. */ pwm->refCount++; SetLastError( err ); /* restore last error */ return pwm; } //TRACE("Failed to load module '%s'; error=0x%08lx, \n", libname, GetLastError()); return NULL; } /*********************************************************************** * MODULE_FreeLibrary * * NOTE: Assumes that the process critical section is held! */ static WIN_BOOL MODULE_FreeLibrary( WINE_MODREF *wm ) { //TRACE("(%s) - START\n", wm->modname ); /* Recursively decrement reference counts */ //MODULE_DecRefCount( wm ); /* Call process detach notifications */ MODULE_DllProcessDetach( wm, FALSE, NULL ); PE_UnloadLibrary(wm); //TRACE("END\n"); return TRUE; } /*********************************************************************** * LoadLibraryExA (KERNEL32) */ HMODULE WINAPI LoadLibraryExA(LPCSTR libname, HANDLE hfile, DWORD flags) { WINE_MODREF *wm = 0; char* listpath[] = { "", "", WIN32_LIB_PATH, WIN32_PATH, "/usr/local/lib/win32", NULL }; char path[512]; int i; static char *unavailable_lib_names[100]; static int unavailable_libs=0; if(!libname) { SetLastError(ERROR_INVALID_PARAMETER); return 0; } /* see if this lib has already failed before */ for (i = 0; i < unavailable_libs; i++) { if(!strcmp(unavailable_lib_names[i],libname)) { return 0; } } //TRACE("calling FindModule(%s)\n",libname); wm=MODULE_FindModule(libname); if(wm) return wm->module; //if(fs_installed==0) // install_fs(); TRACE("module '%s' not already loaded\n", libname); i = -1; /* check search path */ while (wm == 0 && listpath[++i]) { memset (&path, 0, sizeof (path)); if (i < 2) { if (i == 0) /* check just original file name */ strncpy(path, libname, sizeof(path) - 1); else /* check default user path */ strncpy(path, win32_def_path, sizeof(path) - 2); } else if (strcmp(win32_def_path, listpath[i])) /* path from the list */ strncpy(path, listpath[i], 300); else continue; if (i > 0) { strcat(path, "/"); strncat(path, libname, 100); } path[511] = 0; TRACE("trying to load module '%s'\n", path); wm = MODULE_LoadLibraryExA( path, hfile, flags ); if (!wm) { TRACE("loading module '%s' failed\n", path); } } if ( wm ) { TRACE("Loaded module '%s'\n", libname); if ( !MODULE_DllProcessAttach( wm, NULL ) ) { WARN_(module)("Attach failed for module '%s', \n", libname); MODULE_RemoveFromList(wm); MODULE_FreeLibrary(wm); SetLastError(ERROR_DLL_INIT_FAILED); wm = NULL; } } if (!wm) { if(unavailable_libs<100) { unavailable_lib_names[unavailable_libs++]=strdup(libname); } else { TRACE("more than 100 missing libs\n"); } /* idealy we remember this */ TRACE("wine/module: Win32 LoadLibrary failed to load: %s\n", libname); } // remove a few divs in the VP codecs that make trouble if (strstr(libname,"vp5vfw.dll") && wm) { int i; if (PE_FindExportedFunction(wm, "DriverProc", TRUE)==(void*)0x10003930) { for (i=0;i<3;i++) ((char*)0x10004e86)[i]=0x90; for (i=0;i<3;i++) ((char*)0x10005a23)[i]=0x90; for (i=0;i<3;i++) ((char*)0x10005bff)[i]=0x90; } else { printf("wine/module: Unsupported VP5 version\n"); return 0; } } if (strstr(libname,"vp6vfw.dll") && wm) { int i; if (PE_FindExportedFunction(wm, "DriverProc", TRUE)==(void*)0x10003ef0) { // looks like VP 6.1.0.2 for (i=0;i<6;i++) ((char*)0x10007268)[i]=0x90; for (i=0;i<6;i++) ((char*)0x10007e83)[i]=0x90; for (i=0;i<6;i++) ((char*)0x1000806a)[i]=0x90; } else if (PE_FindExportedFunction(wm, "DriverProc", TRUE)==(void*)0x10004120) { // looks like VP 6.2.0.10 for (i=0;i<6;i++) ((char*)0x10007688)[i]=0x90; for (i=0;i<6;i++) ((char*)0x100082c3)[i]=0x90; for (i=0;i<6;i++) ((char*)0x100084aa)[i]=0x90; } else if (PE_FindExportedFunction(wm, "DriverProc", TRUE)==(void*)0x10003e70) { // looks like VP 6.0.7.3 for (i=0;i<6;i++) ((char*)0x10007559)[i]=0x90; for (i=0;i<6;i++) ((char*)0x100081c3)[i]=0x90; for (i=0;i<6;i++) ((char*)0x1000839e)[i]=0x90; } else { printf("wine/module: Unsupported VP6 version\n"); return 0; } } if (strstr(libname,"QuickTime.qts") && wm) { void** ptr; void *dispatch_addr; int i; //dispatch_addr = GetProcAddress(wm->module, "theQuickTimeDispatcher", TRUE); dispatch_addr = PE_FindExportedFunction(wm, "theQuickTimeDispatcher", TRUE); if (dispatch_addr == (void *)0x62924c30) { printf ("wine/module: QuickTime5 DLLs found\n"); ptr = (void **)0x62b75ca4; // dispatch_ptr for (i=0;i<5;i++) ((char*)0x6299e842)[i]=0x90; // make_new_region ? for (i=0;i<28;i++) ((char*)0x6299e86d)[i]=0x90; // call__call_CreateCompatibleDC ? for (i=0;i<5;i++) ((char*)0x6299e898)[i]=0x90; // jmp_to_call_loadbitmap ? for (i=0;i<9;i++) ((char*)0x6299e8ac)[i]=0x90; // call__calls_OLE_shit ? for (i=0;i<106;i++) ((char*)0x62a61b10)[i]=0x90; // disable threads #if 0 /* CreateThread callers */ for (i=0;i<5;i++) ((char*)0x629487c5)[i]=0x90; for (i=0;i<5;i++) ((char*)0x6294b275)[i]=0x90; for (i=0;i<5;i++) ((char*)0x629a24b1)[i]=0x90; for (i=0;i<5;i++) ((char*)0x629afc5a)[i]=0x90; for (i=0;i<5;i++) ((char*)0x62af799c)[i]=0x90; for (i=0;i<5;i++) ((char*)0x62af7efe)[i]=0x90; for (i=0;i<5;i++) ((char*)0x62afa33e)[i]=0x90; #endif #if 0 /* TerminateQTML fix */ for (i=0;i<47;i++) ((char*)0x62afa3b8)[i]=0x90; // terminate thread for (i=0;i<47;i++) ((char*)0x62af7f78)[i]=0x90; // terminate thread for (i=0;i<77;i++) ((char*)0x629a13d5)[i]=0x90; ((char *)0x6288e0ae)[0] = 0xc3; // font/dc remover for (i=0;i<24;i++) ((char*)0x6287a1ad)[i]=0x90; // destroy window #endif } else if (dispatch_addr == (void *)0x6693b330) { printf ("wine/module: QuickTime6 DLLs found\n"); ptr = (void **)0x66bb9524; // dispatcher_ptr for (i=0;i<5;i++) ((char *)0x66a730cc)[i]=0x90; // make_new_region for (i=0;i<28;i++) ((char *)0x66a730f7)[i]=0x90; // call__call_CreateCompatibleDC for (i=0;i<5;i++) ((char *)0x66a73122)[i]=0x90; // jmp_to_call_loadbitmap for (i=0;i<9;i++) ((char *)0x66a73131)[i]=0x90; // call__calls_OLE_shit for (i=0;i<96;i++) ((char *)0x66aac852)[i]=0x90; // disable threads } else if (dispatch_addr == (void *)0x6693c3e0) { printf ("wine/module: QuickTime6.3 DLLs found\n"); ptr = (void **)0x66bca01c; // dispatcher_ptr for (i=0;i<5;i++) ((char *)0x66a68f6c)[i]=0x90; // make_new_region for (i=0;i<28;i++) ((char *)0x66a68f97)[i]=0x90; // call__call_CreateCompatibleDC for (i=0;i<5;i++) ((char *)0x66a68fc2)[i]=0x90; // jmp_to_call_loadbitmap for (i=0;i<9;i++) ((char *)0x66a68fd1)[i]=0x90; // call__calls_OLE_shit for (i=0;i<96;i++) ((char *)0x66ab4722)[i]=0x90; // disable threads } else { printf ("wine/module: Unsupported QuickTime version (%p)\n", dispatch_addr); return 0; } printf ("wine/module: QuickTime.qts patched!!! old entry=%p\n",ptr[0]); #ifdef EMU_QTX_API wrapper_target=ptr[0]; ptr[0]=wrapper; #endif } return wm ? wm->module : 0; } /*********************************************************************** * LoadLibraryA (KERNEL32) */ HMODULE WINAPI LoadLibraryA(LPCSTR libname) { return LoadLibraryExA(libname,0,0); } /*********************************************************************** * FreeLibrary */ WIN_BOOL WINAPI FreeLibrary(HINSTANCE hLibModule) { WIN_BOOL retv = FALSE; WINE_MODREF *wm; wm=MODULE32_LookupHMODULE(hLibModule); MODULE_RemoveFromList(wm); if ( !wm || !hLibModule ) { SetLastError( ERROR_INVALID_HANDLE ); return 0; } else retv = MODULE_FreeLibrary( wm ); /* garbage... */ if (local_wm == NULL) my_garbagecollection(); return retv; } /*********************************************************************** * MODULE_DecRefCount * * NOTE: Assumes that the process critical section is held! */ #if 0 static void MODULE_DecRefCount( WINE_MODREF *wm ) { int i; if ( wm->flags & WINE_MODREF_MARKER ) return; if ( wm->refCount <= 0 ) return; --wm->refCount; //TRACE("(%s) refCount: %d\n", wm->modname, wm->refCount ); if ( wm->refCount == 0 ) { wm->flags |= WINE_MODREF_MARKER; for ( i = 0; i < wm->nDeps; i++ ) if ( wm->deps[i] ) MODULE_DecRefCount( wm->deps[i] ); wm->flags &= ~WINE_MODREF_MARKER; } } #endif /*********************************************************************** * GetProcAddress (KERNEL32.257) */ FARPROC WINAPI GetProcAddress( HMODULE hModule, LPCSTR function ) { return MODULE_GetProcAddress( hModule, function, TRUE ); } #ifdef DEBUG_QTX_API struct ComponentParameters { unsigned char flags; /* call modifiers: sync/async, deferred, immed, etc */ unsigned char paramSize; /* size in bytes of actual parameters passed to this call */ short what; /* routine selector, negative for Component management calls */ long params[1]; /* actual parameters for the indicated routine */ }; typedef struct ComponentParameters ComponentParameters; static char* component_func(int what){ switch(what){ case -1: return "kComponentOpenSelect"; case -2: return "kComponentCloseSelect"; case -3: return "kComponentCanDoSelect"; case -4: return "kComponentVersionSelect"; case -5: return "kComponentRegisterSelect"; case -6: return "kComponentTargetSelect"; case -7: return "kComponentUnregisterSelect"; } return "???"; } static char* component_func_type(int type,int what){ if(type==1) switch(what){ case 0: return "kImageCodecGetCodecInfoSelect"; case 1: return "kImageCodecGetCompressionTimeSelect"; case 5: return "kImageCodecPreDecompressSelect"; case 6: return "kImageCodecBandDecompressSelect"; case 0x12: return "kImageCodecDisposeMemorySelect"; case 0x10: return "kImageCodecIsImageDescriptionEquivalentSelect"; case 0x14: return "kImageCodecNewImageBufferMemorySelect"; case 0x28: return "kImageCodecRequestGammaLevelSelect"; } return "???"; } static int c_level=0; static int dump_component(char* name,int type,void* _orig, ComponentParameters *params,void** glob){ int ( *orig)(ComponentParameters *params, void** glob) = _orig; int ret,i; if(params->what<0) fprintf(stderr,"%*sComponentCall: %s flags=0x%X size=%d what=%d %s\n",3*c_level,"",name,params->flags, params->paramSize, params->what, component_func(params->what)); else fprintf(stderr,"%*sComponentCall: %s flags=0x%X size=%d what=0x%X %s\n",3*c_level,"",name,params->flags, params->paramSize, params->what, component_func_type(type,params->what)); for(i=0;iparamSize/4;i++) fprintf(stderr,"%*s param[%d] = 0x%X\n",3*c_level,"",i,params->params[i]); ++c_level; ret=orig(params,glob); --c_level; if(ret>=0x1000) fprintf(stderr,"%*s return=0x%X\n",3*c_level,"",ret); else fprintf(stderr,"%*s return=%d\n",3*c_level,"",ret); return ret; } #define DECL_COMPONENT(sname,name,type) \ static void* real_ ## sname = NULL; \ static int fake_ ## sname(ComponentParameters *params,void** glob){ \ return dump_component(name,type,real_ ## sname, params, glob); \ } #include "qt_comp.h" #undef DECL_COMPONENT #include "qt_fv.h" #endif #ifdef EMU_QTX_API static u_int32_t ret_array[4096]; static int ret_i=0; int report_func(void *stack_base, int stack_size, reg386_t *reg, u_int32_t *flags) { #ifdef DEBUG_QTX_API int i; int* dptr; void* pwrapper=NULL; void* pptr=NULL; char* pname=NULL; int plen=-1; // find the code: dptr=0x62b67ae0;dptr+=2*((reg->eax>>16)&255); // printf("FUNC: flag=%d ptr=%p\n",dptr[0],dptr[1]); if(dptr[0]&255){ dptr=dptr[1];dptr+=4*(reg->eax&65535); // printf("FUNC: ptr2=%p eax=%p edx=%p\n",dptr[1],dptr[0],dptr[2]); pwrapper=dptr[1]; pptr=dptr[0]; plen=dptr[2]; } else { pwrapper=0x62924910; switch(dptr[1]){ case 0x629248d0: dptr=0x62b672c0;dptr+=2*(reg->eax&65535); // printf("FUNC: ptr2=%p eax=%p edx=%p\n",0x62924910,dptr[0],dptr[1]); pptr=dptr[0]; plen=dptr[1]; break; case 0x62924e40: dptr=0x62b67c70;dptr+=2*(reg->eax&65535); // printf("FUNC: ptr2=%p eax=%p edx=%p\n",0x62924910,dptr[0],dptr[1]); pptr=dptr[0]; plen=dptr[1]; break; case 0x62924e60: dptr=0x62b68108;if(reg->eax&0x8000) dptr+=2*(reg->eax|0xffff0000); else dptr+=2*(reg->eax&65535); // printf("FUNC: ptr2=%p eax=%p edx=%p\n",0x62924910,dptr[0],dptr[1]); pptr=dptr[0]; plen=dptr[1]; break; case 0x62924e80: dptr=0x62b68108;if(reg->eax&0x8000) dptr+=2*(reg->eax|0xffff0000); else dptr+=2*(reg->eax&65535); // printf("FUNC: ptr2=%p eax=%p edx=%p\n",0x62924910,dptr[0],dptr[1]); pptr=dptr[0]; plen=dptr[1]; break; default: printf("FUNC: unknown ptr & psize!\n"); pwrapper=dptr[1]; } } for(i=0;qt_fv_list[i].name;i++){ if(qt_fv_list[i].id==reg->eax){ pname=qt_fv_list[i].name; break; } } printf("FUNC[%X/%s]: wrapper=%p func=%p len=%d\n",reg->eax, pname?pname:"???",pwrapper,pptr,plen); printf("FUNC: caller=%p ebx=%p\n",((u_int32_t *)stack_base)[0],reg->ebx); if(pname) printf("%*sENTER(%d): %s(",ret_i*2,"",ret_i,pname); else printf("%*sENTER(%d): %X(",ret_i*2,"",ret_i,reg->eax); for (i=0;i=0x20 && fcc[0]<128 && fcc[1]>=0x20 && fcc[1]<128 && fcc[2]>=0x20 && fcc[2]<128 && fcc[3]>=0x20 && fcc[3]<128) printf("='%c%c%c%c'",fcc[3],fcc[2],fcc[1],fcc[0]); else if(val>=8 && val<65536) printf("=%d",val); } printf(")\n"); fflush(stdout); #endif #if 1 // emulate some functions: switch(reg->eax){ // memory management: case 0x150011: //NewPtrClear case 0x150012: //NewPtrSysClear reg->eax=(u_int32_t)malloc(((u_int32_t *)stack_base)[1]); memset((void *)reg->eax,0,((u_int32_t *)stack_base)[1]); #ifdef DEBUG_QTX_API printf("%*sLEAVE(%d): EMULATED! 0x%X\n",ret_i*2,"",ret_i, reg->eax); #endif return 1; case 0x15000F: //NewPtr case 0x150010: //NewPtrSys reg->eax=(u_int32_t)malloc(((u_int32_t *)stack_base)[1]); #ifdef DEBUG_QTX_API printf("%*sLEAVE(%d): EMULATED! 0x%X\n",ret_i*2,"",ret_i, reg->eax); #endif return 1; case 0x15002f: //DisposePtr if(((u_int32_t *)stack_base)[1]>=0x60000000) printf("WARNING! Invalid Ptr handle!\n"); else free((void *)(((u_int32_t *)stack_base)[1])); reg->eax=0; #ifdef DEBUG_QTX_API printf("%*sLEAVE(%d): EMULATED! 0x%X\n",ret_i*2,"",ret_i, reg->eax); #endif return 1; // mutexes: case 0x1d0033: //QTMLCreateMutex reg->eax=0xdeadbabe; #ifdef DEBUG_QTX_API printf("%*sLEAVE(%d): EMULATED! 0x%X\n",ret_i*2,"",ret_i, reg->eax); #endif return 1; case 0x1d0034: //QTMLDestroyMutex case 0x1d0035: //QTMLGrabMutex case 0x1d0036: //QTMLReturnMutex case 0x1d003d: //QTMLTryGrabMutex reg->eax=0; #ifdef DEBUG_QTX_API printf("%*sLEAVE(%d): EMULATED! 0x%X\n",ret_i*2,"",ret_i, reg->eax); #endif return 1; } #endif #if 0 switch(reg->eax){ // case 0x00010000: // printf("FUNC: ImageCodecInitialize/ImageCodecGetCodecInfo(ci=%p,&icap=%p)\n",((u_int32_t *)stack_base)[1],((u_int32_t *)stack_base)[4]); // break; case 0x00010003: printf("FUNC: CountComponents(&desc=%p)\n",((u_int32_t *)stack_base)[1]); break; case 0x00010004: printf("FUNC: FindNextComponent(prev=%p,&desc=%p)\n",((u_int32_t *)stack_base)[1],((u_int32_t *)stack_base)[2]); break; case 0x00010007: printf("FUNC: OpenComponent(prev=%p)\n",((u_int32_t *)stack_base)[1]); break; case 0x0003008b: printf("FUNC: QTNewGWorldFromPtr(&pts=%p,fourcc=%.4s,&rect=%p,x1=%p,x2=%p,x3=%p,plane=%p,stride=%d)\n", ((u_int32_t *)stack_base)[1], &(((u_int32_t *)stack_base)[2]), ((u_int32_t *)stack_base)[3], ((u_int32_t *)stack_base)[4], ((u_int32_t *)stack_base)[5], ((u_int32_t *)stack_base)[6], ((u_int32_t *)stack_base)[7], ((u_int32_t *)stack_base)[8]); break; case 0x001c0018: printf("FUNC: GetGWorldPixMap(gworld=%p)\n",((u_int32_t *)stack_base)[1]); break; case 0x00110001: printf("FUNC: Gestalt(fourcc=%.4s, &ret=%p)\n",&(((u_int32_t *)stack_base)[1]),((u_int32_t *)stack_base)[2]); break; default: { int i; for(i=0;qt_fv_list[i].name;i++){ if(qt_fv_list[i].id==reg->eax){ printf("FUNC: %s\n",qt_fv_list[i].name); break; } } } } // print stack/reg information printf("ENTER(%d) stack = %d bytes @ %p\n" "eax = 0x%08x edx = 0x%08x ebx = 0x%08x ecx = 0x%08x\n" "esp = 0x%08x ebp = 0x%08x esi = 0x%08x edi = 0x%08x\n" "flags = 0x%08x\n", ret_i, stack_size, stack_base, reg->eax, reg->edx, reg->ebx, reg->ecx, reg->esp, reg->ebp, reg->esi, reg->edi, *flags); #endif // save ret addr: ret_array[ret_i]=((u_int32_t *)stack_base)[0]; ++ret_i; #if 0 // print first 7 longs in the stack (return address, arg[1], arg[2] ... ) printf("stack[] = { "); for (i=0;i<7;i++) { printf("%08x ", ((u_int32_t *)stack_base)[i]); } printf("}\n\n"); #endif // // mess with function parameters // ((u_int32_t *)stack_base)[1] = 0x66554433; // // mess with return address... // reg->eax = 0x11223344; return 0; } int report_func_ret(void *stack_base, int stack_size, reg386_t *reg, u_int32_t *flags) { #ifdef DEBUG_QTX_API int i; short err; #endif // restore ret addr: --ret_i; ((u_int32_t *)stack_base)[0]=ret_array[ret_i]; #ifdef DEBUG_QTX_API #if 1 printf("%*sLEAVE(%d): 0x%X",ret_i*2,"",ret_i, reg->eax); err=reg->eax; if(err && (reg->eax>>16)==0) printf(" = %d",err); printf("\n"); fflush(stdout); #else // print stack/reg information printf("LEAVE(%d) stack = %d bytes @ %p\n" "eax = 0x%08x edx = 0x%08x ebx = 0x%08x ecx = 0x%08x\n" "esp = 0x%08x ebp = 0x%08x esi = 0x%08x edi = 0x%08x\n" "flags = 0x%08x\n", ret_i, stack_size, stack_base, reg->eax, reg->edx, reg->ebx, reg->ecx, reg->esp, reg->ebp, reg->esi, reg->edi, *flags); #endif #if 0 // print first 7 longs in the stack (return address, arg[1], arg[2] ... ) printf("stack[] = { "); for (i=0;i<7;i++) { printf("%08x ", ((u_int32_t *)stack_base)[i]); } printf("}\n\n"); #endif #endif // // mess with function parameters // ((u_int32_t *)stack_base)[1] = 0x66554433; // // mess with return address... // reg->eax = 0x11223344; return 0; } #endif /*********************************************************************** * MODULE_GetProcAddress (internal) */ FARPROC MODULE_GetProcAddress( HMODULE hModule, /* [in] current module handle */ LPCSTR function, /* [in] function to be looked up */ WIN_BOOL snoop ) { WINE_MODREF *wm = MODULE32_LookupHMODULE( hModule ); //WINE_MODREF *wm=local_wm; FARPROC retproc; if (HIWORD(function)) TRACE("GetProcAddress(%08lx,%s)\n",(DWORD)hModule,function); else TRACE("GetProcAddress(%08lx,%p)\n",(DWORD)hModule,function); if (!wm) { SetLastError(ERROR_INVALID_HANDLE); return (FARPROC)0; } switch (wm->type) { case MODULE32_PE: retproc = PE_FindExportedFunction( wm, function, snoop ); if (!retproc) SetLastError(ERROR_PROC_NOT_FOUND); break; #ifdef HAVE_LIBDL case MODULE32_ELF: retproc = (FARPROC) dlsym( (void*) wm->module, function); if (!retproc) SetLastError(ERROR_PROC_NOT_FOUND); return retproc; #endif default: ERR("wine_modref type %d not handled.\n",wm->type); SetLastError(ERROR_INVALID_HANDLE); return (FARPROC)0; } #ifdef EMU_QTX_API if (HIWORD(function) && retproc) { #ifdef DEBUG_QTX_API #define DECL_COMPONENT(sname,name,type) \ if(!strcmp(function,name)){ \ fprintf(stderr,name "dispatcher caught -> %p\n",retproc); \ real_ ## sname = retproc; retproc = fake_ ## sname; \ } #include "qt_comp.h" #undef DECL_COMPONENT #endif if(!strcmp(function,"theQuickTimeDispatcher") // || !strcmp(function,"_CallComponentFunctionWithStorage") // || !strcmp(function,"_CallComponent") ){ fprintf(stderr,"theQuickTimeDispatcher caught -> %p\n",retproc); wrapper_target=(void *)retproc; retproc=(void *)wrapper; } } #endif return retproc; } static int acounter = 0; void CodecAlloc(void) { acounter++; //printf("**************CODEC ALLOC %d\n", acounter); } void CodecRelease(void) { acounter--; //printf("**************CODEC RELEASE %d\n", acounter); if (acounter == 0) { for (;;) { WINE_MODREF* wm; modref_list* list = local_wm; if (!local_wm) break; //printf("CODECRELEASE %p\n", list); wm=list->wm; MODULE_RemoveFromList(wm); MODULE_FreeLibrary(wm); if (local_wm == NULL) my_garbagecollection(); } } } bml-0.6.1/dllwrapper/wine/win32.c0000644042355400116100000044425211666464225013472 00000000000000/*********************************************************** Win32 emulation code. Functions that emulate responses from corresponding Win32 API calls. Since we are not going to be able to load virtually any DLL, we can only implement this much, adding needed functions with each new codec. Basic principle of implementation: it's not good for DLL to know too much about its environment. ************************************************************/ #include "config.h" #define QTX #ifdef QTX #define PSEUDO_SCREEN_WIDTH /*640*/800 #define PSEUDO_SCREEN_HEIGHT /*480*/600 #endif #define LOADLIB_TRY_NATIVE #include "winbase.h" #include "winreg.h" #include "winnt.h" #include "winerror.h" #include "debugtools.h" #include "module.h" #include "winuser.h" #include #include "win32.h" #include "registry.h" #include "loader.h" #include "com.h" #include #include #include #include #include #include #ifdef HAVE_MALLOC_H #include #endif #include #include #include #include #include #include #include #include #ifdef HAVE_KSTAT #include #endif #if HAVE_VSSCANF # ifndef __sun /* * On solaris, remove the prototype for now; it's incompatible with the one * from solaris9 stdio.h */ int vsscanf( const char *str, const char *format, va_list ap); # endif #else /* system has no vsscanf. try to provide one */ static int vsscanf( const char *str, const char *format, va_list ap) { long p1 = va_arg(ap, long); long p2 = va_arg(ap, long); long p3 = va_arg(ap, long); long p4 = va_arg(ap, long); long p5 = va_arg(ap, long); return sscanf(str, format, p1, p2, p3, p4, p5); } #endif char* win32_def_path = WIN32_PATH; static void do_cpuid(unsigned int ax, unsigned int *regs) { __asm__ __volatile__ ( "pushl %%ebx; pushl %%ecx; pushl %%edx;" ".byte 0x0f, 0xa2;" "movl %%eax, (%2);" "movl %%ebx, 4(%2);" "movl %%ecx, 8(%2);" "movl %%edx, 12(%2);" "popl %%edx; popl %%ecx; popl %%ebx;" : "=a" (ax) : "0" (ax), "S" (regs) ); } static unsigned int c_localcount_tsc() { int a; __asm__ __volatile__ ( "rdtsc\n\t" :"=a"(a) : :"edx" ); return a; } static void c_longcount_tsc(long long* z) { __asm__ __volatile__ ( "pushl %%ebx\n\t" "movl %%eax, %%ebx\n\t" "rdtsc\n\t" "movl %%eax, 0(%%ebx)\n\t" "movl %%edx, 4(%%ebx)\n\t" "popl %%ebx\n\t" ::"a"(z) ); } static unsigned int c_localcount_notsc() { struct timeval tv; unsigned limit=~0; limit/=1000000; gettimeofday(&tv, 0); return limit*tv.tv_usec; } static void c_longcount_notsc(long long* z) { struct timeval tv; unsigned long long result; unsigned limit=~0; if(!z)return; limit/=1000000; gettimeofday(&tv, 0); result=tv.tv_sec; result<<=32; result+=limit*tv.tv_usec; *z=result; } static unsigned int localcount_stub(void); static void longcount_stub(long long*); static unsigned int (*localcount)()=localcount_stub; static void (*longcount)(long long*)=longcount_stub; static unsigned int localcount_stub(void) { unsigned int regs[4] = {0, }; do_cpuid(1, regs); if ((regs[3] & 0x00000010) != 0) { localcount=c_localcount_tsc; longcount=c_longcount_tsc; } else { localcount=c_localcount_notsc; longcount=c_longcount_notsc; } return localcount(); } static void longcount_stub(long long* z) { unsigned int regs[4] = {0, }; do_cpuid(1, regs); if ((regs[3] & 0x00000010) != 0) { localcount=c_localcount_tsc; longcount=c_longcount_tsc; } else { localcount=c_localcount_notsc; longcount=c_longcount_notsc; } longcount(z); } //#define DETAILED_OUT 1 #ifndef DETAILED_OUT #define dbgprintf(...) #else static inline void __attribute__((__format__(__printf__, 1, 2))) dbgprintf(char* fmt, ...) { va_list va; va_start(va, fmt); vprintf(fmt, va); fflush(stdout); /*FILE *f=fopen("./log", "a"); if(f) { vfprintf(f, fmt, va); fsync(fileno(f)); fclose(f); }*/ va_end(va); } #endif #define NUM_STUB_ENTRIES 300 char export_names[NUM_STUB_ENTRIES][32]={ "name1", }; //#define min(x,y) ((x)<(y)?(x):(y)) struct th_list_t; typedef struct th_list_t{ int id; void* thread; struct th_list_t* next; struct th_list_t* prev; } th_list; // have to be cleared by GARBAGE COLLECTOR static tls_t* g_tls=NULL; static th_list* list=NULL; #undef MEMORY_DEBUG //#define MEMORY_DEBUG #ifdef MEMORY_DEBUG static unsigned char* heap=NULL; static int heap_counter=0; static void test_heap(void) { int offset=0; if(heap==0) return; while(offset20000000) { dbgprintf("No enough memory\n"); return 0; } *(int*)(heap+heap_counter)=0x433476; heap_counter+=4; *(int*)(heap+heap_counter)=size; heap_counter+=4; dbgprintf("Allocated %d bytes of memory: sys %d, user %d-%d\n", size, heap_counter-8, heap_counter, heap_counter+size); if(to_zero) memset(heap+heap_counter, 0, size); else memset(heap+heap_counter, 0xcc, size); // make crash reproducable heap_counter+=size; return heap+heap_counter-size; } static int my_release(char* memory) { // test_heap(); if(memory==NULL) { dbgprintf("ERROR: free(0)\n"); return 0; } if(*(int*)(memory-8)!=0x433476) { dbgprintf("MEMORY CORRUPTION !!!!!!!!!!!!!!!!!!!\n"); return 0; } dbgprintf("Freed %d bytes of memory\n", *(int*)(memory-4)); // memset(memory-8, *(int*)(memory-4), 0xCC); return 0; } #else #define GARBAGE typedef struct alloc_header_t alloc_header; struct alloc_header_t { // let's keep allocated data 16 byte aligned alloc_header* prev; alloc_header* next; long deadbeef; long size; long type; long reserved1; long reserved2; long reserved3; }; #ifdef GARBAGE static void destroy_event(void* event); static pthread_mutex_t memmut; static alloc_header* last_alloc = NULL; static int alccnt = 0; #endif #define AREATYPE_CLIENT 0 #define AREATYPE_EVENT 1 #define AREATYPE_MUTEX 2 #define AREATYPE_COND 3 #define AREATYPE_CRITSECT 4 /* -- critical sections -- */ struct CRITSECT { pthread_t id; pthread_mutex_t mutex; int locked; long deadbeef; }; static void* mreq_private(int size, int to_zero, int type) { int nsize = size + sizeof(alloc_header); alloc_header* header = (alloc_header* ) malloc(nsize); if (!header) return 0; if (to_zero) memset(header, 0, nsize); #ifdef GARBAGE if (!last_alloc) { pthread_mutex_init(&memmut, NULL); pthread_mutex_lock(&memmut); } else { pthread_mutex_lock(&memmut); last_alloc->next = header; /* set next */ } header->prev = last_alloc; header->next = 0; last_alloc = header; alccnt++; pthread_mutex_unlock(&memmut); #endif header->deadbeef = 0xdeadbeef; header->size = size; header->type = type; //if (alccnt < 40000) dbgprintf("MY_REQ: %p\t%d t:%d (cnt:%d)\n", header, size, type, alccnt); return header + 1; } static int my_release(void* memory) { alloc_header* header = (alloc_header*) memory - 1; #ifdef GARBAGE alloc_header* prevmem; alloc_header* nextmem; if (memory == 0) return 0; if (header->deadbeef != (long) 0xdeadbeef) { dbgprintf("FATAL releasing corrupted memory! %p 0x%lx (%d)\n", header, header->deadbeef, alccnt); return 0; } pthread_mutex_lock(&memmut); switch(header->type) { case AREATYPE_EVENT: destroy_event(memory); break; case AREATYPE_COND: pthread_cond_destroy((pthread_cond_t*)memory); break; case AREATYPE_MUTEX: pthread_mutex_destroy((pthread_mutex_t*)memory); break; case AREATYPE_CRITSECT: pthread_mutex_destroy(&((struct CRITSECT*)memory)->mutex); break; default: //memset(memory, 0xcc, header->size); ; } header->deadbeef = 0; prevmem = header->prev; nextmem = header->next; if (prevmem) prevmem->next = nextmem; if (nextmem) nextmem->prev = prevmem; if (header == last_alloc) last_alloc = prevmem; alccnt--; /* xine: mutex must be unlocked on entrance of pthread_mutex_destroy */ pthread_mutex_unlock(&memmut); if (!last_alloc) pthread_mutex_destroy(&memmut); //if (alccnt < 40000) dbgprintf("MY_RELEASE: %p\t%ld (%d)\n", header, header->size, alccnt); #else if (memory == 0) return 0; #endif //memset(header + 1, 0xcc, header->size); free(header); return 0; } #endif static inline void* my_mreq(int size, int to_zero) { return mreq_private(size, to_zero, AREATYPE_CLIENT); } static int my_size(void* memory) { if(!memory) return 0; return ((alloc_header*)memory)[-1].size; } static void* my_realloc(void* memory, int size) { void *ans = memory; int osize; if (memory == NULL) return my_mreq(size, 0); osize = my_size(memory); if (osize < size) { ans = my_mreq(size, 0); memcpy(ans, memory, osize); my_release(memory); } return ans; } /* * * WINE API - native implementation for several win32 libraries * */ static int WINAPI ext_unknown() { dbgprintf("Unknown func called\n"); return 0; } static int WINAPI expIsBadWritePtr(void* ptr, unsigned int count) { int result = (count == 0 || ptr != 0) ? 0 : 1; dbgprintf("IsBadWritePtr(%p, 0x%x) => %d\n", ptr, count, result); return result; } static int WINAPI expIsBadReadPtr(void* ptr, unsigned int count) { int result = (count == 0 || ptr != 0) ? 0 : 1; dbgprintf("IsBadReadPtr(%p, 0x%x) => %d\n", ptr, count, result); return result; } static int WINAPI expDisableThreadLibraryCalls(int module) { dbgprintf("DisableThreadLibraryCalls(0x%x) => 0\n", module); return 0; } static HMODULE WINAPI expGetDriverModuleHandle(DRVR* pdrv) { HMODULE result; if (pdrv==NULL) result=0; else result=pdrv->hDriverModule; dbgprintf("GetDriverModuleHandle(%p) => %d\n", pdrv, result); return result; } #define MODULE_HANDLE_kernel32 ((HMODULE)0x120) #define MODULE_HANDLE_user32 ((HMODULE)0x121) #ifdef QTX #define MODULE_HANDLE_wininet ((HMODULE)0x122) #define MODULE_HANDLE_ddraw ((HMODULE)0x123) #define MODULE_HANDLE_advapi32 ((HMODULE)0x124) #endif static HMODULE WINAPI expGetModuleHandleA(const char* name) { WINE_MODREF* wm; HMODULE result; if(!name) #ifdef QTX result=1; #else result=0; #endif else { //TRACE("calling FindModule(%s)\n",name); wm=MODULE_FindModule(name); if(wm==0)result=0; else result=(HMODULE)(wm->module); } if(!result) { if(name && (strcasecmp(name, "kernel32")==0 || !strcasecmp(name, "kernel32.dll"))) result=MODULE_HANDLE_kernel32; #ifdef QTX if(name && strcasecmp(name, "user32")==0) result=MODULE_HANDLE_user32; #endif } dbgprintf("GetModuleHandleA('%s') => 0x%x\n", name, result); return result; } static void* WINAPI expCreateThread(void* pSecAttr, long dwStackSize, void* lpStartAddress, void* lpParameter, long dwFlags, long* dwThreadId) { pthread_t *pth; //dbgprintf("CreateThread:"); pth = (pthread_t*) my_mreq(sizeof(pthread_t), 0); pthread_create(pth, NULL, (void*(*)(void*))lpStartAddress, lpParameter); if(dwFlags) dbgprintf( "WARNING: CreateThread flags not supported\n"); if(dwThreadId) *dwThreadId=(long)pth; if(list==NULL) { list=my_mreq(sizeof(th_list), 1); list->next=list->prev=NULL; } else { list->next=my_mreq(sizeof(th_list), 0); list->next->prev=list; list->next->next=NULL; list=list->next; } list->thread=pth; dbgprintf("CreateThread(%p, %ld, %p, %p, %ld, %p) => %p\n", pSecAttr, dwStackSize, lpStartAddress, lpParameter, dwFlags, dwThreadId, pth); return pth; } struct mutex_list_t; struct mutex_list_t { char type; pthread_mutex_t *pm; pthread_cond_t *pc; char state; char reset; char name[128]; int semaphore; struct mutex_list_t* next; struct mutex_list_t* prev; }; typedef struct mutex_list_t mutex_list; static mutex_list* mlist=NULL; #ifdef GARBAGE static void destroy_event(void* event) { mutex_list* pp=mlist; //dbgprintf("garbage collector: destroy_event(%x)\n", event); while(pp) { if(pp==(mutex_list*)event) { if(pp->next) pp->next->prev=pp->prev; if(pp->prev) pp->prev->next=pp->next; if(mlist==(mutex_list*)event) mlist=mlist->prev; /* pp=mlist; while(pp) { dbgprintf("%x => ", pp); pp=pp->prev; } dbgprintf("0\n"); */ return; } pp=pp->prev; } } #endif static void* WINAPI expCreateEventA(void* pSecAttr, char bManualReset, char bInitialState, const char* name) { pthread_mutex_t *pm; pthread_cond_t *pc; /* mutex_list* pp; pp=mlist; while(pp) { dbgprintf("%x => ", pp); pp=pp->prev; } dbgprintf("0\n"); */ if(mlist!=NULL) { mutex_list* pp=mlist; if(name!=NULL) do { if((strcmp(pp->name, name)==0) && (pp->type==0)) { dbgprintf("CreateEventA(%p, 0x%x, 0x%x, %p='%s') => %p\n", pSecAttr, bManualReset, bInitialState, name, name, pp->pm); return pp->pm; } }while((pp=pp->prev) != NULL); } pm=mreq_private(sizeof(pthread_mutex_t), 0, AREATYPE_MUTEX); pthread_mutex_init(pm, NULL); pc=mreq_private(sizeof(pthread_cond_t), 0, AREATYPE_COND); pthread_cond_init(pc, NULL); if(mlist==NULL) { mlist=mreq_private(sizeof(mutex_list), 00, AREATYPE_EVENT); mlist->next=mlist->prev=NULL; } else { mlist->next=mreq_private(sizeof(mutex_list), 00, AREATYPE_EVENT); mlist->next->prev=mlist; mlist->next->next=NULL; mlist=mlist->next; } mlist->type=0; /* Type Event */ mlist->pm=pm; mlist->pc=pc; mlist->state=bInitialState; mlist->reset=bManualReset; if(name) strncpy(mlist->name, name, 127); else mlist->name[0]=0; /* if(bInitialState) pthread_mutex_lock(pm); */ if(name) dbgprintf("CreateEventA(%p, 0x%x, 0x%x, %p='%s') => %p\n", pSecAttr, bManualReset, bInitialState, name, name, mlist); else dbgprintf("CreateEventA(%p, 0x%x, 0x%x, NULL) => %p\n", pSecAttr, bManualReset, bInitialState, mlist); return mlist; } static void* WINAPI expSetEvent(void* event) { mutex_list *ml = (mutex_list *)event; dbgprintf("SetEvent(%p) => 0x1\n", event); pthread_mutex_lock(ml->pm); if (ml->state == 0) { ml->state = 1; pthread_cond_signal(ml->pc); } pthread_mutex_unlock(ml->pm); return (void *)1; } static void* WINAPI expResetEvent(void* event) { mutex_list *ml = (mutex_list *)event; dbgprintf("ResetEvent(%p) => 0x1\n", event); pthread_mutex_lock(ml->pm); ml->state = 0; pthread_mutex_unlock(ml->pm); return (void *)1; } static void* WINAPI expWaitForSingleObject(void* object, int duration) { mutex_list *ml = (mutex_list *)object; // FIXME FIXME FIXME - this value is sometime unititialize !!! int ret = WAIT_FAILED; mutex_list* pp=mlist; if(object == (void*)0xcfcf9898) { /** From GetCurrentThread() documentation: A pseudo handle is a special constant that is interpreted as the current thread handle. The calling thread can use this handle to specify itself whenever a thread handle is required. Pseudo handles are not inherited by child processes. This handle has the maximum possible access to the thread object. For systems that support security descriptors, this is the maximum access allowed by the security descriptor for the calling process. For systems that do not support security descriptors, this is THREAD_ALL_ACCESS. The function cannot be used by one thread to create a handle that can be used by other threads to refer to the first thread. The handle is always interpreted as referring to the thread that is using it. A thread can create a "real" handle to itself that can be used by other threads, or inherited by other processes, by specifying the pseudo handle as the source handle in a call to the DuplicateHandle function. **/ dbgprintf("WaitForSingleObject(thread_handle) called\n"); return (void*)WAIT_FAILED; } dbgprintf("WaitForSingleObject(%p, duration %d) =>\n", object, duration); // loop below was slightly fixed - its used just for checking if // this object really exists in our list if (!ml) return (void*) ret; while (pp && (pp->pm != ml->pm)) pp = pp->prev; if (!pp) { dbgprintf("WaitForSingleObject: NotFound\n"); return (void*)ret; } pthread_mutex_lock(ml->pm); switch(ml->type) { case 0: /* Event */ if (duration == 0) { /* Check Only */ if (ml->state == 1) ret = WAIT_FAILED; else ret = WAIT_OBJECT_0; } if (duration == -1) { /* INFINITE */ if (ml->state == 0) pthread_cond_wait(ml->pc,ml->pm); if (ml->reset) ml->state = 0; ret = WAIT_OBJECT_0; } if (duration > 0) { /* Timed Wait */ struct timespec abstime; struct timeval now; gettimeofday(&now, 0); abstime.tv_sec = now.tv_sec + (now.tv_usec+duration)/1000000; abstime.tv_nsec = ((now.tv_usec+duration)%1000000)*1000; if (ml->state == 0) ret=pthread_cond_timedwait(ml->pc,ml->pm,&abstime); if (ret == ETIMEDOUT) ret = WAIT_TIMEOUT; else ret = WAIT_OBJECT_0; if (ml->reset) ml->state = 0; } break; case 1: /* Semaphore */ if (duration == 0) { if(ml->semaphore==0) ret = WAIT_FAILED; else { ml->semaphore++; ret = WAIT_OBJECT_0; } } if (duration == -1) { if (ml->semaphore==0) pthread_cond_wait(ml->pc,ml->pm); ml->semaphore--; } break; } pthread_mutex_unlock(ml->pm); dbgprintf("WaitForSingleObject(%p, %d): %p => 0x%x \n",object,duration,ml,ret); return (void *)ret; } #ifdef QTX static void* WINAPI expWaitForMultipleObjects(int count, const void** objects, int WaitAll, int duration) { int i; void *object; void *ret; dbgprintf("WaitForMultipleObjects(%d, %p, %d, duration %d) =>\n", count, objects, WaitAll, duration); for (i = 0; i < count; i++) { object = (void *) objects[i]; ret = expWaitForSingleObject(object, duration); if (WaitAll) dbgprintf("WaitAll flag not yet supported...\n"); else return ret; } return NULL; } static void WINAPI expExitThread(int retcode) { dbgprintf("ExitThread(%d)\n", retcode); pthread_exit(&retcode); } static HANDLE WINAPI expCreateMutexA(void *pSecAttr, char bInitialOwner, const char *name) { #ifndef QTX HANDLE mlist = (HANDLE)expCreateEventA(pSecAttr, 0, 0, name); dbgprintf("CreateMutexA(%p, %d, '%s') => 0x%x\n", pSecAttr, bInitialOwner, name?name:"NULL", mlist); /* 10l to QTX, if CreateMutex returns a real mutex, WaitForSingleObject waits for ever, else it works ;) */ return mlist; #else dbgprintf("CreateMutexA(%p, %d, '%s') => 0x0\n", pSecAttr, bInitialOwner, name?name:"NULL"); return 0; #endif } static int WINAPI expReleaseMutex(HANDLE hMutex) { dbgprintf("ReleaseMutex(%x) => 1\n", hMutex); /* FIXME:XXX !! not yet implemented */ return 1; } #endif static int pf_set = 0; static BYTE PF[64] = {0,}; static void DumpSystemInfo(const SYSTEM_INFO* si) { dbgprintf(" Processor architecture %d\n", si->u.s.wProcessorArchitecture); dbgprintf(" Page size: %ld\n", si->dwPageSize); dbgprintf(" Minimum app address: %p\n", si->lpMinimumApplicationAddress); dbgprintf(" Maximum app address: %p\n", si->lpMaximumApplicationAddress); dbgprintf(" Active processor mask: 0x%lx\n", si->dwActiveProcessorMask); dbgprintf(" Number of processors: %ld\n", si->dwNumberOfProcessors); dbgprintf(" Processor type: 0x%lx\n", si->dwProcessorType); dbgprintf(" Allocation granularity: 0x%lx\n", si->dwAllocationGranularity); dbgprintf(" Processor level: 0x%x\n", si->wProcessorLevel); dbgprintf(" Processor revision: 0x%x\n", si->wProcessorRevision); } static void WINAPI expGetSystemInfo(SYSTEM_INFO* si) { /* FIXME: better values for the two entries below... */ static int cache = 0; static SYSTEM_INFO cachedsi; #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__svr4__) unsigned int regs[4]; #endif dbgprintf("GetSystemInfo(%p) =>\n", si); if (cache) { memcpy(si,&cachedsi,sizeof(*si)); DumpSystemInfo(si); return; } memset(PF,0,sizeof(PF)); pf_set = 1; cachedsi.u.s.wProcessorArchitecture = PROCESSOR_ARCHITECTURE_INTEL; cachedsi.dwPageSize = getpagesize(); /* FIXME: better values for the two entries below... */ cachedsi.lpMinimumApplicationAddress = (void *)0x00000000; cachedsi.lpMaximumApplicationAddress = (void *)0x7FFFFFFF; cachedsi.dwActiveProcessorMask = 1; cachedsi.dwNumberOfProcessors = 1; cachedsi.dwProcessorType = PROCESSOR_INTEL_386; cachedsi.dwAllocationGranularity = 0x10000; cachedsi.wProcessorLevel = 5; /* pentium */ cachedsi.wProcessorRevision = 0x0101; #ifdef MPLAYER /* mplayer's way to detect PF's */ { #include "../cpudetect.h" extern CpuCaps gCpuCaps; if (gCpuCaps.hasMMX) PF[PF_MMX_INSTRUCTIONS_AVAILABLE] = TRUE; if (gCpuCaps.hasSSE) PF[PF_XMMI_INSTRUCTIONS_AVAILABLE] = TRUE; if (gCpuCaps.has3DNow) PF[PF_AMD3D_INSTRUCTIONS_AVAILABLE] = TRUE; switch(gCpuCaps.cpuType) { case CPUTYPE_I686: case CPUTYPE_I586: cachedsi.dwProcessorType = PROCESSOR_INTEL_PENTIUM; cachedsi.wProcessorLevel = 5; break; case CPUTYPE_I486: cachedsi.dwProcessorType = PROCESSOR_INTEL_486; cachedsi.wProcessorLevel = 4; break; case CPUTYPE_I386: default: cachedsi.dwProcessorType = PROCESSOR_INTEL_386; cachedsi.wProcessorLevel = 3; break; } cachedsi.wProcessorRevision = gCpuCaps.cpuStepping; cachedsi.dwNumberOfProcessors = 1; /* hardcoded */ } #endif /* disable cpuid based detection (mplayer's cpudetect.c does this - see above) */ #ifndef MPLAYER #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__svr4__) do_cpuid(1, regs); switch ((regs[0] >> 8) & 0xf) { // cpu family case 3: cachedsi.dwProcessorType = PROCESSOR_INTEL_386; cachedsi.wProcessorLevel= 3; break; case 4: cachedsi.dwProcessorType = PROCESSOR_INTEL_486; cachedsi.wProcessorLevel= 4; break; case 5: cachedsi.dwProcessorType = PROCESSOR_INTEL_PENTIUM; cachedsi.wProcessorLevel= 5; break; case 6: cachedsi.dwProcessorType = PROCESSOR_INTEL_PENTIUM; cachedsi.wProcessorLevel= 5; break; default:cachedsi.dwProcessorType = PROCESSOR_INTEL_PENTIUM; cachedsi.wProcessorLevel= 5; break; } cachedsi.wProcessorRevision = regs[0] & 0xf; // stepping if (regs[3] & (1 << 8)) PF[PF_COMPARE_EXCHANGE_DOUBLE] = TRUE; if (regs[3] & (1 << 23)) PF[PF_MMX_INSTRUCTIONS_AVAILABLE] = TRUE; if (regs[3] & (1 << 25)) PF[PF_XMMI_INSTRUCTIONS_AVAILABLE] = TRUE; if (regs[3] & (1 << 31)) PF[PF_AMD3D_INSTRUCTIONS_AVAILABLE] = TRUE; cachedsi.dwNumberOfProcessors=1; #endif #endif /* MPLAYER */ /* MPlayer: linux detection enabled (based on proc/cpuinfo) for checking fdiv_bug and fpu emulation flags -- alex/MPlayer */ #ifdef __linux__ { char buf[20]; char line[200]; FILE *f = fopen ("/proc/cpuinfo", "r"); if (!f) return; while (fgets(line,200,f)!=NULL) { char *s,*value; /* NOTE: the ':' is the only character we can rely on */ if (!(value = strchr(line,':'))) continue; /* terminate the valuename */ *value++ = '\0'; /* skip any leading spaces */ while (*value==' ') value++; if ((s=strchr(value,'\n'))) *s='\0'; /* 2.1 method */ if (!lstrncmpiA(line, "cpu family",strlen("cpu family"))) { if (isdigit (value[0])) { switch (value[0] - '0') { case 3: cachedsi.dwProcessorType = PROCESSOR_INTEL_386; cachedsi.wProcessorLevel= 3; break; case 4: cachedsi.dwProcessorType = PROCESSOR_INTEL_486; cachedsi.wProcessorLevel= 4; break; case 5: cachedsi.dwProcessorType = PROCESSOR_INTEL_PENTIUM; cachedsi.wProcessorLevel= 5; break; case 6: cachedsi.dwProcessorType = PROCESSOR_INTEL_PENTIUM; cachedsi.wProcessorLevel= 5; break; default:cachedsi.dwProcessorType = PROCESSOR_INTEL_PENTIUM; cachedsi.wProcessorLevel= 5; break; } } /* set the CPU type of the current processor */ sprintf(buf,"CPU %ld",cachedsi.dwProcessorType); continue; } /* old 2.0 method */ if (!lstrncmpiA(line, "cpu",strlen("cpu"))) { if ( isdigit (value[0]) && value[1] == '8' && value[2] == '6' && value[3] == 0 ) { switch (value[0] - '0') { case 3: cachedsi.dwProcessorType = PROCESSOR_INTEL_386; cachedsi.wProcessorLevel= 3; break; case 4: cachedsi.dwProcessorType = PROCESSOR_INTEL_486; cachedsi.wProcessorLevel= 4; break; case 5: cachedsi.dwProcessorType = PROCESSOR_INTEL_PENTIUM; cachedsi.wProcessorLevel= 5; break; case 6: cachedsi.dwProcessorType = PROCESSOR_INTEL_PENTIUM; cachedsi.wProcessorLevel= 5; break; default:cachedsi.dwProcessorType = PROCESSOR_INTEL_PENTIUM; cachedsi.wProcessorLevel= 5; break; } } /* set the CPU type of the current processor */ sprintf(buf,"CPU %ld",cachedsi.dwProcessorType); continue; } if (!lstrncmpiA(line,"fdiv_bug",strlen("fdiv_bug"))) { if (!lstrncmpiA(value,"yes",3)) PF[PF_FLOATING_POINT_PRECISION_ERRATA] = TRUE; continue; } if (!lstrncmpiA(line,"fpu",strlen("fpu"))) { if (!lstrncmpiA(value,"no",2)) PF[PF_FLOATING_POINT_EMULATED] = TRUE; continue; } if (!lstrncmpiA(line,"processor",strlen("processor"))) { /* processor number counts up...*/ unsigned int x; if (sscanf(value,"%d",&x)) if (x+1>cachedsi.dwNumberOfProcessors) cachedsi.dwNumberOfProcessors=x+1; /* Create a new processor subkey on a multiprocessor * system */ sprintf(buf,"%d",x); } if (!lstrncmpiA(line,"stepping",strlen("stepping"))) { int x; if (sscanf(value,"%d",&x)) cachedsi.wProcessorRevision = x; } if ( (!lstrncmpiA(line,"flags",strlen("flags"))) || (!lstrncmpiA(line,"features",strlen("features"))) ) { if (strstr(value,"cx8")) PF[PF_COMPARE_EXCHANGE_DOUBLE] = TRUE; if (strstr(value,"mmx")) PF[PF_MMX_INSTRUCTIONS_AVAILABLE] = TRUE; if (strstr(value,"tsc")) PF[PF_RDTSC_INSTRUCTION_AVAILABLE] = TRUE; if (strstr(value,"xmm")) PF[PF_XMMI_INSTRUCTIONS_AVAILABLE] = TRUE; if (strstr(value,"3dnow")) PF[PF_AMD3D_INSTRUCTIONS_AVAILABLE] = TRUE; } } fclose (f); /* * ad hoc fix for smp machines. * some problems on WaitForSingleObject,CreateEvent,SetEvent * CreateThread ...etc.. * */ cachedsi.dwNumberOfProcessors=1; } #endif /* __linux__ */ cache = 1; memcpy(si,&cachedsi,sizeof(*si)); DumpSystemInfo(si); } // avoid undefined expGetSystemInfo static WIN_BOOL WINAPI expIsProcessorFeaturePresent(DWORD v) { WIN_BOOL result = 0; if (!pf_set) { SYSTEM_INFO si; expGetSystemInfo(&si); } if(v<64) result=PF[v]; dbgprintf("IsProcessorFeaturePresent(0x%lx) => 0x%x\n", v, result); return result; } static long WINAPI expGetVersion() { dbgprintf("GetVersion() => 0xC0000004\n"); return 0xC0000004;//Windows 95 } static HANDLE WINAPI expHeapCreate(long flags, long init_size, long max_size) { // dbgprintf("HeapCreate:"); HANDLE result; if(init_size==0) result=(HANDLE)my_mreq(0x110000, 0); else result=(HANDLE)my_mreq((init_size + 0xfff) & 0x7ffff000 , 0); dbgprintf("HeapCreate(flags 0x%lx, initial size %ld, maximum size %ld) => 0x%x\n", flags, init_size, max_size, result); return result; } // this is another dirty hack // VP31 is releasing one allocated Heap chunk twice // we will silently ignore this second call... static void* heapfreehack = 0; static int heapfreehackshown = 0; //extern void trapbug(void); static void* WINAPI expHeapAlloc(HANDLE heap, int flags, int size) { void* z; /** Morgan's m3jpeg32.dll v. 2.0 encoder expects that request for HeapAlloc returns area larger than size argument :-/ actually according to M$ Doc HeapCreate size should be rounded to page boundaries thus we should simulate this **/ //if (size == 22276) trapbug(); z=my_mreq((size + 0xfff) & 0x7ffff000, (flags & HEAP_ZERO_MEMORY)); if(z==0) dbgprintf("HeapAlloc failure\n"); dbgprintf("HeapAlloc(heap 0x%x, flags 0x%x, size %d) => %p\n", heap, flags, size, z); heapfreehack = 0; // reset return z; } static long WINAPI expHeapDestroy(void* heap) { dbgprintf("HeapDestroy(heap %p) => 1\n", heap); my_release(heap); return 1; } static long WINAPI expHeapFree(HANDLE heap, DWORD dwFlags, LPVOID lpMem) { dbgprintf("HeapFree(0x%x, 0x%lx, pointer %p) => 1\n", heap, dwFlags, lpMem); if (heapfreehack != lpMem && lpMem != (void*)0xffffffff && lpMem != (void*)0xbdbdbdbd) // 0xbdbdbdbd is for i263_drv.drv && libefence // it seems to be reading from relased memory // EF_PROTECT_FREE doens't show any probleme my_release(lpMem); else { if (!heapfreehackshown++) dbgprintf("Info: HeapFree deallocating same memory twice! (%p)\n", lpMem); } heapfreehack = lpMem; return 1; } static long WINAPI expHeapSize(int heap, int flags, void* pointer) { long result=my_size(pointer); dbgprintf("HeapSize(heap 0x%x, flags 0x%x, pointer %p) => %ld\n", heap, flags, pointer, result); return result; } static void* WINAPI expHeapReAlloc(HANDLE heap,int flags,void *lpMem,int size) { dbgprintf("HeapReAlloc() Size %d org %d\n",my_size(lpMem),size); return my_realloc(lpMem, size); } static long WINAPI expGetProcessHeap(void) { dbgprintf("GetProcessHeap() => 1\n"); return 1; } static void* WINAPI expVirtualAlloc(void* v1, long v2, long v3, long v4) { void* z = VirtualAlloc(v1, v2, v3, v4); if(z==0) dbgprintf("VirtualAlloc failure\n"); dbgprintf("VirtualAlloc(%p, %ld, %ld, %ld) => %p\n",v1,v2,v3,v4, z); return z; } static int WINAPI expVirtualFree(void* v1, int v2, int v3) { int result = VirtualFree(v1,v2,v3); dbgprintf("VirtualFree(%p, %d, %d) => %d\n",v1,v2,v3, result); return result; } static SIZE_T WINAPI expVirtualQuery(void *lpAddress, LPMEMORY_BASIC_INFORMATION lpBuffer, SIZE_T dwLength) { if(!lpBuffer || !dwLength) return 0; // create fake info to keep FSM::PhatMan happy lpBuffer->BaseAddress=lpBuffer->AllocationBase=lpAddress; lpBuffer->RegionSize=4; return sizeof(MEMORY_BASIC_INFORMATION); } /* we're building a table of critical sections. cs_win pointer uses the DLL cs_unix is the real structure, we're using cs_win only to identifying cs_unix */ struct critsecs_list_t { CRITICAL_SECTION *cs_win; struct CRITSECT *cs_unix; }; /* 'NEWTYPE' is working with VIVO, 3ivX and QTX dll (no more segfaults) -- alex */ #undef CRITSECS_NEWTYPE //#define CRITSECS_NEWTYPE 1 #ifdef CRITSECS_NEWTYPE /* increased due to ucod needs more than 32 entries */ /* and 64 should be enough for everything */ #define CRITSECS_LIST_MAX 64 static struct critsecs_list_t critsecs_list[CRITSECS_LIST_MAX]; static int critsecs_get_pos(CRITICAL_SECTION *cs_win) { int i; for (i=0; i < CRITSECS_LIST_MAX; i++) if (critsecs_list[i].cs_win == cs_win) return(i); return(-1); } static int critsecs_get_unused(void) { int i; for (i=0; i < CRITSECS_LIST_MAX; i++) if (critsecs_list[i].cs_win == NULL) return(i); return(-1); } struct CRITSECT *critsecs_get_unix(CRITICAL_SECTION *cs_win) { int i; for (i=0; i < CRITSECS_LIST_MAX; i++) if (critsecs_list[i].cs_win == cs_win && critsecs_list[i].cs_unix) return(critsecs_list[i].cs_unix); return(NULL); } #endif static void WINAPI expInitializeCriticalSection(CRITICAL_SECTION* c) { dbgprintf("InitializeCriticalSection(%p)\n", c); /* if(sizeof(pthread_mutex_t)>sizeof(CRITICAL_SECTION)) { dbgprintf(" ERROR:::: sizeof(pthread_mutex_t) is %d, expected <=%d!\n", sizeof(pthread_mutex_t), sizeof(CRITICAL_SECTION)); return; }*/ /* pthread_mutex_init((pthread_mutex_t*)c, NULL); */ #ifdef CRITSECS_NEWTYPE { struct CRITSECT *cs; int i = critsecs_get_unused(); if (i < 0) { dbgprintf("InitializeCriticalSection(%p) - no more space in list\n", c); return; } dbgprintf("got unused space at %d\n", i); cs = malloc(sizeof(struct CRITSECT)); if (!cs) { dbgprintf("InitializeCriticalSection(%p) - out of memory\n", c); return; } pthread_mutex_init(&cs->mutex, NULL); cs->locked = 0; critsecs_list[i].cs_win = c; critsecs_list[i].cs_unix = cs; dbgprintf("InitializeCriticalSection -> itemno=%d, cs_win=%p, cs_unix=%p\n", i, c, cs); } #else { struct CRITSECT* cs = mreq_private(sizeof(struct CRITSECT) + sizeof(CRITICAL_SECTION), 0, AREATYPE_CRITSECT); pthread_mutex_init(&cs->mutex, NULL); cs->locked=0; cs->deadbeef = 0xdeadbeef; *(void**)c = cs; } #endif return; } static void WINAPI expEnterCriticalSection(CRITICAL_SECTION* c) { #ifdef CRITSECS_NEWTYPE struct CRITSECT* cs = critsecs_get_unix(c); #else struct CRITSECT* cs = (*(struct CRITSECT**)c); #endif dbgprintf("EnterCriticalSection(%p) %p\n",c, cs); if (!cs) { dbgprintf("entered uninitialized critisec!\n"); expInitializeCriticalSection(c); #ifdef CRITSECS_NEWTYPE cs=critsecs_get_unix(c); #else cs = (*(struct CRITSECT**)c); #endif dbgprintf("wine/win32: Win32 Warning: Accessed uninitialized Critical Section (%p)!\n", c); } if(cs->locked) /* xine: recursive locking */ if(cs->id==pthread_self()) { cs->locked++; return; } pthread_mutex_lock(&(cs->mutex)); cs->locked=1; cs->id=pthread_self(); return; } static void WINAPI expLeaveCriticalSection(CRITICAL_SECTION* c) { #ifdef CRITSECS_NEWTYPE struct CRITSECT* cs = critsecs_get_unix(c); #else struct CRITSECT* cs = (*(struct CRITSECT**)c); #endif // struct CRITSECT* cs=(struct CRITSECT*)c; dbgprintf("LeaveCriticalSection(%p) %p\n",c, cs); if (!cs) { dbgprintf("Win32 Warning: Leaving uninitialized Critical Section %p!!\n", c); return; } /* xine: recursive unlocking */ if( cs->locked ) { cs->locked--; if( !cs->locked ) pthread_mutex_unlock(&(cs->mutex)); } return; } static void WINAPI expDeleteCriticalSection(CRITICAL_SECTION *c) { #ifdef CRITSECS_NEWTYPE struct CRITSECT* cs = critsecs_get_unix(c); #else struct CRITSECT* cs= (*(struct CRITSECT**)c); #endif // struct CRITSECT* cs=(struct CRITSECT*)c; dbgprintf("DeleteCriticalSection(%p)\n",c); #ifndef GARBAGE /* xine: mutex must be unlocked on entrance of pthread_mutex_destroy */ if( cs->locked ) pthread_mutex_unlock(&(cs->mutex)); pthread_mutex_destroy(&(cs->mutex)); // released by GarbageCollector in my_relase otherwise #endif my_release(cs); #ifdef CRITSECS_NEWTYPE { int i = critsecs_get_pos(c); if (i < 0) { dbgprintf("DeleteCriticalSection(%p) error (critsec not found)\n", c); return; } critsecs_list[i].cs_win = NULL; expfree(critsecs_list[i].cs_unix); critsecs_list[i].cs_unix = NULL; dbgprintf("DeleteCriticalSection -> itemno=%d\n", i); } #endif return; } static int WINAPI expGetCurrentThreadId() { dbgprintf("GetCurrentThreadId() => %ld\n", pthread_self()); return (int)pthread_self(); } static int WINAPI expGetCurrentProcess() { dbgprintf("GetCurrentProcess() => %d\n", getpid()); return getpid(); } #ifdef QTX // this version is required for Quicktime codecs (.qtx/.qts) to work. // (they assume some pointers at FS: segment) #define TLS_COUNT 8192 static int tls_use_map[TLS_COUNT]; static void *tls_minus_one; static int WINAPI expTlsAlloc() { int i; for(i=0; i %d\n",i); return i; } dbgprintf("TlsAlloc() => -1 (ERROR)\n"); return -1; } //static int WINAPI expTlsSetValue(DWORD index, void* value) static int WINAPI expTlsSetValue(int index, void* value) { dbgprintf("TlsSetValue(%d,%p) => 1\n",index,value); // if((index<0) || (index>64)) if((index>=TLS_COUNT)) return 0; /* qt passes -1 here. probably a side effect of some bad patching */ if( index < 0 ) { tls_minus_one = value; return 1; } #if 0 *(void**)((char*)fs_seg+0x88+4*index) = value; #else /* does not require fs_seg memory, if everything is right * we can access FS:xxxx like any win32 code would do. */ index = 0x88+4*index; __asm__ __volatile__( "movl %0,%%fs:(%1)" :: "r" (value), "r" (index) ); #endif return 1; } static void* WINAPI expTlsGetValue(DWORD index) { void *ret; dbgprintf("TlsGetValue(%ld)\n",index); // if((index<0) || (index>64)) if((index>=TLS_COUNT)) return NULL; /* qt passes -1 here. probably a side effect of some bad patching */ if( (int)index < 0 ) { return tls_minus_one; } #if 0 return *(void**)((char*)fs_seg+0x88+4*index); #else /* does not require fs_seg memory, if everything is right * we can access FS:xxxx like any win32 code would do. */ index = 0x88+4*index; __asm__ __volatile__( "movl %%fs:(%1),%0" : "=r" (ret) : "r" (index) ); return ret; #endif } static int WINAPI expTlsFree(int idx) { int index = (int) idx; dbgprintf("TlsFree(%d)\n",index); if((index<0) || (index>=TLS_COUNT)) return 0; tls_use_map[index]=0; return 1; } #else struct tls_s { void* value; int used; struct tls_s* prev; struct tls_s* next; }; static void* WINAPI expTlsAlloc() { if (g_tls == NULL) { g_tls=my_mreq(sizeof(tls_t), 0); g_tls->next=g_tls->prev=NULL; } else { g_tls->next=my_mreq(sizeof(tls_t), 0); g_tls->next->prev=g_tls; g_tls->next->next=NULL; g_tls=g_tls->next; } dbgprintf("TlsAlloc() => 0x%x\n", g_tls); if (g_tls) g_tls->value=0; /* XXX For Divx.dll */ return g_tls; } static int WINAPI expTlsSetValue(void* idx, void* value) { tls_t* index = (tls_t*) idx; int result; if(index==0) result=0; else { index->value=value; result=1; } dbgprintf("TlsSetValue(index 0x%x, value 0x%x) => %d \n", index, value, result ); return result; } static void* WINAPI expTlsGetValue(void* idx) { tls_t* index = (tls_t*) idx; void* result; if(index==0) result=0; else result=index->value; dbgprintf("TlsGetValue(index 0x%x) => 0x%x\n", index, result); return result; } static int WINAPI expTlsFree(void* idx) { tls_t* index = (tls_t*) idx; int result; if(index==0) result=0; else { if(index->next) index->next->prev=index->prev; if(index->prev) index->prev->next=index->next; if (g_tls == index) g_tls = index->prev; my_release((void*)index); result=1; } dbgprintf("TlsFree(index 0x%x) => %d\n", index, result); return result; } #endif static void* WINAPI expLocalAlloc(int flags, int size) { void* z = my_mreq(size, (flags & GMEM_ZEROINIT)); if (z == 0) dbgprintf("LocalAlloc() failed\n"); dbgprintf("LocalAlloc(%d, flags 0x%x) => %p\n", size, flags, z); return z; } static void* WINAPI expLocalReAlloc(int handle,int size, int flags) { void *newpointer; #ifdef DETAILED_OUT int oldsize; #endif newpointer=NULL; if (flags & LMEM_MODIFY) { dbgprintf("LocalReAlloc MODIFY\n"); return (void *)handle; } #ifdef DETAILED_OUT oldsize = my_size((void *)handle); #endif newpointer = my_realloc((void *)handle,size); dbgprintf("LocalReAlloc(%x %d(old %d), flags 0x%x) => %p\n", handle, size, oldsize, flags,newpointer); return newpointer; } static void* WINAPI expLocalLock(void* z) { dbgprintf("LocalLock(%p) => %p\n", z, z); return z; } static void* WINAPI expGlobalAlloc(int flags, int size) { void* z; dbgprintf("GlobalAlloc(%d, flags 0x%X)\n", size, flags); z=my_mreq(size, (flags & GMEM_ZEROINIT)); //z=calloc(size, 1); //z=malloc(size); if(z==0) dbgprintf("GlobalAlloc() failed\n"); dbgprintf("GlobalAlloc(%d, flags 0x%x) => %p\n", size, flags, z); return z; } static void* WINAPI expGlobalLock(void* z) { dbgprintf("GlobalLock(%p) => %p\n", z, z); return z; } // pvmjpg20 - but doesn't work anyway static int WINAPI expGlobalSize(void* amem) { int size = 100000; #ifdef GARBAGE alloc_header* header = last_alloc; alloc_header* mem = (alloc_header*) amem - 1; if (amem == 0) return 0; pthread_mutex_lock(&memmut); while (header) { if (header->deadbeef != 0xdeadbeef) { dbgprintf("FATAL found corrupted memory! %p 0x%lx (%d)\n", header, header->deadbeef, alccnt); break; } if (header == mem) { size = header->size; break; } header = header->prev; } pthread_mutex_unlock(&memmut); #endif dbgprintf("GlobalSize(%p)\n", amem); return size; } static int WINAPI expLoadStringA(long instance, long id, void* buf, long size) { int result=LoadStringA(instance, id, buf, size); // if(buf) dbgprintf("LoadStringA(instance 0x%lx, id 0x%lx, buffer %p, size %ld) => %d ( %s )\n", instance, id, buf, size, result, (char *)buf); // else // dbgprintf("LoadStringA(instance 0x%x, id 0x%x, buffer 0x%x, size %d) => %d\n", // instance, id, buf, size, result); return result; } static long WINAPI expMultiByteToWideChar(long v1, long v2, char* s1, long siz1, short* s2, int siz2) { // #warning FIXME int i; int result; if(s2==0) result=1; else { if(siz1>siz2/2)siz1=siz2/2; for(i=1; i<=siz1; i++) { *s2=*s1; if(!*s1)break; s2++; s1++; } result=i; } if(s1) dbgprintf("MultiByteToWideChar(codepage %ld, flags 0x%lx, string %p='%s'," "size %ld, dest buffer %p, dest size %d) => %d\n", v1, v2, s1, s1, siz1, s2, siz2, result); else dbgprintf("MultiByteToWideChar(codepage %ld, flags 0x%lx, string NULL," "size %ld, dest buffer %p, dest size %d) => %d\n", v1, v2, siz1, s2, siz2, result); return result; } static void wch_print(const short* str) { dbgprintf(" src: "); while(*str)dbgprintf("%c", *str++); dbgprintf("\n"); } static long WINAPI expWideCharToMultiByte(long v1, long v2, short* s1, long siz1, char* s2, int siz2, char* c3, int* siz3) { long result; dbgprintf("WideCharToMultiByte(codepage %ld, flags 0x%lx, src %p, src size %ld, " "dest %p, dest size %d, defch %p, used_defch %p)", v1, v2, s1, siz1, s2, siz2, c3, siz3); result=WideCharToMultiByte(v1, v2, (LPCWSTR)s1, siz1, s2, siz2, c3, siz3); dbgprintf("=> %ld\n", result); //if(s1)wch_print(s1); if(s2)dbgprintf(" dest: %s\n", s2); return result; } static long WINAPI expGetVersionExA(OSVERSIONINFOA* c) { dbgprintf("GetVersionExA(%p) => 1\n", c); c->dwOSVersionInfoSize=sizeof(*c); c->dwMajorVersion=4; c->dwMinorVersion=0; c->dwBuildNumber=0x4000457; #if 1 // leave it here for testing win9x-only codecs c->dwPlatformId=VER_PLATFORM_WIN32_WINDOWS; strcpy(c->szCSDVersion, " B"); #else c->dwPlatformId=VER_PLATFORM_WIN32_NT; // let's not make DLL assume that it can read CR* registers strcpy(c->szCSDVersion, "Service Pack 3"); #endif dbgprintf(" Major version: 4\n Minor version: 0\n Build number: 0x4000457\n" " Platform Id: VER_PLATFORM_WIN32_NT\n Version string: 'Service Pack 3'\n"); return 1; } static HANDLE WINAPI expCreateSemaphoreA(char* v1, long init_count, long max_count, char* name) { pthread_mutex_t *pm; pthread_cond_t *pc; /* mutex_list* pp; -- unused */ /* dbgprintf("CreateSemaphoreA(%p = %s)\n", name, (name ? name : "")); pp=mlist; while(pp) { dbgprintf("%p => ", pp); pp=pp->prev; } dbgprintf("0\n"); */ if(mlist!=NULL) { mutex_list* pp=mlist; if(name!=NULL) do { if((strcmp(pp->name, name)==0) && (pp->type==1)) { dbgprintf("CreateSemaphoreA(%p, init_count %ld, max_count %ld, name %p='%s') => %p\n", v1, init_count, max_count, name, name, mlist); return (HANDLE)mlist; } }while((pp=pp->prev) != NULL); } pm=mreq_private(sizeof(pthread_mutex_t), 0, AREATYPE_MUTEX); pthread_mutex_init(pm, NULL); pc=mreq_private(sizeof(pthread_cond_t), 0, AREATYPE_COND); pthread_cond_init(pc, NULL); if(mlist==NULL) { mlist=mreq_private(sizeof(mutex_list), 00, AREATYPE_EVENT); mlist->next=mlist->prev=NULL; } else { mlist->next=mreq_private(sizeof(mutex_list), 00, AREATYPE_EVENT); mlist->next->prev=mlist; mlist->next->next=NULL; mlist=mlist->next; // dbgprintf("new semaphore %p\n", mlist); } mlist->type=1; /* Type Semaphore */ mlist->pm=pm; mlist->pc=pc; mlist->state=0; mlist->reset=0; mlist->semaphore=init_count; if(name!=NULL) strncpy(mlist->name, name, 64); else mlist->name[0]=0; if(name) dbgprintf("CreateSemaphoreA(%p, init_count %ld, max_count %ld, name %p='%s') => %p\n", v1, init_count, max_count, name, name, mlist); else dbgprintf("CreateSemaphoreA(%p, init_count %ld, max_count %ld, name NULL) => %p\n", v1, init_count, max_count, mlist); return (HANDLE)mlist; } static long WINAPI expReleaseSemaphore(long hsem, long increment, long* prev_count) { // The state of a semaphore object is signaled when its count // is greater than zero and nonsignaled when its count is equal to zero // Each time a waiting thread is released because of the semaphore's signaled // state, the count of the semaphore is decreased by one. mutex_list *ml = (mutex_list *)hsem; pthread_mutex_lock(ml->pm); if (prev_count != 0) *prev_count = ml->semaphore; if (ml->semaphore == 0) pthread_cond_signal(ml->pc); ml->semaphore += increment; pthread_mutex_unlock(ml->pm); dbgprintf("ReleaseSemaphore(semaphore 0x%lx, increment %ld, prev_count %p) => 1\n", hsem, increment, prev_count); return 1; } static long WINAPI expRegOpenKeyExA(long key, const char* subkey, long reserved, long access, int* newkey) { long result=RegOpenKeyExA(key, subkey, reserved, access, newkey); dbgprintf("RegOpenKeyExA(key 0x%lx, subkey %s, reserved %ld, access 0x%lx, pnewkey %p) => %ld\n", key, subkey, reserved, access, newkey, result); if(newkey)dbgprintf(" New key: 0x%x\n", *newkey); return result; } static long WINAPI expRegCloseKey(long key) { long result=RegCloseKey(key); dbgprintf("RegCloseKey(0x%lx) => %ld\n", key, result); return result; } static long WINAPI expRegQueryValueExA(long key, const char* value, int* reserved, int* type, int* data, int* count) { long result=RegQueryValueExA(key, value, reserved, type, data, count); dbgprintf("RegQueryValueExA(key 0x%lx, value %s, reserved %p, data %p, count %p)" " => 0x%lx\n", key, value, reserved, data, count, result); if(data && count)dbgprintf(" read %d bytes: '%s'\n", *count, (char *)data); /* FIXME? */ return result; } static long WINAPI expRegCreateKeyExA(long key, const char* name, long reserved, void* classs, long options, long security, void* sec_attr, int* newkey, int* status) { long result=RegCreateKeyExA(key, name, reserved, classs, options, security, sec_attr, newkey, status); dbgprintf("RegCreateKeyExA(key 0x%lx, name %p='%s', reserved=0x%lx," " %p, 0x%lx, 0x%lx, %p, newkey=%p, status=%p) => %ld\n", key, name, name, reserved, classs, options, security, sec_attr, newkey, status, result); if(!result && newkey) dbgprintf(" New key: 0x%x\n", *newkey); if(!result && status) dbgprintf(" New key status: 0x%x\n", *status); return result; } static long WINAPI expRegSetValueExA(long key, const char* name, long v1, long v2, void* data, long size) { long result=RegSetValueExA(key, name, v1, v2, data, size); dbgprintf("RegSetValueExA(key 0x%lx, name '%s', 0x%lx, 0x%lx, data %p -> 0x%x '%s', size=%ld) => %ld", key, name, v1, v2, data, *(int*)data, (char *)data, size, result); return result; } static long WINAPI expRegOpenKeyA (long hKey, LPCSTR lpSubKey, int* phkResult) { long result=RegOpenKeyExA(hKey, lpSubKey, 0, 0, phkResult); dbgprintf("RegOpenKeyExA(key 0x%lx, subkey '%s', %p) => %ld\n", hKey, lpSubKey, phkResult, result); if(!result && phkResult) dbgprintf(" New key: 0x%x\n", *phkResult); return result; } static DWORD WINAPI expRegEnumValueA(HKEY hkey, DWORD index, LPSTR value, LPDWORD val_count, LPDWORD reserved, LPDWORD type, LPBYTE data, LPDWORD count) { return RegEnumValueA(hkey, index, value, val_count, reserved, type, data, count); } static DWORD WINAPI expRegEnumKeyExA(HKEY hKey, DWORD dwIndex, LPSTR lpName, LPDWORD lpcbName, LPDWORD lpReserved, LPSTR lpClass, LPDWORD lpcbClass, LPFILETIME lpftLastWriteTime) { return RegEnumKeyExA(hKey, dwIndex, lpName, lpcbName, lpReserved, lpClass, lpcbClass, lpftLastWriteTime); } static long WINAPI expQueryPerformanceCounter(long long* z) { longcount(z); dbgprintf("QueryPerformanceCounter(%p) => 1 ( %Ld )\n", z, *z); return 1; } /* * return CPU clock (in kHz), using linux's /proc filesystem (/proc/cpuinfo) */ static double linux_cpuinfo_freq() { double freq=-1; FILE *f; char line[200]; char *s,*value; f = fopen ("/proc/cpuinfo", "r"); if (f != NULL) { while (fgets(line,sizeof(line),f)!=NULL) { /* NOTE: the ':' is the only character we can rely on */ if (!(value = strchr(line,':'))) continue; /* terminate the valuename */ *value++ = '\0'; /* skip any leading spaces */ while (*value==' ') value++; if ((s=strchr(value,'\n'))) *s='\0'; if (!strncasecmp(line, "cpu MHz",strlen("cpu MHz")) && sscanf(value, "%lf", &freq) == 1) { freq*=1000; break; } } fclose(f); } return freq; } static double solaris_kstat_freq() { #if defined(HAVE_LIBKSTAT) && defined(KSTAT_DATA_INT32) /* * try to extract the CPU speed from the solaris kernel's kstat data */ kstat_ctl_t *kc; kstat_t *ksp; kstat_named_t *kdata; int mhz = 0; kc = kstat_open(); if (kc != NULL) { ksp = kstat_lookup(kc, "cpu_info", 0, "cpu_info0"); /* kstat found and name/value pairs? */ if (ksp != NULL && ksp->ks_type == KSTAT_TYPE_NAMED) { /* read the kstat data from the kernel */ if (kstat_read(kc, ksp, NULL) != -1) { /* * lookup desired "clock_MHz" entry, check the expected * data type */ kdata = (kstat_named_t *)kstat_data_lookup(ksp, "clock_MHz"); if (kdata != NULL && kdata->data_type == KSTAT_DATA_INT32) mhz = kdata->value.i32; } } kstat_close(kc); } if (mhz > 0) return mhz * 1000.; #endif /* HAVE_LIBKSTAT */ return -1; // kstat stuff is not available, CPU freq is unknown } /* * Measure CPU freq using the pentium's time stamp counter register (TSC) */ static double tsc_freq() { static double ofreq=0.0; int i; int x,y; i=time(NULL); if (ofreq != 0.0) return ofreq; while(i==time(NULL)); x=localcount(); i++; while(i==time(NULL)); y=localcount(); ofreq = (double)(y-x)/1000.; return ofreq; } static double CPU_Freq() { double freq; if ((freq = linux_cpuinfo_freq()) > 0) return freq; if ((freq = solaris_kstat_freq()) > 0) return freq; return tsc_freq(); } static long WINAPI expQueryPerformanceFrequency(long long* z) { *z=(long long)CPU_Freq(); dbgprintf("QueryPerformanceFrequency(%p) => 1 ( %Ld )\n", z, *z); return 1; } static long WINAPI exptimeGetTime() { struct timeval t; long result; gettimeofday(&t, 0); result=1000*t.tv_sec+t.tv_usec/1000; dbgprintf("timeGetTime() => %ld\n", result); return result; } static void* WINAPI expLocalHandle(void* v) { dbgprintf("LocalHandle(%p) => %p\n", v, v); return v; } static void* WINAPI expGlobalHandle(void* v) { dbgprintf("GlobalHandle(%p) => %p\n", v, v); return v; } static int WINAPI expGlobalUnlock(void* v) { dbgprintf("GlobalUnlock(%p) => 1\n", v); return 1; } static void* WINAPI expGlobalFree(void* v) { dbgprintf("GlobalFree(%p) => 0\n", v); my_release(v); //free(v); return 0; } static void* WINAPI expGlobalReAlloc(void* v, int size, int flags) { void* result=my_realloc(v, size); //void* result=realloc(v, size); dbgprintf("GlobalReAlloc(%p, size %d, flags 0x%x) => %p\n", v,size,flags,result); return result; } static int WINAPI expLocalUnlock(void* v) { dbgprintf("LocalUnlock(%p) => 1\n", v); return 1; } // static void* WINAPI expLocalFree(void* v) { dbgprintf("LocalFree(%p) => 0\n", v); my_release(v); return 0; } static HRSRC WINAPI expFindResourceA(HMODULE module, char* name, char* type) { HRSRC result; result=FindResourceA(module, name, type); dbgprintf("FindResourceA(module 0x%x, name %p(%s), type %p(%s)) => 0x%x\n", module, name, HIWORD(name) ? name : "UNICODE", type, HIWORD(type) ? type : "UNICODE", result); return result; } static HRSRC WINAPI expFindResourceExA(HMODULE module, char* type, char* name, WORD lang) { HRSRC result; result=FindResourceExA(module, type, name, lang); dbgprintf("FindResourceExA(module 0x%x, type %p(%s), name %p(%s), lang %d) => 0x%x\n", module, name, HIWORD(name) ? name : "UNICODE", type, HIWORD(type) ? type : "UNICODE", lang, result); return result; } extern HRSRC WINAPI LoadResource(HMODULE, HRSRC); static HGLOBAL WINAPI expLoadResource(HMODULE module, HRSRC res) { HGLOBAL result=LoadResource(module, res); dbgprintf("LoadResource(module 0x%x, resource 0x%x) => 0x%x\n", module, res, result); return result; } static void* WINAPI expLockResource(long res) { void* result=LockResource(res); dbgprintf("LockResource(0x%lx) => %p\n", res, result); return result; } static int WINAPI expFreeResource(long res) { int result=FreeResource(res); dbgprintf("FreeResource(0x%lx) => %d\n", res, result); return result; } //bool fun(HANDLE) //!0 on success static int WINAPI expCloseHandle(long v1) { dbgprintf("CloseHandle(0x%lx) => 1\n", v1); /* do not close stdin,stdout and stderr */ if (v1 > 2) if (!close(v1)) return 0; return 1; } static const char* WINAPI expGetCommandLineA() { dbgprintf("GetCommandLineA() => \"C:\\Programme\\Jeskola Buzz\\Buzz.exe\"\n"); return "C:\\Programme\\Jeskola Buzz\\Buzz.exe"; } static const char* WINAPI expGetCommandLineW() { dbgprintf("GetCommandLineW() => \"C:\\Programme\\Jeskola Buzz\\Buzz.exe\"\n"); return "C:\\Programme\\Jeskola Buzz\\Buzz.exe"; } //static short envs[]={'p', 'a', 't', 'h', ' ', 'c', ':', '\\', 0, 0}; static LPWSTR WINAPI expGetEnvironmentStringsW() { dbgprintf("GetEnvironmentStringsW() => 0\n"); return 0; } static void * WINAPI expRtlZeroMemory(void *p, size_t len) { void* result=memset(p,0,len); dbgprintf("RtlZeroMemory(%p, len %d) => %p\n",p,len,result); return result; } static void * WINAPI expRtlMoveMemory(void *dst, void *src, size_t len) { void* result=memmove(dst,src,len); dbgprintf("RtlMoveMemory (dest %p, src %p, len %d) => %p\n",dst,src,len,result); return result; } static void * WINAPI expRtlFillMemory(void *p, int ch, size_t len) { void* result=memset(p,ch,len); dbgprintf("RtlFillMemory(%p, char 0x%x, len %d) => %p\n",p,ch,len,result); return result; } static int WINAPI expFreeEnvironmentStringsW(short* strings) { dbgprintf("FreeEnvironmentStringsW(%p) => 1\n", strings); return 1; } static int WINAPI expFreeEnvironmentStringsA(char* strings) { dbgprintf("FreeEnvironmentStringsA(%p) => 1\n", strings); return 1; } static const char ch_envs[]= "__MSVCRT_HEAP_SELECT=__GLOBAL_HEAP_SELECTED,1\r\n" "PATH=C:\\;C:\\windows\\;C:\\windows\\system\r\n"; static LPCSTR WINAPI expGetEnvironmentStrings() { dbgprintf("GetEnvironmentStrings() => %p\n", ch_envs); return (LPCSTR)ch_envs; // dbgprintf("GetEnvironmentStrings() => 0\n"); // return 0; } static int WINAPI expGetStartupInfoA(STARTUPINFOA *s) { /* int i; -- unused */ dbgprintf("GetStartupInfoA(%p) => 1\n", s); memset(s, 0, sizeof(*s)); s->cb=sizeof(*s); // s->lpReserved="Reserved"; s->lpDesktop="WinSta0\\Default"; s->lpTitle="C:\\Programme\\Jeskola Buzz\\Buzz.exe"; // s->dwX=s->dwY=0; s->dwXSize=s->dwYSize=200; s->dwFlags=0x401; s->wShowWindow=1; // s->hStdInput=s->hStdOutput=s->hStdError=0x1234; dbgprintf(" cb=%ld\n", s->cb); dbgprintf(" lpReserved='%s'\n", s->lpReserved); dbgprintf(" lpDesktop='%s'\n", s->lpDesktop); dbgprintf(" lpTitle='%s'\n", s->lpTitle); dbgprintf(" dwX=%ld dwY=%ld dwXSize=%ld dwYSize=%ld\n", s->dwX, s->dwY, s->dwXSize, s->dwYSize); dbgprintf(" dwXCountChars=%ld dwYCountChars=%ld dwFillAttribute=%ld\n", s->dwXCountChars, s->dwYCountChars, s->dwFillAttribute); dbgprintf(" dwFlags=0x%lx wShowWindow=0x%x cbReserved2=0x%x\n", s->dwFlags, s->wShowWindow, s->cbReserved2); dbgprintf(" lpReserved2=%p hStdInput=0x%x hStdOutput=0x%x hStdError=0x%x\n", s->lpReserved2, s->hStdInput, s->hStdOutput, s->hStdError); return 1; } static int WINAPI expGetStdHandle(int z) { z += 0x1234; dbgprintf("GetStdHandle(0x%x) => 0x%x\n", z, z); return z; } #ifdef QTX #define FILE_HANDLE_quicktimeqts ((HANDLE)0x444) #define FILE_HANDLE_quicktimeqtx ((HANDLE)0x445) #endif static int WINAPI expGetFileType(int handle) { dbgprintf("GetFileType(0x%x) => 0x3 = pipe\n", handle); return 0x3; } #ifdef QTX static int WINAPI expGetFileAttributesA(char *filename) { dbgprintf("GetFileAttributesA(%s) => FILE_ATTR_NORMAL\n", filename); if (strstr(filename, "QuickTime.qts")) return FILE_ATTRIBUTE_SYSTEM; return FILE_ATTRIBUTE_NORMAL; } #endif static int WINAPI expSetHandleCount(int count) { dbgprintf("SetHandleCount(0x%x) => 1\n", count); return 1; } static int WINAPI expGetACP(void) { dbgprintf("GetACP() => 0\n"); return 0; } extern WINE_MODREF *MODULE32_LookupHMODULE(HMODULE m); static int WINAPI expGetModuleFileNameA(int module, char* s, int len) { WINE_MODREF *mr; int result; //dbgprintf("File name of module %X (%s) requested\n", module, s); if (module == 0 && len >= 12) { /* return caller program name */ strcpy(s, "Buzz.exe"); result=1; } else if(s==0) result=0; else if(len<35) result=0; else { result=1; strcpy(s, "c:\\windows\\system\\"); mr=MODULE32_LookupHMODULE(module); if(mr==0)//oops strcat(s, "Buzz.exe"); else if(strrchr(mr->filename, '/')==NULL) strcat(s, mr->filename); else strcat(s, strrchr(mr->filename, '/')+1); } if(!s) dbgprintf("GetModuleFileNameA(0x%x, NULL, %d) => %d\n", module, len, result); else dbgprintf("GetModuleFileNameA(0x%x, %p, %d) => %d ( '%s' )\n", module, s, len, result, s); return result; } static int WINAPI expSetUnhandledExceptionFilter(void* filter) { dbgprintf("SetUnhandledExceptionFilter(%p) => 1\n", filter); return 1;//unsupported and probably won't ever be supported } static int WINAPI expLoadLibraryA(char* name) { int result = 0; char* lastbc; /* int i; */ if (!name) return -1; // we skip to the last backslash // this is effectively eliminating weird characters in // the text output windows lastbc = strrchr(name, '\\'); if (lastbc) { int i; lastbc++; for (i = 0; 1 ;i++) { name[i] = *lastbc++; if (!name[i]) break; } } if(strncmp(name, "c:\\windows\\", 11)==0) name += 11; if(strncmp(name, ".\\", 2)==0) name += 2; dbgprintf("Entering LoadLibraryA(%s)\n", name); // PIMJ and VIVO audio are loading kernel32.dll if (strcasecmp(name, "kernel32.dll") == 0 || strcasecmp(name, "kernel32") == 0) return MODULE_HANDLE_kernel32; // return ERROR_SUCCESS; /* yeah, we have also the kernel32 calls */ /* exported -> do not return failed! */ if (strcasecmp(name, "user32.dll") == 0 || strcasecmp(name, "user32") == 0) // return MODULE_HANDLE_kernel32; return MODULE_HANDLE_user32; #ifdef QTX if (strcasecmp(name, "wininet.dll") == 0 || strcasecmp(name, "wininet") == 0) return MODULE_HANDLE_wininet; if (strcasecmp(name, "ddraw.dll") == 0 || strcasecmp(name, "ddraw") == 0) return MODULE_HANDLE_ddraw; if (strcasecmp(name, "advapi32.dll") == 0 || strcasecmp(name, "advapi32") == 0) return MODULE_HANDLE_advapi32; #endif result=LoadLibraryA(name); dbgprintf("Returned LoadLibraryA(%p='%s'), def_path=%s => 0x%x\n", name, name, win32_def_path, result); return result; } static int WINAPI expFreeLibrary(int module) { #ifdef QTX int result=0; /* FIXME:XXX: qtx svq3 frees up qt.qts */ #else int result=FreeLibrary(module); #endif dbgprintf("FreeLibrary(0x%x) => %d\n", module, result); return result; } static void* WINAPI expGetProcAddress(HMODULE mod, char* name) { void* result; switch(mod){ case MODULE_HANDLE_kernel32: result=LookupExternalByName("kernel32.dll", name); break; case MODULE_HANDLE_user32: result=LookupExternalByName("user32.dll", name); break; #ifdef QTX case MODULE_HANDLE_wininet: result=LookupExternalByName("wininet.dll", name); break; case MODULE_HANDLE_ddraw: result=LookupExternalByName("ddraw.dll", name); break; case MODULE_HANDLE_advapi32: result=LookupExternalByName("advapi32.dll", name); break; #endif default: result=GetProcAddress(mod, name); } dbgprintf("GetProcAddress(0x%x, '%s') => %p\n", mod, name, result); return result; } static long WINAPI expCreateFileMappingA(int hFile, void* lpAttr, long flProtect, long dwMaxHigh, long dwMaxLow, const char* name) { long result=CreateFileMappingA(hFile, lpAttr, flProtect, dwMaxHigh, dwMaxLow, name); if(!name) dbgprintf("CreateFileMappingA(file 0x%x, lpAttr %p," "flProtect 0x%lx, dwMaxHigh 0x%lx, dwMaxLow 0x%lx, name 0) => %ld\n", hFile, lpAttr, flProtect, dwMaxHigh, dwMaxLow, result); else dbgprintf("CreateFileMappingA(file 0x%x, lpAttr %p," "flProtect 0x%lx, dwMaxHigh 0x%lx, dwMaxLow 0x%lx, name %p='%s') => %ld\n", hFile, lpAttr, flProtect, dwMaxHigh, dwMaxLow, name, name, result); return result; } static long WINAPI expOpenFileMappingA(long hFile, long hz, const char* name) { long result=OpenFileMappingA(hFile, hz, name); if(!name) dbgprintf("OpenFileMappingA(0x%lx, 0x%lx, 0) => %ld\n", hFile, hz, result); else dbgprintf("OpenFileMappingA(0x%lx, 0x%lx, %p='%s') => %ld\n", hFile, hz, name, name, result); return result; } static void* WINAPI expMapViewOfFile(HANDLE file, DWORD mode, DWORD offHigh, DWORD offLow, DWORD size) { dbgprintf("MapViewOfFile(0x%x, 0x%lx, 0x%lx, 0x%lx, size %ld) => %p\n", file,mode,offHigh,offLow,size,(char*)file+offLow); return (char*)file+offLow; } static void* WINAPI expUnmapViewOfFile(void* view) { dbgprintf("UnmapViewOfFile(%p) => 0\n", view); return 0; } static void* WINAPI expSleep(int time) { #if HAVE_NANOSLEEP /* solaris doesn't have thread safe usleep */ struct timespec tsp; tsp.tv_sec = time / 1000000; tsp.tv_nsec = (time % 1000000) * 1000; nanosleep(&tsp, NULL); #else usleep(time); #endif dbgprintf("Sleep(%d) => 0\n", time); return 0; } // why does IV32 codec want to call this? I don't know ... static int WINAPI expCreateCompatibleDC(int hdc) { int dc = 0;//0x81; //dbgprintf("CreateCompatibleDC(%d) => 0x81\n", hdc); dbgprintf("CreateCompatibleDC(%d) => %d\n", hdc, dc); return dc; } static int WINAPI expGetDeviceCaps(int hdc, int unk) { dbgprintf("GetDeviceCaps(0x%x, %d) => 0\n", hdc, unk); #ifdef QTX #define BITSPIXEL 12 #define PLANES 14 if (unk == BITSPIXEL) return 24; if (unk == PLANES) return 1; #endif return 1; } static WIN_BOOL WINAPI expDeleteDC(int hdc) { dbgprintf("DeleteDC(0x%x) => 0\n", hdc); if (hdc == 0x81) return 1; return 0; } static WIN_BOOL WINAPI expDeleteObject(int hdc) { dbgprintf("DeleteObject(0x%x) => 1\n", hdc); /* FIXME - implement code here */ return 1; } /* btvvc32.drv wants this one */ static void* WINAPI expGetWindowDC(int hdc) { dbgprintf("GetWindowDC(%d) => 0x0\n", hdc); return 0; } #ifdef QTX static int WINAPI expGetWindowRect(HWND win, RECT *r) { dbgprintf("GetWindowRect(0x%x, %p) => 1\n", win, r); /* (win == 0) => desktop */ r->right = PSEUDO_SCREEN_WIDTH; r->left = 0; r->bottom = PSEUDO_SCREEN_HEIGHT; r->top = 0; return 1; } static int WINAPI expMonitorFromWindow(HWND win, int flags) { dbgprintf("MonitorFromWindow(0x%x, 0x%x) => 0\n", win, flags); return 0; } static int WINAPI expMonitorFromRect(RECT *r, int flags) { dbgprintf("MonitorFromRect(%p, 0x%x) => 0\n", r, flags); return 0; } static int WINAPI expMonitorFromPoint(void *p, int flags) { dbgprintf("MonitorFromPoint(%p, 0x%x) => 0\n", p, flags); return 0; } static int WINAPI expEnumDisplayMonitors(void *dc, RECT *r, int WINAPI (*callback_proc)(), void *callback_param) { dbgprintf("EnumDisplayMonitors(%p, %p, %p, %p) => ?\n", dc, r, callback_proc, callback_param); return callback_proc(0, dc, r, callback_param); } #if 0 typedef struct tagMONITORINFO { DWORD cbSize; RECT rcMonitor; RECT rcWork; DWORD dwFlags; } MONITORINFO, *LPMONITORINFO; #endif #define CCHDEVICENAME 8 typedef struct tagMONITORINFOEX { DWORD cbSize; RECT rcMonitor; RECT rcWork; DWORD dwFlags; TCHAR szDevice[CCHDEVICENAME]; } MONITORINFOEX, *LPMONITORINFOEX; static int WINAPI expGetMonitorInfoA(void *mon, LPMONITORINFO lpmi) { dbgprintf("GetMonitorInfoA(%p, %p) => 1\n", mon, lpmi); lpmi->rcMonitor.right = lpmi->rcWork.right = PSEUDO_SCREEN_WIDTH; lpmi->rcMonitor.left = lpmi->rcWork.left = 0; lpmi->rcMonitor.bottom = lpmi->rcWork.bottom = PSEUDO_SCREEN_HEIGHT; lpmi->rcMonitor.top = lpmi->rcWork.top = 0; lpmi->dwFlags = 1; /* primary monitor */ if (lpmi->cbSize == sizeof(MONITORINFOEX)) { LPMONITORINFOEX lpmiex = (LPMONITORINFOEX)lpmi; dbgprintf("MONITORINFOEX!\n"); strncpy(lpmiex->szDevice, "Monitor1", CCHDEVICENAME); } return 1; } static int WINAPI expEnumDisplayDevicesA(const char *device, int devnum, void *dispdev, int flags) { dbgprintf("EnumDisplayDevicesA(%p = %s, %d, %p, %x) => 1\n", device, device, devnum, dispdev, flags); return 1; } static int WINAPI expIsWindowVisible(HWND win) { dbgprintf("IsWindowVisible(0x%x) => 1\n", win); return 1; } static HWND WINAPI expGetActiveWindow(void) { dbgprintf("GetActiveWindow() => 0\n"); return (HWND)0; } static int WINAPI expGetClassNameA(HWND win, LPTSTR classname, int maxcount) { strncat(classname, "QuickTime", maxcount); dbgprintf("GetClassNameA(0x%x, %p, %d) => %d\n", win, classname, maxcount, strlen(classname)); return strlen(classname); } #define LPWNDCLASS void * static int WINAPI expGetClassInfoA(HINSTANCE inst, LPCSTR classname, LPWNDCLASS wndclass) { dbgprintf("GetClassInfoA(0x%x, %p = %s, %p) => 1\n", inst, classname, classname, wndclass); return 1; } static int WINAPI expGetWindowLongA(HWND win, int index) { dbgprintf("GetWindowLongA(0x%x, %d) => 0\n", win, index); return 1; } static int WINAPI expGetObjectA(HGDIOBJ hobj, int objsize, LPVOID obj) { dbgprintf("GetObjectA(0x%x, %d, %p) => %d\n", hobj, objsize, obj, objsize); return objsize; } static int WINAPI expCreateRectRgn(int x, int y, int width, int height) { dbgprintf("CreateRectRgn(%d, %d, %d, %d) => 0\n", x, y, width, height); return 0; } static int WINAPI expEnumWindows(int (*callback_func)(), void *callback_param) { int i, i2; dbgprintf("EnumWindows(%p, %p) => 1\n", callback_func, callback_param); i = callback_func(0, callback_param); i2 = callback_func(1, callback_param); return i && i2; } static int WINAPI expGetWindowThreadProcessId(HWND win, int *pid_data) { int tid = (int)pthread_self(); dbgprintf("GetWindowThreadProcessId(0x%x, %p) => %d\n", win, pid_data, tid); if (pid_data) *pid_data = tid; return tid; } //HWND WINAPI CreateWindowExA(DWORD,LPCSTR,LPCSTR,DWORD,INT,INT, // INT,INT,HWND,HMENU,HINSTANCE,LPVOID); static HWND WINAPI expCreateWindowExA(int exstyle, const char *classname, const char *winname, int style, int x, int y, int w, int h, HWND parent, HMENU menu, HINSTANCE inst, LPVOID param) { dbgprintf("CreateWindowEx(%d, %p = %s, %p = %s, %d, %d, %d, %d, %d, 0x%x, 0x%x, 0x%x, %p) => 1\n", exstyle, classname, classname, winname, winname, style, x, y, w, h, parent, menu, inst, param); return 1; } static int WINAPI expwaveOutGetNumDevs(void) { dbgprintf("waveOutGetNumDevs() => 0\n"); return 0; } #endif /* * Returns the number of milliseconds, modulo 2^32, since the start * of the wineserver. */ static int WINAPI expGetTickCount(void) { static int tcstart = 0; struct timeval t; int tc; gettimeofday( &t, NULL ); tc = ((t.tv_sec * 1000) + (t.tv_usec / 1000)) - tcstart; if (tcstart == 0) { tcstart = 0; tc = 0; } dbgprintf("GetTickCount() => %d\n", tc); return tc; } static int WINAPI expCreateFontA(void) { dbgprintf("CreateFontA() => 0x0\n"); return 1; } /* tried to get pvmjpg work in a different way - no success */ static int WINAPI expDrawTextA(int hDC, char* lpString, int nCount, LPRECT lpRect, unsigned int uFormat) { dbgprintf("expDrawTextA(%d,...) => 8\n", hDC); return 8; } static int WINAPI expGetPrivateProfileIntA(const char* appname, const char* keyname, int default_value, const char* filename) { int size=255; char buffer[256]; char* fullname; int result; buffer[255]=0; if(!(appname && keyname && filename) ) { dbgprintf("GetPrivateProfileIntA('%s', '%s', %d, '%s') => %d\n", appname, keyname, default_value, filename, default_value ); return default_value; } fullname=(char*)malloc(50+strlen(appname)+strlen(keyname)+strlen(filename)); strcpy(fullname, "Software\\IniFileMapping\\"); strcat(fullname, appname); strcat(fullname, "\\"); strcat(fullname, keyname); strcat(fullname, "\\"); strcat(fullname, filename); result=RegQueryValueExA(HKEY_LOCAL_MACHINE, fullname, NULL, NULL, (int*)buffer, &size); if((size>=0)&&(size<256)) buffer[size]=0; // dbgprintf("GetPrivateProfileIntA(%s, %s, %s) -> %s\n", appname, keyname, filename, buffer); free(fullname); if(result) result=default_value; else result=atoi(buffer); dbgprintf("GetPrivateProfileIntA('%s', '%s', %d, '%s') => %d\n", appname, keyname, default_value, filename, result); return result; } static int WINAPI expGetProfileIntA(const char* appname, const char* keyname, int default_value) { dbgprintf("GetProfileIntA -> "); return expGetPrivateProfileIntA(appname, keyname, default_value, "default"); } static int WINAPI expGetPrivateProfileStringA(const char* appname, const char* keyname, const char* def_val, char* dest, unsigned int len, const char* filename) { int result; int size; char* fullname; dbgprintf("GetPrivateProfileStringA('%s', '%s', def_val '%s', %p, 0x%x, '%s')", appname, keyname, def_val, dest, len, filename ); if(!(appname && keyname && filename) ) return 0; fullname=(char*)malloc(50+strlen(appname)+strlen(keyname)+strlen(filename)); strcpy(fullname, "Software\\IniFileMapping\\"); strcat(fullname, appname); strcat(fullname, "\\"); strcat(fullname, keyname); strcat(fullname, "\\"); strcat(fullname, filename); size=len; result=RegQueryValueExA(HKEY_LOCAL_MACHINE, fullname, NULL, NULL, (int*)dest, &size); free(fullname); if(result) { strncpy(dest, def_val, size); if (strlen(def_val)< size) size = strlen(def_val); } dbgprintf(" => %d ( '%s' )\n", size, dest); return size; } static int WINAPI expWritePrivateProfileStringA(const char* appname, const char* keyname, const char* string, const char* filename) { /* int size=256; */ char* fullname; dbgprintf("WritePrivateProfileStringA('%s', '%s', '%s', '%s')", appname, keyname, string, filename ); if(!(appname && keyname && filename) ) { dbgprintf(" => -1\n"); return -1; } fullname=(char*)malloc(50+strlen(appname)+strlen(keyname)+strlen(filename)); strcpy(fullname, "Software\\IniFileMapping\\"); strcat(fullname, appname); strcat(fullname, "\\"); strcat(fullname, keyname); strcat(fullname, "\\"); strcat(fullname, filename); RegSetValueExA(HKEY_LOCAL_MACHINE, fullname, 0, REG_SZ, (int*)string, strlen(string)); // dbgprintf("RegSetValueExA(%s,%d)\n", string, strlen(string)); // dbgprintf("WritePrivateProfileStringA(%s, %s, %s, %s)\n", appname, keyname, string, filename ); free(fullname); dbgprintf(" => 0\n"); return 0; } // FIXME: not called anywhere, can we remove or at leastmake static #if 0 unsigned int _GetPrivateProfileIntA(const char* appname, const char* keyname, INT default_value, const char* filename) { return expGetPrivateProfileIntA(appname, keyname, default_value, filename); } int _GetPrivateProfileStringA(const char* appname, const char* keyname, const char* def_val, char* dest, unsigned int len, const char* filename) { return expGetPrivateProfileStringA(appname, keyname, def_val, dest, len, filename); } int _WritePrivateProfileStringA(const char* appname, const char* keyname, const char* string, const char* filename) { return expWritePrivateProfileStringA(appname, keyname, string, filename); } #endif static int WINAPI expDefDriverProc(int _private, int id, int msg, int arg1, int arg2) { dbgprintf("DefDriverProc(0x%x, 0x%x, 0x%x, 0x%x, 0x%x) => 0\n", _private, id, msg, arg1, arg2); return 0; } static int WINAPI expSizeofResource(int v1, int v2) { int result=SizeofResource(v1, v2); dbgprintf("SizeofResource(0x%x, 0x%x) => %d\n", v1, v2, result); return result; } static int WINAPI expGetLastError() { int result=GetLastError(); dbgprintf("GetLastError() => 0x%x\n", result); return result; } static void WINAPI expSetLastError(int error) { dbgprintf("SetLastError(0x%x)\n", error); SetLastError(error); } static int WINAPI expStringFromGUID2(GUID* guid, char* str, int cbMax) { int result=snprintf(str, cbMax, "%.8x-%.4x-%.4x-%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x", guid->f1, guid->f2, guid->f3, (unsigned char)guid->f4[0], (unsigned char)guid->f4[1], (unsigned char)guid->f4[2], (unsigned char)guid->f4[3], (unsigned char)guid->f4[4], (unsigned char)guid->f4[5], (unsigned char)guid->f4[6], (unsigned char)guid->f4[7]); dbgprintf("StringFromGUID2(%p, %p='%s', %d) => %d\n", guid, str, str, cbMax, result); return result; } static int WINAPI expGetFileVersionInfoSizeA(const char* name, int* lpHandle) { dbgprintf("GetFileVersionInfoSizeA(%p='%s', %p) => 0\n", name, name, lpHandle); return 0; } static int WINAPI expIsBadStringPtrW(const short* string, int nchars) { int result; if(string==0)result=1; else result=0; dbgprintf("IsBadStringPtrW(%p, %d) => %d", string, nchars, result); if(string)wch_print(string); return result; } static int WINAPI expIsBadStringPtrA(const char* string, int nchars) { return expIsBadStringPtrW((const short*)string, nchars); } static long WINAPI expInterlockedExchangeAdd( long* dest, long incr ) { long ret; __asm__ __volatile__ ( "lock; xaddl %0,(%1)" : "=r" (ret) : "r" (dest), "0" (incr) : "memory" ); return ret; } static long WINAPI expInterlockedCompareExchange( unsigned long* dest, unsigned long exchange, unsigned long comperand) { unsigned long retval = *dest; if(*dest == comperand) *dest = exchange; return retval; } static long WINAPI expInterlockedIncrement( long* dest ) { long result=expInterlockedExchangeAdd( dest, 1 ) + 1; dbgprintf("InterlockedIncrement(%p => %ld) => %ld\n", dest, *dest, result); return result; } static long WINAPI expInterlockedDecrement( long* dest ) { long result=expInterlockedExchangeAdd( dest, -1 ) - 1; dbgprintf("InterlockedDecrement(%p => %ld) => %ld\n", dest, *dest, result); return result; } static void WINAPI expOutputDebugStringA( const char* string ) { dbgprintf("OutputDebugStringA(%p='%s')\n", string, string); fprintf(stderr, "DEBUG: %s\n", string); } static int WINAPI expGetDC(int hwnd) { dbgprintf("GetDC(0x%x) => 1\n", hwnd); return 1; } static int WINAPI expReleaseDC(int hwnd, int hdc) { dbgprintf("ReleaseDC(0x%x, 0x%x) => 1\n", hwnd, hdc); return 1; } static int WINAPI expGetDesktopWindow() { dbgprintf("GetDesktopWindow() => 0\n"); return 0; } static int cursor[100]={0,}; static int WINAPI expLoadCursorA(int handle,LPCSTR name) { //dbgprintf("LoadCursorA(%d, %p='%s') => 0x%x\n", handle, name, name, (int)&cursor[0]); dbgprintf("LoadCursorA(%d, %p) => 0x%x\n", handle, name, (int)&cursor[0]); return (int)&cursor[0]; } static int WINAPI expSetCursor(void *cursor) { dbgprintf("SetCursor(%p) => %p\n", cursor, cursor); return (int)cursor; } static int WINAPI expGetCursorPos(void *cursor) { dbgprintf("GetCursorPos(%p) => 1\n", cursor); return 1; } #ifdef QTX static int show_cursor = 0; static int WINAPI expShowCursor(int show) { dbgprintf("ShowCursor(%d) => %d\n", show, show); if (show) show_cursor++; else show_cursor--; return show_cursor; } #endif static int WINAPI expRegisterWindowMessageA(char *message) { dbgprintf("RegisterWindowMessageA(%s)\n", message); return 1; } static int WINAPI expGetProcessVersion(int pid) { dbgprintf("GetProcessVersion(%d)\n", pid); return 1; } static int WINAPI expGetCurrentThread(void) { /* #warning FIXME! -- Worry about it later :) */ dbgprintf("GetCurrentThread() => %x\n", 0xcfcf9898); return 0xcfcf9898; } static int WINAPI expGetOEMCP(void) { dbgprintf("GetOEMCP()\n"); return 1; } static int WINAPI expGetCPInfo(int cp,void *info) { dbgprintf("GetCPInfo()\n"); return 0; } #ifdef QTX #define SM_CXSCREEN 0 #define SM_CYSCREEN 1 #define SM_XVIRTUALSCREEN 76 #define SM_YVIRTUALSCREEN 77 #define SM_CXVIRTUALSCREEN 78 #define SM_CYVIRTUALSCREEN 79 #define SM_CMONITORS 80 #endif static int WINAPI expGetSystemMetrics(int index) { dbgprintf("GetSystemMetrics(%d)\n", index); #ifdef QTX switch(index) { case SM_XVIRTUALSCREEN: case SM_YVIRTUALSCREEN: return 0; case SM_CXSCREEN: case SM_CXVIRTUALSCREEN: return PSEUDO_SCREEN_WIDTH; case SM_CYSCREEN: case SM_CYVIRTUALSCREEN: return PSEUDO_SCREEN_HEIGHT; case SM_CMONITORS: return 1; } #endif return 1; } static int WINAPI expGetSysColor(int index) { dbgprintf("GetSysColor(%d) => 1\n", index); return 1; } static int WINAPI expGetSysColorBrush(int index) { dbgprintf("GetSysColorBrush(%d)\n", index); return 1; } static int WINAPI expGetSystemPaletteEntries(int hdc, int iStartIndex, int nEntries, void* lppe) { dbgprintf("GetSystemPaletteEntries(0x%x, 0x%x, 0x%x, %p) => 0\n", hdc, iStartIndex, nEntries, lppe); return 0; } /* typedef struct _TIME_ZONE_INFORMATION { long Bias; char StandardName[32]; SYSTEMTIME StandardDate; long StandardBias; char DaylightName[32]; SYSTEMTIME DaylightDate; long DaylightBias; } TIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION; */ static int WINAPI expGetTimeZoneInformation(LPTIME_ZONE_INFORMATION lpTimeZoneInformation) { const short name[]={'C', 'e', 'n', 't', 'r', 'a', 'l', ' ', 'S', 't', 'a', 'n', 'd', 'a', 'r', 'd', ' ', 'T', 'i', 'm', 'e', 0}; const short pname[]={'C', 'e', 'n', 't', 'r', 'a', 'l', ' ', 'D', 'a', 'y', 'l', 'i', 'g', 'h', 't', ' ', 'T', 'i', 'm', 'e', 0}; dbgprintf("GetTimeZoneInformation(%p) => TIME_ZONE_ID_STANDARD\n", lpTimeZoneInformation); memset(lpTimeZoneInformation, 0, sizeof(TIME_ZONE_INFORMATION)); lpTimeZoneInformation->Bias=360;//GMT-6 memcpy(lpTimeZoneInformation->StandardName, name, sizeof(name)); lpTimeZoneInformation->StandardDate.wMonth=10; lpTimeZoneInformation->StandardDate.wDay=5; lpTimeZoneInformation->StandardDate.wHour=2; lpTimeZoneInformation->StandardBias=0; memcpy(lpTimeZoneInformation->DaylightName, pname, sizeof(pname)); lpTimeZoneInformation->DaylightDate.wMonth=4; lpTimeZoneInformation->DaylightDate.wDay=1; lpTimeZoneInformation->DaylightDate.wHour=2; lpTimeZoneInformation->DaylightBias=-60; return TIME_ZONE_ID_STANDARD; } static int WINAPI expSetLocalTime(SYSTEMTIME* systime) { dbgprintf("SetLocalTime(%p)\n", systime); dbgprintf(" Year: %d\n Month: %d\n Day of week: %d\n" " Day: %d\n Hour: %d\n Minute: %d\n Second: %d\n" " Milliseconds: %d\n", systime->wYear, systime->wMonth, systime->wDayOfWeek, systime->wDay, systime->wHour, systime->wMinute, systime->wSecond, systime->wMilliseconds); return 1; } static void WINAPI expGetLocalTime(SYSTEMTIME* systime) { time_t local_time; struct tm *local_tm; struct timeval tv; dbgprintf("GetLocalTime(%p)\n", systime); gettimeofday(&tv, NULL); local_time=tv.tv_sec; local_tm=localtime(&local_time); systime->wYear = local_tm->tm_year + 1900; systime->wMonth = local_tm->tm_mon + 1; systime->wDayOfWeek = local_tm->tm_wday; systime->wDay = local_tm->tm_mday; systime->wHour = local_tm->tm_hour; systime->wMinute = local_tm->tm_min; systime->wSecond = local_tm->tm_sec; systime->wMilliseconds = (tv.tv_usec / 1000) % 1000; dbgprintf(" Year: %d\n Month: %d\n Day of week: %d\n" " Day: %d\n Hour: %d\n Minute: %d\n Second: %d\n" " Milliseconds: %d\n", systime->wYear, systime->wMonth, systime->wDayOfWeek, systime->wDay, systime->wHour, systime->wMinute, systime->wSecond, systime->wMilliseconds); } static void WINAPI expGetSystemTime(SYSTEMTIME* systime) { time_t local_time; struct tm *local_tm; struct timeval tv; dbgprintf("GetSystemTime(%p)\n", systime); gettimeofday(&tv, NULL); local_time=tv.tv_sec; local_tm=gmtime(&local_time); systime->wYear = local_tm->tm_year + 1900; systime->wMonth = local_tm->tm_mon + 1; systime->wDayOfWeek = local_tm->tm_wday; systime->wDay = local_tm->tm_mday; systime->wHour = local_tm->tm_hour; systime->wMinute = local_tm->tm_min; systime->wSecond = local_tm->tm_sec; systime->wMilliseconds = (tv.tv_usec / 1000) % 1000; dbgprintf(" Year: %d\n Month: %d\n Day of week: %d\n" " Day: %d\n Hour: %d\n Minute: %d\n Second: %d\n" " Milliseconds: %d\n", systime->wYear, systime->wMonth, systime->wDayOfWeek, systime->wDay, systime->wHour, systime->wMinute, systime->wSecond, systime->wMilliseconds); } #define SECS_1601_TO_1970 ((369 * 365 + 89) * 86400ULL) static void WINAPI expGetSystemTimeAsFileTime(FILETIME* systime) { /* struct tm *local_tm; -- unused */ struct timeval tv; unsigned long long secs; dbgprintf("GetSystemTime(%p)\n", systime); gettimeofday(&tv, NULL); secs = (tv.tv_sec + SECS_1601_TO_1970) * 10000000; secs += tv.tv_usec * 10; systime->dwLowDateTime = secs & 0xffffffff; systime->dwHighDateTime = (secs >> 32); } static int WINAPI expSystemTimeToFileTime(const SYSTEMTIME* systime,LPFILETIME filetime) { unsigned long long secs; /* FIXME: we need real seonds here */ secs = systime->wSecond + systime->wMinute * 60 + systime->wHour * 60 * 60 + systime->wDay * 24 * 60 * 60; filetime->dwLowDateTime = secs & 0xffffffff; filetime->dwHighDateTime = (secs >> 32); return 1; } static int WINAPI expLocalFileTimeToFileTime(const FILETIME* localfiletime,LPFILETIME filetime) { /* FIXME: implement me */ filetime->dwLowDateTime = localfiletime->dwLowDateTime; filetime->dwHighDateTime = localfiletime->dwHighDateTime; return 1; } static int WINAPI expSetFileTime(HANDLE hFile, const FILETIME* lpCreationTime, const FILETIME* lpLastAccessTime, const FILETIME* lpLastWriteTime) { /* FIXME: implement me */ return 1; } static int WINAPI expGetEnvironmentVariableA(const char* name, char* field, int size) { /* char *p; */ // dbgprintf("%s %x %x\n", name, field, size); if(field)field[0]=0; /* p = getenv(name); if (p) strncpy(field,p,size); */ if (!field || size < sizeof("__GLOBAL_HEAP_SELECTED,1")) return 0; if (strcmp(name,"__MSVCRT_HEAP_SELECT")==0) strcpy(field,"__GLOBAL_HEAP_SELECTED,1"); dbgprintf("GetEnvironmentVariableA(%p='%s', %p, %d) => %d\n", name, name, field, size, strlen(field)); return strlen(field); } static int WINAPI expSetEnvironmentVariableA(const char *name, const char *value) { dbgprintf("SetEnvironmentVariableA(%s, %s)\n", name, value); return 0; } static void* WINAPI expCoTaskMemAlloc(ULONG cb) { return my_mreq(cb, 0); } static void WINAPI expCoTaskMemFree(void* cb) { my_release(cb); } void* CoTaskMemAlloc(unsigned long cb) { return expCoTaskMemAlloc(cb); } void CoTaskMemFree(void* cb) { expCoTaskMemFree(cb); } struct COM_OBJECT_INFO { GUID clsid; long (*GetClassObject) (GUID* clsid, const GUID* iid, void** ppv); }; static struct COM_OBJECT_INFO* com_object_table=0; static int com_object_size=0; int RegisterComClass(const GUID* clsid, GETCLASSOBJECT gcs) { if(!clsid || !gcs) return -1; com_object_table=realloc(com_object_table, sizeof(struct COM_OBJECT_INFO)*(++com_object_size)); com_object_table[com_object_size-1].clsid=*clsid; com_object_table[com_object_size-1].GetClassObject=gcs; return 0; } int UnregisterComClass(const GUID* clsid, GETCLASSOBJECT gcs) { int found = 0; int i = 0; if(!clsid || !gcs) return -1; if (com_object_table == 0) dbgprintf("Warning: UnregisterComClass() called without any registered class\n"); while (i < com_object_size) { if (found && i > 0) { memcpy(&com_object_table[i - 1].clsid, &com_object_table[i].clsid, sizeof(GUID)); com_object_table[i - 1].GetClassObject = com_object_table[i].GetClassObject; } else if (memcmp(&com_object_table[i].clsid, clsid, sizeof(GUID)) == 0 && com_object_table[i].GetClassObject == gcs) { found++; } i++; } if (found) { if (--com_object_size == 0) { free(com_object_table); com_object_table = 0; } } return 0; } const GUID IID_IUnknown = { 0x00000000, 0x0000, 0x0000, {0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46} }; const GUID IID_IClassFactory = { 0x00000001, 0x0000, 0x0000, {0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46} }; static long WINAPI expCoCreateInstance(GUID* rclsid, struct IUnknown* pUnkOuter, long dwClsContext, const GUID* riid, void** ppv) { int i; struct COM_OBJECT_INFO* ci=0; for(i=0; iGetClassObject(rclsid, riid, ppv); return i; } long CoCreateInstance(GUID* rclsid, struct IUnknown* pUnkOuter, long dwClsContext, const GUID* riid, void** ppv) { return expCoCreateInstance(rclsid, pUnkOuter, dwClsContext, riid, ppv); } static int WINAPI expIsRectEmpty(CONST RECT *lprc) { int r = 0; int w,h; //trapbug(); if (lprc) { w = lprc->right - lprc->left; h = lprc->bottom - lprc->top; if (w <= 0 || h <= 0) r = 1; } else r = 1; dbgprintf("IsRectEmpty(%p) => %s\n", lprc, (r) ? "TRUE" : "FALSE"); //dbgprintf("Rect: left: %d, top: %d, right: %d, bottom: %d\n", lprc->left, lprc->top, lprc->right, lprc->bottom); // return 0; // wmv9? return r; // TM20 } static int _adjust_fdiv=0; //what's this? - used to adjust division static unsigned int WINAPI expGetTempPathA(unsigned int len, char* path) { dbgprintf("GetTempPathA(%d, %p)", len, path); if(len<5) { dbgprintf(" => 0\n"); return 0; } strcpy(path, "/tmp"); dbgprintf(" => 5 ( '/tmp' )\n"); return 5; } /* FYI: typedef struct { DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DWORD nFileSizeLow; DWORD dwReserved0; DWORD dwReserved1; CHAR cFileName[260]; CHAR cAlternateFileName[14]; } WIN32_FIND_DATAA, *LPWIN32_FIND_DATAA; */ static DIR* qtx_dir=NULL; static WIN_BOOL WINAPI expFindNextFileA(HANDLE h,LPWIN32_FIND_DATAA lpfd) { #ifdef QTX dbgprintf("FindNextFileA(0x%x, %p) => 0\n", h, lpfd); if(h==FILE_HANDLE_quicktimeqtx){ struct dirent* d; if(!qtx_dir) return 0; while((d=readdir(qtx_dir))){ char* x=strrchr(d->d_name,'.'); if(!x) continue; if(strcmp(x,".qtx")) continue; strcpy(lpfd->cFileName,d->d_name); // sprintf(lpfd->cAlternateFileName,"%-8s.qtx",d->d_name); strcpy(lpfd->cAlternateFileName,"foobar.qtx"); dbgprintf("### FindNext: %s\n",lpfd->cFileName); return 1; } closedir(qtx_dir); qtx_dir=NULL; return 0; } #endif return 0; } static HANDLE WINAPI expFindFirstFileA(LPCSTR s, LPWIN32_FIND_DATAA lpfd) { #ifdef QTX if(strstr(s, "*.QTX")){ dbgprintf("FindFirstFileA(%p='%s', %p) => QTX\n", s, s, lpfd); qtx_dir=opendir(win32_def_path); if(!qtx_dir) return (HANDLE)-1; memset(lpfd,0,sizeof(*lpfd)); if(expFindNextFileA(FILE_HANDLE_quicktimeqtx,lpfd)) return FILE_HANDLE_quicktimeqtx; dbgprintf("loader: Couldn't find the QuickTime plugins (.qtx files) at %s\n",win32_def_path); return (HANDLE)-1; } if(strstr(s, "QuickTime.qts")){ dbgprintf("FindFirstFileA(%p='%s', %p) => QTS\n", s, s, lpfd); // if(!strcmp(s,"C:\\windows\\QuickTime.qts\\QuickTime.qts\\*.QTX")) // return (HANDLE)-1; strcpy(lpfd->cFileName, "QuickTime.qts"); strcpy(lpfd->cAlternateFileName, "QuickT~1.qts"); return FILE_HANDLE_quicktimeqts; } #endif if(strstr(s, "*.vwp")){ // hack for VoxWare codec plugins: dbgprintf("FindFirstFileA(%p='%s', %p) => 0\n", s, s, lpfd); strcpy(lpfd->cFileName, "msms001.vwp"); strcpy(lpfd->cAlternateFileName, "msms001.vwp"); return (HANDLE)0; } return (HANDLE)-1; } static WIN_BOOL WINAPI expFindClose(HANDLE h) { dbgprintf("FindClose(0x%x) => 0\n", h); #ifdef QTX // if(h==FILE_HANDLE_quicktimeqtx && qtx_dir){ // closedir(qtx_dir); // qtx_dir=NULL; // } #endif return 0; } static UINT WINAPI expSetErrorMode(UINT i) { dbgprintf("SetErrorMode(%d) => 0\n", i); return 0; } static UINT WINAPI expGetWindowsDirectoryA(LPSTR s,UINT c) { char windir[]="c:\\windows"; int result; strncpy(s, windir, c); result=1+((c %d\n", s, c, result); return result; } #ifdef QTX static UINT WINAPI expGetCurrentDirectoryA(UINT c, LPSTR s) { char curdir[]="c:\\"; int result; strncpy(s, curdir, c); result=1+((c %d\n", s, c, result); return result; } static int WINAPI expSetCurrentDirectoryA(const char *pathname) { dbgprintf("SetCurrentDirectoryA(%p = %s) => 1\n", pathname, pathname); #if 0 if (strrchr(pathname, '\\')) chdir(strcat(strrchr(pathname, '\\')+1, '/')); else chdir(pathname); #endif return 1; } static int WINAPI expCreateDirectoryA(const char *pathname, void *sa) { dbgprintf("CreateDirectory(%p = %s, %p) => 1\n", pathname, pathname, sa); #if 0 p = strrchr(pathname, '\\')+1; strcpy(&buf[0], p); /* should be strncpy */ if (!strlen(p)) { buf[0] = '.'; buf[1] = 0; } #if 0 if (strrchr(pathname, '\\')) mkdir(strcat(strrchr(pathname, '\\')+1, '/'), 666); else mkdir(pathname, 666); #endif mkdir(&buf); #endif return 1; } #endif static WIN_BOOL WINAPI expDeleteFileA(LPCSTR s) { dbgprintf("DeleteFileA(%p='%s') => 0\n", s, s); return 0; } static WIN_BOOL WINAPI expFileTimeToLocalFileTime(const FILETIME* cpf, LPFILETIME pf) { dbgprintf("FileTimeToLocalFileTime(%p, %p) => 0\n", cpf, pf); return 0; } static UINT WINAPI expGetTempFileNameA(LPCSTR cs1,LPCSTR cs2,UINT i,LPSTR ps) { char mask[16]="/tmp/AP_XXXXXX"; int result; dbgprintf("GetTempFileNameA(%p='%s', %p='%s', %d, %p)", cs1, cs1, cs2, cs2, i, ps); if(i && i<10) { dbgprintf(" => -1\n"); return -1; } result=mkstemp(mask); sprintf(ps, "AP%d", result); dbgprintf(" => %d\n", strlen(ps)); return strlen(ps); } // // This func might need proper implementation if we want AngelPotion codec. // They try to open APmpeg4v1.apl with it. // DLL will close opened file with CloseHandle(). // static HANDLE WINAPI expCreateFileA(LPCSTR cs1,DWORD i1,DWORD i2, LPSECURITY_ATTRIBUTES p1, DWORD i3,DWORD i4,HANDLE i5) { dbgprintf("CreateFileA(%p='%s', %ld, %ld, %p, %ld, %ld, 0x%x)\n", cs1, cs1, i1, i2, p1, i3, i4, i5); if((!cs1) || (strlen(cs1)<2))return -1; #ifdef QTX if(strstr(cs1, "QuickTime.qts")) { int result; char* tmp=(char*)malloc(strlen(win32_def_path)+50); strcpy(tmp, win32_def_path); strcat(tmp, "/"); strcat(tmp, "QuickTime.qts"); result=open(tmp, O_RDONLY); free(tmp); return result; } if(strstr(cs1, ".qtx")) { int result; char* tmp=(char*)malloc(strlen(win32_def_path)+250); char* x=strrchr(cs1,'\\'); sprintf(tmp,"%s/%s",win32_def_path,x?(x+1):cs1); // dbgprintf("### Open: %s -> %s\n",cs1,tmp); result=open(tmp, O_RDONLY); free(tmp); return result; } #endif if(strncmp(cs1, "AP", 2) == 0) { int result; char* tmp=(char*)malloc(strlen(win32_def_path)+50); strcpy(tmp, win32_def_path); strcat(tmp, "/"); strcat(tmp, "APmpg4v1.apl"); result=open(tmp, O_RDONLY); free(tmp); return result; } if (strstr(cs1, "vp3")) { int r; int flg = 0; char* tmp=(char*)malloc(20 + strlen(cs1)); strcpy(tmp, "/tmp/"); strcat(tmp, cs1); r = 4; while (tmp[r]) { if (tmp[r] == ':' || tmp[r] == '\\') tmp[r] = '_'; r++; } if (GENERIC_READ & i1) flg |= O_RDONLY; else if (GENERIC_WRITE & i1) { flg |= O_WRONLY; dbgprintf("Warning: openning filename %s %d (flags; 0x%x) for write\n", tmp, r, flg); } r=open(tmp, flg); free(tmp); return r; } //#if 0 /* we need this for some virtualdub filters */ { int r; int flg = 0; if (GENERIC_READ & i1) flg |= O_RDONLY; else if (GENERIC_WRITE & i1) { flg |= O_WRONLY; dbgprintf("Warning: openning filename %s (flags; 0x%x) for write\n", cs1, flg); } r=open(cs1, flg); return r; } //#else // return atoi(cs1+2); //#endif } static HANDLE WINAPI expCreateFileW(LPCWSTR filename,DWORD access,DWORD sharing, LPSECURITY_ATTRIBUTES sa,DWORD creation,DWORD attributes,HANDLE template) { // mbstowcs, MultiByteToWideChar return expCreateFileA((LPCSTR)filename,access,sharing,sa,creation,attributes,template); } static int WINAPI expCreatePipe(PHANDLE hReadPipe,PHANDLE hWritePipe,LPSECURITY_ATTRIBUTES lpPipeAttributes,DWORD nSize) { /* FIXME: implement me */ return 1; } static int WINAPI expLockFile(HANDLE hFile,DWORD dwFileOffsetLow,DWORD dwFileOffsetHigh,DWORD nNumberOfBytesToUnlockLow,DWORD nNumberOfBytesToUnlockHigh) { /* FIXME: implement me */ return 1; } static int WINAPI expUnlockFile(HANDLE hFile,DWORD dwFileOffsetLow,DWORD dwFileOffsetHigh,DWORD nNumberOfBytesToUnlockLow,DWORD nNumberOfBytesToUnlockHigh) { /* FIXME: implement me */ return 1; } static int WINAPI expGetNumberOfConsoleInputEvents(HANDLE hConsoleInput,LPDWORD lpcNumberOfEvents) { /* FIXME: implement me */ *lpcNumberOfEvents=0; return 1; } static int WINAPI expPeekConsoleInputA(HANDLE hConsoleInput,/*PINPUT_RECORD*/void *lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsRead) { /* FIXME: implement me */ *lpNumberOfEventsRead=0; return 1; } static int WINAPI expReadConsoleInputA(HANDLE handle,/*PINPUT_RECORD*/void *buffer,DWORD count,LPDWORD pRead) { /* FIXME: implement me */ return 0; } static int WINAPI expPeekNamedPipe(HANDLE hNamedPipe,LPVOID lpBuffer,DWORD nBufferSize,LPDWORD lpBytesRead,LPDWORD lpTotalBytesAvail,LPDWORD lpBytesLeftThisMessage) { /* FIXME: implement me */ return 0; } static int WINAPI expGetFileInformationByHandle(HANDLE hFile,/*LPBY_HANDLE_FILE_INFORMATION*/void * lpFileInformation) { /* FIXME: implement me */ return 0; } static int WINAPI expWriteConsoleA(HANDLE hConsoleOutput,const VOID* lpBuffer,DWORD nNumberOfCharsToWrite,LPDWORD lpNumberOfCharsWritten,LPVOID lpReserved) { *lpNumberOfCharsWritten=nNumberOfCharsToWrite; return 1; } static int WINAPI expSetEndOfFile(HANDLE hFile) { /* FIXME: implement me */ return 1; } /* GetConsoleMode */ static UINT WINAPI expGetSystemDirectoryA( char* lpBuffer, // address of buffer for system directory UINT uSize // size of directory buffer ){ dbgprintf("GetSystemDirectoryA(%p,%d)\n", lpBuffer,uSize); if (!lpBuffer || uSize < 2) return 0; strcpy(lpBuffer,"."); return 1; } /* static char sysdir[]="."; static LPCSTR WINAPI expGetSystemDirectoryA() { dbgprintf("GetSystemDirectoryA() => 0x%x='%s'\n", sysdir, sysdir); return sysdir; } */ static DWORD WINAPI expGetFullPathNameA ( LPCTSTR lpFileName, DWORD nBufferLength, LPTSTR lpBuffer, LPTSTR lpFilePart ){ if(!lpFileName) return 0; dbgprintf("GetFullPathNameA('%s',%ld,%p,%p)\n",lpFileName,nBufferLength, lpBuffer, lpFilePart); #if 0 #ifdef QTX strcpy(lpFilePart, "Quick123.qts"); #else strcpy(lpFilePart, lpFileName); #endif #else if (strrchr(lpFileName, '\\')) *lpFilePart = (int)strrchr(lpFileName, '\\'); else *lpFilePart = (int)lpFileName; #endif strcpy(lpBuffer, lpFileName); // strncpy(lpBuffer, lpFileName, rindex(lpFileName, '\\')-lpFileName); return strlen(lpBuffer); } static DWORD WINAPI expGetShortPathNameA ( LPCSTR longpath, LPSTR shortpath, DWORD shortlen ){ if(!longpath) return 0; dbgprintf("GetShortPathNameA('%s',%p,%ld)\n",longpath,shortpath,shortlen); strcpy(shortpath,longpath); return strlen(shortpath); } static WIN_BOOL WINAPI expReadFile(HANDLE h,LPVOID pv,DWORD size,LPDWORD rd,LPOVERLAPPED unused) { int result; dbgprintf("ReadFile(%d, %p, %ld -> %p)\n", h, pv, size, rd); result=read(h, pv, size); if(rd)*rd=result; if(!result)return 0; return 1; } static WIN_BOOL WINAPI expWriteFile(HANDLE h,LPCVOID pv,DWORD size,LPDWORD wr,LPOVERLAPPED unused) { int result; dbgprintf("WriteFile(%d, %p, %ld -> %p)\n", h, pv, size, wr); if(h==1234)h=1; result=write(h, pv, size); if(wr)*wr=result; if(!result)return 0; return 1; } static DWORD WINAPI expSetFilePointer(HANDLE h, LONG val, LPLONG ext, DWORD whence) { int wh; dbgprintf("SetFilePointer(%d, 0x%lx, %p = %ld, %ld)\n", h, val, ext, ext ? *ext : -1, whence); //why would DLL want temporary file with >2Gb size? switch(whence) { case FILE_BEGIN: wh=SEEK_SET;break; case FILE_END: wh=SEEK_END;break; case FILE_CURRENT: wh=SEEK_CUR;break; default: return -1; } #ifdef QTX if (val == 0 && ext != 0) val = val&(*ext); #endif return lseek(h, val, wh); } static HDRVR WINAPI expOpenDriverA(LPCSTR szDriverName, LPCSTR szSectionName, LPARAM lParam2) { dbgprintf("OpenDriverA(%p='%s', %p='%s', 0x%lx) => -1\n", szDriverName, szDriverName, szSectionName, szSectionName, lParam2); return -1; } static HDRVR WINAPI expOpenDriver(LPCSTR szDriverName, LPCSTR szSectionName, LPARAM lParam2) { dbgprintf("OpenDriver(%p='%s', %p='%s', 0x%lx) => -1\n", szDriverName, szDriverName, szSectionName, szSectionName, lParam2); return -1; } static WIN_BOOL WINAPI expGetProcessAffinityMask(HANDLE hProcess, LPDWORD lpProcessAffinityMask, LPDWORD lpSystemAffinityMask) { dbgprintf("GetProcessAffinityMask(0x%x, %p, %p) => 1\n", hProcess, lpProcessAffinityMask, lpSystemAffinityMask); if(lpProcessAffinityMask)*lpProcessAffinityMask=1; if(lpSystemAffinityMask)*lpSystemAffinityMask=1; return 1; } static int WINAPI expMulDiv(int nNumber, int nNumerator, int nDenominator) { static const long long max_int=0x7FFFFFFFLL; static const long long min_int=-0x80000000LL; long long tmp=(long long)nNumber*(long long)nNumerator; dbgprintf("expMulDiv %d * %d / %d\n", nNumber, nNumerator, nDenominator); if(!nDenominator)return 1; tmp/=nDenominator; if(tmpmax_int) return 1; return (int)tmp; } static LONG WINAPI explstrcmpiA(const char* str1, const char* str2) { LONG result=strcasecmp(str1, str2); dbgprintf("strcmpi(%p='%s', %p='%s') => %ld\n", str1, str1, str2, str2, result); return result; } static LONG WINAPI explstrlenA(const char* str1) { LONG result=strlen(str1); dbgprintf("strlen(%p='%.50s') => %ld\n", str1, str1, result); return result; } static LONG WINAPI explstrcpyA(char* str1, const char* str2) { int result= (int) strcpy(str1, str2); dbgprintf("strcpy(%p, %p='%.50s') => %d\n", str1, str2, str2, result); return result; } static LONG WINAPI explstrcpynA(char* str1, const char* str2,int len) { int result; if (strlen(str2)>len) result = (int) strncpy(str1, str2,len); else result = (int) strcpy(str1,str2); dbgprintf("strncpy(%p, %p='%s' len %d strlen %d) => %x\n", str1, str2, str2,len, strlen(str2),result); return result; } static LONG WINAPI explstrcatA(char* str1, const char* str2) { int result= (int) strcat(str1, str2); dbgprintf("strcat(%p, %p='%s') => %d\n", str1, str2, str2, result); return result; } static LONG WINAPI expInterlockedExchange(long *dest, long l) { long retval = *dest; *dest = l; return retval; } static void WINAPI expInitCommonControls(void) { dbgprintf("InitCommonControls called!\n"); return; } #ifdef QTX /* needed by QuickTime.qts */ static HWND WINAPI expCreateUpDownControl (DWORD style, INT x, INT y, INT cx, INT cy, HWND parent, INT id, HINSTANCE inst, HWND buddy, INT maxVal, INT minVal, INT curVal) { dbgprintf("CreateUpDownControl(...)\n"); return 0; } #endif /* alex: implement this call! needed for 3ivx */ static HRESULT WINAPI expCoCreateFreeThreadedMarshaler(void *pUnkOuter, void **ppUnkInner) { dbgprintf("CoCreateFreeThreadedMarshaler(%p, %p) called!\n", pUnkOuter, ppUnkInner); // return 0; return ERROR_CALL_NOT_IMPLEMENTED; } static int WINAPI expDuplicateHandle(HANDLE hSourceProcessHandle, // handle to source process HANDLE hSourceHandle, // handle to duplicate HANDLE hTargetProcessHandle, // handle to target process HANDLE* lpTargetHandle, // duplicate handle DWORD dwDesiredAccess, // requested access int bInheritHandle, // handle inheritance option DWORD dwOptions // optional actions ) { dbgprintf("DuplicateHandle(0x%x, 0x%x, 0x%x, %p, 0x%lx, %d, %ld) called\n", hSourceProcessHandle, hSourceHandle, hTargetProcessHandle, lpTargetHandle, dwDesiredAccess, bInheritHandle, dwOptions); *lpTargetHandle = hSourceHandle; return 1; } // required by PIM1 codec (used by win98 PCTV Studio capture sw) static HRESULT WINAPI expCoInitialize( LPVOID lpReserved /* [in] pointer to win32 malloc interface (obsolete, should be NULL) */ ) { /* * Just delegate to the newer method. */ return 0; //CoInitializeEx(lpReserved, COINIT_APARTMENTTHREADED); } static DWORD WINAPI expSetThreadAffinityMask ( HANDLE hThread, DWORD dwThreadAffinityMask ){ return 0; }; /* * no WINAPI functions - CDECL */ static void* expmalloc(int size) { //dbgprintf("malloc"); // return malloc(size); void* result=my_mreq(size,0); dbgprintf("malloc(0x%x) => %p\n", size,result); if(result==0) dbgprintf("WARNING: malloc() failed\n"); return result; } static void expfree(void* mem) { // return free(mem); dbgprintf("free(%p)\n", mem); my_release(mem); } /* needed by atrac3.acm */ static void *expcalloc(int num, int size) { void* result=my_mreq(num*size,1); dbgprintf("calloc(%d,%d) => %p\n", num,size,result); if(result==0) dbgprintf("WARNING: calloc() failed\n"); return result; } static void* expnew(int size) { // dbgprintf("NEW:: Call from address %08x\n STACK DUMP:\n", *(-1+(int*)&size)); // dbgprintf("%08x %08x %08x %08x\n", // size, *(1+(int*)&size), // *(2+(int*)&size),*(3+(int*)&size)); void* result; assert(size >= 0); //result=my_mreq(size,0); result=my_mreq(size,1); dbgprintf("new(%d) => %p\n", size, result); if (result==0) dbgprintf("WARNING: new() failed\n"); return result; } static int expdelete(void* memory) { dbgprintf("delete(%p)\n", memory); my_release(memory); return 0; } /* FIXME: its not accepting this */ static void* exp_malloc_dbg (int size,int type,char *file,int line) { return my_mreq(size,0); } /* * local definition - we need only the last two members at this point * otherwice we would have to introduce here GUIDs and some more types.. */ typedef struct __attribute__((__packed__)) { char hay[0x40]; unsigned long cbFormat; //0x40 char* pbFormat; //0x44 } MY_MEDIA_TYPE; static HRESULT WINAPI expMoCopyMediaType(MY_MEDIA_TYPE* dest, const MY_MEDIA_TYPE* src) { if (!dest || !src) return E_POINTER; memcpy(dest, src, sizeof(MY_MEDIA_TYPE)); if (dest->cbFormat) { dest->pbFormat = (char*) my_mreq(dest->cbFormat, 0); if (!dest->pbFormat) return E_OUTOFMEMORY; memcpy(dest->pbFormat, src->pbFormat, dest->cbFormat); } return S_OK; } static HRESULT WINAPI expMoInitMediaType(MY_MEDIA_TYPE* dest, DWORD cbFormat) { if (!dest) return E_POINTER; memset(dest, 0, sizeof(MY_MEDIA_TYPE)); if (cbFormat) { dest->pbFormat = (char*) my_mreq(cbFormat, 0); if (!dest->pbFormat) return E_OUTOFMEMORY; } return S_OK; } static HRESULT WINAPI expMoCreateMediaType(MY_MEDIA_TYPE** dest, DWORD cbFormat) { if (!dest) return E_POINTER; *dest = my_mreq(sizeof(MY_MEDIA_TYPE), 0); return expMoInitMediaType(*dest, cbFormat); } static HRESULT WINAPI expMoDuplicateMediaType(MY_MEDIA_TYPE** dest, const void* src) { if (!dest) return E_POINTER; *dest = my_mreq(sizeof(MY_MEDIA_TYPE), 0); return expMoCopyMediaType(*dest, src); } static HRESULT WINAPI expMoFreeMediaType(MY_MEDIA_TYPE* dest) { if (!dest) return E_POINTER; if (dest->pbFormat) { my_release(dest->pbFormat); dest->pbFormat = 0; dest->cbFormat = 0; } return S_OK; } static HRESULT WINAPI expMoDeleteMediaType(MY_MEDIA_TYPE* dest) { if (!dest) return E_POINTER; expMoFreeMediaType(dest); my_release(dest); return S_OK; } #if 0 static int exp_initterm(int v1, int v2) { dbgprintf("_initterm(0x%x, 0x%x) => 0\n", v1, v2); return 0; } #else /* merged from wine - 2002.04.21 */ typedef void (*_INITTERMFUNC)(); static int exp_initterm(_INITTERMFUNC *start, _INITTERMFUNC *end) { dbgprintf("_initterm(%p, %p) %p\n", start, end, *start); while (start < end) { if (*start) { //dbgprintf("call _initfunc: from: %p %d\n", *start); // ok this trick with push/pop is necessary as otherwice // edi/esi registers are being trashed void* p = *start; __asm__ __volatile__ ( "pushl %%ebx \n\t" "pushl %%ecx \n\t" "pushl %%edx \n\t" "pushl %%edi \n\t" "pushl %%esi \n\t" "call *%%eax \n\t" "popl %%esi \n\t" "popl %%edi \n\t" "popl %%edx \n\t" "popl %%ecx \n\t" "popl %%ebx \n\t" : : "a"(p) : "memory" ); //dbgprintf("done %p %d:%d\n", end); } start++; } return 0; } #endif static void* exp__dllonexit() { // FIXME extract from WINE return NULL; } static int __attribute__((__format__(__printf__, 2, 3))) expwsprintfA(char* string, char* format, ...) { va_list va; int result; va_start(va, format); result = vsprintf(string, format, va); dbgprintf("wsprintfA(%p, '%s', ...) => %d\n", string, format, result); va_end(va); return result; } static int __attribute__((__format__(__printf__, 2, 3))) expsprintf(char* str, const char* format, ...) { va_list args; int r; dbgprintf("sprintf(%s, %s)\n", str, format); va_start(args, format); r = vsprintf(str, format, args); va_end(args); return r; } static int __attribute__((__format__(__printf__, 2, 3))) expsscanf(const char* str, const char* format, ...) { va_list args; int r; dbgprintf("sscanf(%s, %s)\n", str, format); va_start(args, format); r = vsscanf(str, format, args); va_end(args); return r; } static void* expfopen(const char* path, const char* mode) { dbgprintf("fopen: \"%s\" mode:%s\n", path, mode); //return fopen(path, mode); return fdopen(0, mode); // everything on screen } static int __attribute__((__format__(__printf__, 2, 3)))expfprintf(void* stream, const char* format, ...) { va_list args; int r = 0; dbgprintf("fprintf(%p, %s, ...)\n", stream, format); #if 1 va_start(args, format); r = vfprintf((FILE*) stream, format, args); va_end(args); #endif return r; } static int __attribute__((__format__(__printf__, 1, 2))) expprintf(const char* format, ...) { va_list args; int r; dbgprintf("printf(%s, ...)\n", format); va_start(args, format); r = vprintf(format, args); va_end(args); return r; } static char* expgetenv(const char* varname) { char* v = getenv(varname); dbgprintf("getenv(%s) => %s\n", varname, v); return v; } static void* expwcscpy(WCHAR* dst, const WCHAR* src) { WCHAR* p = dst; while ((*p++ = *src++)) ; return dst; } static char* expstrrchr(char* string, int value) { char* result=strrchr(string, value); if(result) dbgprintf("strrchr(%p='%s', %d) => %p='%s'", string, string, value, result, result); else dbgprintf("strrchr(%p='%s', %d) => 0", string, string, value); return result; } static char* expstrchr(char* string, int value) { char* result=strchr(string, value); if(result) dbgprintf("strchr(%p='%s', %d) => %p='%s'", string, string, value, result, result); else dbgprintf("strchr(%p='%s', %d) => 0", string, string, value); return result; } static int expstrlen(char* str) { int result=strlen(str); dbgprintf("strlen(%p='%s') => %d\n", str, str, result); return result; } static char* expstrcpy(char* str1, const char* str2) { char* result= strcpy(str1, str2); dbgprintf("strcpy(%p, %p='%s') => %p\n", str1, str2, str2, result); return result; } static char* expstrncpy(char* str1, const char* str2, int x) { char* result= strncpy(str1, str2, x); dbgprintf("strncpy(%p, %p='%s', %d) => %p\n", str1, str2, str2, x, result); return result; } static int expstrcmp(const char* str1, const char* str2) { int result=strcmp(str1, str2); dbgprintf("strcmp(%p='%s', %p='%s') => %d\n", str1, str1, str2, str2, result); return result; } static int expstrncmp(const char* str1, const char* str2, int x) { int result=strncmp(str1, str2,x); dbgprintf("strcmp(%p='%s', %p='%s') => %d\n", str1, str1, str2, str2, result); return result; } static char* expstrcat(char* str1, const char* str2) { char* result = strcat(str1, str2); dbgprintf("strcat(%p='%s', %p='%s') => %p\n", str1, str1, str2, str2, result); return result; } static char* exp_strdup(const char* str1) { int l = strlen(str1); char* result = (char*) my_mreq(l + 1,0); if (result) strcpy(result, str1); dbgprintf("_strdup(%p='%s') => %p\n", str1, str1, result); return result; } static int expisalnum(int c) { int result= (int) isalnum(c); dbgprintf("isalnum(0x%x='%c' => %d\n", c, c, result); return result; } static int expisspace(int c) { int result= (int) isspace(c); dbgprintf("isspace(0x%x='%c' => %d\n", c, c, result); return result; } static int expisalpha(int c) { int result= (int) isalpha(c); dbgprintf("isalpha(0x%x='%c' => %d\n", c, c, result); return result; } static int expisdigit(int c) { int result= (int) isdigit(c); dbgprintf("isdigit(0x%x='%c' => %d\n", c, c, result); return result; } static void* expmemmove(void* dest, void* src, int n) { void* result = memmove(dest, src, n); dbgprintf("memmove(%p, %p, %d) => %p\n", dest, src, n, result); return result; } static int expmemcmp(void* dest, void* src, int n) { int result = memcmp(dest, src, n); dbgprintf("memcmp(%p, %p, %d) => %d\n", dest, src, n, result); return result; } static void* expmemcpy(void* dest, void* src, int n) { void *result = memcpy(dest, src, n); dbgprintf("memcpy(%p, %p, %d) => %p\n", dest, src, n, result); return result; } static void* expmemset(void* dest, int c, size_t n) { void *result = memset(dest, c, n); dbgprintf("memset(%p, %d, %d) => %p\n", dest, c, n, result); return result; } static time_t exptime(time_t* t) { time_t result = time(t); dbgprintf("time(%p) => %ld\n", t, result); return result; } unsigned int exp_control87(unsigned int newval,unsigned int mask) { #if 0 //#include fpu_control_t cw; dbgprintf("_control87(%u,%u)\n",newval,mask); _FPU_GETCW(cw); //cw&=~_FPU_EXTENDED; //cw|=_FPU_DOUBLE; _FPU_SETCW(cw); #endif #if defined(__GNUC__) && defined(__i386__) unsigned int fpword = 0; unsigned int flags = 0; //TRACE("(%08x, %08x): Called\n", newval, mask); /* Get fp control word */ __asm__ __volatile__( "fstcw %0" : "=m" (fpword) : ); //TRACE("Control word before : %08x\n", fpword); /* Convert into mask constants */ #define _MCW_EM 0x0008001f /* interrupt Exception Masks */ #define _EM_INEXACT 0x00000001 /* inexact (precision) */ #define _EM_UNDERFLOW 0x00000002 /* underflow */ #define _EM_OVERFLOW 0x00000004 /* overflow */ #define _EM_ZERODIVIDE 0x00000008 /* zero divide */ #define _EM_INVALID 0x00000010 /* invalid */ #define _EM_DENORMAL 0x00080000 /* denormal exception mask (_control87 only) */ if (fpword & 0x1) flags |= _EM_INVALID; if (fpword & 0x2) flags |= _EM_DENORMAL; if (fpword & 0x4) flags |= _EM_ZERODIVIDE; if (fpword & 0x8) flags |= _EM_OVERFLOW; if (fpword & 0x10) flags |= _EM_UNDERFLOW; if (fpword & 0x20) flags |= _EM_INEXACT; #define _MCW_RC 0x00000300 /* Rounding Control */ #define _RC_NEAR 0x00000000 /* near */ #define _RC_DOWN 0x00000100 /* down */ #define _RC_UP 0x00000200 /* up */ #define _RC_CHOP 0x00000300 /* chop */ switch(fpword & 0xC00) { case 0xC00: flags |= _RC_UP|_RC_DOWN; break; case 0x800: flags |= _RC_UP; break; case 0x400: flags |= _RC_DOWN; break; } #define _MCW_PC 0x00030000 /* Precision Control */ #define _PC_64 0x00000000 /* 64 bits */ #define _PC_53 0x00010000 /* 53 bits */ #define _PC_24 0x00020000 /* 24 bits */ switch(fpword & 0x300) { case 0x0: flags |= _PC_24; break; case 0x200: flags |= _PC_53; break; case 0x300: flags |= _PC_64; break; } #define _MCW_IC 0x00040000 /* Infinity Control */ #define _IC_AFFINE 0x00040000 /* affine */ #define _IC_PROJECTIVE 0x00000000 /* projective */ if (fpword & 0x1000) flags |= _IC_AFFINE; /* Mask with parameters */ flags = (flags & ~mask) | (newval & mask); /* Convert (masked) value back to fp word */ fpword = 0; if (flags & _EM_INVALID) fpword |= 0x1; if (flags & _EM_DENORMAL) fpword |= 0x2; if (flags & _EM_ZERODIVIDE) fpword |= 0x4; if (flags & _EM_OVERFLOW) fpword |= 0x8; if (flags & _EM_UNDERFLOW) fpword |= 0x10; if (flags & _EM_INEXACT) fpword |= 0x20; switch(flags & (_RC_UP | _RC_DOWN)) { case _RC_UP|_RC_DOWN: fpword |= 0xC00; break; case _RC_UP: fpword |= 0x800; break; case _RC_DOWN: fpword |= 0x400; break; } switch (flags & (_PC_24 | _PC_53)) { case _PC_64: fpword |= 0x300; break; case _PC_53: fpword |= 0x200; break; case _PC_24: fpword |= 0x0; break; } if (flags & _IC_AFFINE) fpword |= 0x1000; //TRACE("Control word after : %08x\n", fpword); /* Put fp control word */ __asm__ __volatile__( "fldcw %0" : : "m" (fpword) ); return flags; #else FIXME(":Not Implemented!\n"); return 0; #endif } #if 1 // prefered compilation with -O2 -ffast-math ! static double explog10(double x) { /*dbgprintf("Log10 %f => %f 0x%Lx\n", x, log10(x), *((int64_t*)&x));*/ return log10(x); } static double expsin(double x) { /*dbgprintf("Sin %f => %f 0x%Lx\n", x, sin(x), *((int64_t*)&x));*/ return sin(x); } static double expcos(double x) { /*dbgprintf("Cos %f => %f 0x%Lx\n", x, cos(x), *((int64_t*)&x));*/ return cos(x); } #else /* doens't work */ static long exp_ftol_wrong(double x) { return (long) x; } static void explog10(void) { __asm__ __volatile__ ( "fldl 8(%esp) \n\t" "fldln2 \n\t" "fxch %st(1) \n\t" "fyl2x \n\t" ); } static void expsin(void) { __asm__ __volatile__ ( "fldl 8(%esp) \n\t" "fsin \n\t" ); } static void expcos(void) { __asm__ __volatile__ ( "fldl 8(%esp) \n\t" "fcos \n\t" ); } #endif // this seem to be the only how to make this function working properly // ok - I've spent tremendous amount of time (many many many hours // of debuging fixing & testing - it's almost unimaginable - kabi // _ftol - operated on the float value which is already on the FPU stack static void exp_ftol(void) { __asm__ __volatile__ ( "sub $12, %esp \n\t" "fstcw -2(%ebp) \n\t" "wait \n\t" "movw -2(%ebp), %ax \n\t" "orb $0x0C, %ah \n\t" "movw %ax, -4(%ebp) \n\t" "fldcw -4(%ebp) \n\t" "fistpl -12(%ebp) \n\t" "fldcw -2(%ebp) \n\t" "movl -12(%ebp), %eax \n\t" //Note: gcc 3.03 does not do the following op if it // knows that ebp=esp "movl %ebp, %esp \n\t" ); } static double explog(double x) { /*dbgprintf("Log %f => %f 0x%Lx\n", x, log(x), *((int64_t*)&x));*/ return log(x); } static double expexp(double x) { /*dbgprintf("Exp %f => %f 0x%Lx\n", x, exp(x), *((int64_t*)&x));*/ return exp(x); } #define FPU_DOUBLES(var1,var2) double var1,var2; \ __asm__ __volatile__( "fstpl %0;fwait" : "=m" (var2) : ); \ __asm__ __volatile__( "fstpl %0;fwait" : "=m" (var1) : ) static double exp_CIpow(void) { FPU_DOUBLES(x,y); /*dbgprintf("_CIpow(%lf, %lf)\n", x, y);*/ return pow(x, y); } static double exppow(double x, double y) { /*dbgprintf("Pow %f %f 0x%Lx 0x%Lx => %f\n", x, y, *((int64_t*)&x), *((int64_t*)&y), pow(x, y));*/ return pow(x, y); } static double expldexp(double x, int expo) { /*dbgprintf("Cos %f => %f 0x%Lx\n", x, cos(x), *((int64_t*)&x));*/ return ldexp(x, expo); } static double expfrexp(double x, int* expo) { /*dbgprintf("Cos %f => %f 0x%Lx\n", x, cos(x), *((int64_t*)&x));*/ return frexp(x, expo); } static int exp_stricmp(const char* s1, const char* s2) { return strcasecmp(s1, s2); } /* from declaration taken from Wine sources - this function seems to be * undocumented in any M$ doc */ static int exp_setjmp3(void* jmpbuf, int x) { //dbgprintf("!!!!UNIMPLEMENTED: setjmp3(%p, %d) => 0\n", jmpbuf, x); //return 0; __asm__ __volatile__ ( //"mov 4(%%esp), %%edx \n\t" "mov (%%esp), %%eax \n\t" "mov %%eax, (%%edx) \n\t" // store ebp //"mov %%ebp, (%%edx) \n\t" "mov %%ebx, 4(%%edx) \n\t" "mov %%edi, 8(%%edx) \n\t" "mov %%esi, 12(%%edx) \n\t" "mov %%esp, 16(%%edx) \n\t" "mov 4(%%esp), %%eax \n\t" "mov %%eax, 20(%%edx) \n\t" "movl $0x56433230, 32(%%edx) \n\t" // VC20 ?? "movl $0, 36(%%edx) \n\t" : // output : "d"(jmpbuf) // input : "eax" ); #if 1 __asm__ __volatile__ ( "mov %%fs:0, %%eax \n\t" // unsure "mov %%eax, 24(%%edx) \n\t" "cmp $0xffffffff, %%eax \n\t" "jnz l1 \n\t" "mov %%eax, 28(%%edx) \n\t" "l1: \n\t" : : : "eax" ); #endif return 0; } static DWORD WINAPI expGetCurrentProcessId(void) { dbgprintf("GetCurrentProcessId(void) => %d\n", getpid()); return getpid(); //(DWORD)NtCurrentTeb()->pid; } typedef struct { UINT wPeriodMin; UINT wPeriodMax; } TIMECAPS, *LPTIMECAPS; static MMRESULT WINAPI exptimeGetDevCaps(LPTIMECAPS lpCaps, UINT wSize) { dbgprintf("timeGetDevCaps(%p, %u) !\n", lpCaps, wSize); lpCaps->wPeriodMin = 1; lpCaps->wPeriodMax = 65535; return 0; } static MMRESULT WINAPI exptimeBeginPeriod(UINT wPeriod) { dbgprintf("timeBeginPeriod(%u) !\n", wPeriod); if (wPeriod < 1 || wPeriod > 65535) return 96+1; //TIMERR_NOCANDO; return 0; } #ifdef QTX static MMRESULT WINAPI exptimeEndPeriod(UINT wPeriod) { dbgprintf("timeEndPeriod(%u) !\n", wPeriod); if (wPeriod < 1 || wPeriod > 65535) return 96+1; //TIMERR_NOCANDO; return 0; } #endif static void WINAPI expGlobalMemoryStatus( LPMEMORYSTATUS lpmem ) { static MEMORYSTATUS cached_memstatus; static int cache_lastchecked = 0; SYSTEM_INFO si; FILE *f; if (time(NULL)==cache_lastchecked) { memcpy(lpmem,&cached_memstatus,sizeof(MEMORYSTATUS)); return; } #if 1 f = fopen( "/proc/meminfo", "r" ); if (f) { char buffer[256]; int total, used, free, shared, buffers, cached; lpmem->dwLength = sizeof(MEMORYSTATUS); lpmem->dwTotalPhys = lpmem->dwAvailPhys = 0; lpmem->dwTotalPageFile = lpmem->dwAvailPageFile = 0; while (fgets( buffer, sizeof(buffer), f )) { /* old style /proc/meminfo ... */ if (sscanf( buffer, "Mem: %d %d %d %d %d %d", &total, &used, &free, &shared, &buffers, &cached )) { lpmem->dwTotalPhys += total; lpmem->dwAvailPhys += free + buffers + cached; } if (sscanf( buffer, "Swap: %d %d %d", &total, &used, &free )) { lpmem->dwTotalPageFile += total; lpmem->dwAvailPageFile += free; } /* new style /proc/meminfo ... */ if (sscanf(buffer, "MemTotal: %d", &total)) lpmem->dwTotalPhys = total*1024; if (sscanf(buffer, "MemFree: %d", &free)) lpmem->dwAvailPhys = free*1024; if (sscanf(buffer, "SwapTotal: %d", &total)) lpmem->dwTotalPageFile = total*1024; if (sscanf(buffer, "SwapFree: %d", &free)) lpmem->dwAvailPageFile = free*1024; if (sscanf(buffer, "Buffers: %d", &buffers)) lpmem->dwAvailPhys += buffers*1024; if (sscanf(buffer, "Cached: %d", &cached)) lpmem->dwAvailPhys += cached*1024; } fclose( f ); if (lpmem->dwTotalPhys) { DWORD TotalPhysical = lpmem->dwTotalPhys+lpmem->dwTotalPageFile; DWORD AvailPhysical = lpmem->dwAvailPhys+lpmem->dwAvailPageFile; lpmem->dwMemoryLoad = (TotalPhysical-AvailPhysical) / (TotalPhysical / 100); } } else #endif { /* FIXME: should do something for other systems */ lpmem->dwMemoryLoad = 0; lpmem->dwTotalPhys = 16*1024*1024; lpmem->dwAvailPhys = 16*1024*1024; lpmem->dwTotalPageFile = 16*1024*1024; lpmem->dwAvailPageFile = 16*1024*1024; } expGetSystemInfo(&si); lpmem->dwTotalVirtual = (char *)si.lpMaximumApplicationAddress-(char *)si.lpMinimumApplicationAddress; /* FIXME: we should track down all the already allocated VM pages and substract them, for now arbitrarily remove 64KB so that it matches NT */ lpmem->dwAvailVirtual = lpmem->dwTotalVirtual-64*1024; memcpy(&cached_memstatus,lpmem,sizeof(MEMORYSTATUS)); cache_lastchecked = time(NULL); /* it appears some memory display programs want to divide by these values */ if(lpmem->dwTotalPageFile==0) lpmem->dwTotalPageFile++; if(lpmem->dwAvailPageFile==0) lpmem->dwAvailPageFile++; } /********************************************************************** * SetThreadPriority [KERNEL32.@] Sets priority for thread. * * RETURNS * Success: TRUE * Failure: FALSE */ static WIN_BOOL WINAPI expSetThreadPriority( HANDLE hthread, /* [in] Handle to thread */ INT priority) /* [in] Thread priority level */ { dbgprintf("SetThreadPriority(0x%x,%d)\n",hthread,priority); return TRUE; } static void WINAPI expExitProcess( DWORD status ) { dbgprintf("EXIT - code %d\n",(int)status); exit(status); } static INT WINAPI expMessageBoxA(HWND hWnd, LPCSTR text, LPCSTR title, UINT type){ dbgprintf("MSGBOX '%s' '%s' (%d)\n",text,title,type); #ifdef QTX if (type == MB_ICONHAND && !strlen(text) && !strlen(title)) return IDIGNORE; #endif return IDOK; } static WIN_BOOL expTerminateProcess(HANDLE hProcess, DWORD uExitCode) { dbgprintf("TERMINATE - pid %u, code %lu\n",hProcess,uExitCode); return TRUE; } static DWORD WINAPI expSetCriticalSectionSpinCount(LPVOID lpCriticalSection,DWORD dwSpinCount) { return 0; } /* these are needed for mss1 */ /* defined in stubs.s */ void exp_EH_prolog(void); #include static WINAPI inline unsigned long int exphtonl(unsigned long int hostlong) { // dbgprintf("htonl(%x) => %x\n", hostlong, htonl(hostlong)); return htonl(hostlong); } static WINAPI inline unsigned long int expntohl(unsigned long int netlong) { // dbgprintf("ntohl(%x) => %x\n", netlong, ntohl(netlong)); return ntohl(netlong); } static void WINAPI expVariantInit(void* p) { dbgprintf("InitCommonControls called!\n"); return; } int expRegisterClassA(const void/*WNDCLASSA*/ *wc) { dbgprintf("RegisterClassA(%p) => random id\n", wc); return time(NULL); /* be precise ! */ } int expUnregisterClassA(const char *className, HINSTANCE hInstance) { dbgprintf("UnregisterClassA(%s, 0x%x) => 0\n", className, hInstance); return 0; } #ifdef QTX /* should be fixed bcs it's not fully strlen equivalent */ static int expSysStringByteLen(void *str) { dbgprintf("SysStringByteLen(%p) => %d\n", str, strlen(str)); return strlen(str); } static int expDirectDrawCreate(void) { dbgprintf("DirectDrawCreate(...) => NULL\n"); return 0; } #if 1 typedef struct tagPALETTEENTRY { BYTE peRed; BYTE peGreen; BYTE peBlue; BYTE peFlags; } PALETTEENTRY; /* reversed the first 2 entries */ typedef struct tagLOGPALETTE { WORD palNumEntries; WORD palVersion; PALETTEENTRY palPalEntry[1]; } LOGPALETTE; static HPALETTE WINAPI expCreatePalette(CONST LOGPALETTE *lpgpl) { HPALETTE test; int i; dbgprintf("CreatePalette(%p) => NULL\n", lpgpl); i = sizeof(LOGPALETTE)+((lpgpl->palNumEntries-1)*sizeof(PALETTEENTRY)); test = (HPALETTE)malloc(i); /* preventive expect bad values leading to overapping */ memmove((void *)test, lpgpl, i); return test; } #else static int expCreatePalette(void) { dbgprintf("CreatePalette(...) => NULL\n"); return NULL; } #endif static int WINAPI expGetClientRect(HWND win, RECT *r) { dbgprintf("GetClientRect(0x%x, %p) => 1\n", win, r); r->right = PSEUDO_SCREEN_WIDTH; r->left = 0; r->bottom = PSEUDO_SCREEN_HEIGHT; r->top = 0; return 1; } #if 0 typedef struct tagPOINT { LONG x; LONG y; } POINT, *PPOINT; #endif static int WINAPI expClientToScreen(HWND win, POINT *p) { dbgprintf("ClientToScreen(0x%x, %p = %ld,%ld) => 1\n", win, p, p->x, p->y); p->x = 0; p->y = 0; return 1; } #endif /* for m3jpeg */ static int WINAPI expSetThreadIdealProcessor(HANDLE thread, int proc) { dbgprintf("SetThreadIdealProcessor(0x%x, %x) => 0\n", thread, proc); return 0; } static int WINAPI expMessageBeep(int type) { dbgprintf("MessageBeep(%d) => 1\n", type); return 1; } static int WINAPI expDialogBoxParamA(void *inst, const char *name, HWND parent, void *dialog_func, void *init_param) { dbgprintf("DialogBoxParamA(%p, %p = %s, 0x%x, %p, %p) => 0x42424242\n", inst, name, name, parent, dialog_func, init_param); return 0x42424242; } static unsigned int expRegisterClipboardFormatA(char *format) { static unsigned int id=0xBFFF; // FIXME: need a hashmap if(id<0xFFFF) id++; dbgprintf("RegisterClipboardFormatA(%s) => %d\n", format, id); return(id); } /* needed by imagepower mjpeg2k */ static void *exprealloc(void *ptr, size_t size) { dbgprintf("realloc(%p, %x)\n", ptr, size); if (!ptr) return my_mreq(size,0); else return my_realloc(ptr, size); } static double expfloor(double x) { dbgprintf("floor(%lf)\n", x); return floor(x); } #define FPU_DOUBLE(var) double var; \ __asm__ __volatile__( "fstpl %0;fwait" : "=m" (var) : ) static double exp_CIcos(void) { FPU_DOUBLE(x); /*dbgprintf("_CIcos(%lf)\n", x);*/ return cos(x); } static double exp_CIsin(void) { FPU_DOUBLE(x); /*dbgprintf("_CIsin(%lf)\n", x);*/ return sin(x); } static double exp_CIcosh(void) { FPU_DOUBLE(x); /*dbgprintf("_CIcosh(%lf)\n", x);*/ return cosh(x); } static double exp_CIsinh(void) { FPU_DOUBLE(x); /*dbgprintf("_CIsinh(%lf)\n", x);*/ return sinh(x); } static double exp_CItanh(void) { FPU_DOUBLE(x); /*dbgprintf("_CItanh(%lf)\n", x);*/ return tanh(x); } static double exp_CIacos(void) { FPU_DOUBLE(x); /*dbgprintf("_CIacos(%lf)\n", x);*/ return acos(x); } static double exp_CIasin(void) { FPU_DOUBLE(x); /*dbgprintf("_CIasin(%lf)\n", x);*/ return asin(x); } static double exp_CIfmod(void) { FPU_DOUBLES(x,y); /*dbgprintf("_CIfmod(%lf)\n", x);*/ return fmod(x,y); } /* //static void exp_CxxThrowException( void *object, cxx_exception_type *type ) static void exp_CxxThrowException( void *object, void *type ) { dbgprintf("_CxxThrowException\n"); #if 0 //we don't have RaiseException() :/ #define CXX_FRAME_MAGIC 0x19930520 #define CXX_EXCEPTION 0xe06d7363 DWORD args[3]; args[0] = CXX_FRAME_MAGIC; args[1] = (DWORD)object; args[2] = (DWORD)type; RaiseException(CXX_EXCEPTION, EH_NONCONTINUABLE, 3, args); #endif } */ struct exports { char name[64]; int id; void* func; }; struct libs { char name[64]; int length; struct exports* exps; }; #define FF(X,Y) \ {#X, Y, (void*)exp##X}, struct exports exp_kernel32[]= { FF(IsBadWritePtr, 357) FF(IsBadReadPtr, 354) FF(IsBadStringPtrW, -1) FF(IsBadStringPtrA, -1) FF(DisableThreadLibraryCalls, -1) FF(CreateThread, -1) FF(CreateEventA, -1) FF(SetEvent, -1) FF(ResetEvent, -1) FF(WaitForSingleObject, -1) #ifdef QTX FF(WaitForMultipleObjects, -1) FF(ExitThread, -1) FF(CreateMutexA,-1) FF(ReleaseMutex,-1) #endif FF(GetSystemInfo, -1) FF(GetVersion, 332) FF(HeapCreate, 461) FF(HeapAlloc, -1) FF(HeapDestroy, -1) FF(HeapFree, -1) FF(HeapSize, -1) FF(HeapReAlloc,-1) FF(GetProcessHeap, -1) FF(VirtualAlloc, -1) FF(VirtualFree, -1) FF(VirtualQuery, -1) FF(InitializeCriticalSection, -1) FF(EnterCriticalSection, -1) FF(LeaveCriticalSection, -1) FF(DeleteCriticalSection, -1) FF(TlsAlloc, -1) FF(TlsFree, -1) FF(TlsGetValue, -1) FF(TlsSetValue, -1) FF(GetCurrentThreadId, -1) FF(GetCurrentProcess, -1) FF(LocalAlloc, -1) FF(LocalReAlloc,-1) FF(LocalLock, -1) FF(GlobalAlloc, -1) FF(GlobalReAlloc, -1) FF(GlobalLock, -1) FF(GlobalSize, -1) FF(MultiByteToWideChar, 427) FF(WideCharToMultiByte, -1) FF(GetVersionExA, -1) FF(CreateSemaphoreA, -1) FF(QueryPerformanceCounter, -1) FF(QueryPerformanceFrequency, -1) FF(LocalHandle, -1) FF(LocalUnlock, -1) FF(LocalFree, -1) FF(GlobalHandle, -1) FF(GlobalUnlock, -1) FF(GlobalFree, -1) FF(LoadResource, -1) FF(ReleaseSemaphore, -1) FF(FindResourceA, -1) FF(FindResourceExA, -1) FF(LockResource, -1) FF(FreeResource, -1) FF(SizeofResource, -1) FF(CloseHandle, -1) FF(GetCommandLineA, -1) FF(GetCommandLineW, -1) FF(GetEnvironmentStringsW, -1) FF(FreeEnvironmentStringsW, -1) FF(FreeEnvironmentStringsA, -1) FF(GetEnvironmentStrings, -1) FF(GetStartupInfoA, -1) FF(GetStdHandle, -1) FF(GetFileType, -1) #ifdef QTX FF(GetFileAttributesA, -1) #endif FF(SetHandleCount, -1) FF(GetACP, -1) FF(GetModuleFileNameA, -1) FF(SetUnhandledExceptionFilter, -1) FF(LoadLibraryA, -1) FF(GetProcAddress, -1) FF(FreeLibrary, -1) FF(CreateFileMappingA, -1) FF(OpenFileMappingA, -1) FF(MapViewOfFile, -1) FF(UnmapViewOfFile, -1) FF(Sleep, -1) FF(GetModuleHandleA, -1) FF(GetProfileIntA, -1) FF(GetPrivateProfileIntA, -1) FF(GetPrivateProfileStringA, -1) FF(WritePrivateProfileStringA, -1) FF(GetLastError, -1) FF(SetLastError, -1) FF(InterlockedIncrement, -1) FF(InterlockedDecrement, -1) FF(GetTimeZoneInformation, -1) FF(OutputDebugStringA, -1) FF(SetLocalTime, -1) FF(GetLocalTime, -1) FF(GetSystemTime, -1) FF(GetSystemTimeAsFileTime, -1) FF(SystemTimeToFileTime, -1) FF(LocalFileTimeToFileTime, -1) FF(SetFileTime, -1) FF(GetEnvironmentVariableA, -1) FF(SetEnvironmentVariableA, -1) FF(RtlZeroMemory,-1) FF(RtlMoveMemory,-1) FF(RtlFillMemory,-1) FF(GetTempPathA,-1) FF(FindFirstFileA,-1) FF(FindNextFileA,-1) FF(FindClose,-1) FF(FileTimeToLocalFileTime,-1) FF(DeleteFileA,-1) FF(ReadFile,-1) FF(WriteFile,-1) FF(SetFilePointer,-1) FF(GetTempFileNameA,-1) FF(CreateFileA,-1) FF(CreateFileW,-1) FF(CreatePipe, -1) FF(LockFile, -1) FF(UnlockFile, -1) FF(GetNumberOfConsoleInputEvents, -1) FF(ReadConsoleInputA, -1) FF(PeekConsoleInputA, -1) FF(PeekNamedPipe, -1) FF(GetFileInformationByHandle, -1) FF(WriteConsoleA, -1) FF(SetEndOfFile, -1) FF(GetSystemDirectoryA,-1) FF(GetWindowsDirectoryA,-1) #ifdef QTX FF(GetCurrentDirectoryA,-1) FF(SetCurrentDirectoryA,-1) FF(CreateDirectoryA,-1) #endif FF(GetShortPathNameA,-1) FF(GetFullPathNameA,-1) FF(SetErrorMode, -1) FF(IsProcessorFeaturePresent, -1) FF(GetProcessAffinityMask, -1) FF(InterlockedExchange, -1) FF(InterlockedCompareExchange, -1) FF(MulDiv, -1) FF(lstrcmpiA, -1) FF(lstrlenA, -1) FF(lstrcpyA, -1) FF(lstrcatA, -1) FF(lstrcpynA,-1) FF(GetProcessVersion,-1) FF(GetCurrentThread,-1) FF(GetOEMCP,-1) FF(GetCPInfo,-1) FF(DuplicateHandle,-1) FF(GetTickCount, -1) FF(SetThreadAffinityMask,-1) FF(GetCurrentProcessId,-1) FF(GlobalMemoryStatus,-1) FF(SetThreadPriority,-1) FF(ExitProcess,-1) {"LoadLibraryExA", -1, (void*)&LoadLibraryExA}, FF(SetThreadIdealProcessor,-1) FF(TerminateProcess, -1) FF(SetCriticalSectionSpinCount, -1) }; /* TODO: FlsAlloc, FlsSetValue, FlsGetVale, FlsFree */ struct exports exp_msvcrt[]={ FF(malloc, -1) FF(_malloc_dbg, -1) FF(_initterm, -1) FF(__dllonexit, -1) FF(free, -1) {"??3@YAXPAX@Z", -1, expdelete}, {"??2@YAPAXI@Z", -1, expnew}, {"_adjust_fdiv", -1, (void*)&_adjust_fdiv}, FF(strrchr, -1) FF(strchr, -1) FF(strlen, -1) FF(strcpy, -1) FF(strncpy, -1) FF(wcscpy, -1) FF(strcmp, -1) FF(strncmp, -1) FF(strcat, -1) FF(_stricmp,-1) FF(_strdup,-1) FF(_setjmp3,-1) FF(isalnum, -1) FF(isspace, -1) FF(isalpha, -1) FF(isdigit, -1) FF(memmove, -1) FF(memcmp, -1) FF(memset, -1) FF(memcpy, -1) FF(time, -1) {"rand", -1, (void*)&rand}, {"srand", -1, (void*)&srand}, {"atoi", -1, (void*)&atoi}, FF(_control87, -1) FF(log10, -1) FF(log, -1) FF(pow, -1) FF(sin, -1) FF(cos, -1) FF(exp, -1) FF(_ftol,-1) FF(_CIpow,-1) FF(_CIcos,-1) FF(_CIsin,-1) FF(_CIcosh,-1) FF(_CIsinh,-1) FF(_CItanh,-1) FF(_CIacos,-1) FF(_CIasin,-1) FF(_CIfmod,-1) FF(ldexp,-1) FF(frexp,-1) FF(sprintf,-1) FF(sscanf,-1) FF(fopen,-1) FF(fprintf,-1) FF(printf,-1) FF(getenv,-1) FF(floor,-1) FF(_EH_prolog,-1) FF(calloc,-1) {"ceil",-1,(void*)&ceil}, /* needed by imagepower mjpeg2k */ {"clock",-1,(void*)&clock}, {"memchr",-1,(void*)&memchr}, {"vfprintf",-1,(void*)&vfprintf}, //{"realloc",-1,(void*)&realloc}, FF(realloc,-1) {"puts",-1,(void*)&puts}, //FF(_CxxThrowException,-1) }; struct exports exp_winmm[]={ FF(GetDriverModuleHandle, -1) FF(timeGetTime, -1) FF(DefDriverProc, -1) FF(OpenDriverA, -1) FF(OpenDriver, -1) FF(timeGetDevCaps, -1) FF(timeBeginPeriod, -1) #ifdef QTX FF(timeEndPeriod, -1) FF(waveOutGetNumDevs, -1) #endif }; struct exports exp_user32[]={ FF(LoadStringA, -1) FF(wsprintfA, -1) FF(GetDC, -1) FF(GetDesktopWindow, -1) FF(ReleaseDC, -1) FF(IsRectEmpty, -1) FF(LoadCursorA,-1) FF(SetCursor,-1) FF(GetCursorPos,-1) #ifdef QTX FF(ShowCursor,-1) #endif FF(RegisterWindowMessageA,-1) FF(GetSystemMetrics,-1) FF(GetSysColor,-1) FF(GetSysColorBrush,-1) FF(GetWindowDC, -1) FF(DrawTextA, -1) FF(MessageBoxA, -1) FF(RegisterClassA, -1) FF(UnregisterClassA, -1) #ifdef QTX FF(GetWindowRect, -1) FF(MonitorFromWindow, -1) FF(MonitorFromRect, -1) FF(MonitorFromPoint, -1) FF(EnumDisplayMonitors, -1) FF(GetMonitorInfoA, -1) FF(EnumDisplayDevicesA, -1) FF(GetClientRect, -1) FF(ClientToScreen, -1) FF(IsWindowVisible, -1) FF(GetActiveWindow, -1) FF(GetClassNameA, -1) FF(GetClassInfoA, -1) FF(GetWindowLongA, -1) FF(EnumWindows, -1) FF(GetWindowThreadProcessId, -1) FF(CreateWindowExA, -1) #endif FF(MessageBeep, -1) FF(DialogBoxParamA, -1) FF(RegisterClipboardFormatA, -1) }; /* TODO: BOOL WINAPI EnableWindow(__in HWND hWnd,__in BOOL bEnable); BOOL WINAPI IsWindow(__in_opt HWND hWnd); LRESULT WINAPI SendMessage(__in HWND hWnd,__in UINT Msg,__in WPARAM wParam,__in LPARAM lParam */ struct exports exp_advapi32[]={ FF(RegCloseKey, -1) FF(RegCreateKeyExA, -1) FF(RegEnumKeyExA, -1) FF(RegEnumValueA, -1) FF(RegOpenKeyA, -1) FF(RegOpenKeyExA, -1) FF(RegQueryValueExA, -1) FF(RegSetValueExA, -1) }; struct exports exp_gdi32[]={ FF(CreateCompatibleDC, -1) FF(CreateFontA, -1) FF(DeleteDC, -1) FF(DeleteObject, -1) FF(GetDeviceCaps, -1) FF(GetSystemPaletteEntries, -1) #ifdef QTX FF(CreatePalette, -1) FF(GetObjectA, -1) FF(CreateRectRgn, -1) #endif }; struct exports exp_version[]={ FF(GetFileVersionInfoSizeA, -1) }; struct exports exp_ole32[]={ FF(CoCreateFreeThreadedMarshaler,-1) FF(CoCreateInstance, -1) FF(CoInitialize, -1) FF(CoTaskMemAlloc, -1) FF(CoTaskMemFree, -1) FF(StringFromGUID2, -1) }; // do we really need crtdll ??? // msvcrt is the correct place probably... struct exports exp_crtdll[]={ FF(memcpy, -1) FF(wcscpy, -1) }; struct exports exp_comctl32[]={ FF(StringFromGUID2, -1) FF(InitCommonControls, 17) #ifdef QTX FF(CreateUpDownControl, 16) #endif }; struct exports exp_wsock32[]={ FF(htonl,8) FF(ntohl,14) }; struct exports exp_msdmo[]={ FF(memcpy, -1) // just test FF(MoCopyMediaType, -1) FF(MoCreateMediaType, -1) FF(MoDeleteMediaType, -1) FF(MoDuplicateMediaType, -1) FF(MoFreeMediaType, -1) FF(MoInitMediaType, -1) }; struct exports exp_oleaut32[]={ FF(VariantInit, 8) #ifdef QTX FF(SysStringByteLen, 149) #endif }; /* realplayer8: DLL Name: PNCRT.dll vma: Hint/Ord Member-Name 22ff4 615 free 2302e 250 _ftol 22fea 666 malloc 2303e 609 fprintf 2305e 167 _adjust_fdiv 23052 280 _initterm 22ffc 176 _beginthreadex 23036 284 _iob 2300e 85 __CxxFrameHandler 23022 411 _purecall */ #ifdef REALPLAYER struct exports exp_pncrt[]={ FF(malloc, -1) // just test FF(free, -1) // just test FF(fprintf, -1) // just test {"_adjust_fdiv", -1, (void*)&_adjust_fdiv}, FF(_ftol,-1) FF(_initterm, -1) }; #endif #ifdef QTX struct exports exp_ddraw[]={ FF(DirectDrawCreate, -1) }; #endif #define LL(X) \ {#X".dll", sizeof(exp_##X)/sizeof(struct exports), exp_##X}, struct libs libraries[]={ LL(kernel32) LL(msvcrt) LL(winmm) LL(user32) LL(advapi32) LL(gdi32) LL(version) LL(ole32) LL(oleaut32) LL(crtdll) LL(comctl32) LL(wsock32) LL(msdmo) #ifdef REALPLAYER LL(pncrt) #endif #ifdef QTX LL(ddraw) #endif {"msvcrtd.dll", sizeof(exp_msvcrt)/sizeof(struct exports), exp_msvcrt}, // LL(Dsplib) }; #if defined(__CYGWIN__) || defined(__OS2__) || defined (__OpenBSD__) #define MANGLE(a) "_" #a #else #define MANGLE(a) #a #endif static void ext_stubs(void) { // expects: // ax position index // cx address of printf function #if 1 __asm__ __volatile__ ( "push %%edx \n\t" "movl $0xdeadbeef, %%eax \n\t" "movl $0xdeadbeef, %%edx \n\t" "shl $5, %%eax \n\t" // ax * 32 "addl $0xdeadbeef, %%eax \n\t" // overwrite export_names "pushl %%eax \n\t" "pushl $0xdeadbeef \n\t" // overwrite called_unk "call *%%edx \n\t" // printf (via dx) "addl $8, %%esp \n\t" "xorl %%eax, %%eax \n\t" "pop %%edx \n\t" : : : "eax" ); #else __asm__ __volatile__ ( "push %%edx \n\t" "movl $0, %%eax \n\t" "movl $0, %%edx \n\t" "shl $5, %%eax \n\t" // ax * 32 "addl %0, %%eax \n\t" "pushl %%eax \n\t" "pushl %1 \n\t" "call *%%edx \n\t" // printf (via dx) "addl $8, %%esp \n\t" "xorl %%eax, %%eax \n\t" "pop %%edx \n\t" ::"m"(*export_names), "m"(*called_unk) : "memory", "edx", "eax" ); #endif } //static void add_stub(int pos) //extern int unk_exp1; static int pos=0; // place for unresolved exports stub codes static char extcode[NUM_STUB_ENTRIES*0x30]; static const char* called_unk = "Called unk_%s\n"; static void* add_stub(void) { // generated code in runtime! char* answ = (char*)extcode+pos*0x30; int i; /* xine: check if stub for this export was created before */ for(i = 0; i < pos; i++) { if(strcmp(export_names[pos], export_names[i])==0) return extcode+i*0x30; /* return existing stub */ } /* xine: side effect of the stub fix. we must not * allocate a stub for this function otherwise QT dll * will try to call it. */ if( strcmp(export_names[pos], "AllocateAndInitializeSid") == 0 ) { return 0; } #if 0 memcpy(answ, &unk_exp1, 0x64); *(int*)(answ+9)=pos; *(int*)(answ+47)-=((int)answ-(int)&unk_exp1); #endif memcpy(answ, ext_stubs, 0x2f); // 0x2c is current size //answ[4] = 0xb8; // movl $0, eax (0xb8 0x00000000) *((int*) (answ + 5)) = pos; //answ[9] = 0xba; // movl $0, edx (0xba 0x00000000) *((long*) (answ + 10)) = (long)printf; //answ[17] = 0x05; // addl $0, eax (0x05 0x00000000) *((long*) (answ + 18)) = (long)export_names; //answ[23] = 0x68; // pushl $0 (0x68 0x00000000) *((long*) (answ + 24)) = (long)called_unk; /* xine: don't overflow the stub tables */ if( (pos+1) < sizeof(extcode) / 0x30 && (pos+1) < sizeof(export_names) / sizeof(export_names[0]) ) { pos++; } else { strcpy(export_names[pos], " too many unresolved exports"); } return (void*)answ; } static void* LookupExternalNative(const char* library, LPCSTR name) { #ifdef LOADLIB_TRY_NATIVE /* ok, this is a hack, and a big memory leak. should be fixed. - alex */ int hand; WINE_MODREF *wm; void *func; hand = LoadLibraryA(library); if (!hand) goto no_dll; wm = MODULE32_LookupHMODULE(hand); if (!wm) { FreeLibrary(hand); goto no_dll; } func = PE_FindExportedFunction(wm, name, 0); if (!func) { dbgprintf("No such ordinal in external dll\n"); FreeLibrary((int)hand); goto no_dll; } dbgprintf("External dll loaded (offset: 0x%x, func: %p)\n", hand, func); return func; no_dll: dbgprintf("Dll not found: '%s'\n",library); #endif return NULL; } void* LookupExternal(const char* library, int ordinal) { int i,j; void *func; if(library==0) { dbgprintf("ERROR: library=0\n"); return (void*)ext_unknown; } //dbgprintf("%x %x\n", &unk_exp1, &unk_exp2); dbgprintf("External func %s:%d\n", library, ordinal); for(i=0; iNUM_STUB_ENTRIES)return 0; */ /* real names can be checked from corresponding .DEF file */ sprintf(export_names[pos], "%s:%d", library, ordinal); return add_stub(); } void* LookupExternalByName(const char* library, const char* name) { int i,j; void *func; if(library==0) { dbgprintf("ERROR: library=0\n"); return (void*)ext_unknown; } if(name==0) { dbgprintf("ERROR: name=0\n"); return (void*)ext_unknown; } dbgprintf("External func %s:%s\n", library, name); for(i=0; iNUM_STUB_ENTRIES)return 0;// to many symbols */ if(strlen(name)>31) { dbgprintf("ERROR: name=%s longer that 32 chars (%d)! (fix export_names)\n",name,strlen(name)); } strcpy(export_names[pos], name); return add_stub(); } void my_garbagecollection(void) { #ifdef GARBAGE int unfree = 0, unfreecnt = 0; int max_fatal = 8; free_registry(); while (last_alloc) { alloc_header* mem = last_alloc + 1; unfree += my_size(mem); unfreecnt++; if (my_release(mem) != 0) // avoid endless loop when memory is trashed if (--max_fatal < 0) break; } dbgprintf("Total Unfree %d bytes cnt %d [%p,%d]\n",unfree, unfreecnt, last_alloc, alccnt); #endif g_tls = NULL; list = NULL; } bml-0.6.1/dllwrapper/wine/vfw.h0000644042355400116100000005015711576362500013325 00000000000000#ifndef __WINE_VFW_H #define __WINE_VFW_H //#include "pshpack1.h" #ifdef __cplusplus extern "C" { #endif #ifndef __WINE_WINGDI_H typedef struct __attribute__((__packed__)) { short bfType; long bfSize; short bfReserved1; short bfReserved2; long bfOffBits; } BITMAPFILEHEADER; #ifndef _BITMAPINFOHEADER_ #define _BITMAPINFOHEADER_ typedef struct __attribute__((__packed__)) { long biSize; long biWidth; long biHeight; short biPlanes; short biBitCount; long biCompression; long biSizeImage; long biXPelsPerMeter; long biYPelsPerMeter; long biClrUsed; long biClrImportant; } BITMAPINFOHEADER, *PBITMAPINFOHEADER, *LPBITMAPINFOHEADER; typedef struct { BITMAPINFOHEADER bmiHeader; int bmiColors[1]; } BITMAPINFO, *LPBITMAPINFO; #endif #endif #define VFWAPI #define VFWAPIV #ifndef __WINE_WINDEF_H typedef long (__stdcall__ *DRIVERPROC)(long,HDRVR,unsigned int,long,long); #endif #ifndef mmioFOURCC #define mmioFOURCC( ch0, ch1, ch2, ch3 ) \ ( (long)(unsigned char)(ch0) | ( (long)(unsigned char)(ch1) << 8 ) | \ ( (long)(unsigned char)(ch2) << 16 ) | ( (long)(unsigned char)(ch3) << 24 ) ) #endif #ifndef aviTWOCC #define aviTWOCC(ch0, ch1) ((short)(unsigned char)(ch0) | ((short)(unsigned char)(ch1) << 8)) #endif #define ICTYPE_VIDEO mmioFOURCC('v', 'i', 'd', 'c') #define ICTYPE_AUDIO mmioFOURCC('a', 'u', 'd', 'c') /* Installable Compressor M? */ /* HIC struct (same layout as Win95 one) */ typedef struct tagWINE_HIC { long magic; /* 00: 'Smag' */ HANDLE curthread; /* 04: */ long type; /* 08: */ long handler; /* 0C: */ HDRVR hdrv; /* 10: */ long driverid; /* 14:(handled by SendDriverMessage)*/ DRIVERPROC driverproc; /* 18:(handled by SendDriverMessage)*/ long x1; /* 1c: name? */ short x2; /* 20: */ long x3; /* 22: */ /* 26: */ } WINE_HIC; /* error return codes */ #define ICERR_OK 0 #define ICERR_DONTDRAW 1 #define ICERR_NEWPALETTE 2 #define ICERR_GOTOKEYFRAME 3 #define ICERR_STOPDRAWING 4 #define ICERR_UNSUPPORTED -1 #define ICERR_BADFORMAT -2 #define ICERR_MEMORY -3 #define ICERR_INTERNAL -4 #define ICERR_BADFLAGS -5 #define ICERR_BADPARAM -6 #define ICERR_BADSIZE -7 #define ICERR_BADHANDLE -8 #define ICERR_CANTUPDATE -9 #define ICERR_ABORT -10 #define ICERR_ERROR -100 #define ICERR_BADBITDEPTH -200 #define ICERR_BADIMAGESIZE -201 #define ICERR_CUSTOM -400 /* ICM Messages */ #define ICM_USER (DRV_USER+0x0000) /* ICM driver message range */ #define ICM_RESERVED_LOW (DRV_USER+0x1000) #define ICM_RESERVED_HIGH (DRV_USER+0x2000) #define ICM_RESERVED ICM_RESERVED_LOW #define ICM_GETSTATE (ICM_RESERVED+0) #define ICM_SETSTATE (ICM_RESERVED+1) #define ICM_GETINFO (ICM_RESERVED+2) #define ICM_CONFIGURE (ICM_RESERVED+10) #define ICM_ABOUT (ICM_RESERVED+11) /* */ #define ICM_GETDEFAULTQUALITY (ICM_RESERVED+30) #define ICM_GETQUALITY (ICM_RESERVED+31) #define ICM_SETQUALITY (ICM_RESERVED+32) #define ICM_SET (ICM_RESERVED+40) #define ICM_GET (ICM_RESERVED+41) /* 2 constant FOURCC codes */ #define ICM_FRAMERATE mmioFOURCC('F','r','m','R') #define ICM_KEYFRAMERATE mmioFOURCC('K','e','y','R') #define ICM_COMPRESS_GET_FORMAT (ICM_USER+4) #define ICM_COMPRESS_GET_SIZE (ICM_USER+5) #define ICM_COMPRESS_QUERY (ICM_USER+6) #define ICM_COMPRESS_BEGIN (ICM_USER+7) #define ICM_COMPRESS (ICM_USER+8) #define ICM_COMPRESS_END (ICM_USER+9) #define ICM_DECOMPRESS_GET_FORMAT (ICM_USER+10) #define ICM_DECOMPRESS_QUERY (ICM_USER+11) #define ICM_DECOMPRESS_BEGIN (ICM_USER+12) #define ICM_DECOMPRESS (ICM_USER+13) #define ICM_DECOMPRESS_END (ICM_USER+14) #define ICM_DECOMPRESS_SET_PALETTE (ICM_USER+29) #define ICM_DECOMPRESS_GET_PALETTE (ICM_USER+30) #define ICM_DRAW_QUERY (ICM_USER+31) #define ICM_DRAW_BEGIN (ICM_USER+15) #define ICM_DRAW_GET_PALETTE (ICM_USER+16) #define ICM_DRAW_START (ICM_USER+18) #define ICM_DRAW_STOP (ICM_USER+19) #define ICM_DRAW_END (ICM_USER+21) #define ICM_DRAW_GETTIME (ICM_USER+32) #define ICM_DRAW (ICM_USER+33) #define ICM_DRAW_WINDOW (ICM_USER+34) #define ICM_DRAW_SETTIME (ICM_USER+35) #define ICM_DRAW_REALIZE (ICM_USER+36) #define ICM_DRAW_FLUSH (ICM_USER+37) #define ICM_DRAW_RENDERBUFFER (ICM_USER+38) #define ICM_DRAW_START_PLAY (ICM_USER+39) #define ICM_DRAW_STOP_PLAY (ICM_USER+40) #define ICM_DRAW_SUGGESTFORMAT (ICM_USER+50) #define ICM_DRAW_CHANGEPALETTE (ICM_USER+51) #define ICM_GETBUFFERSWANTED (ICM_USER+41) #define ICM_GETDEFAULTKEYFRAMERATE (ICM_USER+42) #define ICM_DECOMPRESSEX_BEGIN (ICM_USER+60) #define ICM_DECOMPRESSEX_QUERY (ICM_USER+61) #define ICM_DECOMPRESSEX (ICM_USER+62) #define ICM_DECOMPRESSEX_END (ICM_USER+63) #define ICM_COMPRESS_FRAMES_INFO (ICM_USER+70) #define ICM_SET_STATUS_PROC (ICM_USER+72) /* structs */ typedef struct { long dwSize; /* 00: size */ long fccType; /* 04: type 'vidc' usually */ long fccHandler; /* 08: */ long dwVersion; /* 0c: version of compman opening you */ long dwFlags; /* 10: LOshort is type specific */ LRESULT dwError; /* 14: */ void* pV1Reserved; /* 18: */ void* pV2Reserved; /* 1c: */ long dnDevNode; /* 20: */ /* 24: */ } ICOPEN,*LPICOPEN; #define ICCOMPRESS_KEYFRAME 0x00000001L typedef struct { long dwFlags; LPBITMAPINFOHEADER lpbiOutput; void* lpOutput; LPBITMAPINFOHEADER lpbiInput; const void* lpInput; long* lpckid; long* lpdwFlags; long lFrameNum; long dwFrameSize; long dwQuality; LPBITMAPINFOHEADER lpbiPrev; void* lpPrev; } ICCOMPRESS; long VFWAPIV ICCompress( HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiOutput,void* lpData, LPBITMAPINFOHEADER lpbiInput,void* lpBits,long* lpckid, long* lpdwFlags,long lFrameNum,long dwFrameSize,long dwQuality, LPBITMAPINFOHEADER lpbiPrev,void* lpPrev ); #define ICCompressGetFormat(hic, lpbiInput, lpbiOutput) \ ICSendMessage( \ hic,ICM_COMPRESS_GET_FORMAT,(long)(void*)(lpbiInput), \ (long)(void*)(lpbiOutput) \ ) #define ICCompressGetFormatSize(hic,lpbi) ICCompressGetFormat(hic,lpbi,NULL) #define ICGetDefaultKeyFrameRate(hic,lpint) \ ICSendMessage( \ hic, ICM_GETDEFAULTKEYFRAMERATE, \ (long)(void*)(lpint), \ 0 ) #define ICGetDefaultQuality(hic,lpint) \ ICSendMessage( \ hic, ICM_GETDEFAULTQUALITY, \ (long)(void*)(lpint), \ 0 ) #define ICCompressBegin(hic, lpbiInput, lpbiOutput) \ ICSendMessage( \ hic, ICM_COMPRESS_BEGIN, (long)(void*)(lpbiInput), \ (long)(void*)(lpbiOutput) \ ) #define ICCompressGetSize(hic, lpbiInput, lpbiOutput) \ ICSendMessage( \ hic, ICM_COMPRESS_GET_SIZE, (long)(void*)(lpbiInput), \ (long)(void*)(lpbiOutput) \ ) #define ICCompressQuery(hic, lpbiInput, lpbiOutput) \ ICSendMessage( \ hic, ICM_COMPRESS_QUERY, (long)(void*)(lpbiInput), \ (long)(void*)(lpbiOutput) \ ) #define ICCompressEnd(hic) ICSendMessage(hic, ICM_COMPRESS_END, 0, 0) /* ICCOMPRESSFRAMES.dwFlags */ #define ICCOMPRESSFRAMES_PADDING 0x00000001 typedef struct { long dwFlags; LPBITMAPINFOHEADER lpbiOutput; LPARAM lOutput; LPBITMAPINFOHEADER lpbiInput; LPARAM lInput; long lStartFrame; long lFrameCount; long lQuality; long lDataRate; long lKeyRate; long dwRate; long dwScale; long dwOverheadPerFrame; long dwReserved2; long CALLBACK (*GetData)(LPARAM lInput,long lFrame,void* lpBits,long len); long CALLBACK (*PutData)(LPARAM lOutput,long lFrame,void* lpBits,long len); } ICCOMPRESSFRAMES; /* Values for wMode of ICOpen() */ #define ICMODE_COMPRESS 1 #define ICMODE_DECOMPRESS 2 #define ICMODE_FASTDECOMPRESS 3 #define ICMODE_QUERY 4 #define ICMODE_FASTCOMPRESS 5 #define ICMODE_DRAW 8 /* quality flags */ #define ICQUALITY_LOW 0 #define ICQUALITY_HIGH 10000 #define ICQUALITY_DEFAULT -1 typedef struct { long dwSize; /* 00: */ long fccType; /* 04:compressor type 'vidc' 'audc' */ long fccHandler; /* 08:compressor sub-type 'rle ' 'jpeg' 'pcm '*/ long dwFlags; /* 0c:flags LOshort is type specific */ long dwVersion; /* 10:version of the driver */ long dwVersionICM; /* 14:version of the ICM used */ /* * under Win32, the driver always returns UNICODE strings. */ WCHAR szName[16]; /* 18:short name */ WCHAR szDescription[128]; /* 38:long name */ WCHAR szDriver[128]; /* 138:driver that contains compressor*/ /* 238: */ } ICINFO; /* ICINFO.dwFlags */ #define VIDCF_QUALITY 0x0001 /* supports quality */ #define VIDCF_CRUNCH 0x0002 /* supports crunching to a frame size */ #define VIDCF_TEMPORAL 0x0004 /* supports inter-frame compress */ #define VIDCF_COMPRESSFRAMES 0x0008 /* wants the compress all frames message */ #define VIDCF_DRAW 0x0010 /* supports drawing */ #define VIDCF_FASTTEMPORALC 0x0020 /* does not need prev frame on compress */ #define VIDCF_FASTTEMPORALD 0x0080 /* does not need prev frame on decompress */ #define VIDCF_QUALITYTIME 0x0040 /* supports temporal quality */ #define VIDCF_FASTTEMPORAL (VIDCF_FASTTEMPORALC|VIDCF_FASTTEMPORALD) /* function shortcuts */ /* ICM_ABOUT */ #define ICMF_ABOUT_QUERY 0x00000001 #define ICQueryAbout(hic) \ (ICSendMessage(hic,ICM_ABOUT,(long)-1,ICMF_ABOUT_QUERY)==ICERR_OK) #define ICAbout(hic, hwnd) ICSendMessage(hic,ICM_ABOUT,(long)(unsigned int)(hwnd),0) /* ICM_CONFIGURE */ #define ICMF_CONFIGURE_QUERY 0x00000001 #define ICQueryConfigure(hic) \ (ICSendMessage(hic,ICM_CONFIGURE,(long)-1,ICMF_CONFIGURE_QUERY)==ICERR_OK) #define ICConfigure(hic,hwnd) \ ICSendMessage(hic,ICM_CONFIGURE,(long)(unsigned int)(hwnd),0) /* Decompression stuff */ #define ICDECOMPRESS_HURRYUP 0x80000000 /* don't draw just buffer (hurry up!) */ #define ICDECOMPRESS_UPDATE 0x40000000 /* don't draw just update screen */ #define ICDECOMPRESS_PREROL 0x20000000 /* this frame is before real start */ #define ICDECOMPRESS_NULLFRAME 0x10000000 /* repeat last frame */ #define ICDECOMPRESS_NOTKEYFRAME 0x08000000 /* this frame is not a key frame */ typedef struct { long dwFlags; /* flags (from AVI index...) */ LPBITMAPINFOHEADER lpbiInput; /* BITMAPINFO of compressed data */ const void* lpInput; /* compressed data */ LPBITMAPINFOHEADER lpbiOutput; /* DIB to decompress to */ void* lpOutput; long ckid; /* ckid from AVI file */ } ICDECOMPRESS; typedef struct { long dwFlags; LPBITMAPINFOHEADER lpbiSrc; const void* lpSrc; LPBITMAPINFOHEADER lpbiDst; void* lpDst; /* changed for ICM_DECOMPRESSEX */ INT xDst; /* destination rectangle */ INT yDst; INT dxDst; INT dyDst; INT xSrc; /* source rectangle */ INT ySrc; INT dxSrc; INT dySrc; } ICDECOMPRESSEX; long VFWAPIV ICDecompress(HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiFormat,void* lpData,LPBITMAPINFOHEADER lpbi,void* lpBits); long VFWAPIV ICDecompressEx(HIC hic,long dwFlags,LPBITMAPINFOHEADER lpbiFormat,void* lpData,LPBITMAPINFOHEADER lpbi,void* lpBits); long VFWAPIV ICUniversalEx(HIC hic,int command,LPBITMAPINFOHEADER lpbiFormat,LPBITMAPINFOHEADER lpbi); #define ICDecompressBegin(hic, lpbiInput, lpbiOutput) \ ICSendMessage( \ hic, ICM_DECOMPRESS_BEGIN, (long)(void*)(lpbiInput), \ (long)(void*)(lpbiOutput) \ ) #define ICDecompressBeginEx(hic, lpbiInput, lpbiOutput) \ ICUniversalEx( \ hic, ICM_DECOMPRESSEX_BEGIN, (lpbiInput), \ (lpbiOutput) \ ) #define ICDecompressQuery(hic, lpbiInput, lpbiOutput) \ ICSendMessage( \ hic,ICM_DECOMPRESS_QUERY, (long)(void*)(lpbiInput), \ (long) (void*)(lpbiOutput) \ ) #define ICDecompressQueryEx(hic, lpbiInput, lpbiOutput) \ ICUniversalEx( \ hic,ICM_DECOMPRESSEX_QUERY, (lpbiInput), \ (lpbiOutput) \ ) #define ICDecompressGetFormat(hic, lpbiInput, lpbiOutput) \ ((long)ICSendMessage( \ hic,ICM_DECOMPRESS_GET_FORMAT, (long)(void*)(lpbiInput), \ (long)(void*)(lpbiOutput) \ )) #define ICDecompressGetFormatSize(hic, lpbi) \ ICDecompressGetFormat(hic, lpbi, NULL) #define ICDecompressGetPalette(hic, lpbiInput, lpbiOutput) \ ICSendMessage( \ hic, ICM_DECOMPRESS_GET_PALETTE, (long)(void*)(lpbiInput), \ (long)(void*)(lpbiOutput) \ ) #define ICDecompressSetPalette(hic,lpbiPalette) \ ICSendMessage( \ hic,ICM_DECOMPRESS_SET_PALETTE, \ (long)(void*)(lpbiPalette),0 \ ) #define ICDecompressEnd(hic) ICSendMessage(hic, ICM_DECOMPRESS_END, 0, 0) #define ICDecompressEndEx(hic) ICSendMessage(hic,ICM_DECOMPRESSEX_END, 0, 0) #define ICDRAW_QUERY 0x00000001L /* test for support */ #define ICDRAW_FULLSCREEN 0x00000002L /* draw to full screen */ #define ICDRAW_HDC 0x00000004L /* draw to a HDC/HWND */ long VFWAPI VideoForWindowsVersion(void); WIN_BOOL VFWAPI ICInfo(long fccType, long fccHandler, ICINFO * lpicinfo); LRESULT VFWAPI ICGetInfo(HIC hic,ICINFO *picinfo, long cb); HIC VFWAPI ICOpen(long fccType, long fccHandler, UINT wMode); //HIC VFWAPI ICOpenFunction(long fccType, long fccHandler, unsigned int wMode, void* lpfnHandler); LRESULT VFWAPI ICClose(HIC hic); LRESULT VFWAPI ICSendMessage(HIC hic, unsigned int msg, long dw1, long dw2); //HIC VFWAPI ICLocate(long fccType, long fccHandler, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut, short wFlags); int VFWAPI ICDoSomething(void); long VFWAPIV ICDrawBegin( HIC hic, long dwFlags,/* flags */ HPALETTE hpal, /* palette to draw with */ HWND hwnd, /* window to draw to */ HDC hdc, /* HDC to draw to */ INT xDst, /* destination rectangle */ INT yDst, INT dxDst, INT dyDst, LPBITMAPINFOHEADER lpbi, /* format of frame to draw */ INT xSrc, /* source rectangle */ INT ySrc, INT dxSrc, INT dySrc, long dwRate, /* frames/second = (dwRate/dwScale) */ long dwScale ); /* as passed to ICM_DRAW_BEGIN (FIXME: correct only for Win32?) */ typedef struct { long dwFlags; HPALETTE hpal; HWND hwnd; HDC hdc; INT xDst; INT yDst; INT dxDst; INT dyDst; LPBITMAPINFOHEADER lpbi; INT xSrc; INT ySrc; INT dxSrc; INT dySrc; long dwRate; long dwScale; } ICDRAWBEGIN; #define ICDRAW_HURRYUP 0x80000000L /* don't draw just buffer (hurry up!) */ #define ICDRAW_UPDATE 0x40000000L /* don't draw just update screen */ #define ICDRAW_PREROLL 0x20000000L /* this frame is before real start */ #define ICDRAW_NULLFRAME 0x10000000L /* repeat last frame */ #define ICDRAW_NOTKEYFRAME 0x08000000L /* this frame is not a key frame */ typedef struct { long dwFlags; void* lpFormat; void* lpData; long cbData; long lTime; } ICDRAW; long VFWAPIV ICDraw(HIC hic,long dwFlags,void* lpFormat,void* lpData,long cbData,long lTime); #define AVIGETFRAMEF_BESTDISPLAYFMT 1 typedef struct _AVISTREAMINFOA { long fccType; long fccHandler; long dwFlags; /* AVIIF_* */ long dwCaps; short wPriority; short wLanguage; long dwScale; long dwRate; /* dwRate / dwScale == samples/second */ long dwStart; long dwLength; /* In units above... */ long dwInitialFrames; long dwSuggestedBufferSize; long dwQuality; long dwSampleSize; RECT rcFrame; long dwEditCount; long dwFormatChangeCount; char szName[64]; } AVISTREAMINFOA, * LPAVISTREAMINFOA, *PAVISTREAMINFOA; typedef struct _AVISTREAMINFOW { long fccType; long fccHandler; long dwFlags; long dwCaps; short wPriority; short wLanguage; long dwScale; long dwRate; /* dwRate / dwScale == samples/second */ long dwStart; long dwLength; /* In units above... */ long dwInitialFrames; long dwSuggestedBufferSize; long dwQuality; long dwSampleSize; RECT rcFrame; long dwEditCount; long dwFormatChangeCount; short szName[64]; } AVISTREAMINFOW, * LPAVISTREAMINFOW, *PAVISTREAMINFOW; DECL_WINELIB_TYPE_AW(AVISTREAMINFO) DECL_WINELIB_TYPE_AW(LPAVISTREAMINFO) DECL_WINELIB_TYPE_AW(PAVISTREAMINFO) #define AVISTREAMINFO_DISABLED 0x00000001 #define AVISTREAMINFO_FORMATCHANGES 0x00010000 /* AVIFILEINFO.dwFlags */ #define AVIFILEINFO_HASINDEX 0x00000010 #define AVIFILEINFO_MUSTUSEINDEX 0x00000020 #define AVIFILEINFO_ISINTERLEAVED 0x00000100 #define AVIFILEINFO_WASCAPTUREFILE 0x00010000 #define AVIFILEINFO_COPYRIGHTED 0x00020000 /* AVIFILEINFO.dwCaps */ #define AVIFILECAPS_CANREAD 0x00000001 #define AVIFILECAPS_CANWRITE 0x00000002 #define AVIFILECAPS_ALLKEYFRAMES 0x00000010 #define AVIFILECAPS_NOCOMPRESSION 0x00000020 typedef struct _AVIFILEINFOW { long dwMaxBytesPerSec; long dwFlags; long dwCaps; long dwStreams; long dwSuggestedBufferSize; long dwWidth; long dwHeight; long dwScale; long dwRate; long dwLength; long dwEditCount; short szFileType[64]; } AVIFILEINFOW, * LPAVIFILEINFOW, *PAVIFILEINFOW; typedef struct _AVIFILEINFOA { long dwMaxBytesPerSec; long dwFlags; long dwCaps; long dwStreams; long dwSuggestedBufferSize; long dwWidth; long dwHeight; long dwScale; long dwRate; long dwLength; long dwEditCount; char szFileType[64]; } AVIFILEINFOA, * LPAVIFILEINFOA, *PAVIFILEINFOA; DECL_WINELIB_TYPE_AW(AVIFILEINFO) DECL_WINELIB_TYPE_AW(PAVIFILEINFO) DECL_WINELIB_TYPE_AW(LPAVIFILEINFO) /* AVICOMPRESSOPTIONS.dwFlags. determines presence of fields in below struct */ #define AVICOMPRESSF_INTERLEAVE 0x00000001 #define AVICOMPRESSF_DATARATE 0x00000002 #define AVICOMPRESSF_KEYFRAMES 0x00000004 #define AVICOMPRESSF_VALID 0x00000008 typedef struct { long fccType; /* stream type, for consistency */ long fccHandler; /* compressor */ long dwKeyFrameEvery; /* keyframe rate */ long dwQuality; /* compress quality 0-10,000 */ long dwBytesPerSecond; /* unsigned chars per second */ long dwFlags; /* flags... see below */ void* lpFormat; /* save format */ long cbFormat; void* lpParms; /* compressor options */ long cbParms; long dwInterleaveEvery; /* for non-video streams only */ } AVICOMPRESSOPTIONS, *LPAVICOMPRESSOPTIONS,*PAVICOMPRESSOPTIONS; typedef struct { long cbSize; // set to sizeof(COMPVARS) before // calling ICCompressorChoose long dwFlags; // see below... HIC hic; // HIC of chosen compressor long fccType; // basically ICTYPE_VIDEO long fccHandler; // handler of chosen compressor or // "" or "DIB " LPBITMAPINFO lpbiIn; // input format LPBITMAPINFO lpbiOut; // output format - will compress to this void* lpBitsOut; void* lpBitsPrev; long lFrame; long lKey; // key frames how often? long lDataRate; // desired data rate KB/Sec long lQ; // desired quality long lKeyCount; void* lpState; // state of compressor long cbState; // size of the state } COMPVARS, *PCOMPVARS; // FLAGS for dwFlags element of COMPVARS structure: #define AVIERR_OK 0 #define MAKE_AVIERR(error) MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x4000+error) #define AVIERR_UNSUPPORTED MAKE_AVIERR(101) #define AVIERR_BADFORMAT MAKE_AVIERR(102) #define AVIERR_MEMORY MAKE_AVIERR(103) #define AVIERR_INTERNAL MAKE_AVIERR(104) #define AVIERR_BADFLAGS MAKE_AVIERR(105) #define AVIERR_BADPARAM MAKE_AVIERR(106) #define AVIERR_BADSIZE MAKE_AVIERR(107) #define AVIERR_BADHANDLE MAKE_AVIERR(108) #define AVIERR_FILEREAD MAKE_AVIERR(109) #define AVIERR_FILEWRITE MAKE_AVIERR(110) #define AVIERR_FILEOPEN MAKE_AVIERR(111) #define AVIERR_COMPRESSOR MAKE_AVIERR(112) #define AVIERR_NOCOMPRESSOR MAKE_AVIERR(113) #define AVIERR_READONLY MAKE_AVIERR(114) #define AVIERR_NODATA MAKE_AVIERR(115) #define AVIERR_BUFFERTOOSMALL MAKE_AVIERR(116) #define AVIERR_CANTCOMPRESS MAKE_AVIERR(117) #define AVIERR_USERABORT MAKE_AVIERR(198) #define AVIERR_ERROR MAKE_AVIERR(199) #ifdef __cplusplus } #endif #endif /* __WINE_VFW_H */ bml-0.6.1/dllwrapper/wine/basetsd.h0000644042355400116100000000631011576362500014140 00000000000000/* * Compilers that uses ILP32, LP64 or P64 type models * for both Win32 and Win64 are supported by this file. */ #ifndef __WINE_BASETSD_H #define __WINE_BASETSD_H #ifdef __WINE__ #include "config.h" #endif /* defined(__WINE__) */ #ifdef __cplusplus extern "C" { #endif /* defined(__cplusplus) */ /* * Win32 was easy to implement under Unix since most (all?) 32-bit * Unices uses the same type model (ILP32) as Win32, where int, long * and pointer are 32-bit. * * Win64, however, will cause some problems when implemented under Unix. * Linux/{Alpha, Sparc64} and most (all?) other 64-bit Unices uses * the LP64 type model where int is 32-bit and long and pointer are * 64-bit. Win64 on the other hand uses the P64 (sometimes called LLP64) * type model where int and long are 32 bit and pointer is 64-bit. */ /* Type model indepent typedefs */ #ifndef __ICC typedef char __int8; typedef short __int16; typedef int __int32; typedef long long __int64; #endif typedef unsigned char __uint8; typedef unsigned short __uint16; typedef unsigned int __uint32; typedef unsigned long long __uint64; #if defined(_WIN64) typedef __uint32 __ptr32; typedef void *__ptr64; #else /* FIXME: defined(_WIN32) */ typedef void *__ptr32; typedef __uint64 __ptr64; #endif /* Always signed and 32 bit wide */ typedef __int32 LONG32; //typedef __int32 INT32; typedef LONG32 *PLONG32; //typedef INT32 *PINT32; /* Always unsigned and 32 bit wide */ typedef __uint32 ULONG32; typedef __uint32 DWORD32; typedef __uint32 UINT32; typedef ULONG32 *PULONG32; typedef DWORD32 *PDWORD32; typedef UINT32 *PUINT32; /* Always signed and 64 bit wide */ typedef __int64 LONG64; typedef __int64 INT64; typedef LONG64 *PLONG64; typedef INT64 *PINT64; /* Always unsigned and 64 bit wide */ typedef __uint64 ULONG64; typedef __uint64 DWORD64; typedef __uint64 UINT64; typedef ULONG64 *PULONG64; typedef DWORD64 *PDWORD64; typedef UINT64 *PUINT64; /* Win32 or Win64 dependent typedef/defines. */ #ifdef _WIN64 typedef __int64 INT_PTR, *PINT_PTR; typedef __uint64 UINT_PTR, *PUINT_PTR; #define MAXINT_PTR 0x7fffffffffffffff #define MININT_PTR 0x8000000000000000 #define MAXUINT_PTR 0xffffffffffffffff typedef __int32 HALF_PTR, *PHALF_PTR; typedef __int32 UHALF_PTR, *PUHALF_PTR; #define MAXHALF_PTR 0x7fffffff #define MINHALF_PTR 0x80000000 #define MAXUHALF_PTR 0xffffffff typedef __int64 LONG_PTR, *PLONG_PTR; typedef __uint64 ULONG_PTR, *PULONG_PTR; typedef __uint64 DWORD_PTR, *PDWORD_PTR; #else /* FIXME: defined(_WIN32) */ typedef __int32 INT_PTR, *PINT_PTR; typedef __uint32 UINT_PTR, *PUINT_PTR; #define MAXINT_PTR 0x7fffffff #define MININT_PTR 0x80000000 #define MAXUINT_PTR 0xffffffff typedef __int16 HALF_PTR, *PHALF_PTR; typedef __uint16 UHALF_PTR, *PUHALF_PTR; #define MAXUHALF_PTR 0xffff #define MAXHALF_PTR 0x7fff #define MINHALF_PTR 0x8000 typedef __int32 LONG_PTR, *PLONG_PTR; typedef __uint32 ULONG_PTR, *PULONG_PTR; typedef __uint32 DWORD_PTR, *PDWORD_PTR; #endif /* defined(_WIN64) || defined(_WIN32) */ typedef INT_PTR SSIZE_T, *PSSIZE_T; typedef UINT_PTR SIZE_T, *PSIZE_T; #ifdef __cplusplus } /* extern "C" */ #endif /* defined(__cplusplus) */ #endif /* !defined(__WINE_BASETSD_H) */ bml-0.6.1/dllwrapper/wine/windows.h0000644042355400116100000000123711576362500014210 00000000000000#ifndef __WINE_WINDOWS_H #define __WINE_WINDOWS_H #ifdef __cplusplus extern "C" { #endif #include "windef.h" #include "winbase.h" #include "winuser.h" #include "shell.h" #include "winreg.h" #include "winnetwk.h" #include "winver.h" #include "lzexpand.h" #include "shellapi.h" #include "ole2.h" #include "winnls.h" #include "objbase.h" #include "winspool.h" #if 0 Where does this belong? Nobody uses this stuff anyway. typedef struct { BYTE i; /* much more .... */ } KANJISTRUCT; typedef KANJISTRUCT *LPKANJISTRUCT; typedef KANJISTRUCT *NPKANJISTRUCT; typedef KANJISTRUCT *PKANJISTRUCT; #endif /* 0 */ #ifdef __cplusplus } #endif #endif /* __WINE_WINDOWS_H */ bml-0.6.1/dllwrapper/wine/wineacm.h0000644042355400116100000000355311576362500014144 00000000000000#ifndef WINEACM_H #define WINEACM_H /* -*- tab-width: 8; c-basic-offset: 4 -*- */ /*********************************************************************** * Wine specific - Win32 */ #include "msacmdrv.h" #ifdef __cplusplus extern "C" { #endif /* defined(__cplusplus) */ typedef struct _WINE_ACMDRIVERID *PWINE_ACMDRIVERID; typedef struct _WINE_ACMDRIVER *PWINE_ACMDRIVER; typedef struct _WINE_ACMOBJ { PWINE_ACMDRIVERID pACMDriverID; } WINE_ACMOBJ, *PWINE_ACMOBJ; typedef struct _WINE_ACMDRIVER { WINE_ACMOBJ obj; HDRVR hDrvr; DRIVERPROC pfnDriverProc; PWINE_ACMDRIVER pNextACMDriver; int iUsage; } WINE_ACMDRIVER; typedef struct _WINE_ACMSTREAM { WINE_ACMOBJ obj; PWINE_ACMDRIVER pDrv; ACMDRVSTREAMINSTANCE drvInst; HACMDRIVER hAcmDriver; } WINE_ACMSTREAM, *PWINE_ACMSTREAM; typedef struct _WINE_ACMDRIVERID { LPSTR pszFileName; WORD wFormatTag; HINSTANCE hInstModule; /* NULL if global */ DWORD dwProcessID; /* ID of process which installed a local driver */ WIN_BOOL bEnabled; PWINE_ACMDRIVER pACMDriverList; PWINE_ACMDRIVERID pNextACMDriverID; PWINE_ACMDRIVERID pPrevACMDriverID; } WINE_ACMDRIVERID; /* From internal.c */ extern HANDLE MSACM_hHeap; extern PWINE_ACMDRIVERID MSACM_pFirstACMDriverID; extern PWINE_ACMDRIVERID MSACM_pLastACMDriverID; PWINE_ACMDRIVERID MSACM_RegisterDriver(const char* pszFileName, WORD wFormatTag, HINSTANCE hinstModule); PWINE_ACMDRIVERID MSACM_UnregisterDriver(PWINE_ACMDRIVERID p); void MSACM_UnregisterAllDrivers(void); PWINE_ACMDRIVERID MSACM_GetDriverID(HACMDRIVERID hDriverID); PWINE_ACMDRIVER MSACM_GetDriver(HACMDRIVER hDriver); PWINE_ACMOBJ MSACM_GetObj(HACMOBJ hObj); #ifdef __cplusplus } /* extern "C" */ #endif /* defined(__cplusplus) */ #endif /* WINEACM_H */ bml-0.6.1/dllwrapper/wine/com.h0000644042355400116100000000325011576362500013271 00000000000000#ifndef AVIFILE_COM_H #define AVIFILE_COM_H #include /** * Internal functions and structures for COM emulation code. */ #ifndef WIN32 #ifdef __cplusplus extern "C" { #endif void* CoTaskMemAlloc(unsigned long cb); void CoTaskMemFree(void* cb); #ifndef GUID_TYPE #define GUID_TYPE typedef struct { uint32_t f1; uint16_t f2; uint16_t f3; uint8_t f4[8]; } GUID; #endif extern const GUID IID_IUnknown; extern const GUID IID_IClassFactory; typedef long (*GETCLASSOBJECT) (GUID* clsid, const GUID* iid, void** ppv); int RegisterComClass(const GUID* clsid, GETCLASSOBJECT gcs); int UnregisterComClass(const GUID* clsid, GETCLASSOBJECT gcs); #ifndef STDCALL #define STDCALL __attribute__((__stdcall__)) #endif struct IUnknown; struct IClassFactory; struct IUnknown_vt { long STDCALL (*QueryInterface)(struct IUnknown* _this, const GUID* iid, void** ppv); long STDCALL (*AddRef)(struct IUnknown* _this) ; long STDCALL (*Release)(struct IUnknown* _this) ; } ; typedef struct IUnknown { struct IUnknown_vt* vt; } IUnknown; struct IClassFactory_vt { long STDCALL (*QueryInterface)(struct IUnknown* _this, const GUID* iid, void** ppv); long STDCALL (*AddRef)(struct IUnknown* _this) ; long STDCALL (*Release)(struct IUnknown* _this) ; long STDCALL (*CreateInstance)(struct IClassFactory* _this, struct IUnknown* pUnkOuter, const GUID* riid, void** ppvObject); }; struct IClassFactory { struct IClassFactory_vt* vt; }; long CoCreateInstance(GUID* rclsid, struct IUnknown* pUnkOuter, long dwClsContext, const GUID* riid, void** ppv); #ifdef __cplusplus }; #endif /* __cplusplus */ #endif /* WIN32 */ #endif /* AVIFILE_COM_H */ bml-0.6.1/dllwrapper/wine/winbase.h0000644042355400116100000021537211576362500014155 00000000000000#ifndef __WINE_WINBASE_H #define __WINE_WINBASE_H #include "basetsd.h" #include "winnt.h" #include "winestring.h" #include "pshpack1.h" #ifdef __cplusplus extern "C" { #endif typedef struct tagCOORD { INT16 x; INT16 y; } COORD, *LPCOORD; /* Windows Exit Procedure flag values */ #define WEP_FREE_DLL 0 #define WEP_SYSTEM_EXIT 1 typedef DWORD CALLBACK (*LPTHREAD_START_ROUTINE)(LPVOID); #define EXCEPTION_DEBUG_EVENT 1 #define CREATE_THREAD_DEBUG_EVENT 2 #define CREATE_PROCESS_DEBUG_EVENT 3 #define EXIT_THREAD_DEBUG_EVENT 4 #define EXIT_PROCESS_DEBUG_EVENT 5 #define LOAD_DLL_DEBUG_EVENT 6 #define UNLOAD_DLL_DEBUG_EVENT 7 #define OUTPUT_DEBUG_STRING_EVENT 8 #define RIP_EVENT 9 typedef struct _EXCEPTION_DEBUG_INFO { EXCEPTION_RECORD ExceptionRecord; DWORD dwFirstChance; } EXCEPTION_DEBUG_INFO; typedef struct _CREATE_THREAD_DEBUG_INFO { HANDLE hThread; LPVOID lpThreadLocalBase; LPTHREAD_START_ROUTINE lpStartAddress; } CREATE_THREAD_DEBUG_INFO; typedef struct _CREATE_PROCESS_DEBUG_INFO { HANDLE hFile; HANDLE hProcess; HANDLE hThread; LPVOID lpBaseOfImage; DWORD dwDebugInfoFileOffset; DWORD nDebugInfoSize; LPVOID lpThreadLocalBase; LPTHREAD_START_ROUTINE lpStartAddress; LPVOID lpImageName; WORD fUnicode; } CREATE_PROCESS_DEBUG_INFO; typedef struct _EXIT_THREAD_DEBUG_INFO { DWORD dwExitCode; } EXIT_THREAD_DEBUG_INFO; typedef struct _EXIT_PROCESS_DEBUG_INFO { DWORD dwExitCode; } EXIT_PROCESS_DEBUG_INFO; typedef struct _LOAD_DLL_DEBUG_INFO { HANDLE hFile; LPVOID lpBaseOfDll; DWORD dwDebugInfoFileOffset; DWORD nDebugInfoSize; LPVOID lpImageName; WORD fUnicode; } LOAD_DLL_DEBUG_INFO; typedef struct _UNLOAD_DLL_DEBUG_INFO { LPVOID lpBaseOfDll; } UNLOAD_DLL_DEBUG_INFO; typedef struct _OUTPUT_DEBUG_STRING_INFO { LPSTR lpDebugStringData; WORD fUnicode; WORD nDebugStringLength; } OUTPUT_DEBUG_STRING_INFO; typedef struct _RIP_INFO { DWORD dwError; DWORD dwType; } RIP_INFO; typedef struct _DEBUG_EVENT { DWORD dwDebugEventCode; DWORD dwProcessId; DWORD dwThreadId; union { EXCEPTION_DEBUG_INFO Exception; CREATE_THREAD_DEBUG_INFO CreateThread; CREATE_PROCESS_DEBUG_INFO CreateProcessInfo; EXIT_THREAD_DEBUG_INFO ExitThread; EXIT_PROCESS_DEBUG_INFO ExitProcess; LOAD_DLL_DEBUG_INFO LoadDll; UNLOAD_DLL_DEBUG_INFO UnloadDll; OUTPUT_DEBUG_STRING_INFO DebugString; RIP_INFO RipInfo; } u; } DEBUG_EVENT, *LPDEBUG_EVENT; #define OFS_MAXPATHNAME 128 typedef struct { BYTE cBytes; BYTE fFixedDisk; WORD nErrCode; BYTE reserved[4]; BYTE szPathName[OFS_MAXPATHNAME]; } OFSTRUCT, *LPOFSTRUCT; #define OF_READ 0x0000 #define OF_WRITE 0x0001 #define OF_READWRITE 0x0002 #define OF_SHARE_COMPAT 0x0000 #define OF_SHARE_EXCLUSIVE 0x0010 #define OF_SHARE_DENY_WRITE 0x0020 #define OF_SHARE_DENY_READ 0x0030 #define OF_SHARE_DENY_NONE 0x0040 #define OF_PARSE 0x0100 #define OF_DELETE 0x0200 #define OF_VERIFY 0x0400 /* Used with OF_REOPEN */ #define OF_SEARCH 0x0400 /* Used without OF_REOPEN */ #define OF_CANCEL 0x0800 #define OF_CREATE 0x1000 #define OF_PROMPT 0x2000 #define OF_EXIST 0x4000 #define OF_REOPEN 0x8000 /* SetErrorMode values */ #define SEM_FAILCRITICALERRORS 0x0001 #define SEM_NOGPFAULTERRORBOX 0x0002 #define SEM_NOALIGNMENTFAULTEXCEPT 0x0004 #define SEM_NOOPENFILEERRORBOX 0x8000 /* CopyFileEx flags */ #define COPY_FILE_FAIL_IF_EXISTS 0x00000001 #define COPY_FILE_RESTARTABLE 0x00000002 #define COPY_FILE_OPEN_SOURCE_FOR_WRITE 0x00000004 /* GetTempFileName() Flags */ #define TF_FORCEDRIVE 0x80 #define DRIVE_CANNOTDETERMINE 0 #define DRIVE_DOESNOTEXIST 1 #define DRIVE_REMOVABLE 2 #define DRIVE_FIXED 3 #define DRIVE_REMOTE 4 /* Win32 additions */ #define DRIVE_CDROM 5 #define DRIVE_RAMDISK 6 /* The security attributes structure */ typedef struct _SECURITY_ATTRIBUTES { DWORD nLength; LPVOID lpSecurityDescriptor; WIN_BOOL bInheritHandle; } SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES; #ifndef _FILETIME_ #define _FILETIME_ /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */ typedef struct { DWORD dwLowDateTime; DWORD dwHighDateTime; } FILETIME, *LPFILETIME; #endif /* _FILETIME_ */ /* Find* structures */ typedef struct { DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DWORD nFileSizeLow; DWORD dwReserved0; DWORD dwReserved1; CHAR cFileName[260]; CHAR cAlternateFileName[14]; } WIN32_FIND_DATAA, *LPWIN32_FIND_DATAA; typedef struct { DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DWORD nFileSizeLow; DWORD dwReserved0; DWORD dwReserved1; WCHAR cFileName[260]; WCHAR cAlternateFileName[14]; } WIN32_FIND_DATAW, *LPWIN32_FIND_DATAW; DECL_WINELIB_TYPE_AW(WIN32_FIND_DATA) DECL_WINELIB_TYPE_AW(LPWIN32_FIND_DATA) typedef struct { LPVOID lpData; DWORD cbData; BYTE cbOverhead; BYTE iRegionIndex; WORD wFlags; union { struct { HANDLE hMem; DWORD dwReserved[3]; } Block; struct { DWORD dwCommittedSize; DWORD dwUnCommittedSize; LPVOID lpFirstBlock; LPVOID lpLastBlock; } Region; } Foo; } PROCESS_HEAP_ENTRY, *LPPROCESS_HEAP_ENTRY; #define PROCESS_HEAP_REGION 0x0001 #define PROCESS_HEAP_UNCOMMITTED_RANGE 0x0002 #define PROCESS_HEAP_ENTRY_BUSY 0x0004 #define PROCESS_HEAP_ENTRY_MOVEABLE 0x0010 #define PROCESS_HEAP_ENTRY_DDESHARE 0x0020 #define INVALID_HANDLE_VALUE16 ((HANDLE16) -1) #define INVALID_HANDLE_VALUE ((HANDLE) -1) #define TLS_OUT_OF_INDEXES ((DWORD)0xFFFFFFFF) /* comm */ #define CBR_110 0xFF10 #define CBR_300 0xFF11 #define CBR_600 0xFF12 #define CBR_1200 0xFF13 #define CBR_2400 0xFF14 #define CBR_4800 0xFF15 #define CBR_9600 0xFF16 #define CBR_14400 0xFF17 #define CBR_19200 0xFF18 #define CBR_38400 0xFF1B #define CBR_56000 0xFF1F #define CBR_128000 0xFF23 #define CBR_256000 0xFF27 #define NOPARITY 0 #define ODDPARITY 1 #define EVENPARITY 2 #define MARKPARITY 3 #define SPACEPARITY 4 #define ONESTOPBIT 0 #define ONE5STOPBITS 1 #define TWOSTOPBITS 2 #define IGNORE 0 #define INFINITE16 0xFFFF #define INFINITE 0xFFFFFFFF #define CE_RXOVER 0x0001 #define CE_OVERRUN 0x0002 #define CE_RXPARITY 0x0004 #define CE_FRAME 0x0008 #define CE_BREAK 0x0010 #define CE_CTSTO 0x0020 #define CE_DSRTO 0x0040 #define CE_RLSDTO 0x0080 #define CE_TXFULL 0x0100 #define CE_PTO 0x0200 #define CE_IOE 0x0400 #define CE_DNS 0x0800 #define CE_OOP 0x1000 #define CE_MODE 0x8000 #define IE_BADID -1 #define IE_OPEN -2 #define IE_NOPEN -3 #define IE_MEMORY -4 #define IE_DEFAULT -5 #define IE_HARDWARE -10 #define IE_BYTESIZE -11 #define IE_BAUDRATE -12 #define EV_RXCHAR 0x0001 #define EV_RXFLAG 0x0002 #define EV_TXEMPTY 0x0004 #define EV_CTS 0x0008 #define EV_DSR 0x0010 #define EV_RLSD 0x0020 #define EV_BREAK 0x0040 #define EV_ERR 0x0080 #define EV_RING 0x0100 #define EV_PERR 0x0200 #define EV_CTSS 0x0400 #define EV_DSRS 0x0800 #define EV_RLSDS 0x1000 #define EV_RINGTE 0x2000 #define EV_RingTe EV_RINGTE #define SETXOFF 1 #define SETXON 2 #define SETRTS 3 #define CLRRTS 4 #define SETDTR 5 #define CLRDTR 6 #define RESETDEV 7 #define SETBREAK 8 #define CLRBREAK 9 #define GETBASEIRQ 10 /* Purge functions for Comm Port */ #define PURGE_TXABORT 0x0001 /* Kill the pending/current writes to the comm port */ #define PURGE_RXABORT 0x0002 /*Kill the pending/current reads to the comm port */ #define PURGE_TXCLEAR 0x0004 /* Kill the transmit queue if there*/ #define PURGE_RXCLEAR 0x0008 /* Kill the typeahead buffer if there*/ /* Modem Status Flags */ #define MS_CTS_ON ((DWORD)0x0010) #define MS_DSR_ON ((DWORD)0x0020) #define MS_RING_ON ((DWORD)0x0040) #define MS_RLSD_ON ((DWORD)0x0080) #define RTS_CONTROL_DISABLE 0 #define RTS_CONTROL_ENABLE 1 #define RTS_CONTROL_HANDSHAKE 2 #define RTS_CONTROL_TOGGLE 3 #define DTR_CONTROL_DISABLE 0 #define DTR_CONTROL_ENABLE 1 #define DTR_CONTROL_HANDSHAKE 2 #define CSTF_CTSHOLD 0x01 #define CSTF_DSRHOLD 0x02 #define CSTF_RLSDHOLD 0x04 #define CSTF_XOFFHOLD 0x08 #define CSTF_XOFFSENT 0x10 #define CSTF_EOF 0x20 #define CSTF_TXIM 0x40 #define MAKEINTRESOURCEA(i) (LPSTR)((DWORD)((WORD)(i))) #define MAKEINTRESOURCEW(i) (LPWSTR)((DWORD)((WORD)(i))) #define MAKEINTRESOURCE WINELIB_NAME_AW(MAKEINTRESOURCE) /* Predefined resource types */ #define RT_CURSORA MAKEINTRESOURCEA(1) #define RT_CURSORW MAKEINTRESOURCEW(1) #define RT_CURSOR WINELIB_NAME_AW(RT_CURSOR) #define RT_BITMAPA MAKEINTRESOURCEA(2) #define RT_BITMAPW MAKEINTRESOURCEW(2) #define RT_BITMAP WINELIB_NAME_AW(RT_BITMAP) #define RT_ICONA MAKEINTRESOURCEA(3) #define RT_ICONW MAKEINTRESOURCEW(3) #define RT_ICON WINELIB_NAME_AW(RT_ICON) #define RT_MENUA MAKEINTRESOURCEA(4) #define RT_MENUW MAKEINTRESOURCEW(4) #define RT_MENU WINELIB_NAME_AW(RT_MENU) #define RT_DIALOGA MAKEINTRESOURCEA(5) #define RT_DIALOGW MAKEINTRESOURCEW(5) #define RT_DIALOG WINELIB_NAME_AW(RT_DIALOG) #define RT_STRINGA MAKEINTRESOURCEA(6) #define RT_STRINGW MAKEINTRESOURCEW(6) #define RT_STRING WINELIB_NAME_AW(RT_STRING) #define RT_FONTDIRA MAKEINTRESOURCEA(7) #define RT_FONTDIRW MAKEINTRESOURCEW(7) #define RT_FONTDIR WINELIB_NAME_AW(RT_FONTDIR) #define RT_FONTA MAKEINTRESOURCEA(8) #define RT_FONTW MAKEINTRESOURCEW(8) #define RT_FONT WINELIB_NAME_AW(RT_FONT) #define RT_ACCELERATORA MAKEINTRESOURCEA(9) #define RT_ACCELERATORW MAKEINTRESOURCEW(9) #define RT_ACCELERATOR WINELIB_NAME_AW(RT_ACCELERATOR) #define RT_RCDATAA MAKEINTRESOURCEA(10) #define RT_RCDATAW MAKEINTRESOURCEW(10) #define RT_RCDATA WINELIB_NAME_AW(RT_RCDATA) #define RT_MESSAGELISTA MAKEINTRESOURCEA(11) #define RT_MESSAGELISTW MAKEINTRESOURCEW(11) #define RT_MESSAGELIST WINELIB_NAME_AW(RT_MESSAGELIST) #define RT_GROUP_CURSORA MAKEINTRESOURCEA(12) #define RT_GROUP_CURSORW MAKEINTRESOURCEW(12) #define RT_GROUP_CURSOR WINELIB_NAME_AW(RT_GROUP_CURSOR) #define RT_GROUP_ICONA MAKEINTRESOURCEA(14) #define RT_GROUP_ICONW MAKEINTRESOURCEW(14) #define RT_GROUP_ICON WINELIB_NAME_AW(RT_GROUP_ICON) #define LMEM_FIXED 0 #define LMEM_MOVEABLE 0x0002 #define LMEM_NOCOMPACT 0x0010 #define LMEM_NODISCARD 0x0020 #define LMEM_ZEROINIT 0x0040 #define LMEM_MODIFY 0x0080 #define LMEM_DISCARDABLE 0x0F00 #define LMEM_DISCARDED 0x4000 #define LMEM_LOCKCOUNT 0x00FF #define LPTR (LMEM_FIXED | LMEM_ZEROINIT) #define GMEM_FIXED 0x0000 #define GMEM_MOVEABLE 0x0002 #define GMEM_NOCOMPACT 0x0010 #define GMEM_NODISCARD 0x0020 #define GMEM_ZEROINIT 0x0040 #define GMEM_MODIFY 0x0080 #define GMEM_DISCARDABLE 0x0100 #define GMEM_NOT_BANKED 0x1000 #define GMEM_SHARE 0x2000 #define GMEM_DDESHARE 0x2000 #define GMEM_NOTIFY 0x4000 #define GMEM_LOWER GMEM_NOT_BANKED #define GMEM_DISCARDED 0x4000 #define GMEM_LOCKCOUNT 0x00ff #define GMEM_INVALID_HANDLE 0x8000 #define GHND (GMEM_MOVEABLE | GMEM_ZEROINIT) #define GPTR (GMEM_FIXED | GMEM_ZEROINIT) typedef struct tagMEMORYSTATUS { DWORD dwLength; DWORD dwMemoryLoad; DWORD dwTotalPhys; DWORD dwAvailPhys; DWORD dwTotalPageFile; DWORD dwAvailPageFile; DWORD dwTotalVirtual; DWORD dwAvailVirtual; } MEMORYSTATUS, *LPMEMORYSTATUS; #ifndef NOLOGERROR /* LogParamError and LogError values */ /* Error modifier bits */ #define ERR_WARNING 0x8000 #define ERR_PARAM 0x4000 #define ERR_SIZE_MASK 0x3000 #define ERR_BYTE 0x1000 #define ERR_WORD 0x2000 #define ERR_DWORD 0x3000 /* LogParamError() values */ /* Generic parameter values */ #define ERR_BAD_VALUE 0x6001 #define ERR_BAD_FLAGS 0x6002 #define ERR_BAD_INDEX 0x6003 #define ERR_BAD_DVALUE 0x7004 #define ERR_BAD_DFLAGS 0x7005 #define ERR_BAD_DINDEX 0x7006 #define ERR_BAD_PTR 0x7007 #define ERR_BAD_FUNC_PTR 0x7008 #define ERR_BAD_SELECTOR 0x6009 #define ERR_BAD_STRING_PTR 0x700a #define ERR_BAD_HANDLE 0x600b /* KERNEL parameter errors */ #define ERR_BAD_HINSTANCE 0x6020 #define ERR_BAD_HMODULE 0x6021 #define ERR_BAD_GLOBAL_HANDLE 0x6022 #define ERR_BAD_LOCAL_HANDLE 0x6023 #define ERR_BAD_ATOM 0x6024 #define ERR_BAD_HFILE 0x6025 /* USER parameter errors */ #define ERR_BAD_HWND 0x6040 #define ERR_BAD_HMENU 0x6041 #define ERR_BAD_HCURSOR 0x6042 #define ERR_BAD_HICON 0x6043 #define ERR_BAD_HDWP 0x6044 #define ERR_BAD_CID 0x6045 #define ERR_BAD_HDRVR 0x6046 /* GDI parameter errors */ #define ERR_BAD_COORDS 0x7060 #define ERR_BAD_GDI_OBJECT 0x6061 #define ERR_BAD_HDC 0x6062 #define ERR_BAD_HPEN 0x6063 #define ERR_BAD_HFONT 0x6064 #define ERR_BAD_HBRUSH 0x6065 #define ERR_BAD_HBITMAP 0x6066 #define ERR_BAD_HRGN 0x6067 #define ERR_BAD_HPALETTE 0x6068 #define ERR_BAD_HMETAFILE 0x6069 /* LogError() values */ /* KERNEL errors */ #define ERR_GALLOC 0x0001 #define ERR_GREALLOC 0x0002 #define ERR_GLOCK 0x0003 #define ERR_LALLOC 0x0004 #define ERR_LREALLOC 0x0005 #define ERR_LLOCK 0x0006 #define ERR_ALLOCRES 0x0007 #define ERR_LOCKRES 0x0008 #define ERR_LOADMODULE 0x0009 /* USER errors */ #define ERR_CREATEDLG 0x0040 #define ERR_CREATEDLG2 0x0041 #define ERR_REGISTERCLASS 0x0042 #define ERR_DCBUSY 0x0043 #define ERR_CREATEWND 0x0044 #define ERR_STRUCEXTRA 0x0045 #define ERR_LOADSTR 0x0046 #define ERR_LOADMENU 0x0047 #define ERR_NESTEDBEGINPAINT 0x0048 #define ERR_BADINDEX 0x0049 #define ERR_CREATEMENU 0x004a /* GDI errors */ #define ERR_CREATEDC 0x0080 #define ERR_CREATEMETA 0x0081 #define ERR_DELOBJSELECTED 0x0082 #define ERR_SELBITMAP 0x0083 /* Debugging support (DEBUG SYSTEM ONLY) */ typedef struct { UINT16 flags; DWORD dwOptions WINE_PACKED; DWORD dwFilter WINE_PACKED; CHAR achAllocModule[8] /*WINE_PACKED*/; DWORD dwAllocBreak WINE_PACKED; DWORD dwAllocCount WINE_PACKED; } WINDEBUGINFO, *LPWINDEBUGINFO; /* WINDEBUGINFO flags values */ #define WDI_OPTIONS 0x0001 #define WDI_FILTER 0x0002 #define WDI_ALLOCBREAK 0x0004 /* dwOptions values */ #define DBO_CHECKHEAP 0x0001 #define DBO_BUFFERFILL 0x0004 #define DBO_DISABLEGPTRAPPING 0x0010 #define DBO_CHECKFREE 0x0020 #define DBO_SILENT 0x8000 #define DBO_TRACEBREAK 0x2000 #define DBO_WARNINGBREAK 0x1000 #define DBO_NOERRORBREAK 0x0800 #define DBO_NOFATALBREAK 0x0400 #define DBO_INT3BREAK 0x0100 /* DebugOutput flags values */ #define DBF_TRACE 0x0000 #define DBF_WARNING 0x4000 #define DBF_ERROR 0x8000 #define DBF_FATAL 0xc000 /* dwFilter values */ #define DBF_KERNEL 0x1000 #define DBF_KRN_MEMMAN 0x0001 #define DBF_KRN_LOADMODULE 0x0002 #define DBF_KRN_SEGMENTLOAD 0x0004 #define DBF_USER 0x0800 #define DBF_GDI 0x0400 #define DBF_MMSYSTEM 0x0040 #define DBF_PENWIN 0x0020 #define DBF_APPLICATION 0x0008 #define DBF_DRIVER 0x0010 #endif /* NOLOGERROR */ typedef struct { WORD wYear; WORD wMonth; WORD wDayOfWeek; WORD wDay; WORD wHour; WORD wMinute; WORD wSecond; WORD wMilliseconds; } SYSTEMTIME, *LPSYSTEMTIME; /* The 'overlapped' data structure used by async I/O functions. */ typedef struct { DWORD Internal; DWORD InternalHigh; DWORD Offset; DWORD OffsetHigh; HANDLE hEvent; } OVERLAPPED, *LPOVERLAPPED; /* Process startup information. */ /* STARTUPINFO.dwFlags */ #define STARTF_USESHOWWINDOW 0x00000001 #define STARTF_USESIZE 0x00000002 #define STARTF_USEPOSITION 0x00000004 #define STARTF_USECOUNTCHARS 0x00000008 #define STARTF_USEFILLATTRIBUTE 0x00000010 #define STARTF_RUNFULLSCREEN 0x00000020 #define STARTF_FORCEONFEEDBACK 0x00000040 #define STARTF_FORCEOFFFEEDBACK 0x00000080 #define STARTF_USESTDHANDLES 0x00000100 #define STARTF_USEHOTKEY 0x00000200 typedef struct { DWORD cb; /* 00: size of struct */ LPSTR lpReserved; /* 04: */ LPSTR lpDesktop; /* 08: */ LPSTR lpTitle; /* 0c: */ DWORD dwX; /* 10: */ DWORD dwY; /* 14: */ DWORD dwXSize; /* 18: */ DWORD dwYSize; /* 1c: */ DWORD dwXCountChars; /* 20: */ DWORD dwYCountChars; /* 24: */ DWORD dwFillAttribute; /* 28: */ DWORD dwFlags; /* 2c: */ WORD wShowWindow; /* 30: */ WORD cbReserved2; /* 32: */ BYTE *lpReserved2; /* 34: */ HANDLE hStdInput; /* 38: */ HANDLE hStdOutput; /* 3c: */ HANDLE hStdError; /* 40: */ } STARTUPINFOA, *LPSTARTUPINFOA; typedef struct { DWORD cb; LPWSTR lpReserved; LPWSTR lpDesktop; LPWSTR lpTitle; DWORD dwX; DWORD dwY; DWORD dwXSize; DWORD dwYSize; DWORD dwXCountChars; DWORD dwYCountChars; DWORD dwFillAttribute; DWORD dwFlags; WORD wShowWindow; WORD cbReserved2; BYTE *lpReserved2; HANDLE hStdInput; HANDLE hStdOutput; HANDLE hStdError; } STARTUPINFOW, *LPSTARTUPINFOW; DECL_WINELIB_TYPE_AW(STARTUPINFO) DECL_WINELIB_TYPE_AW(LPSTARTUPINFO) typedef struct { HANDLE hProcess; HANDLE hThread; DWORD dwProcessId; DWORD dwThreadId; } PROCESS_INFORMATION,*LPPROCESS_INFORMATION; typedef struct { LONG Bias; WCHAR StandardName[32]; SYSTEMTIME StandardDate; LONG StandardBias; WCHAR DaylightName[32]; SYSTEMTIME DaylightDate; LONG DaylightBias; } TIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION; #define TIME_ZONE_ID_UNKNOWN 0 #define TIME_ZONE_ID_STANDARD 1 #define TIME_ZONE_ID_DAYLIGHT 2 /* CreateProcess: dwCreationFlag values */ #define DEBUG_PROCESS 0x00000001 #define DEBUG_ONLY_THIS_PROCESS 0x00000002 #define CREATE_SUSPENDED 0x00000004 #define DETACHED_PROCESS 0x00000008 #define CREATE_NEW_CONSOLE 0x00000010 #define NORMAL_PRIORITY_CLASS 0x00000020 #define IDLE_PRIORITY_CLASS 0x00000040 #define HIGH_PRIORITY_CLASS 0x00000080 #define REALTIME_PRIORITY_CLASS 0x00000100 #define CREATE_NEW_PROCESS_GROUP 0x00000200 #define CREATE_UNICODE_ENVIRONMENT 0x00000400 #define CREATE_SEPARATE_WOW_VDM 0x00000800 #define CREATE_SHARED_WOW_VDM 0x00001000 #define CREATE_DEFAULT_ERROR_MODE 0x04000000 #define CREATE_NO_WINDOW 0x08000000 #define PROFILE_USER 0x10000000 #define PROFILE_KERNEL 0x20000000 #define PROFILE_SERVER 0x40000000 /* File object type definitions */ #define FILE_TYPE_UNKNOWN 0 #define FILE_TYPE_DISK 1 #define FILE_TYPE_CHAR 2 #define FILE_TYPE_PIPE 3 #define FILE_TYPE_REMOTE 32768 /* File creation flags */ #define FILE_FLAG_WRITE_THROUGH 0x80000000UL #define FILE_FLAG_OVERLAPPED 0x40000000L #define FILE_FLAG_NO_BUFFERING 0x20000000L #define FILE_FLAG_RANDOM_ACCESS 0x10000000L #define FILE_FLAG_SEQUENTIAL_SCAN 0x08000000L #define FILE_FLAG_DELETE_ON_CLOSE 0x04000000L #define FILE_FLAG_BACKUP_SEMANTICS 0x02000000L #define FILE_FLAG_POSIX_SEMANTICS 0x01000000L #define CREATE_NEW 1 #define CREATE_ALWAYS 2 #define OPEN_EXISTING 3 #define OPEN_ALWAYS 4 #define TRUNCATE_EXISTING 5 /* Standard handle identifiers */ #define STD_INPUT_HANDLE ((DWORD) -10) #define STD_OUTPUT_HANDLE ((DWORD) -11) #define STD_ERROR_HANDLE ((DWORD) -12) typedef struct { int dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; int dwVolumeSerialNumber; int nFileSizeHigh; int nFileSizeLow; int nNumberOfLinks; int nFileIndexHigh; int nFileIndexLow; } BY_HANDLE_FILE_INFORMATION ; typedef struct _SYSTEM_POWER_STATUS { WIN_BOOL16 ACLineStatus; BYTE BatteryFlag; BYTE BatteryLifePercent; BYTE reserved; DWORD BatteryLifeTime; DWORD BatteryFullLifeTime; } SYSTEM_POWER_STATUS, *LPSYSTEM_POWER_STATUS; typedef struct _MEMORY_BASIC_INFORMATION { LPVOID BaseAddress; LPVOID AllocationBase; DWORD AllocationProtect; DWORD RegionSize; DWORD State; DWORD Protect; DWORD Type; } MEMORY_BASIC_INFORMATION,*LPMEMORY_BASIC_INFORMATION; typedef WIN_BOOL CALLBACK (*CODEPAGE_ENUMPROCA)(LPSTR); typedef WIN_BOOL CALLBACK (*CODEPAGE_ENUMPROCW)(LPWSTR); DECL_WINELIB_TYPE_AW(CODEPAGE_ENUMPROC) typedef WIN_BOOL CALLBACK (*LOCALE_ENUMPROCA)(LPSTR); typedef WIN_BOOL CALLBACK (*LOCALE_ENUMPROCW)(LPWSTR); DECL_WINELIB_TYPE_AW(LOCALE_ENUMPROC) typedef struct tagSYSTEM_INFO { union { DWORD dwOemId; /* Obsolete field - do not use */ struct { WORD wProcessorArchitecture; WORD wReserved; } DUMMYSTRUCTNAME; } DUMMYUNIONNAME; DWORD dwPageSize; LPVOID lpMinimumApplicationAddress; LPVOID lpMaximumApplicationAddress; DWORD dwActiveProcessorMask; DWORD dwNumberOfProcessors; DWORD dwProcessorType; DWORD dwAllocationGranularity; WORD wProcessorLevel; WORD wProcessorRevision; } SYSTEM_INFO, *LPSYSTEM_INFO; /* {G,S}etPriorityClass */ #define NORMAL_PRIORITY_CLASS 0x00000020 #define IDLE_PRIORITY_CLASS 0x00000040 #define HIGH_PRIORITY_CLASS 0x00000080 #define REALTIME_PRIORITY_CLASS 0x00000100 typedef WIN_BOOL CALLBACK (*ENUMRESTYPEPROCA)(HMODULE,LPSTR,LONG); typedef WIN_BOOL CALLBACK (*ENUMRESTYPEPROCW)(HMODULE,LPWSTR,LONG); typedef WIN_BOOL CALLBACK (*ENUMRESNAMEPROCA)(HMODULE,LPCSTR,LPSTR,LONG); typedef WIN_BOOL CALLBACK (*ENUMRESNAMEPROCW)(HMODULE,LPCWSTR,LPWSTR,LONG); typedef WIN_BOOL CALLBACK (*ENUMRESLANGPROCA)(HMODULE,LPCSTR,LPCSTR,WORD,LONG); typedef WIN_BOOL CALLBACK (*ENUMRESLANGPROCW)(HMODULE,LPCWSTR,LPCWSTR,WORD,LONG); DECL_WINELIB_TYPE_AW(ENUMRESTYPEPROC) DECL_WINELIB_TYPE_AW(ENUMRESNAMEPROC) DECL_WINELIB_TYPE_AW(ENUMRESLANGPROC) /* flags that can be passed to LoadLibraryEx */ #define DONT_RESOLVE_DLL_REFERENCES 0x00000001 #define LOAD_LIBRARY_AS_DATAFILE 0x00000002 #define LOAD_WITH_ALTERED_SEARCH_PATH 0x00000008 /* ifdef _x86_ ... */ typedef struct _LDT_ENTRY { WORD LimitLow; WORD BaseLow; union { struct { BYTE BaseMid; BYTE Flags1;/*Declare as bytes to avoid alignment problems */ BYTE Flags2; BYTE BaseHi; } Bytes; struct { unsigned BaseMid : 8; unsigned Type : 5; unsigned Dpl : 2; unsigned Pres : 1; unsigned LimitHi : 4; unsigned Sys : 1; unsigned Reserved_0 : 1; unsigned Default_Big : 1; unsigned Granularity : 1; unsigned BaseHi : 8; } Bits; } HighWord; } LDT_ENTRY, *LPLDT_ENTRY; typedef enum _GET_FILEEX_INFO_LEVELS { GetFileExInfoStandard } GET_FILEEX_INFO_LEVELS; typedef struct _WIN32_FILE_ATTRIBUTES_DATA { DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DWORD nFileSizeLow; } WIN32_FILE_ATTRIBUTE_DATA, *LPWIN32_FILE_ATTRIBUTE_DATA; typedef struct _DllVersionInfo { DWORD cbSize; DWORD dwMajorVersion; DWORD dwMinorVersion; DWORD dwBuildNumber; DWORD dwPlatformID; } DLLVERSIONINFO; /* * This one seems to be a Win32 only definition. It also is defined with * WINAPI instead of CALLBACK in the windows headers. */ typedef DWORD WINAPI (*LPPROGRESS_ROUTINE)(LARGE_INTEGER, LARGE_INTEGER, LARGE_INTEGER, LARGE_INTEGER, DWORD, DWORD, HANDLE, HANDLE, LPVOID); #define WAIT_FAILED 0xffffffff #define WAIT_OBJECT_0 0 #define WAIT_ABANDONED STATUS_ABANDONED_WAIT_0 #define WAIT_ABANDONED_0 STATUS_ABANDONED_WAIT_0 #define WAIT_IO_COMPLETION STATUS_USER_APC #define WAIT_TIMEOUT STATUS_TIMEOUT #define STILL_ACTIVE STATUS_PENDING #define PAGE_NOACCESS 0x01 #define PAGE_READONLY 0x02 #define PAGE_READWRITE 0x04 #define PAGE_WRITECOPY 0x08 #define PAGE_EXECUTE 0x10 #define PAGE_EXECUTE_READ 0x20 #define PAGE_EXECUTE_READWRITE 0x40 #define PAGE_EXECUTE_WRITECOPY 0x80 #define PAGE_GUARD 0x100 #define PAGE_NOCACHE 0x200 #define MEM_COMMIT 0x00001000 #define MEM_RESERVE 0x00002000 #define MEM_DECOMMIT 0x00004000 #define MEM_RELEASE 0x00008000 #define MEM_FREE 0x00010000 #define MEM_PRIVATE 0x00020000 #define MEM_MAPPED 0x00040000 #define MEM_TOP_DOWN 0x00100000 #ifdef __WINE__ #define MEM_SYSTEM 0x80000000 #endif #define SEC_FILE 0x00800000 #define SEC_IMAGE 0x01000000 #define SEC_RESERVE 0x04000000 #define SEC_COMMIT 0x08000000 #define SEC_NOCACHE 0x10000000 #define FILE_BEGIN 0 #define FILE_CURRENT 1 #define FILE_END 2 #define FILE_CASE_SENSITIVE_SEARCH 0x00000001 #define FILE_CASE_PRESERVED_NAMES 0x00000002 #define FILE_UNICODE_ON_DISK 0x00000004 #define FILE_PERSISTENT_ACLS 0x00000008 #define FILE_MAP_COPY 0x00000001 #define FILE_MAP_WRITE 0x00000002 #define FILE_MAP_READ 0x00000004 #define FILE_MAP_ALL_ACCESS 0x000f001f #define MOVEFILE_REPLACE_EXISTING 0x00000001 #define MOVEFILE_COPY_ALLOWED 0x00000002 #define MOVEFILE_DELAY_UNTIL_REBOOT 0x00000004 #define FS_CASE_SENSITIVE FILE_CASE_SENSITIVE_SEARCH #define FS_CASE_IS_PRESERVED FILE_CASE_PRESERVED_NAMES #define FS_UNICODE_STORED_ON_DISK FILE_UNICODE_ON_DISK #define EXCEPTION_ACCESS_VIOLATION STATUS_ACCESS_VIOLATION #define EXCEPTION_DATATYPE_MISALIGNMENT STATUS_DATATYPE_MISALIGNMENT #define EXCEPTION_BREAKPOINT STATUS_BREAKPOINT #define EXCEPTION_SINGLE_STEP STATUS_SINGLE_STEP #define EXCEPTION_ARRAY_BOUNDS_EXCEEDED STATUS_ARRAY_BOUNDS_EXCEEDED #define EXCEPTION_FLT_DENORMAL_OPERAND STATUS_FLOAT_DENORMAL_OPERAND #define EXCEPTION_FLT_DIVIDE_BY_ZERO STATUS_FLOAT_DIVIDE_BY_ZERO #define EXCEPTION_FLT_INEXACT_RESULT STATUS_FLOAT_INEXACT_RESULT #define EXCEPTION_FLT_INVALID_OPERATION STATUS_FLOAT_INVALID_OPERATION #define EXCEPTION_FLT_OVERFLOW STATUS_FLOAT_OVERFLOW #define EXCEPTION_FLT_STACK_CHECK STATUS_FLOAT_STACK_CHECK #define EXCEPTION_FLT_UNDERFLOW STATUS_FLOAT_UNDERFLOW #define EXCEPTION_INT_DIVIDE_BY_ZERO STATUS_INTEGER_DIVIDE_BY_ZERO #define EXCEPTION_INT_OVERFLOW STATUS_INTEGER_OVERFLOW #define EXCEPTION_PRIV_INSTRUCTION STATUS_PRIVILEGED_INSTRUCTION #define EXCEPTION_IN_PAGE_ERROR STATUS_IN_PAGE_ERROR #define EXCEPTION_ILLEGAL_INSTRUCTION STATUS_ILLEGAL_INSTRUCTION #define EXCEPTION_NONCONTINUABLE_EXCEPTION STATUS_NONCONTINUABLE_EXCEPTION #define EXCEPTION_STACK_OVERFLOW STATUS_STACK_OVERFLOW #define EXCEPTION_INVALID_DISPOSITION STATUS_INVALID_DISPOSITION #define EXCEPTION_GUARD_PAGE STATUS_GUARD_PAGE_VIOLATION #define EXCEPTION_INVALID_HANDLE STATUS_INVALID_HANDLE #define CONTROL_C_EXIT STATUS_CONTROL_C_EXIT /* Wine extension; Windows doesn't have a name for this code */ #define EXCEPTION_CRITICAL_SECTION_WAIT 0xc0000194 #define DUPLICATE_CLOSE_SOURCE 0x00000001 #define DUPLICATE_SAME_ACCESS 0x00000002 #define HANDLE_FLAG_INHERIT 0x00000001 #define HANDLE_FLAG_PROTECT_FROM_CLOSE 0x00000002 #define HINSTANCE_ERROR 32 #define THREAD_PRIORITY_LOWEST THREAD_BASE_PRIORITY_MIN #define THREAD_PRIORITY_BELOW_NORMAL (THREAD_PRIORITY_LOWEST+1) #define THREAD_PRIORITY_NORMAL 0 #define THREAD_PRIORITY_HIGHEST THREAD_BASE_PRIORITY_MAX #define THREAD_PRIORITY_ABOVE_NORMAL (THREAD_PRIORITY_HIGHEST-1) #define THREAD_PRIORITY_ERROR_RETURN (0x7fffffff) #define THREAD_PRIORITY_TIME_CRITICAL THREAD_BASE_PRIORITY_LOWRT #define THREAD_PRIORITY_IDLE THREAD_BASE_PRIORITY_IDLE /* Could this type be considered opaque? */ typedef struct { LPVOID DebugInfo; LONG LockCount; LONG RecursionCount; HANDLE OwningThread; HANDLE LockSemaphore; DWORD Reserved; }CRITICAL_SECTION; #ifdef __WINE__ #define CRITICAL_SECTION_INIT { 0, -1, 0, 0, 0, 0 } #endif typedef struct { DWORD dwOSVersionInfoSize; DWORD dwMajorVersion; DWORD dwMinorVersion; DWORD dwBuildNumber; DWORD dwPlatformId; CHAR szCSDVersion[128]; } OSVERSIONINFO16; typedef struct { DWORD dwOSVersionInfoSize; DWORD dwMajorVersion; DWORD dwMinorVersion; DWORD dwBuildNumber; DWORD dwPlatformId; CHAR szCSDVersion[128]; } OSVERSIONINFOA; typedef struct { DWORD dwOSVersionInfoSize; DWORD dwMajorVersion; DWORD dwMinorVersion; DWORD dwBuildNumber; DWORD dwPlatformId; WCHAR szCSDVersion[128]; } OSVERSIONINFOW; DECL_WINELIB_TYPE_AW(OSVERSIONINFO) #define VER_PLATFORM_WIN32s 0 #define VER_PLATFORM_WIN32_WINDOWS 1 #define VER_PLATFORM_WIN32_NT 2 typedef struct tagCOMSTAT { DWORD status; DWORD cbInQue; DWORD cbOutQue; } COMSTAT,*LPCOMSTAT; typedef struct tagDCB { DWORD DCBlength; DWORD BaudRate; unsigned fBinary :1; unsigned fParity :1; unsigned fOutxCtsFlow :1; unsigned fOutxDsrFlow :1; unsigned fDtrControl :2; unsigned fDsrSensitivity :1; unsigned fTXContinueOnXoff :1; unsigned fOutX :1; unsigned fInX :1; unsigned fErrorChar :1; unsigned fNull :1; unsigned fRtsControl :2; unsigned fAbortOnError :1; unsigned fDummy2 :17; WORD wReserved; WORD XonLim; WORD XoffLim; BYTE ByteSize; BYTE Parity; BYTE StopBits; char XonChar; char XoffChar; char ErrorChar; char EofChar; char EvtChar; } DCB, *LPDCB; typedef struct tagCOMMTIMEOUTS { DWORD ReadIntervalTimeout; DWORD ReadTotalTimeoutMultiplier; DWORD ReadTotalTimeoutConstant; DWORD WriteTotalTimeoutMultiplier; DWORD WriteTotalTimeoutConstant; } COMMTIMEOUTS,*LPCOMMTIMEOUTS; #include "poppack.h" typedef void CALLBACK (*PAPCFUNC)(ULONG_PTR); typedef void CALLBACK (*PTIMERAPCROUTINE)(LPVOID,DWORD,DWORD); WIN_BOOL WINAPI ClearCommError(INT,LPDWORD,LPCOMSTAT); WIN_BOOL WINAPI BuildCommDCBA(LPCSTR,LPDCB); WIN_BOOL WINAPI BuildCommDCBW(LPCWSTR,LPDCB); #define BuildCommDCB WINELIB_NAME_AW(BuildCommDCB) WIN_BOOL WINAPI BuildCommDCBAndTimeoutsA(LPCSTR,LPDCB,LPCOMMTIMEOUTS); WIN_BOOL WINAPI BuildCommDCBAndTimeoutsW(LPCWSTR,LPDCB,LPCOMMTIMEOUTS); #define BuildCommDCBAndTimeouts WINELIB_NAME_AW(BuildCommDCBAndTimeouts) WIN_BOOL WINAPI GetCommTimeouts(HANDLE,LPCOMMTIMEOUTS); WIN_BOOL WINAPI SetCommTimeouts(HANDLE,LPCOMMTIMEOUTS); WIN_BOOL WINAPI GetCommState(INT,LPDCB); WIN_BOOL WINAPI SetCommState(INT,LPDCB); WIN_BOOL WINAPI TransmitCommChar(INT,CHAR); WIN_BOOL WINAPI SetupComm(HANDLE, DWORD, DWORD); WIN_BOOL WINAPI GetCommProperties(HANDLE, LPDCB *); /*DWORD WINAPI GetVersion( void );*/ WIN_BOOL16 WINAPI GetVersionEx16(OSVERSIONINFO16*); WIN_BOOL WINAPI GetVersionExA(OSVERSIONINFOA*); WIN_BOOL WINAPI GetVersionExW(OSVERSIONINFOW*); #define GetVersionEx WINELIB_NAME_AW(GetVersionEx) /*int WinMain(HINSTANCE, HINSTANCE prev, char *cmd, int show);*/ void WINAPI DeleteCriticalSection(CRITICAL_SECTION *lpCrit); void WINAPI EnterCriticalSection(CRITICAL_SECTION *lpCrit); WIN_BOOL WINAPI TryEnterCriticalSection(CRITICAL_SECTION *lpCrit); void WINAPI InitializeCriticalSection(CRITICAL_SECTION *lpCrit); void WINAPI LeaveCriticalSection(CRITICAL_SECTION *lpCrit); void WINAPI MakeCriticalSectionGlobal(CRITICAL_SECTION *lpCrit); WIN_BOOL WINAPI GetProcessWorkingSetSize(HANDLE,LPDWORD,LPDWORD); DWORD WINAPI QueueUserAPC(PAPCFUNC,HANDLE,ULONG_PTR); void WINAPI RaiseException(DWORD,DWORD,DWORD,const LPDWORD); WIN_BOOL WINAPI SetProcessWorkingSetSize(HANDLE,DWORD,DWORD); WIN_BOOL WINAPI TerminateProcess(HANDLE,DWORD); WIN_BOOL WINAPI TerminateThread(HANDLE,DWORD); WIN_BOOL WINAPI GetExitCodeThread(HANDLE,LPDWORD); /* GetBinaryType return values. */ #define SCS_32BIT_BINARY 0 #define SCS_DOS_BINARY 1 #define SCS_WOW_BINARY 2 #define SCS_PIF_BINARY 3 #define SCS_POSIX_BINARY 4 #define SCS_OS216_BINARY 5 WIN_BOOL WINAPI GetBinaryTypeA( LPCSTR lpApplicationName, LPDWORD lpBinaryType ); WIN_BOOL WINAPI GetBinaryTypeW( LPCWSTR lpApplicationName, LPDWORD lpBinaryType ); #define GetBinaryType WINELIB_NAME_AW(GetBinaryType) WIN_BOOL16 WINAPI GetWinDebugInfo16(LPWINDEBUGINFO,UINT16); WIN_BOOL16 WINAPI SetWinDebugInfo16(LPWINDEBUGINFO); /* Declarations for functions that exist only in Win32 */ WIN_BOOL WINAPI AttachThreadInput(DWORD,DWORD,WIN_BOOL); WIN_BOOL WINAPI AccessCheck(PSECURITY_DESCRIPTOR,HANDLE,DWORD,PGENERIC_MAPPING,PPRIVILEGE_SET,LPDWORD,LPDWORD,LPWIN_BOOL); WIN_BOOL WINAPI AdjustTokenPrivileges(HANDLE,WIN_BOOL,LPVOID,DWORD,LPVOID,LPDWORD); WIN_BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PSID *); WIN_BOOL WINAPI AllocateLocallyUniqueId(PLUID); WIN_BOOL WINAPI AllocConsole(void); WIN_BOOL WINAPI AreFileApisANSI(void); WIN_BOOL WINAPI BackupEventLogA(HANDLE,LPCSTR); WIN_BOOL WINAPI BackupEventLogW(HANDLE,LPCWSTR); #define BackupEventLog WINELIB_NAME_AW(BackupEventLog) WIN_BOOL WINAPI Beep(DWORD,DWORD); WIN_BOOL WINAPI CancelWaitableTimer(HANDLE); WIN_BOOL WINAPI ClearEventLogA(HANDLE,LPCSTR); WIN_BOOL WINAPI ClearEventLogW(HANDLE,LPCWSTR); #define ClearEventLog WINELIB_NAME_AW(ClearEventLog) WIN_BOOL WINAPI CloseEventLog(HANDLE); WIN_BOOL WINAPI CloseHandle(HANDLE); WIN_BOOL WINAPI ContinueDebugEvent(DWORD,DWORD,DWORD); HANDLE WINAPI ConvertToGlobalHandle(HANDLE hSrc); WIN_BOOL WINAPI CopyFileA(LPCSTR,LPCSTR,WIN_BOOL); WIN_BOOL WINAPI CopyFileW(LPCWSTR,LPCWSTR,WIN_BOOL); #define CopyFile WINELIB_NAME_AW(CopyFile) WIN_BOOL WINAPI CopyFileExA(LPCSTR, LPCSTR, LPPROGRESS_ROUTINE, LPVOID, LPWIN_BOOL, DWORD); WIN_BOOL WINAPI CopyFileExW(LPCWSTR, LPCWSTR, LPPROGRESS_ROUTINE, LPVOID, LPWIN_BOOL, DWORD); #define CopyFileEx WINELIB_NAME_AW(CopyFileEx) WIN_BOOL WINAPI CopySid(DWORD,PSID,PSID); INT WINAPI CompareFileTime(LPFILETIME,LPFILETIME); HANDLE WINAPI CreateEventA(LPSECURITY_ATTRIBUTES,WIN_BOOL,WIN_BOOL,LPCSTR); HANDLE WINAPI CreateEventW(LPSECURITY_ATTRIBUTES,WIN_BOOL,WIN_BOOL,LPCWSTR); #define CreateEvent WINELIB_NAME_AW(CreateEvent) HANDLE WINAPI CreateFileA(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES, DWORD,DWORD,HANDLE); HANDLE WINAPI CreateFileW(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES, DWORD,DWORD,HANDLE); #define CreateFile WINELIB_NAME_AW(CreateFile) HANDLE WINAPI CreateFileMappingA(HANDLE,LPSECURITY_ATTRIBUTES,DWORD, DWORD,DWORD,LPCSTR); HANDLE WINAPI CreateFileMappingW(HANDLE,LPSECURITY_ATTRIBUTES,DWORD, DWORD,DWORD,LPCWSTR); #define CreateFileMapping WINELIB_NAME_AW(CreateFileMapping) HANDLE WINAPI CreateMutexA(LPSECURITY_ATTRIBUTES,WIN_BOOL,LPCSTR); HANDLE WINAPI CreateMutexW(LPSECURITY_ATTRIBUTES,WIN_BOOL,LPCWSTR); #define CreateMutex WINELIB_NAME_AW(CreateMutex) WIN_BOOL WINAPI CreatePipe(PHANDLE,PHANDLE,LPSECURITY_ATTRIBUTES,DWORD); WIN_BOOL WINAPI CreateProcessA(LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES,WIN_BOOL,DWORD,LPVOID,LPCSTR, LPSTARTUPINFOA,LPPROCESS_INFORMATION); WIN_BOOL WINAPI CreateProcessW(LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES,WIN_BOOL,DWORD,LPVOID,LPCWSTR, LPSTARTUPINFOW,LPPROCESS_INFORMATION); #define CreateProcess WINELIB_NAME_AW(CreateProcess) HANDLE WINAPI CreateSemaphoreA(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCSTR); HANDLE WINAPI CreateSemaphoreW(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCWSTR); #define CreateSemaphore WINELIB_NAME_AW(CreateSemaphore) HANDLE WINAPI CreateThread(LPSECURITY_ATTRIBUTES,DWORD,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD); HANDLE WINAPI CreateWaitableTimerA(LPSECURITY_ATTRIBUTES,WIN_BOOL,LPCSTR); HANDLE WINAPI CreateWaitableTimerW(LPSECURITY_ATTRIBUTES,WIN_BOOL,LPCWSTR); #define CreateWaitableTimer WINELIB_NAME_AW(CreateWaitableTimer) WIN_BOOL WINAPI DebugActiveProcess(DWORD); void WINAPI DebugBreak(void); WIN_BOOL WINAPI DeregisterEventSource(HANDLE); WIN_BOOL WINAPI DisableThreadLibraryCalls(HMODULE); WIN_BOOL WINAPI DosDateTimeToFileTime(WORD,WORD,LPFILETIME); WIN_BOOL WINAPI DuplicateHandle(HANDLE,HANDLE,HANDLE,HANDLE*,DWORD,WIN_BOOL,DWORD); WIN_BOOL WINAPI EnumDateFormatsA(DATEFMT_ENUMPROCA lpDateFmtEnumProc, LCID Locale, DWORD dwFlags); WIN_BOOL WINAPI EnumDateFormatsW(DATEFMT_ENUMPROCW lpDateFmtEnumProc, LCID Locale, DWORD dwFlags); #define EnumDateFormats WINELIB_NAME_AW(EnumDateFormats) WIN_BOOL WINAPI EnumResourceLanguagesA(HMODULE,LPCSTR,LPCSTR, ENUMRESLANGPROCA,LONG); WIN_BOOL WINAPI EnumResourceLanguagesW(HMODULE,LPCWSTR,LPCWSTR, ENUMRESLANGPROCW,LONG); #define EnumResourceLanguages WINELIB_NAME_AW(EnumResourceLanguages) WIN_BOOL WINAPI EnumResourceNamesA(HMODULE,LPCSTR,ENUMRESNAMEPROCA, LONG); WIN_BOOL WINAPI EnumResourceNamesW(HMODULE,LPCWSTR,ENUMRESNAMEPROCW, LONG); #define EnumResourceNames WINELIB_NAME_AW(EnumResourceNames) WIN_BOOL WINAPI EnumResourceTypesA(HMODULE,ENUMRESTYPEPROCA,LONG); WIN_BOOL WINAPI EnumResourceTypesW(HMODULE,ENUMRESTYPEPROCW,LONG); #define EnumResourceTypes WINELIB_NAME_AW(EnumResourceTypes) WIN_BOOL WINAPI EnumSystemCodePagesA(CODEPAGE_ENUMPROCA,DWORD); WIN_BOOL WINAPI EnumSystemCodePagesW(CODEPAGE_ENUMPROCW,DWORD); #define EnumSystemCodePages WINELIB_NAME_AW(EnumSystemCodePages) WIN_BOOL WINAPI EnumSystemLocalesA(LOCALE_ENUMPROCA,DWORD); WIN_BOOL WINAPI EnumSystemLocalesW(LOCALE_ENUMPROCW,DWORD); #define EnumSystemLocales WINELIB_NAME_AW(EnumSystemLocales) WIN_BOOL WINAPI EnumTimeFormatsA(TIMEFMT_ENUMPROCA lpTimeFmtEnumProc, LCID Locale, DWORD dwFlags); WIN_BOOL WINAPI EnumTimeFormatsW(TIMEFMT_ENUMPROCW lpTimeFmtEnumProc, LCID Locale, DWORD dwFlags); #define EnumTimeFormats WINELIB_NAME_AW(EnumTimeFormats) WIN_BOOL WINAPI EqualSid(PSID, PSID); WIN_BOOL WINAPI EqualPrefixSid(PSID,PSID); VOID WINAPI ExitProcess(DWORD) WINE_NORETURN; VOID WINAPI ExitThread(DWORD) WINE_NORETURN; DWORD WINAPI ExpandEnvironmentStringsA(LPCSTR,LPSTR,DWORD); DWORD WINAPI ExpandEnvironmentStringsW(LPCWSTR,LPWSTR,DWORD); #define ExpandEnvironmentStrings WINELIB_NAME_AW(ExpandEnvironmentStrings) WIN_BOOL WINAPI FileTimeToDosDateTime(const FILETIME*,LPWORD,LPWORD); WIN_BOOL WINAPI FileTimeToLocalFileTime(const FILETIME*,LPFILETIME); WIN_BOOL WINAPI FileTimeToSystemTime(const FILETIME*,LPSYSTEMTIME); HANDLE WINAPI FindFirstChangeNotificationA(LPCSTR,WIN_BOOL,DWORD); HANDLE WINAPI FindFirstChangeNotificationW(LPCWSTR,WIN_BOOL,DWORD); #define FindFirstChangeNotification WINELIB_NAME_AW(FindFirstChangeNotification) WIN_BOOL WINAPI FindNextChangeNotification(HANDLE); WIN_BOOL WINAPI FindCloseChangeNotification(HANDLE); HRSRC WINAPI FindResourceExA(HMODULE,LPCSTR,LPCSTR,WORD); HRSRC WINAPI FindResourceExW(HMODULE,LPCWSTR,LPCWSTR,WORD); #define FindResourceEx WINELIB_NAME_AW(FindResourceEx) WIN_BOOL WINAPI FlushConsoleInputBuffer(HANDLE); WIN_BOOL WINAPI FlushFileBuffers(HANDLE); WIN_BOOL WINAPI FlushViewOfFile(LPCVOID, DWORD); DWORD WINAPI FormatMessageA(DWORD,LPCVOID,DWORD,DWORD,LPSTR, DWORD,LPDWORD); DWORD WINAPI FormatMessageW(DWORD,LPCVOID,DWORD,DWORD,LPWSTR, DWORD,LPDWORD); #define FormatMessage WINELIB_NAME_AW(FormatMessage) WIN_BOOL WINAPI FreeConsole(void); WIN_BOOL WINAPI FreeEnvironmentStringsA(LPSTR); WIN_BOOL WINAPI FreeEnvironmentStringsW(LPWSTR); #define FreeEnvironmentStrings WINELIB_NAME_AW(FreeEnvironmentStrings) PVOID WINAPI FreeSid(PSID); UINT WINAPI GetACP(void); LPCSTR WINAPI GetCommandLineA(void); LPCWSTR WINAPI GetCommandLineW(void); #define GetCommandLine WINELIB_NAME_AW(GetCommandLine) WIN_BOOL WINAPI GetComputerNameA(LPSTR,LPDWORD); WIN_BOOL WINAPI GetComputerNameW(LPWSTR,LPDWORD); #define GetComputerName WINELIB_NAME_AW(GetComputerName) UINT WINAPI GetConsoleCP(void); WIN_BOOL WINAPI GetConsoleMode(HANDLE,LPDWORD); UINT WINAPI GetConsoleOutputCP(void); DWORD WINAPI GetConsoleTitleA(LPSTR,DWORD); DWORD WINAPI GetConsoleTitleW(LPWSTR,DWORD); #define GetConsoleTitle WINELIB_NAME_AW(GetConsoleTitle) WIN_BOOL WINAPI GetCommMask(HANDLE, LPDWORD); WIN_BOOL WINAPI GetCommModemStatus(HANDLE, LPDWORD); HANDLE WINAPI GetCurrentProcess(void); HANDLE WINAPI GetCurrentThread(void); INT WINAPI GetDateFormatA(LCID,DWORD,LPSYSTEMTIME,LPCSTR,LPSTR,INT); INT WINAPI GetDateFormatW(LCID,DWORD,LPSYSTEMTIME,LPCWSTR,LPWSTR,INT); #define GetDateFormat WINELIB_NAME_AW(GetDateFormat) LPSTR WINAPI GetEnvironmentStringsA(void); LPWSTR WINAPI GetEnvironmentStringsW(void); #define GetEnvironmentStrings WINELIB_NAME_AW(GetEnvironmentStrings) DWORD WINAPI GetEnvironmentVariableA(LPCSTR,LPSTR,DWORD); DWORD WINAPI GetEnvironmentVariableW(LPCWSTR,LPWSTR,DWORD); #define GetEnvironmentVariable WINELIB_NAME_AW(GetEnvironmentVariable) WIN_BOOL WINAPI GetFileAttributesExA(LPCSTR,GET_FILEEX_INFO_LEVELS,LPVOID); WIN_BOOL WINAPI GetFileAttributesExW(LPCWSTR,GET_FILEEX_INFO_LEVELS,LPVOID); #define GetFileattributesEx WINELIB_NAME_AW(GetFileAttributesEx) DWORD WINAPI GetFileInformationByHandle(HANDLE,BY_HANDLE_FILE_INFORMATION*); WIN_BOOL WINAPI GetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD); WIN_BOOL WINAPI GetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD); #define GetFileSecurity WINELIB_NAME_AW(GetFileSecurity) DWORD WINAPI GetFileSize(HANDLE,LPDWORD); WIN_BOOL WINAPI GetFileTime(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME); DWORD WINAPI GetFileType(HANDLE); DWORD WINAPI GetFullPathNameA(LPCSTR,DWORD,LPSTR,LPSTR*); DWORD WINAPI GetFullPathNameW(LPCWSTR,DWORD,LPWSTR,LPWSTR*); #define GetFullPathName WINELIB_NAME_AW(GetFullPathName) WIN_BOOL WINAPI GetHandleInformation(HANDLE,LPDWORD); COORD WINAPI GetLargestConsoleWindowSize(HANDLE); DWORD WINAPI GetLengthSid(PSID); VOID WINAPI GetLocalTime(LPSYSTEMTIME); DWORD WINAPI GetLogicalDrives(void); DWORD WINAPI GetLongPathNameA(LPCSTR,LPSTR,DWORD); DWORD WINAPI GetLongPathNameW(LPCWSTR,LPWSTR,DWORD); #define GetLongPathName WINELIB_NAME_AW(GetLongPathName) WIN_BOOL WINAPI GetNumberOfConsoleInputEvents(HANDLE,LPDWORD); WIN_BOOL WINAPI GetNumberOfConsoleMouseButtons(LPDWORD); WIN_BOOL WINAPI GetNumberOfEventLogRecords(HANDLE,PDWORD); UINT WINAPI GetOEMCP(void); WIN_BOOL WINAPI GetOldestEventLogRecord(HANDLE,PDWORD); DWORD WINAPI GetPriorityClass(HANDLE); DWORD WINAPI GetProcessVersion(DWORD); WIN_BOOL WINAPI GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR_CONTROL,LPDWORD); WIN_BOOL WINAPI GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,LPWIN_BOOL,PACL *,LPWIN_BOOL); WIN_BOOL WINAPI GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID *,LPWIN_BOOL); DWORD WINAPI GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR); WIN_BOOL WINAPI GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID *,LPWIN_BOOL); WIN_BOOL WINAPI GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,LPWIN_BOOL,PACL *,LPWIN_BOOL); PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(PSID); DWORD WINAPI GetSidLengthRequired(BYTE); PDWORD WINAPI GetSidSubAuthority(PSID,DWORD); PUCHAR WINAPI GetSidSubAuthorityCount(PSID); DWORD WINAPI GetShortPathNameA(LPCSTR,LPSTR,DWORD); DWORD WINAPI GetShortPathNameW(LPCWSTR,LPWSTR,DWORD); #define GetShortPathName WINELIB_NAME_AW(GetShortPathName) HFILE WINAPI GetStdHandle(DWORD); WIN_BOOL WINAPI GetStringTypeExA(LCID,DWORD,LPCSTR,INT,LPWORD); WIN_BOOL WINAPI GetStringTypeExW(LCID,DWORD,LPCWSTR,INT,LPWORD); #define GetStringTypeEx WINELIB_NAME_AW(GetStringTypeEx) VOID WINAPI GetSystemInfo(LPSYSTEM_INFO); WIN_BOOL WINAPI GetSystemPowerStatus(LPSYSTEM_POWER_STATUS); VOID WINAPI GetSystemTime(LPSYSTEMTIME); VOID WINAPI GetSystemTimeAsFileTime(LPFILETIME); INT WINAPI GetTimeFormatA(LCID,DWORD,LPSYSTEMTIME,LPCSTR,LPSTR,INT); INT WINAPI GetTimeFormatW(LCID,DWORD,LPSYSTEMTIME,LPCWSTR,LPWSTR,INT); #define GetTimeFormat WINELIB_NAME_AW(GetTimeFormat) WIN_BOOL WINAPI GetThreadContext(HANDLE,CONTEXT *); LCID WINAPI GetThreadLocale(void); INT WINAPI GetThreadPriority(HANDLE); WIN_BOOL WINAPI GetThreadSelectorEntry(HANDLE,DWORD,LPLDT_ENTRY); WIN_BOOL WINAPI GetThreadTimes(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME,LPFILETIME); WIN_BOOL WINAPI GetTokenInformation(HANDLE,TOKEN_INFORMATION_CLASS,LPVOID,DWORD,LPDWORD); WIN_BOOL WINAPI GetUserNameA(LPSTR,LPDWORD); WIN_BOOL WINAPI GetUserNameW(LPWSTR,LPDWORD); #define GetUserName WINELIB_NAME_AW(GetUserName) VOID WINAPI GlobalMemoryStatus(LPMEMORYSTATUS); LPVOID WINAPI HeapAlloc(HANDLE,DWORD,DWORD); DWORD WINAPI HeapCompact(HANDLE,DWORD); HANDLE WINAPI HeapCreate(DWORD,DWORD,DWORD); WIN_BOOL WINAPI HeapDestroy(HANDLE); WIN_BOOL WINAPI HeapFree(HANDLE,DWORD,LPVOID); WIN_BOOL WINAPI HeapLock(HANDLE); LPVOID WINAPI HeapReAlloc(HANDLE,DWORD,LPVOID,DWORD); DWORD WINAPI HeapSize(HANDLE,DWORD,LPVOID); WIN_BOOL WINAPI HeapUnlock(HANDLE); WIN_BOOL WINAPI HeapValidate(HANDLE,DWORD,LPCVOID); WIN_BOOL WINAPI HeapWalk(HANDLE,LPPROCESS_HEAP_ENTRY); WIN_BOOL WINAPI InitializeSid(PSID,PSID_IDENTIFIER_AUTHORITY,BYTE); WIN_BOOL WINAPI IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR); WIN_BOOL WINAPI IsValidSid(PSID); WIN_BOOL WINAPI ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL); WIN_BOOL WINAPI IsDBCSLeadByteEx(UINT,BYTE); WIN_BOOL WINAPI IsProcessorFeaturePresent(DWORD); WIN_BOOL WINAPI IsValidLocale(DWORD,DWORD); WIN_BOOL WINAPI LookupAccountSidA(LPCSTR,PSID,LPSTR,LPDWORD,LPSTR,LPDWORD,PSID_NAME_USE); WIN_BOOL WINAPI LookupAccountSidW(LPCWSTR,PSID,LPWSTR,LPDWORD,LPWSTR,LPDWORD,PSID_NAME_USE); #define LookupAccountSid WINELIB_NAME_AW(LookupAccountSidW) WIN_BOOL WINAPI LocalFileTimeToFileTime(const FILETIME*,LPFILETIME); WIN_BOOL WINAPI LockFile(HANDLE,DWORD,DWORD,DWORD,DWORD); WIN_BOOL WINAPI LockFileEx(HANDLE, DWORD, DWORD, DWORD, DWORD, LPOVERLAPPED); WIN_BOOL WINAPI LookupPrivilegeValueA(LPCSTR,LPCSTR,LPVOID); WIN_BOOL WINAPI LookupPrivilegeValueW(LPCWSTR,LPCWSTR,LPVOID); #define LookupPrivilegeValue WINELIB_NAME_AW(LookupPrivilegeValue) WIN_BOOL WINAPI MakeSelfRelativeSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,LPDWORD); HMODULE WINAPI MapHModuleSL(HMODULE16); HMODULE16 WINAPI MapHModuleLS(HMODULE); SEGPTR WINAPI MapLS(LPVOID); LPVOID WINAPI MapSL(SEGPTR); LPVOID WINAPI MapViewOfFile(HANDLE,DWORD,DWORD,DWORD,DWORD); LPVOID WINAPI MapViewOfFileEx(HANDLE,DWORD,DWORD,DWORD,DWORD,LPVOID); WIN_BOOL WINAPI MoveFileA(LPCSTR,LPCSTR); WIN_BOOL WINAPI MoveFileW(LPCWSTR,LPCWSTR); #define MoveFile WINELIB_NAME_AW(MoveFile) WIN_BOOL WINAPI MoveFileExA(LPCSTR,LPCSTR,DWORD); WIN_BOOL WINAPI MoveFileExW(LPCWSTR,LPCWSTR,DWORD); #define MoveFileEx WINELIB_NAME_AW(MoveFileEx) INT WINAPI MultiByteToWideChar(UINT,DWORD,LPCSTR,INT,LPWSTR,INT); WIN_BOOL WINAPI NotifyChangeEventLog(HANDLE,HANDLE); INT WINAPI WideCharToMultiByte(UINT,DWORD,LPCWSTR,INT,LPSTR,INT,LPCSTR,WIN_BOOL*); HANDLE WINAPI OpenBackupEventLogA(LPCSTR,LPCSTR); HANDLE WINAPI OpenBackupEventLogW(LPCWSTR,LPCWSTR); #define OpenBackupEventLog WINELIB_NAME_AW(OpenBackupEventLog) HANDLE WINAPI OpenEventA(DWORD,WIN_BOOL,LPCSTR); HANDLE WINAPI OpenEventW(DWORD,WIN_BOOL,LPCWSTR); #define OpenEvent WINELIB_NAME_AW(OpenEvent) HANDLE WINAPI OpenEventLogA(LPCSTR,LPCSTR); HANDLE WINAPI OpenEventLogW(LPCWSTR,LPCWSTR); #define OpenEventLog WINELIB_NAME_AW(OpenEventLog) HANDLE WINAPI OpenFileMappingA(DWORD,WIN_BOOL,LPCSTR); HANDLE WINAPI OpenFileMappingW(DWORD,WIN_BOOL,LPCWSTR); #define OpenFileMapping WINELIB_NAME_AW(OpenFileMapping) HANDLE WINAPI OpenMutexA(DWORD,WIN_BOOL,LPCSTR); HANDLE WINAPI OpenMutexW(DWORD,WIN_BOOL,LPCWSTR); #define OpenMutex WINELIB_NAME_AW(OpenMutex) HANDLE WINAPI OpenProcess(DWORD,WIN_BOOL,DWORD); WIN_BOOL WINAPI OpenProcessToken(HANDLE,DWORD,PHANDLE); HANDLE WINAPI OpenSemaphoreA(DWORD,WIN_BOOL,LPCSTR); HANDLE WINAPI OpenSemaphoreW(DWORD,WIN_BOOL,LPCWSTR); #define OpenSemaphore WINELIB_NAME_AW(OpenSemaphore) WIN_BOOL WINAPI OpenThreadToken(HANDLE,DWORD,WIN_BOOL,PHANDLE); HANDLE WINAPI OpenWaitableTimerA(DWORD,WIN_BOOL,LPCSTR); HANDLE WINAPI OpenWaitableTimerW(DWORD,WIN_BOOL,LPCWSTR); #define OpenWaitableTimer WINELIB_NAME_AW(OpenWaitableTimer) WIN_BOOL WINAPI PulseEvent(HANDLE); WIN_BOOL WINAPI PurgeComm(HANDLE,DWORD); DWORD WINAPI QueryDosDeviceA(LPCSTR,LPSTR,DWORD); DWORD WINAPI QueryDosDeviceW(LPCWSTR,LPWSTR,DWORD); #define QueryDosDevice WINELIB_NAME_AW(QueryDosDevice) WIN_BOOL WINAPI QueryPerformanceCounter(PLARGE_INTEGER); WIN_BOOL WINAPI ReadConsoleA(HANDLE,LPVOID,DWORD,LPDWORD,LPVOID); WIN_BOOL WINAPI ReadConsoleW(HANDLE,LPVOID,DWORD,LPDWORD,LPVOID); #define ReadConsole WINELIB_NAME_AW(ReadConsole) WIN_BOOL WINAPI ReadConsoleOutputCharacterA(HANDLE,LPSTR,DWORD, COORD,LPDWORD); #define ReadConsoleOutputCharacter WINELIB_NAME_AW(ReadConsoleOutputCharacter) WIN_BOOL WINAPI ReadEventLogA(HANDLE,DWORD,DWORD,LPVOID,DWORD,DWORD *,DWORD *); WIN_BOOL WINAPI ReadEventLogW(HANDLE,DWORD,DWORD,LPVOID,DWORD,DWORD *,DWORD *); #define ReadEventLog WINELIB_NAME_AW(ReadEventLog) WIN_BOOL WINAPI ReadFile(HANDLE,LPVOID,DWORD,LPDWORD,LPOVERLAPPED); HANDLE WINAPI RegisterEventSourceA(LPCSTR,LPCSTR); HANDLE WINAPI RegisterEventSourceW(LPCWSTR,LPCWSTR); #define RegisterEventSource WINELIB_NAME_AW(RegisterEventSource) WIN_BOOL WINAPI ReleaseMutex(HANDLE); WIN_BOOL WINAPI ReleaseSemaphore(HANDLE,LONG,LPLONG); WIN_BOOL WINAPI ReportEventA(HANDLE,WORD,WORD,DWORD,PSID,WORD,DWORD,LPCSTR *,LPVOID); WIN_BOOL WINAPI ReportEventW(HANDLE,WORD,WORD,DWORD,PSID,WORD,DWORD,LPCWSTR *,LPVOID); #define ReportEvent WINELIB_NAME_AW(ReportEvent) WIN_BOOL WINAPI ResetEvent(HANDLE); DWORD WINAPI ResumeThread(HANDLE); WIN_BOOL WINAPI RevertToSelf(void); DWORD WINAPI SearchPathA(LPCSTR,LPCSTR,LPCSTR,DWORD,LPSTR,LPSTR*); DWORD WINAPI SearchPathW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPWSTR,LPWSTR*); #define SearchPath WINELIB_NAME_AW(SearchPath) WIN_BOOL WINAPI SetCommMask(INT,DWORD); WIN_BOOL WINAPI SetComputerNameA(LPCSTR); WIN_BOOL WINAPI SetComputerNameW(LPCWSTR); #define SetComputerName WINELIB_NAME_AW(SetComputerName) WIN_BOOL WINAPI SetConsoleCursorPosition(HANDLE,COORD); WIN_BOOL WINAPI SetConsoleMode(HANDLE,DWORD); WIN_BOOL WINAPI SetConsoleTitleA(LPCSTR); WIN_BOOL WINAPI SetConsoleTitleW(LPCWSTR); #define SetConsoleTitle WINELIB_NAME_AW(SetConsoleTitle) WIN_BOOL WINAPI SetEndOfFile(HANDLE); WIN_BOOL WINAPI SetEnvironmentVariableA(LPCSTR,LPCSTR); WIN_BOOL WINAPI SetEnvironmentVariableW(LPCWSTR,LPCWSTR); #define SetEnvironmentVariable WINELIB_NAME_AW(SetEnvironmentVariable) WIN_BOOL WINAPI SetEvent(HANDLE); VOID WINAPI SetFileApisToANSI(void); VOID WINAPI SetFileApisToOEM(void); DWORD WINAPI SetFilePointer(HANDLE,LONG,LPLONG,DWORD); WIN_BOOL WINAPI SetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR); WIN_BOOL WINAPI SetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR); #define SetFileSecurity WINELIB_NAME_AW(SetFileSecurity) WIN_BOOL WINAPI SetFileTime(HANDLE,const FILETIME*,const FILETIME*,const FILETIME*); WIN_BOOL WINAPI SetHandleInformation(HANDLE,DWORD,DWORD); WIN_BOOL WINAPI SetPriorityClass(HANDLE,DWORD); WIN_BOOL WINAPI SetLocalTime(const SYSTEMTIME*); WIN_BOOL WINAPI SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,WIN_BOOL,PACL,WIN_BOOL); WIN_BOOL WINAPI SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID,WIN_BOOL); WIN_BOOL WINAPI SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID,WIN_BOOL); WIN_BOOL WINAPI SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,WIN_BOOL,PACL,WIN_BOOL); WIN_BOOL WINAPI SetStdHandle(DWORD,HANDLE); WIN_BOOL WINAPI SetSystemPowerState(WIN_BOOL,WIN_BOOL); WIN_BOOL WINAPI SetSystemTime(const SYSTEMTIME*); DWORD WINAPI SetThreadAffinityMask(HANDLE,DWORD); WIN_BOOL WINAPI SetThreadContext(HANDLE,const CONTEXT *); WIN_BOOL WINAPI SetThreadLocale(LCID); WIN_BOOL WINAPI SetThreadPriority(HANDLE,INT); WIN_BOOL WINAPI SetTimeZoneInformation(const LPTIME_ZONE_INFORMATION); WIN_BOOL WINAPI SetWaitableTimer(HANDLE,const LARGE_INTEGER*,LONG,PTIMERAPCROUTINE,LPVOID,WIN_BOOL); VOID WINAPI Sleep(DWORD); DWORD WINAPI SleepEx(DWORD,WIN_BOOL); DWORD WINAPI SuspendThread(HANDLE); WIN_BOOL WINAPI SystemTimeToFileTime(const SYSTEMTIME*,LPFILETIME); DWORD WINAPI TlsAlloc(void); WIN_BOOL WINAPI TlsFree(DWORD); LPVOID WINAPI TlsGetValue(DWORD); WIN_BOOL WINAPI TlsSetValue(DWORD,LPVOID); VOID WINAPI UnMapLS(SEGPTR); WIN_BOOL WINAPI UnlockFile(HANDLE,DWORD,DWORD,DWORD,DWORD); WIN_BOOL WINAPI UnmapViewOfFile(LPVOID); LPVOID WINAPI VirtualAlloc(LPVOID,DWORD,DWORD,DWORD); WIN_BOOL WINAPI VirtualFree(LPVOID,SIZE_T,DWORD); WIN_BOOL WINAPI VirtualLock(LPVOID,DWORD); WIN_BOOL WINAPI VirtualProtect(LPVOID,DWORD,DWORD,LPDWORD); WIN_BOOL WINAPI VirtualProtectEx(HANDLE,LPVOID,DWORD,DWORD,LPDWORD); DWORD WINAPI VirtualQuery(LPCVOID,LPMEMORY_BASIC_INFORMATION,DWORD); DWORD WINAPI VirtualQueryEx(HANDLE,LPCVOID,LPMEMORY_BASIC_INFORMATION,DWORD); WIN_BOOL WINAPI VirtualUnlock(LPVOID,DWORD); WIN_BOOL WINAPI WaitCommEvent(HANDLE,LPDWORD,LPOVERLAPPED); WIN_BOOL WINAPI WaitForDebugEvent(LPDEBUG_EVENT,DWORD); DWORD WINAPI WaitForMultipleObjects(DWORD,const HANDLE*,WIN_BOOL,DWORD); DWORD WINAPI WaitForMultipleObjectsEx(DWORD,const HANDLE*,WIN_BOOL,DWORD,WIN_BOOL); DWORD WINAPI WaitForSingleObject(HANDLE,DWORD); DWORD WINAPI WaitForSingleObjectEx(HANDLE,DWORD,WIN_BOOL); WIN_BOOL WINAPI WriteConsoleA(HANDLE,LPCVOID,DWORD,LPDWORD,LPVOID); WIN_BOOL WINAPI WriteConsoleW(HANDLE,LPCVOID,DWORD,LPDWORD,LPVOID); #define WriteConsole WINELIB_NAME_AW(WriteConsole) WIN_BOOL WINAPI WriteFile(HANDLE,LPCVOID,DWORD,LPDWORD,LPOVERLAPPED); LANGID WINAPI GetSystemDefaultLangID(void); LCID WINAPI GetSystemDefaultLCID(void); LANGID WINAPI GetUserDefaultLangID(void); LCID WINAPI GetUserDefaultLCID(void); ATOM WINAPI AddAtomA(LPCSTR); ATOM WINAPI AddAtomW(LPCWSTR); #define AddAtom WINELIB_NAME_AW(AddAtom) UINT WINAPI CompareStringA(DWORD,DWORD,LPCSTR,DWORD,LPCSTR,DWORD); UINT WINAPI CompareStringW(DWORD,DWORD,LPCWSTR,DWORD,LPCWSTR,DWORD); #define CompareString WINELIB_NAME_AW(CompareString) WIN_BOOL WINAPI CreateDirectoryA(LPCSTR,LPSECURITY_ATTRIBUTES); WIN_BOOL WINAPI CreateDirectoryW(LPCWSTR,LPSECURITY_ATTRIBUTES); #define CreateDirectory WINELIB_NAME_AW(CreateDirectory) WIN_BOOL WINAPI CreateDirectoryExA(LPCSTR,LPCSTR,LPSECURITY_ATTRIBUTES); WIN_BOOL WINAPI CreateDirectoryExW(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES); #define CreateDirectoryEx WINELIB_NAME_AW(CreateDirectoryEx) WIN_BOOL WINAPI DefineDosDeviceA(DWORD,LPCSTR,LPCSTR); #define DefineHandleTable(w) ((w),TRUE) ATOM WINAPI DeleteAtom(ATOM); WIN_BOOL WINAPI DeleteFileA(LPCSTR); WIN_BOOL WINAPI DeleteFileW(LPCWSTR); #define DeleteFile WINELIB_NAME_AW(DeleteFile) void WINAPI FatalAppExitA(UINT,LPCSTR); void WINAPI FatalAppExitW(UINT,LPCWSTR); #define FatalAppExit WINELIB_NAME_AW(FatalAppExit) ATOM WINAPI FindAtomA(LPCSTR); ATOM WINAPI FindAtomW(LPCWSTR); #define FindAtom WINELIB_NAME_AW(FindAtom) WIN_BOOL WINAPI FindClose(HANDLE); HANDLE16 WINAPI FindFirstFile16(LPCSTR,LPWIN32_FIND_DATAA); HANDLE WINAPI FindFirstFileA(LPCSTR,LPWIN32_FIND_DATAA); HANDLE WINAPI FindFirstFileW(LPCWSTR,LPWIN32_FIND_DATAW); #define FindFirstFile WINELIB_NAME_AW(FindFirstFile) WIN_BOOL16 WINAPI FindNextFile16(HANDLE16,LPWIN32_FIND_DATAA); WIN_BOOL WINAPI FindNextFileA(HANDLE,LPWIN32_FIND_DATAA); WIN_BOOL WINAPI FindNextFileW(HANDLE,LPWIN32_FIND_DATAW); #define FindNextFile WINELIB_NAME_AW(FindNextFile) HRSRC WINAPI FindResourceA(HMODULE,LPCSTR,LPCSTR); HRSRC WINAPI FindResourceW(HMODULE,LPCWSTR,LPCWSTR); #define FindResource WINELIB_NAME_AW(FindResource) VOID WINAPI FreeLibrary16(HINSTANCE16); WIN_BOOL WINAPI FreeLibrary(HMODULE); #define FreeModule(handle) FreeLibrary(handle) #define FreeProcInstance(proc) /*nothing*/ WIN_BOOL WINAPI FreeResource(HGLOBAL); UINT WINAPI GetAtomNameA(ATOM,LPSTR,INT); UINT WINAPI GetAtomNameW(ATOM,LPWSTR,INT); #define GetAtomName WINELIB_NAME_AW(GetAtomName) UINT WINAPI GetCurrentDirectoryA(UINT,LPSTR); UINT WINAPI GetCurrentDirectoryW(UINT,LPWSTR); #define GetCurrentDirectory WINELIB_NAME_AW(GetCurrentDirectory) WIN_BOOL WINAPI GetDiskFreeSpaceA(LPCSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD); WIN_BOOL WINAPI GetDiskFreeSpaceW(LPCWSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD); #define GetDiskFreeSpace WINELIB_NAME_AW(GetDiskFreeSpace) WIN_BOOL WINAPI GetDiskFreeSpaceExA(LPCSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER); WIN_BOOL WINAPI GetDiskFreeSpaceExW(LPCWSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER); #define GetDiskFreeSpaceEx WINELIB_NAME_AW(GetDiskFreeSpaceEx) UINT WINAPI GetDriveTypeA(LPCSTR); UINT WINAPI GetDriveTypeW(LPCWSTR); #define GetDriveType WINELIB_NAME_AW(GetDriveType) DWORD WINAPI GetFileAttributesA(LPCSTR); DWORD WINAPI GetFileAttributesW(LPCWSTR); #define GetFileAttributes WINELIB_NAME_AW(GetFileAttributes) #define GetFreeSpace(w) (0x100000L) UINT WINAPI GetLogicalDriveStringsA(UINT,LPSTR); UINT WINAPI GetLogicalDriveStringsW(UINT,LPWSTR); #define GetLogicalDriveStrings WINELIB_NAME_AW(GetLogicalDriveStrings) INT WINAPI GetLocaleInfoA(LCID,LCTYPE,LPSTR,INT); INT WINAPI GetLocaleInfoW(LCID,LCTYPE,LPWSTR,INT); #define GetLocaleInfo WINELIB_NAME_AW(GetLocaleInfo) DWORD WINAPI GetModuleFileNameA(HMODULE,LPSTR,DWORD); DWORD WINAPI GetModuleFileNameW(HMODULE,LPWSTR,DWORD); #define GetModuleFileName WINELIB_NAME_AW(GetModuleFileName) HMODULE WINAPI GetModuleHandleA(LPCSTR); HMODULE WINAPI GetModuleHandleW(LPCWSTR); #define GetModuleHandle WINELIB_NAME_AW(GetModuleHandle) WIN_BOOL WINAPI GetOverlappedResult(HANDLE,LPOVERLAPPED,LPDWORD,WIN_BOOL); UINT WINAPI GetPrivateProfileIntA(LPCSTR,LPCSTR,INT,LPCSTR); UINT WINAPI GetPrivateProfileIntW(LPCWSTR,LPCWSTR,INT,LPCWSTR); #define GetPrivateProfileInt WINELIB_NAME_AW(GetPrivateProfileInt) INT WINAPI GetPrivateProfileSectionA(LPCSTR,LPSTR,DWORD,LPCSTR); INT WINAPI GetPrivateProfileSectionW(LPCWSTR,LPWSTR,DWORD,LPCWSTR); #define GetPrivateProfileSection WINELIB_NAME_AW(GetPrivateProfileSection) DWORD WINAPI GetPrivateProfileSectionNamesA(LPSTR,DWORD,LPCSTR); DWORD WINAPI GetPrivateProfileSectionNamesW(LPWSTR,DWORD,LPCWSTR); #define GetPrivateProfileSectionNames WINELIB_NAME_AW(GetPrivateProfileSectionNames) INT WINAPI GetPrivateProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT,LPCSTR); INT WINAPI GetPrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT,LPCWSTR); #define GetPrivateProfileString WINELIB_NAME_AW(GetPrivateProfileString) WIN_BOOL WINAPI GetPrivateProfileStructA(LPCSTR,LPCSTR,LPVOID,UINT,LPCSTR); WIN_BOOL WINAPI GetPrivateProfileStructW(LPCWSTR,LPCWSTR,LPVOID,UINT,LPCWSTR); #define GetPrivateProfileStruct WINELIB_NAME_AW(GetPrivateProfileStruct) FARPROC WINAPI GetProcAddress(HMODULE,LPCSTR); UINT WINAPI GetProfileIntA(LPCSTR,LPCSTR,INT); UINT WINAPI GetProfileIntW(LPCWSTR,LPCWSTR,INT); #define GetProfileInt WINELIB_NAME_AW(GetProfileInt) INT WINAPI GetProfileSectionA(LPCSTR,LPSTR,DWORD); INT WINAPI GetProfileSectionW(LPCWSTR,LPWSTR,DWORD); #define GetProfileSection WINELIB_NAME_AW(GetProfileSection) INT WINAPI GetProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPSTR,UINT); INT WINAPI GetProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,UINT); #define GetProfileString WINELIB_NAME_AW(GetProfileString) VOID WINAPI GetStartupInfoA(LPSTARTUPINFOA); VOID WINAPI GetStartupInfoW(LPSTARTUPINFOW); #define GetStartupInfo WINELIB_NAME_AW(GetStartupInfo) WIN_BOOL WINAPI GetStringTypeA(LCID,DWORD,LPCSTR,INT,LPWORD); WIN_BOOL WINAPI GetStringTypeW(DWORD,LPCWSTR,INT,LPWORD); #define GetStringType WINELIB_NAME_AW(GetStringType) UINT WINAPI GetSystemDirectoryA(LPSTR,UINT); UINT WINAPI GetSystemDirectoryW(LPWSTR,UINT); #define GetSystemDirectory WINELIB_NAME_AW(GetSystemDirectory) UINT WINAPI GetTempFileNameA(LPCSTR,LPCSTR,UINT,LPSTR); UINT WINAPI GetTempFileNameW(LPCWSTR,LPCWSTR,UINT,LPWSTR); #define GetTempFileName WINELIB_NAME_AW(GetTempFileName) UINT WINAPI GetTempPathA(UINT,LPSTR); UINT WINAPI GetTempPathW(UINT,LPWSTR); #define GetTempPath WINELIB_NAME_AW(GetTempPath) LONG WINAPI GetVersion(void); WIN_BOOL WINAPI GetExitCodeProcess(HANDLE,LPDWORD); WIN_BOOL WINAPI GetVolumeInformationA(LPCSTR,LPSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPSTR,DWORD); WIN_BOOL WINAPI GetVolumeInformationW(LPCWSTR,LPWSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPWSTR,DWORD); #define GetVolumeInformation WINELIB_NAME_AW(GetVolumeInformation) UINT WINAPI GetWindowsDirectoryA(LPSTR,UINT); UINT WINAPI GetWindowsDirectoryW(LPWSTR,UINT); #define GetWindowsDirectory WINELIB_NAME_AW(GetWindowsDirectory) HGLOBAL16 WINAPI GlobalAlloc16(UINT16,DWORD); HGLOBAL WINAPI GlobalAlloc(UINT,DWORD); DWORD WINAPI GlobalCompact(DWORD); UINT WINAPI GlobalFlags(HGLOBAL); HGLOBAL16 WINAPI GlobalFree16(HGLOBAL16); HGLOBAL WINAPI GlobalFree(HGLOBAL); HGLOBAL WINAPI GlobalHandle(LPCVOID); WORD WINAPI GlobalFix16(HGLOBAL16); VOID WINAPI GlobalFix(HGLOBAL); LPVOID WINAPI GlobalLock16(HGLOBAL16); LPVOID WINAPI GlobalLock(HGLOBAL); HGLOBAL WINAPI GlobalReAlloc(HGLOBAL,DWORD,UINT); DWORD WINAPI GlobalSize16(HGLOBAL16); DWORD WINAPI GlobalSize(HGLOBAL); VOID WINAPI GlobalUnfix16(HGLOBAL16); VOID WINAPI GlobalUnfix(HGLOBAL); WIN_BOOL16 WINAPI GlobalUnlock16(HGLOBAL16); WIN_BOOL WINAPI GlobalUnlock(HGLOBAL); WIN_BOOL16 WINAPI GlobalUnWire16(HGLOBAL16); WIN_BOOL WINAPI GlobalUnWire(HGLOBAL); SEGPTR WINAPI GlobalWire16(HGLOBAL16); LPVOID WINAPI GlobalWire(HGLOBAL); WIN_BOOL WINAPI InitAtomTable(DWORD); WIN_BOOL WINAPI IsBadCodePtr(FARPROC); WIN_BOOL WINAPI IsBadHugeReadPtr(LPCVOID,UINT); WIN_BOOL WINAPI IsBadHugeWritePtr(LPVOID,UINT); WIN_BOOL WINAPI IsBadReadPtr(LPCVOID,UINT); WIN_BOOL WINAPI IsBadStringPtrA(LPCSTR,UINT); WIN_BOOL WINAPI IsBadStringPtrW(LPCWSTR,UINT); #define IsBadStringPtr WINELIB_NAME_AW(IsBadStringPtr) WIN_BOOL WINAPI IsBadWritePtr(LPVOID,UINT); WIN_BOOL WINAPI IsDBCSLeadByte(BYTE); WIN_BOOL WINAPI IsDebuggerPresent(void); HINSTANCE16 WINAPI LoadLibrary16(LPCSTR); HMODULE WINAPI LoadLibraryA(LPCSTR); HMODULE WINAPI LoadLibraryW(LPCWSTR); #define LoadLibrary WINELIB_NAME_AW(LoadLibrary) HMODULE WINAPI LoadLibraryExA(LPCSTR,HANDLE,DWORD); HMODULE WINAPI LoadLibraryExW(LPCWSTR,HANDLE,DWORD); #define LoadLibraryEx WINELIB_NAME_AW(LoadLibraryEx) HINSTANCE16 WINAPI LoadModule16(LPCSTR,LPVOID); HINSTANCE WINAPI LoadModule(LPCSTR,LPVOID); HGLOBAL WINAPI LoadResource(HMODULE,HRSRC); HLOCAL WINAPI LocalAlloc(UINT,DWORD); UINT WINAPI LocalCompact(UINT); UINT WINAPI LocalFlags(HLOCAL); HLOCAL WINAPI LocalFree(HLOCAL); HLOCAL WINAPI LocalHandle(LPCVOID); LPVOID WINAPI LocalLock(HLOCAL); HLOCAL WINAPI LocalReAlloc(HLOCAL,DWORD,UINT); UINT WINAPI LocalShrink(HGLOBAL,UINT); UINT WINAPI LocalSize(HLOCAL); WIN_BOOL WINAPI LocalUnlock(HLOCAL); LPVOID WINAPI LockResource(HGLOBAL); #define LockSegment(handle) GlobalFix((HANDLE)(handle)) #define MakeProcInstance(proc,inst) (proc) HFILE16 WINAPI OpenFile16(LPCSTR,OFSTRUCT*,UINT16); HFILE WINAPI OpenFile(LPCSTR,OFSTRUCT*,UINT); VOID WINAPI OutputDebugStringA(LPCSTR); VOID WINAPI OutputDebugStringW(LPCWSTR); #define OutputDebugString WINELIB_NAME_AW(OutputDebugString) WIN_BOOL WINAPI ReadProcessMemory(HANDLE, LPCVOID, LPVOID, DWORD, LPDWORD); WIN_BOOL WINAPI RemoveDirectoryA(LPCSTR); WIN_BOOL WINAPI RemoveDirectoryW(LPCWSTR); #define RemoveDirectory WINELIB_NAME_AW(RemoveDirectory) WIN_BOOL WINAPI SetCurrentDirectoryA(LPCSTR); WIN_BOOL WINAPI SetCurrentDirectoryW(LPCWSTR); #define SetCurrentDirectory WINELIB_NAME_AW(SetCurrentDirectory) UINT WINAPI SetErrorMode(UINT); WIN_BOOL WINAPI SetFileAttributesA(LPCSTR,DWORD); WIN_BOOL WINAPI SetFileAttributesW(LPCWSTR,DWORD); #define SetFileAttributes WINELIB_NAME_AW(SetFileAttributes) UINT WINAPI SetHandleCount(UINT); #define SetSwapAreaSize(w) (w) WIN_BOOL WINAPI SetVolumeLabelA(LPCSTR,LPCSTR); WIN_BOOL WINAPI SetVolumeLabelW(LPCWSTR,LPCWSTR); #define SetVolumeLabel WINELIB_NAME_AW(SetVolumeLabel) DWORD WINAPI SizeofResource(HMODULE,HRSRC); #define UnlockSegment(handle) GlobalUnfix((HANDLE)(handle)) WIN_BOOL WINAPI WritePrivateProfileSectionA(LPCSTR,LPCSTR,LPCSTR); WIN_BOOL WINAPI WritePrivateProfileSectionW(LPCWSTR,LPCWSTR,LPCWSTR); #define WritePrivateProfileSection WINELIB_NAME_AW(WritePrivateProfileSection) WIN_BOOL WINAPI WritePrivateProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPCSTR); WIN_BOOL WINAPI WritePrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR); #define WritePrivateProfileString WINELIB_NAME_AW(WritePrivateProfileString) WIN_BOOL WINAPI WriteProfileSectionA(LPCSTR,LPCSTR); WIN_BOOL WINAPI WriteProfileSectionW(LPCWSTR,LPCWSTR); #define WritePrivateProfileSection WINELIB_NAME_AW(WritePrivateProfileSection) WIN_BOOL WINAPI WritePrivateProfileStructA(LPCSTR,LPCSTR,LPVOID,UINT,LPCSTR); WIN_BOOL WINAPI WritePrivateProfileStructW(LPCWSTR,LPCWSTR,LPVOID,UINT,LPCWSTR); #define WritePrivateProfileStruct WINELIB_NAME_AW(WritePrivateProfileStruct) WIN_BOOL WINAPI WriteProcessMemory(HANDLE, LPVOID, LPVOID, DWORD, LPDWORD); WIN_BOOL WINAPI WriteProfileStringA(LPCSTR,LPCSTR,LPCSTR); WIN_BOOL WINAPI WriteProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR); #define WriteProfileString WINELIB_NAME_AW(WriteProfileString) #define Yield32() LPSTR WINAPI lstrcatA(LPSTR,LPCSTR); LPWSTR WINAPI lstrcatW(LPWSTR,LPCWSTR); #define lstrcat WINELIB_NAME_AW(lstrcat) LPSTR WINAPI lstrcpyA(LPSTR,LPCSTR); LPWSTR WINAPI lstrcpyW(LPWSTR,LPCWSTR); #define lstrcpy WINELIB_NAME_AW(lstrcpy) LPSTR WINAPI lstrcpynA(LPSTR,LPCSTR,INT); LPWSTR WINAPI lstrcpynW(LPWSTR,LPCWSTR,INT); #define lstrcpyn WINELIB_NAME_AW(lstrcpyn) INT WINAPI lstrlenA(LPCSTR); INT WINAPI lstrlenW(LPCWSTR); #define lstrlen WINELIB_NAME_AW(lstrlen) HINSTANCE WINAPI WinExec(LPCSTR,UINT); LONG WINAPI _hread(HFILE,LPVOID,LONG); LONG WINAPI _hwrite(HFILE,LPCSTR,LONG); HFILE WINAPI _lcreat(LPCSTR,INT); HFILE WINAPI _lclose(HFILE); LONG WINAPI _llseek(HFILE,LONG,INT); HFILE WINAPI _lopen(LPCSTR,INT); UINT WINAPI _lread(HFILE,LPVOID,UINT); UINT WINAPI _lwrite(HFILE,LPCSTR,UINT); SEGPTR WINAPI WIN16_GlobalLock16(HGLOBAL16); INT WINAPI lstrcmpA(LPCSTR,LPCSTR); INT WINAPI lstrcmpW(LPCWSTR,LPCWSTR); #define lstrcmp WINELIB_NAME_AW(lstrcmp) INT WINAPI lstrcmpiA(LPCSTR,LPCSTR); INT WINAPI lstrcmpiW(LPCWSTR,LPCWSTR); #define lstrcmpi WINELIB_NAME_AW(lstrcmpi) /* compatibility macros */ #define FillMemory RtlFillMemory #define MoveMemory RtlMoveMemory #define ZeroMemory RtlZeroMemory #define CopyMemory RtlCopyMemory DWORD WINAPI GetCurrentProcessId(void); DWORD WINAPI GetCurrentThreadId(void); DWORD WINAPI GetLastError(void); HANDLE WINAPI GetProcessHeap(void); PVOID WINAPI InterlockedCompareExchange(PVOID*,PVOID,PVOID); LONG WINAPI InterlockedDecrement(PLONG); LONG WINAPI InterlockedExchange(PLONG,LONG); LONG WINAPI InterlockedExchangeAdd(PLONG,LONG); LONG WINAPI InterlockedIncrement(PLONG); VOID WINAPI SetLastError(DWORD); #ifdef __WINE__ #define GetCurrentProcess() ((HANDLE)0xffffffff) #define GetCurrentThread() ((HANDLE)0xfffffffe) #endif #ifdef __cplusplus } #endif #endif /* __WINE_WINBASE_H */ bml-0.6.1/dllwrapper/wine/ntdef.h0000644042355400116100000000370011576362500013613 00000000000000#ifndef __WINE_NTDEF_H #define __WINE_NTDEF_H #include "basetsd.h" #include "windef.h" #include "pshpack1.h" #ifdef __cplusplus extern "C" { #endif #define NTAPI __stdcall #ifndef IN #define IN #endif #ifndef OUT #define OUT #endif #ifndef OPTIONAL #define OPTIONAL #endif #ifndef VOID #define VOID void #endif typedef LONG NTSTATUS; typedef NTSTATUS *PNTSTATUS; typedef short CSHORT; typedef CSHORT *PCSHORT; typedef WCHAR * PWCHAR; /* NT lowlevel Strings (handled by Rtl* functions in NTDLL) * If they are zero terminated, Length does not include the terminating 0. */ typedef struct _STRING { USHORT Length; USHORT MaximumLength; PSTR Buffer; } STRING,*PSTRING,ANSI_STRING,*PANSI_STRING; typedef struct _CSTRING { USHORT Length; USHORT MaximumLength; PCSTR Buffer; } CSTRING,*PCSTRING; typedef struct _UNICODE_STRING { USHORT Length; /* bytes */ USHORT MaximumLength; /* bytes */ PWSTR Buffer; } UNICODE_STRING,*PUNICODE_STRING; /* Objects */ #define OBJ_INHERIT 0x00000002L #define OBJ_PERMANENT 0x00000010L #define OBJ_EXCLUSIVE 0x00000020L #define OBJ_CASE_INSENSITIVE 0x00000040L #define OBJ_OPENIF 0x00000080L #define OBJ_OPENLINK 0x00000100L #define OBJ_KERNEL_HANDLE 0x00000200L #define OBJ_VALID_ATTRIBUTES 0x000003F2L typedef struct _OBJECT_ATTRIBUTES { ULONG Length; HANDLE RootDirectory; PUNICODE_STRING ObjectName; ULONG Attributes; PVOID SecurityDescriptor; /* type SECURITY_DESCRIPTOR */ PVOID SecurityQualityOfService; /* type SECURITY_QUALITY_OF_SERVICE */ } OBJECT_ATTRIBUTES; typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES; #define InitializeObjectAttributes(p,n,a,r,s) \ { (p)->Length = sizeof(OBJECT_ATTRIBUTES); \ (p)->RootDirectory = r; \ (p)->Attributes = a; \ (p)->ObjectName = n; \ (p)->SecurityDescriptor = s; \ (p)->SecurityQualityOfService = NULL; \ } #ifdef __cplusplus } #endif #include "poppack.h" #endif bml-0.6.1/dllwrapper/wine/wrapper.h0000644042355400116100000000047611576362500014202 00000000000000#ifndef _WRAPPER_H #define _WRAPPER_H #include #if defined(__sun) typedef uint32_t u_int32_t; #endif typedef struct { u_int32_t edi, esi, ebp, esp, ebx, edx, ecx, eax; } reg386_t; extern void (*wrapper_target)(void); extern int wrapper(void); extern int null_call(void); #endif /* _WRAPPER_H */ bml-0.6.1/dllwrapper/wine/Makefile.am0000644042355400116100000000262311576362500014401 00000000000000## $Id: Makefile.am 2756 2010-02-03 21:56:47Z ensonic $ noinst_LTLIBRARIES = libloader.la CCAS = $(CC) #%.o: %.s # $(CCAS) -c $< -o $@ libloader_la_SOURCES = \ ldt_keeper.c \ pe_image.c \ module.c \ ext.c \ win32.c \ driver.c \ pe_resource.c \ resource.c \ registry.c \ elfdll.c \ afl.c \ vfl.c \ stubs.s \ wrapper.S libloader_la_CFLAGS = $(BML_CFLAGS) $(ARCH_CFLAGS) -ffast-math libloader_la_CCASFLAGS = $(ARCH_CCASFLAGS) # Note: gcc-3.0 produces buggy code for acmStreamOpen() with # "-O3 -fomit-frame-pointer" or "-O2 -fomit-frame-pointer # -finline-functions -frename-registers" (code is OK with sole -O2), # the bad code accesses parameters via %ebp without setting up a # propper %ebp first! # -fno-omit-frame-pointer works around this gcc-3.0 bug. gcc-2.95.2 is OK. AM_CPPFLAGS = \ -D__WINE__ \ -DWIN32_PATH=\"/usr/lib/win32\" \ -DWIN32_LIB_PATH=\"$(libdir)/win32\" \ -fno-omit-frame-pointer \ -mno-omit-leaf-frame-pointer noinst_HEADERS = \ avifmt.h \ basetsd.h \ com.h \ debugtools.h \ driver.h \ elfdll.h \ ext.h \ heap.h \ ldt.h \ ldt_keeper.h \ loader.h \ mmreg.h \ module.h \ msacmdrv.h \ msacm.h \ ntdef.h \ pe_image.h \ poppack.h \ pshpack1.h \ pshpack2.h \ pshpack4.h \ pshpack8.h \ registry.h \ resource.h \ vfw.h \ win32.h \ winbase.h \ windef.h \ windows.h \ wineacm.h \ winerror.h \ winestring.h \ winnt.h \ winreg.h \ winuser.h \ wrapper.h bml-0.6.1/dllwrapper/wine/ext.h0000644042355400116100000000074311576362500013317 00000000000000#ifndef loader_ext_h #define loader_ext_h #include "windef.h" extern LPVOID FILE_dommap( int unix_handle, LPVOID start, DWORD size_high, DWORD size_low, DWORD offset_high, DWORD offset_low, int prot, int flags ); extern int FILE_munmap( LPVOID start, DWORD size_high, DWORD size_low ); extern int wcsnicmp(const unsigned short* s1, const unsigned short* s2, int n); extern int __attribute__ ((format (printf, 1, 2))) __vprintf( const char *format, ... ); #endif bml-0.6.1/dllwrapper/wine/debugtools.h0000644042355400116100000000633011576362500014664 00000000000000 #ifndef __WINE_DEBUGTOOLS_H #define __WINE_DEBUGTOOLS_H //#ifdef __WINE__ /* Debugging interface is internal to Wine */ #include #include "config.h" #include "windef.h" struct _GUID; #ifndef TRACE #ifdef LOG extern void (*_log_printf)(const char *file, const int line, const char *fmt, ...); # define TRACE(...) _log_printf(__FILE__,__LINE__,__VA_ARGS__) #else # define TRACE(...) #endif #endif #ifndef dbg_printf #ifdef LOG # define dbg_printf printf #else # define dbg_printf(...) #endif #endif /* Internal definitions (do not use these directly) */ enum __DEBUG_CLASS { __DBCL_FIXME, __DBCL_ERR, __DBCL_WARN, __DBCL_TRACE, __DBCL_COUNT }; #ifndef NO_TRACE_MSGS # define __GET_DEBUGGING_trace(dbch) ((dbch)[0] & (1 << __DBCL_TRACE)) #else # define __GET_DEBUGGING_trace(dbch) 0 #endif #ifndef NO_DEBUG_MSGS # define __GET_DEBUGGING_warn(dbch) ((dbch)[0] & (1 << __DBCL_WARN)) # define __GET_DEBUGGING_fixme(dbch) ((dbch)[0] & (1 << __DBCL_FIXME)) #else # define __GET_DEBUGGING_warn(dbch) 0 # define __GET_DEBUGGING_fixme(dbch) 0 #endif /* define error macro regardless of what is configured */ #define __GET_DEBUGGING_err(dbch) ((dbch)[0] & (1 << __DBCL_ERR)) #define __GET_DEBUGGING(dbcl,dbch) __GET_DEBUGGING_##dbcl(dbch) #define __SET_DEBUGGING(dbcl,dbch,on) \ ((on) ? ((dbch)[0] |= 1 << (dbcl)) : ((dbch)[0] &= ~(1 << (dbcl)))) #define __DPRINTF(dbcl,dbch) \ (!__GET_DEBUGGING(dbcl,(dbch)) || (dbg_header_##dbcl((dbch),__XINE_FUNCTION__),0)) ? \ (void)0 : (void)dbg_printf /* Exported definitions and macros */ /* These function return a printable version of a string, including quotes. The string will be valid for some time, but not indefinitely as strings are re-used. */ extern LPCSTR debugstr_an (LPCSTR s, int n); extern LPCSTR debugstr_wn (LPCWSTR s, int n); extern LPCSTR debugres_a (LPCSTR res); extern LPCSTR debugres_w (LPCWSTR res); extern LPCSTR debugstr_guid( const struct _GUID *id ); extern LPCSTR debugstr_hex_dump (const void *ptr, int len); extern int dbg_header_err( const char *dbg_channel, const char *func ); extern int dbg_header_warn( const char *dbg_channel, const char *func ); extern int dbg_header_fixme( const char *dbg_channel, const char *func ); extern int dbg_header_trace( const char *dbg_channel, const char *func ); extern int dbg_vprintf( const char *format, va_list args ); #if 0 /* causes undefined symbols */ static inline LPCSTR debugstr_a( LPCSTR s ) { return debugstr_an( s, 80 ); } static inline LPCSTR debugstr_w( LPCWSTR s ) { return debugstr_wn( s, 80 ); } #endif #if 0 /* dbg_printf already defined as a macro */ #ifdef __GNUC__ extern int dbg_printf(const char *format, ...) __attribute__((format (printf,1,2))); #else extern int dbg_printf(const char *format, ...); #endif #endif #define TRACE_(X) TRACE #define WARN_(X) TRACE #define WARN TRACE #define ERR_(X) printf #define ERR printf #define FIXME_(X) TRACE #define FIXME TRACE #define TRACE_ON(X) 1 #define ERR_ON(X) 1 #define DECLARE_DEBUG_CHANNEL(ch) \ extern char dbch_##ch[]; #define DEFAULT_DEBUG_CHANNEL(ch) \ extern char dbch_##ch[]; static char * const __dbch_default = dbch_##ch; #define DPRINTF dbg_printf #define MESSAGE dbg_printf //#endif /* __WINE__ */ #endif /* __WINE_DEBUGTOOLS_H */ bml-0.6.1/dllwrapper/wine/pe_resource.c0000644042355400116100000002604311576362500015026 00000000000000/* * PE (Portable Execute) File Resources * * Copyright 1995 Thomas Sandford * Copyright 1996 Martin von Loewis * * Based on the Win16 resource handling code in loader/resource.c * Copyright 1993 Robert J. Amstadt * Copyright 1995 Alexandre Julliard * Copyright 1997 Marcus Meissner */ #include #include #include #include "winestring.h" #include "windef.h" #include "pe_image.h" #include "module.h" #include "heap.h" //#include "task.h" //#include "process.h" //#include "stackframe.h" #include "debugtools.h" #include /********************************************************************** * HMODULE32toPE_MODREF * * small helper function to get a PE_MODREF from a passed HMODULE32 */ static PE_MODREF* HMODULE32toPE_MODREF(HMODULE hmod) { WINE_MODREF *wm; wm = MODULE32_LookupHMODULE( hmod ); if (!wm || wm->type!=MODULE32_PE) return NULL; return &(wm->binfmt.pe); } /********************************************************************** * GetResDirEntryW * * Helper function - goes down one level of PE resource tree * */ PIMAGE_RESOURCE_DIRECTORY GetResDirEntryW(PIMAGE_RESOURCE_DIRECTORY resdirptr, LPCWSTR name,DWORD root, WIN_BOOL allowdefault) { int entrynum; PIMAGE_RESOURCE_DIRECTORY_ENTRY entryTable; int namelen; if (HIWORD(name)) { if (name[0]=='#') { char buf[10]; lstrcpynWtoA(buf,name+1,10); buf[9] = '\0'; return GetResDirEntryW(resdirptr,(LPCWSTR)atoi(buf),root,allowdefault); } entryTable = (PIMAGE_RESOURCE_DIRECTORY_ENTRY) ( (BYTE *) resdirptr + sizeof(IMAGE_RESOURCE_DIRECTORY)); namelen = lstrlenW(name); for (entrynum = 0; entrynum < resdirptr->NumberOfNamedEntries; entrynum++) { PIMAGE_RESOURCE_DIR_STRING_U str = (PIMAGE_RESOURCE_DIR_STRING_U) (root + entryTable[entrynum].u1.s.NameOffset); if(namelen != str->Length) continue; if(wcsnicmp(name,str->NameString,str->Length)==0) return (PIMAGE_RESOURCE_DIRECTORY) ( root + entryTable[entrynum].u2.s.OffsetToDirectory); } return NULL; } else { entryTable = (PIMAGE_RESOURCE_DIRECTORY_ENTRY) ( (BYTE *) resdirptr + sizeof(IMAGE_RESOURCE_DIRECTORY) + resdirptr->NumberOfNamedEntries * sizeof(IMAGE_RESOURCE_DIRECTORY_ENTRY)); for (entrynum = 0; entrynum < resdirptr->NumberOfIdEntries; entrynum++) if ((DWORD)entryTable[entrynum].u1.Name == (DWORD)name) return (PIMAGE_RESOURCE_DIRECTORY) ( root + entryTable[entrynum].u2.s.OffsetToDirectory); /* just use first entry if no default can be found */ if (allowdefault && !name && resdirptr->NumberOfIdEntries) return (PIMAGE_RESOURCE_DIRECTORY) ( root + entryTable[0].u2.s.OffsetToDirectory); return NULL; } } /********************************************************************** * GetResDirEntryA */ PIMAGE_RESOURCE_DIRECTORY GetResDirEntryA( PIMAGE_RESOURCE_DIRECTORY resdirptr, LPCSTR name, DWORD root, WIN_BOOL allowdefault ) { PIMAGE_RESOURCE_DIRECTORY retv; LPWSTR nameW = HIWORD(name)? HEAP_strdupAtoW( GetProcessHeap(), 0, name ) : (LPWSTR)name; retv = GetResDirEntryW( resdirptr, nameW, root, allowdefault ); if ( HIWORD(name) ) HeapFree( GetProcessHeap(), 0, nameW ); return retv; } /********************************************************************** * PE_FindResourceEx32W */ HANDLE PE_FindResourceExW( WINE_MODREF *wm,LPCWSTR name,LPCWSTR type,WORD lang ) { PIMAGE_RESOURCE_DIRECTORY resdirptr; DWORD root; HANDLE result; PE_MODREF *pem = &(wm->binfmt.pe); if (!pem || !pem->pe_resource) return 0; resdirptr = pem->pe_resource; root = (DWORD) resdirptr; if ((resdirptr = GetResDirEntryW(resdirptr, type, root, FALSE)) == NULL) return 0; if ((resdirptr = GetResDirEntryW(resdirptr, name, root, FALSE)) == NULL) return 0; result = (HANDLE)GetResDirEntryW(resdirptr, (LPCWSTR)(UINT)lang, root, FALSE); /* Try LANG_NEUTRAL, too */ if(!result) return (HANDLE)GetResDirEntryW(resdirptr, (LPCWSTR)0, root, TRUE); return result; } /********************************************************************** * PE_LoadResource32 */ HANDLE PE_LoadResource( WINE_MODREF *wm, HANDLE hRsrc ) { if (!hRsrc || !wm || wm->type!=MODULE32_PE) return 0; return (HANDLE) (wm->module + ((PIMAGE_RESOURCE_DATA_ENTRY)hRsrc)->OffsetToData); } /********************************************************************** * PE_SizeofResource32 */ DWORD PE_SizeofResource( HINSTANCE hModule, HANDLE hRsrc ) { /* we don't need hModule */ if (!hRsrc) return 0; return ((PIMAGE_RESOURCE_DATA_ENTRY)hRsrc)->Size; } /********************************************************************** * PE_EnumResourceTypes32A */ WIN_BOOL PE_EnumResourceTypesA(HMODULE hmod,ENUMRESTYPEPROCA lpfun,LONG lparam) { PE_MODREF *pem = HMODULE32toPE_MODREF(hmod); int i; PIMAGE_RESOURCE_DIRECTORY resdir; PIMAGE_RESOURCE_DIRECTORY_ENTRY et; WIN_BOOL ret; HANDLE heap = GetProcessHeap(); if (!pem || !pem->pe_resource) return FALSE; resdir = (PIMAGE_RESOURCE_DIRECTORY)pem->pe_resource; et =(PIMAGE_RESOURCE_DIRECTORY_ENTRY)((LPBYTE)resdir+sizeof(IMAGE_RESOURCE_DIRECTORY)); ret = FALSE; for (i=0;iNumberOfNamedEntries+resdir->NumberOfIdEntries;i++) { LPSTR name; if (et[i].u1.s.NameIsString) name = HEAP_strdupWtoA(heap,0,(LPWSTR)((LPBYTE)pem->pe_resource+et[i].u1.s.NameOffset)); else name = (LPSTR)(int)et[i].u1.Id; ret = lpfun(hmod,name,lparam); if (HIWORD(name)) HeapFree(heap,0,name); if (!ret) break; } return ret; } /********************************************************************** * PE_EnumResourceTypes32W */ WIN_BOOL PE_EnumResourceTypesW(HMODULE hmod,ENUMRESTYPEPROCW lpfun,LONG lparam) { PE_MODREF *pem = HMODULE32toPE_MODREF(hmod); int i; PIMAGE_RESOURCE_DIRECTORY resdir; PIMAGE_RESOURCE_DIRECTORY_ENTRY et; WIN_BOOL ret; if (!pem || !pem->pe_resource) return FALSE; resdir = (PIMAGE_RESOURCE_DIRECTORY)pem->pe_resource; et =(PIMAGE_RESOURCE_DIRECTORY_ENTRY)((LPBYTE)resdir+sizeof(IMAGE_RESOURCE_DIRECTORY)); ret = FALSE; for (i=0;iNumberOfNamedEntries+resdir->NumberOfIdEntries;i++) { LPWSTR type; if (et[i].u1.s.NameIsString) type = (LPWSTR)((LPBYTE)pem->pe_resource+et[i].u1.s.NameOffset); else type = (LPWSTR)(int)et[i].u1.Id; ret = lpfun(hmod,type,lparam); if (!ret) break; } return ret; } /********************************************************************** * PE_EnumResourceNames32A */ WIN_BOOL PE_EnumResourceNamesA( HMODULE hmod,LPCSTR type,ENUMRESNAMEPROCA lpfun,LONG lparam ) { PE_MODREF *pem = HMODULE32toPE_MODREF(hmod); int i; PIMAGE_RESOURCE_DIRECTORY resdir; PIMAGE_RESOURCE_DIRECTORY_ENTRY et; WIN_BOOL ret; HANDLE heap = GetProcessHeap(); LPWSTR typeW; if (!pem || !pem->pe_resource) return FALSE; resdir = (PIMAGE_RESOURCE_DIRECTORY)pem->pe_resource; if (HIWORD(type)) typeW = HEAP_strdupAtoW(heap,0,type); else typeW = (LPWSTR)type; resdir = GetResDirEntryW(resdir,typeW,(DWORD)pem->pe_resource,FALSE); if (HIWORD(type)) HeapFree(heap,0,typeW); if (!resdir) return FALSE; et =(PIMAGE_RESOURCE_DIRECTORY_ENTRY)((LPBYTE)resdir+sizeof(IMAGE_RESOURCE_DIRECTORY)); ret = FALSE; for (i=0;iNumberOfNamedEntries+resdir->NumberOfIdEntries;i++) { LPSTR name; if (et[i].u1.s.NameIsString) name = HEAP_strdupWtoA(heap,0,(LPWSTR)((LPBYTE)pem->pe_resource+et[i].u1.s.NameOffset)); else name = (LPSTR)(int)et[i].u1.Id; ret = lpfun(hmod,type,name,lparam); if (HIWORD(name)) HeapFree(heap,0,name); if (!ret) break; } return ret; } /********************************************************************** * PE_EnumResourceNames32W */ WIN_BOOL PE_EnumResourceNamesW( HMODULE hmod,LPCWSTR type,ENUMRESNAMEPROCW lpfun,LONG lparam ) { PE_MODREF *pem = HMODULE32toPE_MODREF(hmod); int i; PIMAGE_RESOURCE_DIRECTORY resdir; PIMAGE_RESOURCE_DIRECTORY_ENTRY et; WIN_BOOL ret; if (!pem || !pem->pe_resource) return FALSE; resdir = (PIMAGE_RESOURCE_DIRECTORY)pem->pe_resource; resdir = GetResDirEntryW(resdir,type,(DWORD)pem->pe_resource,FALSE); if (!resdir) return FALSE; et =(PIMAGE_RESOURCE_DIRECTORY_ENTRY)((LPBYTE)resdir+sizeof(IMAGE_RESOURCE_DIRECTORY)); ret = FALSE; for (i=0;iNumberOfNamedEntries+resdir->NumberOfIdEntries;i++) { LPWSTR name; if (et[i].u1.s.NameIsString) name = (LPWSTR)((LPBYTE)pem->pe_resource+et[i].u1.s.NameOffset); else name = (LPWSTR)(int)et[i].u1.Id; ret = lpfun(hmod,type,name,lparam); if (!ret) break; } return ret; } /********************************************************************** * PE_EnumResourceNames32A */ WIN_BOOL PE_EnumResourceLanguagesA( HMODULE hmod,LPCSTR name,LPCSTR type,ENUMRESLANGPROCA lpfun, LONG lparam ) { PE_MODREF *pem = HMODULE32toPE_MODREF(hmod); int i; PIMAGE_RESOURCE_DIRECTORY resdir; PIMAGE_RESOURCE_DIRECTORY_ENTRY et; WIN_BOOL ret; HANDLE heap = GetProcessHeap(); LPWSTR nameW,typeW; if (!pem || !pem->pe_resource) return FALSE; resdir = (PIMAGE_RESOURCE_DIRECTORY)pem->pe_resource; if (HIWORD(name)) nameW = HEAP_strdupAtoW(heap,0,name); else nameW = (LPWSTR)name; resdir = GetResDirEntryW(resdir,nameW,(DWORD)pem->pe_resource,FALSE); if (HIWORD(name)) HeapFree(heap,0,nameW); if (!resdir) return FALSE; if (HIWORD(type)) typeW = HEAP_strdupAtoW(heap,0,type); else typeW = (LPWSTR)type; resdir = GetResDirEntryW(resdir,typeW,(DWORD)pem->pe_resource,FALSE); if (HIWORD(type)) HeapFree(heap,0,typeW); if (!resdir) return FALSE; et =(PIMAGE_RESOURCE_DIRECTORY_ENTRY)((LPBYTE)resdir+sizeof(IMAGE_RESOURCE_DIRECTORY)); ret = FALSE; for (i=0;iNumberOfNamedEntries+resdir->NumberOfIdEntries;i++) { /* languages are just ids... I hopem */ ret = lpfun(hmod,name,type,et[i].u1.Id,lparam); if (!ret) break; } return ret; } /********************************************************************** * PE_EnumResourceLanguages32W */ WIN_BOOL PE_EnumResourceLanguagesW( HMODULE hmod,LPCWSTR name,LPCWSTR type,ENUMRESLANGPROCW lpfun, LONG lparam ) { PE_MODREF *pem = HMODULE32toPE_MODREF(hmod); int i; PIMAGE_RESOURCE_DIRECTORY resdir; PIMAGE_RESOURCE_DIRECTORY_ENTRY et; WIN_BOOL ret; if (!pem || !pem->pe_resource) return FALSE; resdir = (PIMAGE_RESOURCE_DIRECTORY)pem->pe_resource; resdir = GetResDirEntryW(resdir,name,(DWORD)pem->pe_resource,FALSE); if (!resdir) return FALSE; resdir = GetResDirEntryW(resdir,type,(DWORD)pem->pe_resource,FALSE); if (!resdir) return FALSE; et =(PIMAGE_RESOURCE_DIRECTORY_ENTRY)((LPBYTE)resdir+sizeof(IMAGE_RESOURCE_DIRECTORY)); ret = FALSE; for (i=0;iNumberOfNamedEntries+resdir->NumberOfIdEntries;i++) { ret = lpfun(hmod,name,type,et[i].u1.Id,lparam); if (!ret) break; } return ret; } bml-0.6.1/dllwrapper/wine/wrapper.S0000644042355400116100000000415111576362500014147 00000000000000.section .data caller_return: .long 0 .global wrapper_target wrapper_target: .long null_call #undef __i686 /* gcc define gets in our way */ .section .gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits .globl __i686.get_pc_thunk.bx .hidden __i686.get_pc_thunk.bx .type __i686.get_pc_thunk.bx,@function __i686.get_pc_thunk.bx: movl (%esp), %ebx ret .section .text .globl null_call .type null_call, @function .balign 16,0x90 null_call: ret .globl wrapper .type wrapper, @function .balign 16,0x90 wrapper: pushl $0 pusha # store registers (EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI) pushf # store flags push %ebp # set up a stack frame movl %esp, %ebp call __i686.get_pc_thunk.bx addl $_GLOBAL_OFFSET_TABLE_, %ebx leal 4(%ebp), %eax # push flags addr push %eax leal 8(%ebp), %eax # push registers addr push %eax leal 44(%ebp), %edx movl (%ebp), %eax subl %edx, %eax push %eax push %edx call report_func@PLT # report entry test %eax, %eax jnz .Ldone movl 44(%ebp), %eax # switch return addresses movl %eax, caller_return@GOTOFF(%ebx) leal .Lwrapper_return@GOTOFF(%ebx), %eax movl %eax, 40(%ebp) movl wrapper_target@GOT(%ebx), %eax movl (%eax), %eax mov %eax, 40(%ebp) # wrapper_target should return at .Lwrapper_return leave # restore %esp, %ebp popf # restore flags popa # restore registers ret # fake 'return' to wrapper_target actually .balign 16, 0x90 .Lwrapper_return: pushl $0 pusha # more for reference sake here pushf push %ebp # set up a stack frame movl %esp, %ebp call __i686.get_pc_thunk.bx addl $_GLOBAL_OFFSET_TABLE_, %ebx movl caller_return@GOTOFF(%ebx), %eax movl %eax, 40(%ebp) # restore the original return address leal 4(%ebp), %eax # push flags addr push %eax leal 8(%ebp), %eax # push registers addr push %eax leal 40(%ebp), %edx # push stack top address (relative to our entry) movl (%ebp), %eax subl %edx, %eax # calculate difference between entry and previous frame push %eax push %edx call report_func_ret@PLT# report the return information (same args) .Ldone: leave popf popa ret .section .note.GNU-stack,"",@progbits bml-0.6.1/dllwrapper/wine/pe_image.c0000644042355400116100000010213111666464225014261 00000000000000/* * Copyright 1994 Eric Youndale & Erik Bos * Copyright 1995 Martin von L�wis * Copyright 1996-98 Marcus Meissner * * based on Eric Youndale's pe-test and: * * ftp.microsoft.com:/pub/developer/MSDN/CD8/PEFILE.ZIP * make that: * ftp.microsoft.com:/developr/MSDN/OctCD/PEFILE.ZIP */ /* Notes: * Before you start changing something in this file be aware of the following: * * - There are several functions called recursively. In a very subtle and * obscure way. DLLs can reference each other recursively etc. * - If you want to enhance, speed up or clean up something in here, think * twice WHY it is implemented in that strange way. There is usually a reason. * Though sometimes it might just be lazyness ;) * - In PE_MapImage, right before fixup_imports() all external and internal * state MUST be correct since this function can be called with the SAME image * AGAIN. (Thats recursion for you.) That means MODREF.module and * NE_MODULE.module32. * - Sometimes, we can't use Linux mmap() to mmap() the images directly. * * The problem is, that there is not direct 1:1 mapping from a diskimage and * a memoryimage. The headers at the start are mapped linear, but the sections * are not. Older x86 pe binaries are 512 byte aligned in file and 4096 byte * aligned in memory. Linux likes them 4096 byte aligned in memory (due to * x86 pagesize, this cannot be fixed without a rather large kernel rewrite) * and 'blocksize' file-aligned (offsets). Since we have 512/1024/2048 (CDROM) * and other byte blocksizes, we can't always do this. We *can* do this for * newer pe binaries produced by MSVC 5 and later, since they are also aligned * to 4096 byte boundaries on disk. */ #include "config.h" #include #include #include #include #include #include #include #include #include #include #ifdef HAVE_SYS_MMAN_H #include #endif #ifdef HAVE_ALLOCA_H #include #endif #include "windef.h" #include "winbase.h" #include "winerror.h" #include "heap.h" #include "pe_image.h" #include "module.h" #include "debugtools.h" #include "ext.h" #include "win32.h" #define RVA(x) ((void *)((char *)load_addr+(unsigned int)(x))) #define AdjustPtr(ptr,delta) ((char *)(ptr) + (delta)) extern void* LookupExternal(const char* library, int ordinal); extern void* LookupExternalByName(const char* library, const char* name); static void dump_exports( HMODULE hModule ) { #if 0 char *Module; int i, j; u_short *ordinal; u_long *function,*functions; u_char **name; unsigned int load_addr = hModule; DWORD rva_start = PE_HEADER(hModule)->OptionalHeader .DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress; DWORD rva_end = rva_start + PE_HEADER(hModule)->OptionalHeader .DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].Size; IMAGE_EXPORT_DIRECTORY *pe_exports = (IMAGE_EXPORT_DIRECTORY*)RVA(rva_start); Module = (char*)RVA(pe_exports->Name); TRACE("*******EXPORT DATA*******\n"); TRACE("Module name is %s, %ld functions, %ld names\n", Module, pe_exports->NumberOfFunctions, pe_exports->NumberOfNames); ordinal=(u_short*) RVA(pe_exports->AddressOfNameOrdinals); functions=function=(u_long*) RVA(pe_exports->AddressOfFunctions); name=(u_char**) RVA(pe_exports->AddressOfNames); TRACE(" Ord RVA Addr Name\n" ); for (i=0;iNumberOfFunctions;i++, function++) { if (!*function) continue; if (TRACE_ON(win32)) { DPRINTF( "%4ld %08lx %p", i + pe_exports->Base, *function, RVA(*function) ); for (j = 0; j < pe_exports->NumberOfNames; j++) if (ordinal[j] == i) { DPRINTF( " %s", (char*)RVA(name[j]) ); break; } if ((*function >= rva_start) && (*function <= rva_end)) DPRINTF(" (forwarded -> %s)", (char *)RVA(*function)); DPRINTF("\n"); } } #endif } /* Look up the specified function or ordinal in the exportlist: * If it is a string: * - look up the name in the Name list. * - look up the ordinal with that index. * - use the ordinal as offset into the functionlist * If it is a ordinal: * - use ordinal-pe_export->Base as offset into the functionlist */ FARPROC PE_FindExportedFunction( WINE_MODREF *wm, LPCSTR funcName, WIN_BOOL snoop ) { u_short * ordinals; u_long * function; u_char ** name, *ename = NULL; int i, ordinal; PE_MODREF *pem = &(wm->binfmt.pe); IMAGE_EXPORT_DIRECTORY *exports = pem->pe_export; unsigned int load_addr = wm->module; u_long rva_start, rva_end, addr; if (HIWORD(funcName)) TRACE("FindExportedFunction(%s)\n",funcName); else TRACE("FindExportedFunction(%d)\n",(int)funcName); if (!exports) { /* Not a fatal problem, some apps do * GetProcAddress(0,"RegisterPenApp") which triggers this * case. */ WARN("Module %08x(%s)/MODREF %p doesn't have a exports table.\n",wm->module,wm->modname,pem); return NULL; } ordinals= (u_short*) RVA(exports->AddressOfNameOrdinals); function= (u_long*) RVA(exports->AddressOfFunctions); name = (u_char **) RVA(exports->AddressOfNames); rva_start = PE_HEADER(wm->module)->OptionalHeader .DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress; rva_end = rva_start + PE_HEADER(wm->module)->OptionalHeader .DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].Size; //TRACE(".. search in %ld symbols\n",exports->NumberOfNames); if (HIWORD(funcName)) { int min = 0, max = exports->NumberOfNames - 1; while (min <= max) { int res, pos = (min + max) / 2; ename = RVA(name[pos]); if (!(res = strcmp((char *)ename, funcName ))) { ordinal = ordinals[pos]; goto found; } if (res > 0) max = pos - 1; else min = pos + 1; } for (i = 0; i < exports->NumberOfNames; i++) { ename = RVA(name[i]); if (!strcmp((char *)ename, funcName )) { ERR( "%s.%s required a linear search\n", wm->modname, funcName ); ordinal = ordinals[i]; goto found; } } return NULL; } else { ordinal = LOWORD(funcName) - exports->Base; if (snoop && name) { for (i = 0; i < exports->NumberOfNames; i++) if (ordinals[i] == ordinal) { ename = RVA(name[i]); break; } } } found: if (ordinal >= exports->NumberOfFunctions) { TRACE(" ordinal %ld out of range!\n", ordinal + exports->Base ); return NULL; } addr = function[ordinal]; if (!addr) { TRACE("no address for function '%s'\n", funcName ); return NULL; } if ((addr < rva_start) || (addr >= rva_end)) { FARPROC proc = RVA(addr); if (snoop) { if (!ename) ename = (u_char *)"@"; //proc = SNOOP_GetProcAddress(wm->module,ename,ordinal,proc); //TRACE("SNOOP_GetProcAddress n/a\n"); } return proc; } else { WINE_MODREF *wm; char *forward = RVA(addr); char module[256]; char *end = strchr(forward, '.'); TRACE("getting next module name from '%s'\n",forward); if (!end) return NULL; if (end - forward >= sizeof(module)) { WARN("need to enlarge buffer from %d to %ld\n",sizeof(module),(long)(end - forward)); return NULL; } memcpy( module, forward, end - forward ); module[end-forward] = 0; //TRACE("calling FindModule(%s)\n",module); if (!(wm = MODULE_FindModule( module ))) { ERR("module not found for forward '%s'\n", forward ); return NULL; } return MODULE_GetProcAddress( wm->module, end + 1, snoop ); } } static DWORD fixup_imports( WINE_MODREF *wm ) { IMAGE_IMPORT_DESCRIPTOR *pe_imp; PE_MODREF *pem; unsigned int load_addr = wm->module; int i,characteristics_detection=1; assert(wm->type==MODULE32_PE); pem = &(wm->binfmt.pe); //TRACE("Dumping imports list\n"); pe_imp = pem->pe_import; if (!pe_imp) return 0; /* We assume that we have at least one import with !0 characteristics and * detect broken imports with all characteristsics 0 (notably Borland) and * switch the detection off for them. */ for (i = 0; pe_imp->Name ; pe_imp++) { if (!i && !pe_imp->u.Characteristics) characteristics_detection = 0; if (characteristics_detection && !pe_imp->u.Characteristics) break; i++; } if (!i) return 0; wm->nDeps = i; wm->deps = HeapAlloc( GetProcessHeap(), 0, i*sizeof(WINE_MODREF *) ); /* load the imported modules. They are automatically * added to the modref list of the process. */ for (i = 0, pe_imp = pem->pe_import; pe_imp->Name ; pe_imp++) { /* WINE_MODREF *wmImp; -- unused */ IMAGE_IMPORT_BY_NAME *pe_name; PIMAGE_THUNK_DATA import_list,thunk_list; char *name = (char *) RVA(pe_imp->Name); if (characteristics_detection && !pe_imp->u.Characteristics) break; if (pe_imp->u.OriginalFirstThunk != 0) { TRACE("Loading Microsoft style imports for %s\n", name); import_list =(PIMAGE_THUNK_DATA) RVA(pe_imp->u.OriginalFirstThunk); thunk_list = (PIMAGE_THUNK_DATA) RVA(pe_imp->FirstThunk); while (import_list->u1.Ordinal) { if (IMAGE_SNAP_BY_ORDINAL(import_list->u1.Ordinal)) { int ordinal = IMAGE_ORDINAL(import_list->u1.Ordinal); //TRACE("--- Ordinal %s,%d\n", name, ordinal); thunk_list->u1.Function=LookupExternal(name, ordinal); } else { pe_name = (PIMAGE_IMPORT_BY_NAME)RVA(import_list->u1.AddressOfData); //TRACE("--- %s %s.%d\n", pe_name->Name, name, pe_name->Hint); thunk_list->u1.Function=LookupExternalByName(name, (const char*)pe_name->Name); } import_list++; thunk_list++; } } else { TRACE("Loading Borland style imports for %s\n", name); thunk_list = (PIMAGE_THUNK_DATA) RVA(pe_imp->FirstThunk); while (thunk_list->u1.Ordinal) { if (IMAGE_SNAP_BY_ORDINAL(thunk_list->u1.Ordinal)) { int ordinal = IMAGE_ORDINAL(thunk_list->u1.Ordinal); //TRACE("--- Ordinal %s.%d\n",name,ordinal); thunk_list->u1.Function=LookupExternal(name, ordinal); } else { pe_name=(PIMAGE_IMPORT_BY_NAME) RVA(thunk_list->u1.AddressOfData); //TRACE("--- %s %s.%d\n", pe_name->Name,name,pe_name->Hint); thunk_list->u1.Function=LookupExternalByName(name, (const char*)pe_name->Name); } thunk_list++; } } } return 0; } static int calc_vma_size( HMODULE hModule ) { int i,vma_size = 0; IMAGE_SECTION_HEADER *pe_seg = PE_SECTIONS(hModule); /* TRACE("Dump of segment table\n"); TRACE(" Name VSz Vaddr SzRaw Fileadr *Reloc *Lineum #Reloc #Linum Char\n"); */ for (i = 0; i< PE_HEADER(hModule)->FileHeader.NumberOfSections; i++) { /* TRACE("%8s: %4.4lx %8.8lx %8.8lx %8.8lx %8.8lx %8.8lx %4.4x %4.4x %8.8lx\n", pe_seg->Name, pe_seg->Misc.VirtualSize, pe_seg->VirtualAddress, pe_seg->SizeOfRawData, pe_seg->PointerToRawData, pe_seg->PointerToRelocations, pe_seg->PointerToLinenumbers, pe_seg->NumberOfRelocations, pe_seg->NumberOfLinenumbers, pe_seg->Characteristics); */ vma_size=max(vma_size, pe_seg->VirtualAddress+pe_seg->SizeOfRawData); vma_size=max(vma_size, pe_seg->VirtualAddress+pe_seg->Misc.VirtualSize); pe_seg++; } return vma_size; } static void do_relocations( unsigned int load_addr, IMAGE_BASE_RELOCATION *r ) { int delta = load_addr - PE_HEADER(load_addr)->OptionalHeader.ImageBase; int hdelta = (delta >> 16) & 0xFFFF; int ldelta = delta & 0xFFFF; if(delta == 0) return; while(r->VirtualAddress) { char *page = (char*) RVA(r->VirtualAddress); int count = (r->SizeOfBlock - 8)/2; int i; /* TRACE_(fixup)("%x relocations for page %lx\n", count, r->VirtualAddress); */ for(i=0;iTypeOffset[i] & 0xFFF; int type = r->TypeOffset[i] >> 12; //TRACE_(fixup)("patching %x type %x\n", offset, type); switch(type) { case IMAGE_REL_BASED_ABSOLUTE: break; case IMAGE_REL_BASED_HIGH: *(short*)(page+offset) += hdelta; break; case IMAGE_REL_BASED_LOW: *(short*)(page+offset) += ldelta; break; case IMAGE_REL_BASED_HIGHLOW: *(int*)(page+offset) += delta; break; case IMAGE_REL_BASED_HIGHADJ: FIXME("Don't know what to do with IMAGE_REL_BASED_HIGHADJ\n"); break; case IMAGE_REL_BASED_MIPS_JMPADDR: FIXME("Is this a MIPS machine ???\n"); break; default: FIXME("Unknown fixup type\n"); break; } } r = (IMAGE_BASE_RELOCATION*)((char*)r + r->SizeOfBlock); } } /********************************************************************** * PE_LoadImage * Load one PE format DLL/EXE into memory * * Unluckily we can't just mmap the sections where we want them, for * (at least) Linux does only support offsets which are page-aligned. * * BUT we have to map the whole image anyway, for Win32 programs sometimes * want to access them. (HMODULE32 point to the start of it) */ HMODULE PE_LoadImage( int handle, LPCSTR filename, WORD *version ) { HMODULE hModule; HANDLE mapping; IMAGE_NT_HEADERS *nt; IMAGE_SECTION_HEADER *pe_sec; IMAGE_DATA_DIRECTORY *dir; /* BY_HANDLE_FILE_INFORMATION bhfi; -- unused */ int i, rawsize, lowest_va, vma_size, file_size = 0; DWORD load_addr = 0, aoep, reloc = 0; //struct get_read_fd_request *req = get_req_buffer(); int unix_handle = handle; int page_size = getpagesize(); //if ( GetFileInformationByHandle( hFile, &bhfi ) ) // file_size = bhfi.nFileSizeLow; file_size=lseek(handle, 0, SEEK_END); lseek(handle, 0, SEEK_SET); //#warning fix CreateFileMappingA mapping = CreateFileMappingA( handle, NULL, PAGE_READONLY | SEC_COMMIT, 0, 0, NULL ); if (!mapping) { WARN("CreateFileMapping error %ld\n", GetLastError() ); return 0; } //hModule = (HMODULE)MapViewOfFile( mapping, FILE_MAP_READ, 0, 0, 0 ); hModule=(HMODULE)mapping; //CloseHandle( mapping ); if (!hModule) { WARN("MapViewOfFile error %ld\n", GetLastError() ); return 0; } if ( *(WORD*)hModule !=IMAGE_DOS_SIGNATURE) { WARN("%s image doesn't have DOS signature, but 0x%04x\n", filename,*(WORD*)hModule); goto error; } nt = PE_HEADER( hModule ); if ( nt->Signature != IMAGE_NT_SIGNATURE ) { WARN("%s image doesn't have PE signature, but 0x%08lx\n", filename, nt->Signature ); goto error; } if ( nt->FileHeader.Machine != IMAGE_FILE_MACHINE_I386 ) { MESSAGE("Trying to load PE image for unsupported architecture ("); switch (nt->FileHeader.Machine) { case IMAGE_FILE_MACHINE_UNKNOWN: MESSAGE("Unknown"); break; case IMAGE_FILE_MACHINE_I860: MESSAGE("I860"); break; case IMAGE_FILE_MACHINE_R3000: MESSAGE("R3000"); break; case IMAGE_FILE_MACHINE_R4000: MESSAGE("R4000"); break; case IMAGE_FILE_MACHINE_R10000: MESSAGE("R10000"); break; case IMAGE_FILE_MACHINE_ALPHA: MESSAGE("Alpha"); break; case IMAGE_FILE_MACHINE_POWERPC: MESSAGE("PowerPC"); break; default: MESSAGE("Unknown-%04x", nt->FileHeader.Machine); break; } MESSAGE(")\n"); goto error; } pe_sec = PE_SECTIONS( hModule ); rawsize = 0; lowest_va = 0x10000; for (i = 0; i < nt->FileHeader.NumberOfSections; i++) { if (lowest_va > pe_sec[i].VirtualAddress) lowest_va = pe_sec[i].VirtualAddress; if (pe_sec[i].Characteristics & IMAGE_SCN_CNT_UNINITIALIZED_DATA) continue; if (pe_sec[i].PointerToRawData+pe_sec[i].SizeOfRawData > rawsize) rawsize = pe_sec[i].PointerToRawData+pe_sec[i].SizeOfRawData; } if ( file_size && file_size < rawsize ) { ERR("PE module is too small (header: %d, filesize: %d), " "probably truncated download?\n", rawsize, file_size ); goto error; } aoep = nt->OptionalHeader.AddressOfEntryPoint; if (aoep && (aoep < lowest_va)) FIXME("VIRUS WARNING: '%s' has an invalid entrypoint (0x%08lx) " "below the first virtual address (0x%08x) " "(possibly infected by Tchernobyl/SpaceFiller virus)!\n", filename, aoep, lowest_va ); /* FIXME: Hack! While we don't really support shared sections yet, * this checks for those special cases where the whole DLL * consists only of shared sections and is mapped into the * shared address space > 2GB. In this case, we assume that * the module got mapped at its base address. Thus we simply * check whether the module has actually been mapped there * and use it, if so. This is needed to get Win95 USER32.DLL * to work (until we support shared sections properly). */ if ( nt->OptionalHeader.ImageBase & 0x80000000 ) { HMODULE sharedMod = (HMODULE)nt->OptionalHeader.ImageBase; IMAGE_NT_HEADERS *sharedNt = (PIMAGE_NT_HEADERS) ( (LPBYTE)sharedMod + ((LPBYTE)nt - (LPBYTE)hModule) ); /* Well, this check is not really comprehensive, but should be good enough for now ... */ if ( !IsBadReadPtr( (LPBYTE)sharedMod, sizeof(IMAGE_DOS_HEADER) ) && memcmp( (LPBYTE)sharedMod, (LPBYTE)hModule, sizeof(IMAGE_DOS_HEADER) ) == 0 && !IsBadReadPtr( sharedNt, sizeof(IMAGE_NT_HEADERS) ) && memcmp( sharedNt, nt, sizeof(IMAGE_NT_HEADERS) ) == 0 ) { UnmapViewOfFile( (LPVOID)hModule ); return sharedMod; } } load_addr = nt->OptionalHeader.ImageBase; vma_size = calc_vma_size( hModule ); load_addr = (DWORD)VirtualAlloc( (void*)load_addr, vma_size, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE ); if (load_addr == 0) { //FIXME("We need to perform base relocations for %s\n", filename); dir = nt->OptionalHeader.DataDirectory+IMAGE_DIRECTORY_ENTRY_BASERELOC; if (dir->Size) reloc = dir->VirtualAddress; else { FIXME( "FATAL: Need to relocate %s, but no relocation records present (%s). Try to run that file directly !\n", filename, (nt->FileHeader.Characteristics&IMAGE_FILE_RELOCS_STRIPPED)? "stripped during link" : "unknown reason" ); goto error; } /* FIXME: If we need to relocate a system DLL (base > 2GB) we should * really make sure that the *new* base address is also > 2GB. * Some DLLs really check the MSB of the module handle :-/ */ if ( nt->OptionalHeader.ImageBase & 0x80000000 ) ERR( "Forced to relocate system DLL (base > 2GB). This is not good.\n" ); load_addr = (DWORD)VirtualAlloc( NULL, vma_size, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE ); if (!load_addr) { FIXME_(win32)( "FATAL: Couldn't load module %s (out of memory, %d needed)!\n", filename, vma_size); goto error; } } /* TRACE("Load addr is %lx (base %lx), range %x\n", load_addr, nt->OptionalHeader.ImageBase, vma_size ); TRACE_(segment)("Loading %s at %lx, range %x\n", filename, load_addr, vma_size ); */ #if 0 *(PIMAGE_DOS_HEADER)load_addr = *(PIMAGE_DOS_HEADER)hModule; *PE_HEADER( load_addr ) = *nt; memcpy( PE_SECTIONS(load_addr), PE_SECTIONS(hModule), sizeof(IMAGE_SECTION_HEADER) * nt->FileHeader.NumberOfSections ); memcpy( load_addr, hModule, lowest_fa ); #endif if ((void*)FILE_dommap( handle, (void *)load_addr, 0, nt->OptionalHeader.SizeOfHeaders, 0, 0, PROT_EXEC | PROT_WRITE | PROT_READ, MAP_PRIVATE | MAP_FIXED ) != (void*)load_addr) { ERR_(win32)( "Critical Error: failed to map PE header to necessary address.\n"); goto error; } pe_sec = PE_SECTIONS( hModule ); for (i = 0; i < nt->FileHeader.NumberOfSections; i++, pe_sec++) { if (!pe_sec->SizeOfRawData || !pe_sec->PointerToRawData) continue; /* TRACE("%s: mmaping section %s at %p off %lx size %lx/%lx\n", filename, pe_sec->Name, (void*)RVA(pe_sec->VirtualAddress), pe_sec->PointerToRawData, pe_sec->SizeOfRawData, pe_sec->Misc.VirtualSize ); */ if ((void*)FILE_dommap( unix_handle, (void*)RVA(pe_sec->VirtualAddress), 0, pe_sec->SizeOfRawData, 0, pe_sec->PointerToRawData, PROT_EXEC | PROT_WRITE | PROT_READ, MAP_PRIVATE | MAP_FIXED ) != (void*)RVA(pe_sec->VirtualAddress)) { ERR_(win32)( "Critical Error: failed to map PE section to necessary address.\n"); goto error; } if ((pe_sec->SizeOfRawData < pe_sec->Misc.VirtualSize) && (pe_sec->SizeOfRawData & (page_size-1))) { DWORD end = (pe_sec->SizeOfRawData & ~(page_size-1)) + page_size; if (end > pe_sec->Misc.VirtualSize) end = pe_sec->Misc.VirtualSize; TRACE("clearing %p - %p\n", (char *)RVA(pe_sec->VirtualAddress) + pe_sec->SizeOfRawData, (char *)RVA(pe_sec->VirtualAddress) + end ); memset( (char*)RVA(pe_sec->VirtualAddress) + pe_sec->SizeOfRawData, 0, end - pe_sec->SizeOfRawData ); } } if ( reloc ) do_relocations( load_addr, (IMAGE_BASE_RELOCATION *)RVA(reloc) ); *version = ( (nt->OptionalHeader.MajorSubsystemVersion & 0xff) << 8 ) | (nt->OptionalHeader.MinorSubsystemVersion & 0xff); UnmapViewOfFile( (LPVOID)hModule ); return (HMODULE)load_addr; error: if (unix_handle != -1) close( unix_handle ); if (load_addr) VirtualFree( (LPVOID)load_addr, 0, MEM_RELEASE ); UnmapViewOfFile( (LPVOID)hModule ); return 0; } /********************************************************************** * PE_CreateModule * * Create WINE_MODREF structure for loaded HMODULE32, link it into * process modref_list, and fixup all imports. * * Note: hModule must point to a correctly allocated PE image, * with base relocations applied; the 16-bit dummy module * associated to hModule must already exist. * * Note: This routine must always be called in the context of the * process that is to own the module to be created. */ WINE_MODREF *PE_CreateModule( HMODULE hModule, LPCSTR filename, DWORD flags, WIN_BOOL builtin ) { DWORD load_addr = (DWORD)hModule; IMAGE_NT_HEADERS *nt = PE_HEADER(hModule); IMAGE_DATA_DIRECTORY *dir; IMAGE_IMPORT_DESCRIPTOR *pe_import = NULL; IMAGE_EXPORT_DIRECTORY *pe_export = NULL; IMAGE_RESOURCE_DIRECTORY *pe_resource = NULL; WINE_MODREF *wm; /* int result; -- unused */ dir = nt->OptionalHeader.DataDirectory+IMAGE_DIRECTORY_ENTRY_EXPORT; if (dir->Size) pe_export = (PIMAGE_EXPORT_DIRECTORY)RVA(dir->VirtualAddress); dir = nt->OptionalHeader.DataDirectory+IMAGE_DIRECTORY_ENTRY_IMPORT; if (dir->Size) pe_import = (PIMAGE_IMPORT_DESCRIPTOR)RVA(dir->VirtualAddress); dir = nt->OptionalHeader.DataDirectory+IMAGE_DIRECTORY_ENTRY_RESOURCE; if (dir->Size) pe_resource = (PIMAGE_RESOURCE_DIRECTORY)RVA(dir->VirtualAddress); dir = nt->OptionalHeader.DataDirectory+IMAGE_DIRECTORY_ENTRY_EXCEPTION; //if (dir->Size) FIXME("Exception directory ignored\n" ); dir = nt->OptionalHeader.DataDirectory+IMAGE_DIRECTORY_ENTRY_SECURITY; //if (dir->Size) FIXME("Security directory ignored\n" ); dir = nt->OptionalHeader.DataDirectory+IMAGE_DIRECTORY_ENTRY_DEBUG; //if (dir->Size) TRACE("Debug directory ignored\n" ); dir = nt->OptionalHeader.DataDirectory+IMAGE_DIRECTORY_ENTRY_COPYRIGHT; //if (dir->Size) FIXME("Copyright string ignored\n" ); dir = nt->OptionalHeader.DataDirectory+IMAGE_DIRECTORY_ENTRY_GLOBALPTR; //if (dir->Size) FIXME("Global Pointer (MIPS) ignored\n" ); dir = nt->OptionalHeader.DataDirectory+IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG; //if (dir->Size) FIXME("Load Configuration directory ignored\n" ); dir = nt->OptionalHeader.DataDirectory+IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT; //if (dir->Size) TRACE("Bound Import directory ignored\n" ); dir = nt->OptionalHeader.DataDirectory+IMAGE_DIRECTORY_ENTRY_IAT; //if (dir->Size) TRACE("Import Address Table directory ignored\n" ); dir = nt->OptionalHeader.DataDirectory+IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT; if (dir->Size) { TRACE("Delayed import, stub calls LoadLibrary\n" ); /* * Nothing to do here. */ #ifdef ImgDelayDescr /* * This code is useful to observe what the heck is going on. */ { ImgDelayDescr *pe_delay = NULL; pe_delay = (PImgDelayDescr)RVA(dir->VirtualAddress); TRACE_(delayhlp)("pe_delay->grAttrs = %08x\n", pe_delay->grAttrs); TRACE_(delayhlp)("pe_delay->szName = %s\n", pe_delay->szName); TRACE_(delayhlp)("pe_delay->phmod = %08x\n", pe_delay->phmod); TRACE_(delayhlp)("pe_delay->pIAT = %08x\n", pe_delay->pIAT); TRACE_(delayhlp)("pe_delay->pINT = %08x\n", pe_delay->pINT); TRACE_(delayhlp)("pe_delay->pBoundIAT = %08x\n", pe_delay->pBoundIAT); TRACE_(delayhlp)("pe_delay->pUnloadIAT = %08x\n", pe_delay->pUnloadIAT); TRACE_(delayhlp)("pe_delay->dwTimeStamp = %08x\n", pe_delay->dwTimeStamp); } #endif } dir = nt->OptionalHeader.DataDirectory+IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR; if (dir->Size) FIXME("Unknown directory 14 ignored\n" ); dir = nt->OptionalHeader.DataDirectory+15; if (dir->Size) FIXME("Unknown directory 15 ignored\n" ); wm = (WINE_MODREF *)HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*wm) ); wm->module = hModule; if ( builtin ) wm->flags |= WINE_MODREF_INTERNAL; if ( flags & DONT_RESOLVE_DLL_REFERENCES ) wm->flags |= WINE_MODREF_DONT_RESOLVE_REFS; if ( flags & LOAD_LIBRARY_AS_DATAFILE ) wm->flags |= WINE_MODREF_LOAD_AS_DATAFILE; wm->type = MODULE32_PE; wm->binfmt.pe.pe_export = pe_export; wm->binfmt.pe.pe_import = pe_import; wm->binfmt.pe.pe_resource = pe_resource; wm->binfmt.pe.tlsindex = -1; wm->filename = malloc(strlen(filename)+1); strcpy(wm->filename, filename ); wm->modname = strrchr( wm->filename, '\\' ); if (!wm->modname) wm->modname = wm->filename; else wm->modname++; if ( pe_export ) dump_exports( hModule ); /* Fixup Imports */ if ( pe_import && !( wm->flags & WINE_MODREF_LOAD_AS_DATAFILE ) && !( wm->flags & WINE_MODREF_DONT_RESOLVE_REFS ) && fixup_imports( wm ) ) { /* remove entry from modref chain */ return NULL; } return wm; } /****************************************************************************** * The PE Library Loader frontend. * FIXME: handle the flags. */ WINE_MODREF *PE_LoadLibraryExA (LPCSTR name, DWORD flags) { HMODULE hModule32; WINE_MODREF *wm; char filename[256]; int hFile; WORD version = 0; strncpy(filename, name, sizeof(filename)); hFile=open(filename, O_RDONLY); if(hFile==-1) { //TRACE(" did not found module '%s'\n", name); /* do case insensitive search on dir */ char *dirname = ".", *libname = filename; char *last_delim = strrchr(filename,'/'); DIR *dirp; struct dirent *dp; if (last_delim) { *last_delim = '\0'; dirname = filename; libname = &last_delim[1]; } dirp = opendir(dirname); while (dirp) { errno = 0; if ((dp = readdir(dirp)) != NULL) { if (strcasecmp(dp->d_name, libname) == 0) { if (last_delim) { strcpy(libname, dp->d_name); *last_delim='/'; } else { strncpy(filename, dp->d_name, sizeof(filename)); } TRACE(" found module with '%s'\n", filename); hFile=open(filename, O_RDONLY); break; } } else { break; } } closedir(dirp); if(hFile==-1) return NULL; } hModule32 = PE_LoadImage( hFile, filename, &version ); if (!hModule32) { SetLastError( ERROR_OUTOFMEMORY ); return NULL; } if ( !(wm = PE_CreateModule( hModule32, filename, flags, FALSE )) ) { ERR( "can't load %s\n", filename ); SetLastError( ERROR_OUTOFMEMORY ); return NULL; } close(hFile); //printf("^^^^^^^^^^^^^^^^Alloc VM1 %p\n", wm); return wm; } /***************************************************************************** * PE_UnloadLibrary * * Unload the library unmapping the image and freeing the modref structure. */ void PE_UnloadLibrary(WINE_MODREF *wm) { TRACE(" unloading %s\n", wm->filename); if (wm->filename) free(wm->filename); if (wm->short_filename) free(wm->short_filename); HeapFree( GetProcessHeap(), 0, wm->deps ); VirtualFree( (LPVOID)wm->module, 0, MEM_RELEASE ); HeapFree( GetProcessHeap(), 0, wm ); //printf("^^^^^^^^^^^^^^^^Free VM1 %p\n", wm); } /***************************************************************************** * Load the PE main .EXE. All other loading is done by PE_LoadLibraryExA * FIXME: this function should use PE_LoadLibraryExA, but currently can't * due to the PROCESS_Create stuff. */ /* * This is a dirty hack. * The win32 DLLs contain an alloca routine, that first probes the soon * to be allocated new memory *below* the current stack pointer in 4KByte * increments. After the mem probing below the current %esp, the stack * pointer is finally decremented to make room for the "alloca"ed memory. * Maybe the probing code is intended to extend the stack on a windows box. * Anyway, the linux kernel does *not* extend the stack by simply accessing * memory below %esp; it segfaults. * The extend_stack_for_dll_alloca() routine just preallocates a big chunk * of memory on the stack, for use by the DLLs alloca routine. */ static void extend_stack_for_dll_alloca(void) { #ifndef __FreeBSD__ void* mem=alloca(0x20000); /* 128 kbyte */ *(int*)mem=0x1234; #endif } /* Called if the library is loaded or freed. * NOTE: if a thread attaches a DLL, the current thread will only do * DLL_PROCESS_ATTACH. Only new created threads do DLL_THREAD_ATTACH * (SDK) */ WIN_BOOL PE_InitDLL( WINE_MODREF *wm, DWORD type, LPVOID lpReserved ) { WIN_BOOL retv = TRUE; assert( wm->type == MODULE32_PE ); if ((PE_HEADER(wm->module)->FileHeader.Characteristics & IMAGE_FILE_DLL) && (PE_HEADER(wm->module)->OptionalHeader.AddressOfEntryPoint) ) { DLLENTRYPROC entry ; entry = (void*)PE_FindExportedFunction(wm, "DllMain", 0); if(entry==NULL) { TRACE("no DllMain, check optional\n"); entry = (void*)RVA_PTR( wm->module,OptionalHeader.AddressOfEntryPoint ); // FIXME: how can we be sure that is is valid? //return 1; } TRACE_(relay)("CallTo32(entryproc=%p,module=%08x,type=%ld,res=%p)\n", entry, wm->module, type, lpReserved ); switch(type) { case DLL_PROCESS_DETACH: TRACE("Entering DllMain(DLL_PROCESS_DETACH) for %s\n", wm->filename); break; case DLL_PROCESS_ATTACH: TRACE("Entering DllMain(DLL_PROCESS_ATTACH) for %s\n", wm->filename); break; case DLL_THREAD_DETACH: TRACE("Entering DllMain(DLL_THREAD_DETACH) for %s\n", wm->filename); break; case DLL_THREAD_ATTACH: TRACE("Entering DllMain(DLL_THREAD_ATTACH) for %s\n", wm->filename); break; } extend_stack_for_dll_alloca(); retv = entry( wm->module, type, lpReserved ); } TRACE("retv=%d\n",retv); return retv; } #if 0 static LPVOID _fixup_address(PIMAGE_OPTIONAL_HEADER opt,int delta,LPVOID addr) { if ( ((DWORD)addr>opt->ImageBase) && ((DWORD)addrImageBase+opt->SizeOfImage) ) return (LPVOID)(((DWORD)addr)+delta); else return addr; } #endif bml-0.6.1/dllwrapper/wine/resource.c0000644042355400116100000003061711576362500014344 00000000000000/* * Resources * * Copyright 1993 Robert J. Amstadt * Copyright 1995 Alexandre Julliard */ #include #include #include #include #include #include #include #include #include #include "winbase.h" #include "windef.h" #include "winuser.h" #include "heap.h" #include "module.h" #include "debugtools.h" #include "winerror.h" #include "loader.h" #include "ext.h" #define CP_ACP 0 WORD WINE_LanguageId=0x409;//english #define HRSRC_MAP_BLOCKSIZE 16 typedef struct _HRSRC_ELEM { HANDLE hRsrc; WORD type; } HRSRC_ELEM; typedef struct _HRSRC_MAP { int nAlloc; int nUsed; HRSRC_ELEM *elem; } HRSRC_MAP; static HRSRC RES_FindResource2( HMODULE hModule, LPCSTR type, LPCSTR name, WORD lang, int unicode) { HRSRC hRsrc = 0; LPWSTR typeStr, nameStr; WINE_MODREF *wm = MODULE32_LookupHMODULE( hModule ); if(!wm) return 0; /* 32-bit PE module */ if ( HIWORD( type ) && (!unicode)) typeStr = HEAP_strdupAtoW( GetProcessHeap(), 0, type ); else typeStr = (LPWSTR)type; if ( HIWORD( name ) && (!unicode)) nameStr = HEAP_strdupAtoW( GetProcessHeap(), 0, name ); else nameStr = (LPWSTR)name; hRsrc = PE_FindResourceExW( wm, nameStr, typeStr, lang ); if ( HIWORD( type ) && (!unicode)) HeapFree( GetProcessHeap(), 0, typeStr ); if ( HIWORD( name ) && (!unicode)) HeapFree( GetProcessHeap(), 0, nameStr ); return hRsrc; } /********************************************************************** * RES_FindResource */ static HRSRC RES_FindResource( HMODULE hModule, LPCSTR type, LPCSTR name, WORD lang, int unicode ) { HRSRC hRsrc; // __TRY // { hRsrc = RES_FindResource2(hModule, type, name, lang, unicode); // } // __EXCEPT(page_fault) // { // WARN("page fault\n"); // SetLastError(ERROR_INVALID_PARAMETER); // return 0; // } // __ENDTRY return hRsrc; } /********************************************************************** * RES_SizeofResource */ static DWORD RES_SizeofResource( HMODULE hModule, HRSRC hRsrc) { DWORD size = 0; // HRSRC hRsrc32; // // HMODULE16 hMod16 = MapHModuleLS( hModule ); // NE_MODULE *pModule = NE_GetPtr( hMod16 ); // WINE_MODREF *wm = pModule && pModule->module32? // MODULE32_LookupHMODULE( pModule->module32 ) : NULL; // WINE_MODREF *wm = MODULE32_LookupHMODULE( hModule ); if ( !hModule || !hRsrc ) return 0; /* 32-bit PE module */ /* If we got a 16-bit hRsrc, convert it */ // hRsrc32 = HIWORD(hRsrc)? hRsrc : MapHRsrc16To32( pModule, hRsrc ); if(!HIWORD(hRsrc)) { printf("16-bit hRsrcs not supported\n"); return 0; } size = PE_SizeofResource( hModule, hRsrc ); return size; } /********************************************************************** * RES_AccessResource */ static HFILE RES_AccessResource( HMODULE hModule, HRSRC hRsrc ) { HFILE hFile = HFILE_ERROR; // WINE_MODREF *wm = MODULE32_LookupHMODULE( hModule ); if ( !hModule || !hRsrc ) return HFILE_ERROR; /* 32-bit PE module */ FIXME("32-bit modules not yet supported.\n" ); hFile = HFILE_ERROR; return hFile; } /********************************************************************** * RES_LoadResource */ static HGLOBAL RES_LoadResource( HMODULE hModule, HRSRC hRsrc) { HGLOBAL hMem = 0; // HRSRC hRsrc32; WINE_MODREF *wm = MODULE32_LookupHMODULE( hModule ); if ( !hModule || !hRsrc ) return 0; /* 32-bit PE module */ /* If we got a 16-bit hRsrc, convert it */ // hRsrc32 = HIWORD(hRsrc)? hRsrc : MapHRsrc16To32( pModule, hRsrc ); if(!HIWORD(hRsrc)) { printf("16-bit hRsrcs not supported\n"); return 0; } hMem = PE_LoadResource( wm, hRsrc ); return hMem; } /********************************************************************** * RES_LockResource */ static LPVOID RES_LockResource( HGLOBAL handle ) { LPVOID bits = NULL; //TRACE("(%08x, %s)\n", handle, "PE" ); bits = (LPVOID)handle; return bits; } /********************************************************************** * RES_FreeResource */ static WIN_BOOL RES_FreeResource( HGLOBAL handle ) { HGLOBAL retv = handle; return (WIN_BOOL)retv; } /********************************************************************** * FindResourceA (KERNEL32.128) */ HANDLE WINAPI FindResourceA( HMODULE hModule, LPCSTR name, LPCSTR type ) { return RES_FindResource( hModule, type, name, WINE_LanguageId, 0); } HANDLE WINAPI FindResourceW( HMODULE hModule, LPCWSTR name, LPCWSTR type ) { return RES_FindResource( hModule, (LPCSTR)type, (LPCSTR)name, WINE_LanguageId, 1); } /********************************************************************** * FindResourceExA (KERNEL32.129) */ HANDLE WINAPI FindResourceExA( HMODULE hModule, LPCSTR type, LPCSTR name, WORD lang ) { return RES_FindResource( hModule, type, name, lang, 0 ); } HANDLE WINAPI FindResourceExW( HMODULE hModule, LPCWSTR type, LPCWSTR name, WORD lang ) { return RES_FindResource( hModule, (LPCSTR)type, (LPCSTR)name, lang, 1 ); } /********************************************************************** * LockResource (KERNEL32.384) */ LPVOID WINAPI LockResource( HGLOBAL handle ) { return RES_LockResource( handle ); } /********************************************************************** * FreeResource (KERNEL32.145) */ WIN_BOOL WINAPI FreeResource( HGLOBAL handle ) { return RES_FreeResource( handle ); } /********************************************************************** * AccessResource (KERNEL32.64) */ INT WINAPI AccessResource( HMODULE hModule, HRSRC hRsrc ) { return RES_AccessResource( hModule, hRsrc ); } /********************************************************************** * SizeofResource (KERNEL32.522) */ DWORD WINAPI SizeofResource( HINSTANCE hModule, HRSRC hRsrc ) { return RES_SizeofResource( hModule, hRsrc ); } INT WINAPI LoadStringW( HINSTANCE instance, UINT resource_id, LPWSTR buffer, INT buflen ); /********************************************************************** * LoadStringA (USER32.375) */ INT WINAPI LoadStringA( HINSTANCE instance, UINT resource_id, LPSTR buffer, INT buflen ) { INT retval; INT wbuflen; INT abuflen; LPWSTR wbuf = NULL; LPSTR abuf = NULL; if ( buffer != NULL && buflen > 0 ) *buffer = 0; wbuflen = LoadStringW(instance,resource_id,NULL,0); if ( !wbuflen ) return 0; wbuflen ++; retval = 0; wbuf = HeapAlloc( GetProcessHeap(), 0, wbuflen * sizeof(WCHAR) ); wbuflen = LoadStringW(instance,resource_id,wbuf,wbuflen); if ( wbuflen > 0 ) { abuflen = WideCharToMultiByte(CP_ACP,0,wbuf,wbuflen,NULL,0,NULL,NULL); if ( abuflen > 0 ) { if ( buffer == NULL || buflen == 0 ) retval = abuflen; else { abuf = HeapAlloc( GetProcessHeap(), 0, abuflen * sizeof(CHAR) ); abuflen = WideCharToMultiByte(CP_ACP,0,wbuf,wbuflen,abuf,abuflen,NULL,NULL); if ( abuflen > 0 ) { abuflen = min(abuflen,buflen - 1); memcpy( buffer, abuf, abuflen ); buffer[abuflen] = 0; retval = abuflen; } HeapFree( GetProcessHeap(), 0, abuf ); } } } HeapFree( GetProcessHeap(), 0, wbuf ); return retval; } /********************************************************************** * LoadStringW (USER32.376) */ INT WINAPI LoadStringW( HINSTANCE instance, UINT resource_id, LPWSTR buffer, INT buflen ) { HGLOBAL hmem; HRSRC hrsrc; WCHAR *p; int string_num; int i; if (HIWORD(resource_id)==0xFFFF) /* netscape 3 passes this */ resource_id = (UINT)(-((INT)resource_id)); TRACE("instance = %04x, id = %04x, buffer = %08x, " "length = %d\n", instance, (int)resource_id, (int) buffer, buflen); /* Use bits 4 - 19 (incremented by 1) as resourceid, mask out * 20 - 31. */ hrsrc = FindResourceW( instance, (LPCWSTR)(((resource_id>>4)&0xffff)+1), RT_STRINGW ); if (!hrsrc) return 0; hmem = LoadResource( instance, hrsrc ); if (!hmem) return 0; p = LockResource(hmem); string_num = resource_id & 0x000f; for (i = 0; i < string_num; i++) p += *p + 1; TRACE("strlen = %d\n", (int)*p ); if (buffer == NULL) return *p; i = min(buflen - 1, *p); if (i > 0) { memcpy(buffer, p + 1, i * sizeof (WCHAR)); buffer[i] = (WCHAR) 0; } else { if (buflen > 1) { buffer[0] = (WCHAR) 0; return 0; } #if 0 WARN("Dont know why caller give buflen=%d *p=%d trying to obtain string '%s'\n", buflen, *p, p + 1); #endif } TRACE("String loaded !\n"); return i; } /* Messages...used by FormatMessage32* (KERNEL32.something) * * They can be specified either directly or using a message ID and * loading them from the resource. * * The resourcedata has following format: * start: * 0: DWORD nrofentries * nrofentries * subentry: * 0: DWORD firstentry * 4: DWORD lastentry * 8: DWORD offset from start to the stringentries * * (lastentry-firstentry) * stringentry: * 0: WORD len (0 marks end) * 2: WORD flags * 4: CHAR[len-4] * (stringentry i of a subentry refers to the ID 'firstentry+i') * * Yes, ANSI strings in win32 resources. Go figure. */ /********************************************************************** * LoadMessageA (internal) */ INT WINAPI LoadMessageA( HMODULE instance, UINT id, WORD lang, LPSTR buffer, INT buflen ) { HGLOBAL hmem; HRSRC hrsrc; PMESSAGE_RESOURCE_DATA mrd; PMESSAGE_RESOURCE_BLOCK mrb; PMESSAGE_RESOURCE_ENTRY mre; int i,slen; TRACE("instance = %08lx, id = %08lx, buffer = %p, length = %ld\n", (DWORD)instance, (DWORD)id, buffer, (DWORD)buflen); /*FIXME: I am not sure about the '1' ... But I've only seen those entries*/ hrsrc = FindResourceExW(instance,RT_MESSAGELISTW,(LPWSTR)1,lang); if (!hrsrc) return 0; hmem = LoadResource( instance, hrsrc ); if (!hmem) return 0; mrd = (PMESSAGE_RESOURCE_DATA)LockResource(hmem); mre = NULL; mrb = &(mrd->Blocks[0]); for (i=mrd->NumberOfBlocks;i--;) { if ((id>=mrb->LowId) && (id<=mrb->HighId)) { mre = (PMESSAGE_RESOURCE_ENTRY)(((char*)mrd)+mrb->OffsetToEntries); id -= mrb->LowId; break; } mrb++; } if (!mre) return 0; for (i=id;i--;) { if (!mre->Length) return 0; mre = (PMESSAGE_RESOURCE_ENTRY)(((char*)mre)+(mre->Length)); } slen=mre->Length; TRACE(" - strlen=%d\n",slen); i = min(buflen - 1, slen); if (buffer == NULL) return slen; if (i>0) { lstrcpynA(buffer,(char*)mre->Text,i); buffer[i]=0; } else { if (buflen>1) { buffer[0]=0; return 0; } } if (buffer) TRACE("'%s' copied !\n", buffer); return i; } /********************************************************************** * EnumResourceTypesA (KERNEL32.90) */ WIN_BOOL WINAPI EnumResourceTypesA( HMODULE hmodule,ENUMRESTYPEPROCA lpfun, LONG lParam) { /* FIXME: move WINE_MODREF stuff here */ return PE_EnumResourceTypesA(hmodule,lpfun,lParam); } /********************************************************************** * EnumResourceNamesA (KERNEL32.88) */ WIN_BOOL WINAPI EnumResourceNamesA( HMODULE hmodule, LPCSTR type, ENUMRESNAMEPROCA lpfun, LONG lParam ) { /* FIXME: move WINE_MODREF stuff here */ return PE_EnumResourceNamesA(hmodule,type,lpfun,lParam); } /********************************************************************** * EnumResourceLanguagesA (KERNEL32.86) */ WIN_BOOL WINAPI EnumResourceLanguagesA( HMODULE hmodule, LPCSTR type, LPCSTR name, ENUMRESLANGPROCA lpfun, LONG lParam) { /* FIXME: move WINE_MODREF stuff here */ return PE_EnumResourceLanguagesA(hmodule,type,name,lpfun,lParam); } /********************************************************************** * LoadResource (KERNEL32.370) */ HGLOBAL WINAPI LoadResource( HINSTANCE hModule, HRSRC hRsrc ) { return RES_LoadResource( hModule, hRsrc); } bml-0.6.1/dllwrapper/wine/driver.h0000644042355400116100000001054611576362500014014 00000000000000/* * Drivers definitions */ #ifndef __WINE_DRIVER_H #define __WINE_DRIVER_H #include "windef.h" #define MMSYSERR_BASE 0 #define MMSYSERR_NOERROR 0 /* no error */ #define MMSYSERR_ERROR (MMSYSERR_BASE + 1) /* unspecified error */ #define MMSYSERR_BADDEVICEID (MMSYSERR_BASE + 2) /* device ID out of range */ #define MMSYSERR_NOTENABLED (MMSYSERR_BASE + 3) /* driver failed enable */ #define MMSYSERR_ALLOCATED (MMSYSERR_BASE + 4) /* device already allocated */ #define MMSYSERR_INVALHANDLE (MMSYSERR_BASE + 5) /* device handle is invalid */ #define MMSYSERR_NODRIVER (MMSYSERR_BASE + 6) /* no device driver present */ #define MMSYSERR_NOMEM (MMSYSERR_BASE + 7) /* memory allocation error */ #define MMSYSERR_NOTSUPPORTED (MMSYSERR_BASE + 8) /* function isn't supported */ #define MMSYSERR_BADERRNUM (MMSYSERR_BASE + 9) /* error value out of range */ #define MMSYSERR_INVALFLAG (MMSYSERR_BASE + 10) /* invalid flag passed */ #define MMSYSERR_INVALPARAM (MMSYSERR_BASE + 11) /* invalid parameter passed */ #define MMSYSERR_LASTERROR (MMSYSERR_BASE + 11) /* last error in range */ #define DRV_LOAD 0x0001 #define DRV_ENABLE 0x0002 #define DRV_OPEN 0x0003 #define DRV_CLOSE 0x0004 #define DRV_DISABLE 0x0005 #define DRV_FREE 0x0006 #define DRV_CONFIGURE 0x0007 #define DRV_QUERYCONFIGURE 0x0008 #define DRV_INSTALL 0x0009 #define DRV_REMOVE 0x000A #define DRV_EXITSESSION 0x000B #define DRV_EXITAPPLICATION 0x000C #define DRV_POWER 0x000F #define DRV_RESERVED 0x0800 #define DRV_USER 0x4000 #define DRVCNF_CANCEL 0x0000 #define DRVCNF_OK 0x0001 #define DRVCNF_RESTART 0x0002 #define DRVEA_NORMALEXIT 0x0001 #define DRVEA_ABNORMALEXIT 0x0002 #define DRV_SUCCESS 0x0001 #define DRV_FAILURE 0x0000 #define GND_FIRSTINSTANCEONLY 0x00000001 #define GND_FORWARD 0x00000000 #define GND_REVERSE 0x00000002 typedef struct { DWORD dwDCISize; LPCSTR lpszDCISectionName; LPCSTR lpszDCIAliasName; } DRVCONFIGINFO16, *LPDRVCONFIGINFO16; typedef struct { DWORD dwDCISize; LPCWSTR lpszDCISectionName; LPCWSTR lpszDCIAliasName; } DRVCONFIGINFO, *LPDRVCONFIGINFO; /* GetDriverInfo16 references this structure, so this a struct defined * in the Win16 API. * GetDriverInfo has been deprecated in Win32. */ typedef struct { UINT16 length; HDRVR16 hDriver; HINSTANCE16 hModule; CHAR szAliasName[128]; } DRIVERINFOSTRUCT16, *LPDRIVERINFOSTRUCT16; LRESULT WINAPI DefDriverProc16(DWORD dwDevID, HDRVR16 hDriv, UINT16 wMsg, LPARAM dwParam1, LPARAM dwParam2); LRESULT WINAPI DefDriverProc(DWORD dwDriverIdentifier, HDRVR hdrvr, UINT Msg, LPARAM lParam1, LPARAM lParam2); HDRVR16 WINAPI OpenDriver16(LPCSTR szDriverName, LPCSTR szSectionName, LPARAM lParam2); HDRVR WINAPI OpenDriverA(LPCSTR szDriverName, LPCSTR szSectionName, LPARAM lParam2); HDRVR WINAPI OpenDriverW(LPCWSTR szDriverName, LPCWSTR szSectionName, LPARAM lParam2); #define OpenDriver WINELIB_NAME_AW(OpenDriver) LRESULT WINAPI CloseDriver16(HDRVR16 hDriver, LPARAM lParam1, LPARAM lParam2); LRESULT WINAPI CloseDriver(HDRVR hDriver, LPARAM lParam1, LPARAM lParam2); LRESULT WINAPI SendDriverMessage16( HDRVR16 hDriver, UINT16 message, LPARAM lParam1, LPARAM lParam2 ); LRESULT WINAPI SendDriverMessage( HDRVR hDriver, UINT message, LPARAM lParam1, LPARAM lParam2 ); HMODULE16 WINAPI GetDriverModuleHandle16(HDRVR16 hDriver); HMODULE WINAPI GetDriverModuleHandle(HDRVR hDriver); DWORD WINAPI GetDriverFlags( HDRVR hDriver ); #ifdef __WINE__ /* this call (GetDriverFlags) is not documented, nor the flags returned. * here are Wine only definitions */ #define WINE_GDF_EXIST 0x80000000 #define WINE_GDF_16BIT 0x10000000 #endif #ifdef __cplusplus extern "C" { #endif void CodecAlloc(void); void CodecRelease(void); #include "vfw.h" extern HDRVR VFWAPI DrvOpen(LPARAM lParam2); extern void DrvClose(HDRVR hdrvr); #ifdef __cplusplus } #endif #endif /* __WINE_DRIVER_H */ bml-0.6.1/dllwrapper/wine/pe_image.h0000644042355400116100000000660111576362500014264 00000000000000#ifndef __WINE_PE_IMAGE_H #define __WINE_PE_IMAGE_H #include "windef.h" #include "winbase.h" #define PE_HEADER(module) \ ((IMAGE_NT_HEADERS*)((LPBYTE)(module) + \ (((IMAGE_DOS_HEADER*)(module))->e_lfanew))) #define PE_SECTIONS(module) \ ((IMAGE_SECTION_HEADER*)((LPBYTE)&PE_HEADER(module)->OptionalHeader + \ PE_HEADER(module)->FileHeader.SizeOfOptionalHeader)) #define RVA_PTR(module,field) ((LPBYTE)(module) + PE_HEADER(module)->field) /* modreference used for attached processes * all section are calculated here, relocations etc. */ typedef struct { PIMAGE_IMPORT_DESCRIPTOR pe_import; PIMAGE_EXPORT_DIRECTORY pe_export; PIMAGE_RESOURCE_DIRECTORY pe_resource; int tlsindex; } PE_MODREF; struct _wine_modref; extern int PE_unloadImage(HMODULE hModule); extern FARPROC PE_FindExportedFunction(struct _wine_modref *wm, LPCSTR funcName, WIN_BOOL snoop); extern WIN_BOOL PE_EnumResourceTypesA(HMODULE,ENUMRESTYPEPROCA,LONG); extern WIN_BOOL PE_EnumResourceTypesW(HMODULE,ENUMRESTYPEPROCW,LONG); extern WIN_BOOL PE_EnumResourceNamesA(HMODULE,LPCSTR,ENUMRESNAMEPROCA,LONG); extern WIN_BOOL PE_EnumResourceNamesW(HMODULE,LPCWSTR,ENUMRESNAMEPROCW,LONG); extern WIN_BOOL PE_EnumResourceLanguagesA(HMODULE,LPCSTR,LPCSTR,ENUMRESLANGPROCA,LONG); extern WIN_BOOL PE_EnumResourceLanguagesW(HMODULE,LPCWSTR,LPCWSTR,ENUMRESLANGPROCW,LONG); extern HRSRC PE_FindResourceExW(struct _wine_modref*,LPCWSTR,LPCWSTR,WORD); extern DWORD PE_SizeofResource(HMODULE,HRSRC); extern struct _wine_modref *PE_LoadLibraryExA(LPCSTR, DWORD); extern void PE_UnloadLibrary(struct _wine_modref *); extern HGLOBAL PE_LoadResource(struct _wine_modref *wm,HRSRC); extern HMODULE PE_LoadImage( int hFile, LPCSTR filename, WORD *version ); extern struct _wine_modref *PE_CreateModule( HMODULE hModule, LPCSTR filename, DWORD flags, WIN_BOOL builtin ); extern WIN_BOOL PE_CreateProcess( HANDLE hFile, LPCSTR filename, LPCSTR cmd_line, LPCSTR env, LPSECURITY_ATTRIBUTES psa, LPSECURITY_ATTRIBUTES tsa, WIN_BOOL inherit, DWORD flags, LPSTARTUPINFOA startup, LPPROCESS_INFORMATION info ); extern void PE_InitTls(void); extern WIN_BOOL PE_InitDLL(struct _wine_modref *wm, DWORD type, LPVOID lpReserved); extern PIMAGE_RESOURCE_DIRECTORY GetResDirEntryA(PIMAGE_RESOURCE_DIRECTORY,LPCSTR,DWORD,WIN_BOOL); extern PIMAGE_RESOURCE_DIRECTORY GetResDirEntryW(PIMAGE_RESOURCE_DIRECTORY,LPCWSTR,DWORD,WIN_BOOL); typedef DWORD CALLBACK (*DLLENTRYPROC)(HMODULE,DWORD,LPVOID); typedef struct { WORD popl WINE_PACKED; /* 0x8f 0x05 */ DWORD addr_popped WINE_PACKED;/* ... */ BYTE pushl1; /* 0x68 */ DWORD newret WINE_PACKED; /* ... */ BYTE pushl2; /* 0x68 */ DWORD origfun WINE_PACKED; /* original function */ BYTE ret1; /* 0xc3 */ WORD addesp WINE_PACKED; /* 0x83 0xc4 */ BYTE nrofargs; /* nr of arguments to add esp, */ BYTE pushl3; /* 0x68 */ DWORD oldret WINE_PACKED; /* Filled out from popl above */ BYTE ret2; /* 0xc3 */ } ELF_STDCALL_STUB; typedef struct { void* dlhandle; ELF_STDCALL_STUB *stubs; } ELF_MODREF; extern struct _wine_modref *ELF_LoadLibraryExA( LPCSTR libname, DWORD flags); extern void ELF_UnloadLibrary(struct _wine_modref *); extern FARPROC ELF_FindExportedFunction(struct _wine_modref *wm, LPCSTR funcName); #endif /* __WINE_PE_IMAGE_H */ bml-0.6.1/dllwrapper/wine/avifmt.h0000644042355400116100000001662411576362500014012 00000000000000/**************************************************************************** * * AVIFMT - AVI file format definitions * ****************************************************************************/ #ifndef AVIFMT #define AVIFMT #ifndef NOAVIFMT #ifndef __WINE_WINDEF_H #include "windef.h" #endif #ifndef __WINE_MMSYSTEM_H #ifndef __WINE_MSACM_H typedef DWORD FOURCC; #endif #endif #ifdef _MSC_VER #pragma warning(disable:4200) #endif /* The following is a short description of the AVI file format. Please * see the accompanying documentation for a full explanation. * * An AVI file is the following RIFF form: * * RIFF('AVI' * LIST('hdrl' * avih() * LIST ('strl' * strh() * strf() * ... additional header data * LIST('movi' * { LIST('rec' * SubChunk... * ) * | SubChunk } .... * ) * [ ] * ) * * The main file header specifies how many streams are present. For * each one, there must be a stream header chunk and a stream format * chunk, enlosed in a 'strl' LIST chunk. The 'strf' chunk contains * type-specific format information; for a video stream, this should * be a BITMAPINFO structure, including palette. For an audio stream, * this should be a WAVEFORMAT (or PCMWAVEFORMAT) structure. * * The actual data is contained in subchunks within the 'movi' LIST * chunk. The first two characters of each data chunk are the * stream number with which that data is associated. * * Some defined chunk types: * Video Streams: * ##db: RGB DIB bits * ##dc: RLE8 compressed DIB bits * ##pc: Palette Change * * Audio Streams: * ##wb: waveform audio bytes * * The grouping into LIST 'rec' chunks implies only that the contents of * the chunk should be read into memory at the same time. This * grouping is used for files specifically intended to be played from * CD-ROM. * * The index chunk at the end of the file should contain one entry for * each data chunk in the file. * * Limitations for the current software: * Only one video stream and one audio stream are allowed. * The streams must start at the beginning of the file. * * * To register codec types please obtain a copy of the Multimedia * Developer Registration Kit from: * * Microsoft Corporation * Multimedia Systems Group * Product Marketing * One Microsoft Way * Redmond, WA 98052-6399 * */ #ifndef mmioFOURCC #define mmioFOURCC( ch0, ch1, ch2, ch3 ) \ ( (DWORD)(BYTE)(ch0) | ( (DWORD)(BYTE)(ch1) << 8 ) | \ ( (DWORD)(BYTE)(ch2) << 16 ) | ( (DWORD)(BYTE)(ch3) << 24 ) ) #endif /* Macro to make a TWOCC out of two characters */ #ifndef aviTWOCC #define aviTWOCC(ch0, ch1) ((WORD)(BYTE)(ch0) | ((WORD)(BYTE)(ch1) << 8)) #endif typedef WORD TWOCC; /* form types, list types, and chunk types */ #define formtypeAVI mmioFOURCC('A', 'V', 'I', ' ') #define listtypeAVIHEADER mmioFOURCC('h', 'd', 'r', 'l') #define ckidAVIMAINHDR mmioFOURCC('a', 'v', 'i', 'h') #define listtypeSTREAMHEADER mmioFOURCC('s', 't', 'r', 'l') #define ckidSTREAMHEADER mmioFOURCC('s', 't', 'r', 'h') #define ckidSTREAMFORMAT mmioFOURCC('s', 't', 'r', 'f') #define ckidSTREAMHANDLERDATA mmioFOURCC('s', 't', 'r', 'd') #define ckidSTREAMNAME mmioFOURCC('s', 't', 'r', 'n') #define listtypeAVIMOVIE mmioFOURCC('m', 'o', 'v', 'i') #define listtypeAVIRECORD mmioFOURCC('r', 'e', 'c', ' ') #define ckidAVINEWINDEX mmioFOURCC('i', 'd', 'x', '1') /* ** Stream types for the field of the stream header. */ #define streamtypeVIDEO mmioFOURCC('v', 'i', 'd', 's') #define streamtypeAUDIO mmioFOURCC('a', 'u', 'd', 's') #define streamtypeMIDI mmioFOURCC('m', 'i', 'd', 's') #define streamtypeTEXT mmioFOURCC('t', 'x', 't', 's') /* Basic chunk types */ #define cktypeDIBbits aviTWOCC('d', 'b') #define cktypeDIBcompressed aviTWOCC('d', 'c') #define cktypePALchange aviTWOCC('p', 'c') #define cktypeWAVEbytes aviTWOCC('w', 'b') /* Chunk id to use for extra chunks for padding. */ #define ckidAVIPADDING mmioFOURCC('J', 'U', 'N', 'K') /* ** Useful macros ** ** Warning: These are nasty macro, and MS C 6.0 compiles some of them ** incorrectly if optimizations are on. Ack. */ /* Macro to get stream number out of a FOURCC ckid */ #define FromHex(n) (((n) >= 'A') ? ((n) + 10 - 'A') : ((n) - '0')) #define StreamFromFOURCC(fcc) ((WORD) ((FromHex(LOBYTE(LOWORD(fcc))) << 4) + \ (FromHex(HIBYTE(LOWORD(fcc)))))) /* Macro to get TWOCC chunk type out of a FOURCC ckid */ #define TWOCCFromFOURCC(fcc) HIWORD(fcc) /* Macro to make a ckid for a chunk out of a TWOCC and a stream number ** from 0-255. */ #define ToHex(n) ((BYTE) (((n) > 9) ? ((n) - 10 + 'A') : ((n) + '0'))) #define MAKEAVICKID(tcc, stream) \ MAKELONG((ToHex((stream) & 0x0f) << 8) | \ (ToHex(((stream) & 0xf0) >> 4)), tcc) /* ** Main AVI File Header */ /* flags for use in in AVIFileHdr */ #define AVIF_HASINDEX 0x00000010 // Index at end of file? #define AVIF_MUSTUSEINDEX 0x00000020 #define AVIF_ISINTERLEAVED 0x00000100 #define AVIF_TRUSTCKTYPE 0x00000800 // Use CKType to find key frames? #define AVIF_WASCAPTUREFILE 0x00010000 #define AVIF_COPYRIGHTED 0x00020000 /* The AVI File Header LIST chunk should be padded to this size */ #define AVI_HEADERSIZE 2048 // size of AVI header list typedef struct { DWORD dwMicroSecPerFrame; // frame display rate (or 0L) DWORD dwMaxBytesPerSec; // max. transfer rate DWORD dwPaddingGranularity; // pad to multiples of this // size; normally 2K. DWORD dwFlags; // the ever-present flags DWORD dwTotalFrames; // # frames in file DWORD dwInitialFrames; DWORD dwStreams; DWORD dwSuggestedBufferSize; DWORD dwWidth; DWORD dwHeight; DWORD dwReserved[4]; } MainAVIHeader; /* ** Stream header */ #define AVISF_DISABLED 0x00000001 #define AVISF_VIDEO_PALCHANGES 0x00010000 typedef struct { FOURCC fccType; FOURCC fccHandler; DWORD dwFlags; /* Contains AVITF_* flags */ WORD wPriority; WORD wLanguage; DWORD dwInitialFrames; DWORD dwScale; DWORD dwRate; /* dwRate / dwScale == samples/second */ DWORD dwStart; DWORD dwLength; /* In units above... */ DWORD dwSuggestedBufferSize; DWORD dwQuality; DWORD dwSampleSize; RECT rcFrame; } AVIStreamHeader; /* Flags for index */ #define AVIIF_LIST 0x00000001L // chunk is a 'LIST' #define AVIIF_KEYFRAME 0x00000010L // this frame is a key frame. #define AVIIF_NOTIME 0x00000100L // this frame doesn't take any time #define AVIIF_COMPUSE 0x0FFF0000L // these bits are for compressor use #define FOURCC_RIFF mmioFOURCC('R', 'I', 'F', 'F') #define FOURCC_LIST mmioFOURCC('L', 'I', 'S', 'T') typedef struct { DWORD ckid; DWORD dwFlags; DWORD dwChunkOffset; // Position of chunk DWORD dwChunkLength; // Length of chunk } AVIINDEXENTRY; #define AVISTREAMREAD_CONVENIENT (-1L) /* ** Palette change chunk ** ** Used in video streams. */ #endif /* NOAVIFMT */ #endif bml-0.6.1/dllwrapper/wine/msacmdrv.h0000644042355400116100000001211111576362500014323 00000000000000/* * msacmdrv.h - Declarations for MSACM driver */ #ifndef __WINE_MSACMDRV_H #define __WINE_MSACMDRV_H #include "windef.h" #include "msacm.h" /*********************************************************************** * Types */ /*********************************************************************** * Defines/Enums */ #define MAKE_ACM_VERSION(mjr, mnr, bld) \ (((long)(mjr)<<24) | ((long)(mnr)<<16) | ((long)bld)) #define ACMDRVOPENDESC_SECTIONNAME_CHARS #define ACMDM_DRIVER_NOTIFY (ACMDM_BASE + 1) #define ACMDM_DRIVER_DETAILS (ACMDM_BASE + 10) #define ACMDM_HARDWARE_WAVE_CAPS_INPUT (ACMDM_BASE + 20) #define ACMDM_HARDWARE_WAVE_CAPS_OUTPUT (ACMDM_BASE + 21) #define ACMDM_FORMATTAG_DETAILS (ACMDM_BASE + 25) #define ACMDM_FORMAT_DETAILS (ACMDM_BASE + 26) #define ACMDM_FORMAT_SUGGEST (ACMDM_BASE + 27) #define ACMDM_FILTERTAG_DETAILS (ACMDM_BASE + 50) #define ACMDM_FILTER_DETAILS (ACMDM_BASE + 51) #define ACMDM_STREAM_OPEN (ACMDM_BASE + 76) #define ACMDM_STREAM_CLOSE (ACMDM_BASE + 77) #define ACMDM_STREAM_SIZE (ACMDM_BASE + 78) #define ACMDM_STREAM_CONVERT (ACMDM_BASE + 79) #define ACMDM_STREAM_RESET (ACMDM_BASE + 80) #define ACMDM_STREAM_PREPARE (ACMDM_BASE + 81) #define ACMDM_STREAM_UNPREPARE (ACMDM_BASE + 82) #define ACMDM_STREAM_UPDATE (ACMDM_BASE + 83) /*********************************************************************** * Structures */ typedef struct _ACMDRVOPENDESCA { DWORD cbStruct; FOURCC fccType; FOURCC fccComp; DWORD dwVersion; DWORD dwFlags; DWORD dwError; LPCSTR pszSectionName; LPCSTR pszAliasName; DWORD dnDevNode; } ACMDRVOPENDESCA, *PACMDRVOPENDESCA; typedef struct _ACMDRVOPENDESCW { DWORD cbStruct; FOURCC fccType; FOURCC fccComp; DWORD dwVersion; DWORD dwFlags; DWORD dwError; LPCWSTR pszSectionName; LPCWSTR pszAliasName; DWORD dnDevNode; } ACMDRVOPENDESCW, *PACMDRVOPENDESCW; typedef struct _ACMDRVOPENDESC16 { DWORD cbStruct; FOURCC fccType; FOURCC fccComp; DWORD dwVersion; DWORD dwFlags; DWORD dwError; LPCSTR pszSectionName; LPCSTR pszAliasName; DWORD dnDevNode; } ACMDRVOPENDESC16, *NPACMDRVOPENDESC16, *LPACMDRVOPENDESC16; typedef struct _ACMDRVSTREAMINSTANCE16 { DWORD cbStruct; LPWAVEFORMATEX pwfxSrc; LPWAVEFORMATEX pwfxDst; LPWAVEFILTER pwfltr; DWORD dwCallback; DWORD dwInstance; DWORD fdwOpen; DWORD fdwDriver; DWORD dwDriver; HACMSTREAM16 has; } ACMDRVSTREAMINSTANCE16, *NPACMDRVSTREAMINSTANCE16, *LPACMDRVSTREAMINSTANCE16; typedef struct _ACMDRVSTREAMINSTANCE { DWORD cbStruct; PWAVEFORMATEX pwfxSrc; PWAVEFORMATEX pwfxDst; PWAVEFILTER pwfltr; DWORD dwCallback; DWORD dwInstance; DWORD fdwOpen; DWORD fdwDriver; DWORD dwDriver; HACMSTREAM has; } ACMDRVSTREAMINSTANCE, *PACMDRVSTREAMINSTANCE; typedef struct _ACMDRVSTREAMHEADER16 *LPACMDRVSTREAMHEADER16; typedef struct _ACMDRVSTREAMHEADER16 { DWORD cbStruct; DWORD fdwStatus; DWORD dwUser; LPBYTE pbSrc; DWORD cbSrcLength; DWORD cbSrcLengthUsed; DWORD dwSrcUser; LPBYTE pbDst; DWORD cbDstLength; DWORD cbDstLengthUsed; DWORD dwDstUser; DWORD fdwConvert; LPACMDRVSTREAMHEADER16 *padshNext; DWORD fdwDriver; DWORD dwDriver; /* Internal fields for ACM */ DWORD fdwPrepared; DWORD dwPrepared; LPBYTE pbPreparedSrc; DWORD cbPreparedSrcLength; LPBYTE pbPreparedDst; DWORD cbPreparedDstLength; } ACMDRVSTREAMHEADER16, *NPACMDRVSTREAMHEADER16; typedef struct _ACMDRVSTREAMHEADER *PACMDRVSTREAMHEADER; typedef struct _ACMDRVSTREAMHEADER { DWORD cbStruct; DWORD fdwStatus; DWORD dwUser; LPBYTE pbSrc; DWORD cbSrcLength; DWORD cbSrcLengthUsed; DWORD dwSrcUser; LPBYTE pbDst; DWORD cbDstLength; DWORD cbDstLengthUsed; DWORD dwDstUser; DWORD fdwConvert; PACMDRVSTREAMHEADER *padshNext; DWORD fdwDriver; DWORD dwDriver; /* Internal fields for ACM */ DWORD fdwPrepared; DWORD dwPrepared; LPBYTE pbPreparedSrc; DWORD cbPreparedSrcLength; LPBYTE pbPreparedDst; DWORD cbPreparedDstLength; } ACMDRVSTREAMHEADER; typedef struct _ACMDRVSTREAMSIZE { DWORD cbStruct; DWORD fdwSize; DWORD cbSrcLength; DWORD cbDstLength; } ACMDRVSTREAMSIZE16, *NPACMDRVSTREAMSIZE16, *LPACMDRVSTREAMSIZE16, ACMDRVSTREAMSIZE, *PACMDRVSTREAMSIZE; typedef struct _ACMDRVFORMATSUGGEST16 { DWORD cbStruct; DWORD fdwSuggest; LPWAVEFORMATEX pwfxSrc; DWORD cbwfxSrc; LPWAVEFORMATEX pwfxDst; DWORD cbwfxDst; } ACMDRVFORMATSUGGEST16, *NPACMDRVFORMATSUGGEST, *LPACMDRVFORMATSUGGEST; typedef struct _ACMDRVFORMATSUGGEST { DWORD cbStruct; DWORD fdwSuggest; PWAVEFORMATEX pwfxSrc; DWORD cbwfxSrc; PWAVEFORMATEX pwfxDst; DWORD cbwfxDst; } ACMDRVFORMATSUGGEST, *PACMDRVFORMATSUGGEST; #endif /* __WINE_MSACMDRV_H */ bml-0.6.1/dllwrapper/wine/ldt_keeper.h0000644042355400116100000000074111576362500014633 00000000000000#ifndef LDT_KEEPER_H #define LDT_KEEPER_H #ifdef __cplusplus extern "C" { #endif /* manage i386 per-process segment descriptors * LDT = Local Descriptor Table */ typedef struct { void* fs_seg; char* prev_struct; int fd; unsigned int teb_sel; } ldt_fs_t; void Setup_FS_Segment(ldt_fs_t *ldt_fs); ldt_fs_t* Setup_LDT_Keeper(void); void Check_FS_Segment(ldt_fs_t *ldt_fs); void Restore_LDT_Keeper(ldt_fs_t* ldt_fs); #ifdef __cplusplus } #endif #endif /* LDT_KEEPER_H */ bml-0.6.1/dllwrapper/Makefile.am0000644042355400116100000000010611576362500013431 00000000000000SUBDIRS = wine noinst_HEADERS = \ libwin32.h EXTRA_DIST = README bml-0.6.1/dllwrapper/libwin32.h0000644042355400116100000001545411576362500013213 00000000000000#ifndef __LIBWIN32_H #define __LIBWIN32_H #ifndef NOAVIFILE_HEADERS #error this header file should not be used without -DNOAVIFILE_HEADERS #endif // this file is only included when NOAVIFILE_HEADERS are defined // serves mainly for mplayer #define VFW_E_NOT_RUNNING 0x80040226 #include //#define FATAL(a) // you don't need exception - if you want - just fill more code #include "wine/mmreg.h" #include "wine/winreg.h" #include "wine/vfw.h" #include "wine/com.h" typedef uint32_t fourcc_t; /* typedef struct _FatalError { FatalError(); void PrintAll() {} }FatalError; */ typedef struct _CodecInfo { char* dll; GUID* guid; }CodecInfo; typedef struct _CImage // public your_libvo_mem { char* ptr; /*char* (*Data)(); { return 0; // pointer to memory block }*/ /*int (*Supported)(fourcc_t csp, int bits); { return true; // if you support such surface }*/ }CImage; #if 0 struct BitmapInfo : public BITMAPINFOHEADER { void SetBits(int b) { return; /*fixme*/ } void SetSpace(int b) { return; /*fixme*/ } }; #endif typedef struct _IAudioDecoder { WAVEFORMATEX in_fmt; CodecInfo record; /*(*IAudioDecoder)( CodecInfo * r, const WAVEFORMATEX* w); { memcpy(&this->record,r,sizeof(CodecInfo)); in_fmt = *w; }*/ }IAudioDecoder; /* struct IAudioEncoder { IAudioEncoder(const CodecInfo&, WAVEFORMATEX*) {} // you do not need this one... }; */ enum CAPS { CAP_NONE = 0, CAP_YUY2 = 1, CAP_YV12 = 2, CAP_IYUV = 4, CAP_UYVY = 8, CAP_YVYU = 16, CAP_I420 = 32, CAP_YVU9 = 64, CAP_IF09 = 128, }; enum DecodingMode { DIRECT = 0, REALTIME, REALTIME_QUALITY_AUTO, }; enum DecodingState { STOP = 0, START, }; typedef struct _BitmapInfo { long biSize; long biWidth; long biHeight; short biPlanes; short biBitCount; long biCompression; long biSizeImage; long biXPelsPerMeter; long biYPelsPerMeter; long biClrUsed; long biClrImportant; int colors[3]; } BitmapInfo; typedef struct _IVideoDecoder { int VBUFSIZE; int QMARKHI; int QMARKLO; int DMARKHI; int DMARKLO; /* IVideoDecoder(CodecInfo& info, const BITMAPINFOHEADER& format) : record(info) { // implement init part } virtual ~IVideoDecoder(); void Stop() { } void Start() { } */ const CodecInfo record; int m_Mode; // should we do precaching (or even change Quality on the fly) int m_State; int m_iDecpos; int m_iPlaypos; float m_fQuality; // quality for the progress bar 0..1(best) int m_bCapable16b; BITMAPINFOHEADER* m_bh; // format of input data (might be larger - e.g. huffyuv) BitmapInfo m_decoder; // format of decoder output BitmapInfo m_obh; // format of returned frames }IVideoDecoder; /* struct IRtConfig { }; */ // might be minimalized to contain just those which are needed by DS_VideoDecoder #ifndef mmioFOURCC #define mmioFOURCC( ch0, ch1, ch2, ch3 ) \ ( (long)(unsigned char)(ch0) | ( (long)(unsigned char)(ch1) << 8 ) | \ ( (long)(unsigned char)(ch2) << 16 ) | ( (long)(unsigned char)(ch3) << 24 ) ) #endif /* mmioFOURCC */ /* OpenDivX */ #define fccMP4S mmioFOURCC('M', 'P', '4', 'S') #define fccmp4s mmioFOURCC('m', 'p', '4', 's') #define fccDIVX mmioFOURCC('D', 'I', 'V', 'X') #define fccdivx mmioFOURCC('d', 'i', 'v', 'x') #define fccDIV1 mmioFOURCC('D', 'I', 'V', '1') #define fccdiv1 mmioFOURCC('d', 'i', 'v', '1') /* DivX codecs */ #define fccDIV2 mmioFOURCC('D', 'I', 'V', '2') #define fccdiv2 mmioFOURCC('d', 'i', 'v', '2') #define fccDIV3 mmioFOURCC('D', 'I', 'V', '3') #define fccdiv3 mmioFOURCC('d', 'i', 'v', '3') #define fccDIV4 mmioFOURCC('D', 'I', 'V', '4') #define fccdiv4 mmioFOURCC('d', 'i', 'v', '4') #define fccDIV5 mmioFOURCC('D', 'I', 'V', '5') #define fccdiv5 mmioFOURCC('d', 'i', 'v', '5') #define fccDIV6 mmioFOURCC('D', 'I', 'V', '6') #define fccdiv6 mmioFOURCC('d', 'i', 'v', '6') #define fccMP41 mmioFOURCC('M', 'P', '4', '1') #define fccmp41 mmioFOURCC('m', 'p', '4', '1') #define fccMP43 mmioFOURCC('M', 'P', '4', '3') #define fccmp43 mmioFOURCC('m', 'p', '4', '3') /* old ms mpeg-4 codecs */ #define fccMP42 mmioFOURCC('M', 'P', '4', '2') #define fccmp42 mmioFOURCC('m', 'p', '4', '2') #define fccMPG4 mmioFOURCC('M', 'P', 'G', '4') #define fccmpg4 mmioFOURCC('m', 'p', 'g', '4') /* Windows media codecs */ #define fccWMV1 mmioFOURCC('W', 'M', 'V', '1') #define fccwmv1 mmioFOURCC('w', 'm', 'v', '1') #define fccWMV2 mmioFOURCC('W', 'M', 'V', '2') #define fccwmv2 mmioFOURCC('w', 'm', 'v', '2') #define fccMWV1 mmioFOURCC('M', 'W', 'V', '1') /* Angel codecs */ #define fccAP41 mmioFOURCC('A', 'P', '4', '1') #define fccap41 mmioFOURCC('a', 'p', '4', '1') #define fccAP42 mmioFOURCC('A', 'P', '4', '2') #define fccap42 mmioFOURCC('a', 'p', '4', '2') /* other codecs */ #define fccIV31 mmioFOURCC('I', 'V', '3', '1') #define fcciv31 mmioFOURCC('i', 'v', '3', '1') #define fccIV32 mmioFOURCC('I', 'V', '3', '2') #define fcciv32 mmioFOURCC('i', 'v', '3', '2') #define fccIV41 mmioFOURCC('I', 'V', '4', '1') #define fcciv41 mmioFOURCC('i', 'v', '4', '1') #define fccIV50 mmioFOURCC('I', 'V', '5', '0') #define fcciv50 mmioFOURCC('i', 'v', '5', '0') #define fccI263 mmioFOURCC('I', '2', '6', '3') #define fcci263 mmioFOURCC('i', '2', '6', '3') #define fccMJPG mmioFOURCC('M', 'J', 'P', 'G') #define fccmjpg mmioFOURCC('m', 'j', 'p', 'g') #define fccHFYU mmioFOURCC('H', 'F', 'Y', 'U') #define fcccvid mmioFOURCC('c', 'v', 'i', 'd') #define fccdvsd mmioFOURCC('d', 'v', 's', 'd') /* Ati codecs */ #define fccVCR2 mmioFOURCC('V', 'C', 'R', '2') #define fccVCR1 mmioFOURCC('V', 'C', 'R', '1') #define fccVYUY mmioFOURCC('V', 'Y', 'U', 'Y') #define fccIYU9 mmioFOURCC('I', 'Y', 'U', '9') // it was defined as fccYVU9 /* Asus codecs */ #define fccASV1 mmioFOURCC('A', 'S', 'V', '1') #define fccASV2 mmioFOURCC('A', 'S', 'V', '2') /* Microsoft video */ #define fcccram mmioFOURCC('c', 'r', 'a', 'm') #define fccCRAM mmioFOURCC('C', 'R', 'A', 'M') #define fccMSVC mmioFOURCC('M', 'S', 'V', 'C') #define fccMSZH mmioFOURCC('M', 'S', 'Z', 'H') #define fccZLIB mmioFOURCC('Z', 'L', 'I', 'B') #define fccTM20 mmioFOURCC('T', 'M', '2', '0') #define fccYUV mmioFOURCC('Y', 'U', 'V', ' ') #define fccYUY2 mmioFOURCC('Y', 'U', 'Y', '2') #define fccYV12 mmioFOURCC('Y', 'V', '1', '2')/* Planar mode: Y + V + U (3 planes) */ #define fccI420 mmioFOURCC('I', '4', '2', '0') #define fccIYUV mmioFOURCC('I', 'Y', 'U', 'V')/* Planar mode: Y + U + V (3 planes) */ #define fccUYVY mmioFOURCC('U', 'Y', 'V', 'Y')/* Packed mode: U0+Y0+V0+Y1 (1 plane) */ #define fccYVYU mmioFOURCC('Y', 'V', 'Y', 'U')/* Packed mode: Y0+V0+Y1+U0 (1 plane) */ #define fccYVU9 mmioFOURCC('Y', 'V', 'U', '9')/* Planar 4:1:0 */ #define fccIF09 mmioFOURCC('I', 'F', '0', '9')/* Planar 4:1:0 + delta */ #endif bml-0.6.1/libbml.pc.in0000644042355400116100000000043511576362500011420 00000000000000prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ Name: libbml Version: @PACKAGE_VERSION@ Description: libbml, a library to support the use of win32/x86 buzz machines within Linux applications Requires: Libs: -L${libdir} -lbml Cflags: -I${includedir} bml-0.6.1/TODO0000644042355400116100000002311311666242131007711 00000000000000$Id: TODO 3726 2011-12-02 21:34:15Z ensonic $ = general = * rename public API in BuzzMachineLoader.h BuzzMachine -> BMLMachine BuzzMachineProperty -> BMLMachineProperty ... * charsets, should we convert all strings to UTF-8 in here already? = more tools = == bmldump_src_skel == dump a source skelleton for rewriting a machine == debugging == write a gdb script that enhances backtraces like:https://github.com/shinh/maloader/blob/master/gdb_maloader.py https://github.com/shinh/maloader/blob/master/gdb_maloader.py = testing = modify tests/testmachine.sh eventually improve scrolling: http://www.litotes.demon.co.uk/example_scripts/tableScroll.html result should go to a given directory (use date-time when not provided) = unemulated used libs = grep -ho "Win32 LoadLibrary failed to load.*" testmachine/*.txt* | sort | uniq -c | sort -g 3 wine/module: Win32 LoadLibrary failed to load: COMCTL32.dll 28 wine/module: Win32 LoadLibrary failed to load: comdlg32.dll 1 wine/module: Win32 LoadLibrary failed to load: DSOUND.dll 2588 wine/module: Win32 LoadLibrary failed to load: GDI32.dll 81803 wine/module: Win32 LoadLibrary failed to load: KERNEL32.dll 147 wine/module: Win32 LoadLibrary failed to load: MSVCRT.dll 254 wine/module: Win32 LoadLibrary failed to load: ole32.dll 30 wine/module: Win32 LoadLibrary failed to load: OLEAUT32.dll 20 wine/module: Win32 LoadLibrary failed to load: oledlg.dll 18 wine/module: Win32 LoadLibrary failed to load: OLEPRO32.DLL 2 wine/module: Win32 LoadLibrary failed to load: SHELL32.dll 1 wine/module: Win32 LoadLibrary failed to load: SHLWAPI.dll 4775 wine/module: Win32 LoadLibrary failed to load: USER32.dll 44 wine/module: Win32 LoadLibrary failed to load: WINMM.dll 63 wine/module: Win32 LoadLibrary failed to load: WINSPOOL.DRV * ole stuff could be machines using auxbus * DSOUND.dll Geonik's Dx Input.dll * SHLWAPI.dll BuzzInAMovie.dll * SHELL32.dll Rout VST Plugin Loader.dll mimo's miXo.dll = missing window function entries = unk_??0_Lockit@std@@QAE@XZ unk_??1_Lockit@std@@QAE@XZ unk_joyGetDevCapsA unk_joyGetNumDevs unk_joyGetPos unk_waveInOpen unk_midiOutGetNumDevs unk_midiOutOpen MFC42.DLL (check MFC42.DEF file) unk_MFC42.DLL:823 : ??2@YAPAXI@Z unk_MFC42.DLL:1176 : ?AfxGetThreadState@@YGPAV_AFX_THREAD_STATE@@XZ unk_MFC42.DLL:1243 : ?AfxSetModuleState@@YGPAVAFX_MODULE_STATE@@PAV1@@Z user32.dll unk_CreateDialogParamA : http://msdn.microsoft.com/en-us/library/ms645445(VS.85).aspx unk_GetWindowTextA : http://msdn.microsoft.com/en-us/library/ms633520(VS.85).aspx unk_LoadIconA : http://msdn.microsoft.com/en-us/library/ms648072.aspx unk_SendMessageA : http://msdn.microsoft.com/en-us/library/ms644950.aspx unk_SetWindowPos : http://msdn.microsoft.com/en-us/library/ms633545.aspx unk_VkKeyScanA : http://msdn.microsoft.com/en-us/library/ms646329.aspx Microsoft DirectShow 9.0 unk_DMOEnum : http://msdn.microsoft.com/en-us/library/ms783373(VS.85).aspx Kernel32.dll unk_FlsAlloc : http://msdn.microsoft.com/en-us/library/ms682664(VS.85).aspx unk_FlsFree unk_FlsSetValue unk_ResumeThread : http://msdn.microsoft.com/en-us/library/ms685086(VS.85).aspx Gdi32.lib unk_GetStockObject : http://msdn.microsoft.com/en-us/library/ms533223.aspx = list missing machine for songs = for file in *.bmx; do ~/buzztard/bin/bt-cmd 2>/dev/null --command=info --input-file=$file | grep " bml-"; done | sort | uniq -c | sort -n = list songs that have no missing machines = for file in *.bmx; do ~/buzztard/bin/bt-cmd 2>/dev/null --command=info --input-file=$file | grep -q " bml-" || echo $file; done = missing features = * getting access to Patterns/Sequence = getting better diagnostics on failure http://www.eptacom.net/pubblicazioni/pub_eng/except.html http://www.eptacom.net/pubblicazioni/pub_eng/assert.html http://www.codeproject.com/KB/threads/StackWalker.aspx == tools == use mingw-binutils to dump win32 binaries /usr/local/i386-mingw32/bin/objdump -t MSVCRT.DLL /usr/i586-mingw32msvc/bin/objdump ... = x86_64 bit support for native plugins = - we need to build a launcher+libbml with -m32 - in libbml's #ifdef HAVE_X86 section, we need to have alternative implementations for 64bit - the 32bit build would use the one we have there - the 64bit build would need to do IPC - the 32bit launcher would need to receive IPC and dispatch - the front-env tests (bmltest_*) would remain as they are - will we launch 1 helper per using process or 1 herlper per machine - 1 helper per process: 1 shm key - creating the BuzzMachineHandle / BuzzMachine will create proxy structures with the ids for the launcher (index values to arrays on the launcher side) - for the IPC we need to marshall (function, parameters, data) - we can just enumerate the API calls - the parameters will be hardcoded for each function = test single plugins = G_SLICE=always-malloc G_DEBUG=gc-friendly GLIBCPP_FORCE_NEW=1 GLIBCXX_FORCE_NEW=1 valgrind --tool=memcheck --leak-check=full --leak-resolution=high --trace-children=yes --num-callers=20 -v ../src/.libs/bmltest_info ~/buzztard/lib/Gear-real/Effects/Static\ Duafilt\ II.dll ../src/.libs/bmltest_info ~/buzztard/lib/Gear-real/Effects/Static\ Duafilt\ II.dll = what windows dll to copy and which not = == don't (we need to emulate) == kernel32.dll ntdll.dll == seems safe == msvcp50.dll msvcp60.dll MFC42.DLL MSVCRT.DLL = buzz emulation = == mdk machine == * we need to do ::AddInput() and ::DeleteInput to get input-mixing working (even though we would always just give one input). * before we call WorkXXX() we need to call MachineInterfaceEx::Input(float *psamples, int numsamples, float amp) other-sources/buzz-sources/__BUZZ1PLAYER__NOT_FOR_PUBLIC!/CMachine.cpp * stereo output MIF_DOES_INPUT_MIXING machines will get stereo input * bm->callbacks->mdkHelper->numChannels == auxbus machines == * currently all auxbus using machines fail = machine tests = == hoshi == 2008.02.22 : Of 532 machine(s) 448 worked and 84 failed to load. 2008.02.23 : Of 533 machine(s) 457 worked and 76 failed to load. 2008.11.19 : Of 533 machine(s) 458 worked and 75 failed to load. 2009.01.29 : Of 533 machine(s) 451 worked, 9 did not processed data and 73 failed to load. 2009.11.02 : Of 537 machine(s) 454 worked, 10 did not processed data and 73 failed to load 2010.02.03 : Of 517 machine(s) 433 worked, 9 did not processed data and 75 failed to load 2011.01.09 : Of 517 machine(s) 444 worked, 6 did not processed data and 67 failed to load. == sterni/mautz == 2008.10.14 : Of 853 machine(s) 759 worked and 94 failed to load. 2008.11.20 : Of 853 machine(s) 758 worked and 95 failed to load. 2011.01.11 : Of 857 machine(s) 760 worked, 7 did not processed data and 90 failed to load. In gst-buzztard/src/bml/plugin.c I maintain a black list. There seems to be several machines failing when calling GetInfo() tail -n1 *.fail | grep -B1 "GetInfo" == Generators == Geonik's PrimiFun.dll if we don't have MFC42.dll Called unk_MFC42.DLL:1176 Called unk_MFC42.DLL:1243 Called unk_MFC42.DLL:823 - its library:ordinal if we have MFC42.DLL Called unk_GetConsoleMode m4wii.dll if we don't have MFC42.dll Called unk_MFC42.DLL:1176 Called unk_MFC42.DLL:1243 if we have MFC42.DLL Called unk__CxxThrowException http://www.winehq.org/pipermail/wine-patches/2002-October/003917.html http://source.winehq.org/source/dlls/msvcrt/cppexcept.c http://source.winehq.org/source/dlls/msvcrt/cppexcept.h If we wrap this localy, the unk__ is gone (empty impl), but it segfaults. Maybe we need a full impl. mimo's MidiGen.dll win32.c: TLS_COUNT is not enough Jeskola Bass 2.dll buzzmachinecallbackspre12.cpp:105:BuzzMachineCallbacksPre12::MidiOut (dev=1,data=136987296) Jeskola Tracker.dll if we don't have MFC42.dll Called unk_MFC42.DLL:823 if we have MFC42.DLL Called unk__CxxThrowException Ruff SPECCY II.dll HD Percussive_FM.dll crash after ? Aeguelles TB4004 noisy distortion == Effects == Arguelles TruePan Jeskola XDelay (causes distortions) Jeskola Raverb (causes distortions) BuzzMachineCallbacks::GetEnvSize (wave=-96185375,env=0) buzzmachinecallbackspre12.cpp:112:BuzzMachineCallbacksPre12::GetOscillatorTable (waveform=-128840458) Jeskola Stereo Reverb (sometimes silences the whole song, NAN?) Effects/Jeskola Wave Shaper.dll if we don't have MFC42.DLL Called unk_MFC42.DLL:1176 Called unk_MFC42.DLL:1243 if we have MFC42.DLL Entering DllMain(DLL_PROCESS_ATTACH) for /home/ensonic/buzztard/lib/win32/mfc42.dll Segmentation fault Sonic Verb (seems to work now) buzzmachinecallbacks.cpp:199:BuzzMachineCallbacks::GetEnvPoint (wave=-1,env=-1,i=-1076278224,&x,&y,&flags) buzzmachinecallbacks.cpp:276:BuzzMachineCallbacks::SetSequenceData (row=-1217504548,ppat=B7A5B3C4) Dolby Prologic Echo Param Direction : val [1 ... d=4096/n=0 ... 255], the def-val for an enum, can't be outside the range Ynzn's Remote Compressor.dll Ynzn's Remote Gate.dll both crash (problem with name? - no we have others with "'") PSI Corp's LFO Filter.dll Repeater.dll RnZnAnFnCnR VST Effect Adapter.dll Rnznanf Vst Effect Adapter.dll Rout VST Plugin Loader.dll Shaman Chorus.dll WhiteNoise AuxReturn.dll crash Zu*.dll #0 0xb7fce4e2 in exp_EH_prolog () from /home/ensonic/buzztard/lib/libbml.so.0 #1 0xb7c9e38a in ?? () #2 0x1001a898 in ?? () #3 0xb7fafad4 in bmlw_open (bm_file_name=0xbfffeffe "/home/ensonic/buzztard/lib/Gear-real/Effects/Zu Parametric EQ.dll") at bml.c:207 #4 0x080490cb in bmlw_test_info (libpath=0xbfffeffe "/home/ensonic/buzztard/lib/Gear-real/Effects/Zu Parametric EQ.dll") at bmltest_info.h:34 #5 0x0804ab15 in main (argc=2, argv=0xbfffed64) at bmltest_info.c:96 bml-0.6.1/config.sub0000754042355400116100000010242511576366620011221 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 # Free Software Foundation, Inc. timestamp='2009-06-11' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: bml-0.6.1/AUTHORS0000644042355400116100000000026711643652113010276 00000000000000Original Authors ---------------- Stefan Sauer Based on the work of -------------------- various authors of the winelib and xine projects bml-0.6.1/README0000644042355400116100000000755111576362500010114 00000000000000$Id: README 2700 2010-01-13 21:52:15Z ensonic $ = quick info = Please turn you browser to http://www.buzztard.org to learn what this project is about. Buzztard is free software and distributed under the LGPL. = intro = The libbml is a library that loads buzz machines from the windows music composer Buzz, so that Linux/Unix applications can use them. It also supports open source buzz machines on any platform. = building = Please note that loading the windows dlls only works on x86 systems. If one build on a non x86 system, the library can only support native buzzmachines (see buzzmachines module in same svn). = installing localy = Use following options for ./autogen.sh or ./configure --prefix=$HOME/buzztard when installing the package to e.g. $HOME/buzztard remember to set these environment variables: libraries: export LD_LIBRARY_PATH=$HOME/buzztard/lib:$LD_LIBRARY_PATH pkg-config: export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$HOME/buzztard/lib/pkgconfig" = installing in /usr/local = The default value for the --prefix configure option is /usr/local. Also in that case the variables mentioned in the last example need to be exported. = machines = Export the path we you have the machine, e.g.: export BML_PATH=$HOME/buzztard/lib/Gear:$HOME/buzztard/lib/Gear/Effects:\ $HOME/buzztard/lib/Gear/Generators I have the native ones in Gear and the windows ones under Gear/Effects and Gear/ Generators. = windows machines = The emulation uses some parts of wine at runtime. It needs kernel32.dll, e.g. kernel32.dll.so, MFC42.DLL, MSVCRT.DLL. The original windows dll should also work. Then you need to copy the all *.dll libraries from a windows buzz installation to your LD_LIBARY_PATH. We recommend to copy them to buzztard-prefix/lib/win32. Next copy the machines. You can e.g. just copy the whole Gear folder to buzztard-prefix/lib as well. You might need to fix some machine names (e.g. names with '?' in them). = usage = For testing, create a folder 'machines' and put some original buzz machines in there. After building invoke : env LD_LIBRARY_PATH="./bml" ./bml/bmltest_info ./machines/mymachine.dll or alternatively run the testmachine.sh script to probe a whole directory with machines. If you have compiled with logging (--enable-debug), you can set flags in BML_DEBUG env var toget more diagnostics. BML_DEBUG: 1 : only logging from the windows adapter (BuzzMachineLoader.dll) 2 : only logging from bml and dllwrapper (or just set BML_DEBUG=255 to get as much as there is) For even more logging edit dllwraper/wine/win32.c and enable #define DETAILED_OUT = building the BuzzMachineLoader.dll = 1) use MS developer studio 2) CC=/usr/local/bin/i386-mingw32-gcc CXX=/usr/local/bin/i386-mingw32-g++ make ^^^ does not work :/ 3) ./configure --host=i386-mingw32 ... cd src/BuzzMachineLoader Makefile.am: changes make make BuzzMachineLoader.dll // when using fastcall BuzzMachineLoader.cpp:83: undefined reference to `@_Z8DSP_Initi@4' // normal symbol BuzzMachineLoader.cpp:83: undefined reference to `DSP_Init(int)' // name in lib > i386-mingw32-nm dsplib.lib | grep DSP_Init 00000000 T ?DSP_Init@@YIXH@Z 00000000 I __imp_?DSP_Init@@YIXH@Z http://sourceforge.net/project/shownotes.php?release_id=90402 However, the --enable-stdcall-fixup feature (which is on by default) has not yet been extended to fastcall symbols. That is, an undefined symbol @foo@n will *not* automatically be resolved to a defined symbol foo. Maybe a own .def can help: http://www.digitalmars.com/ctg/win32programming.html what about using winegcc - e.g.: winegcc -shared XXX.dll.spec -mnocygwin -o XXX.dll.so abc.o def.o -lole32 -lwinmm -lpthread -luuid = problems = == /dev/zero needs to be executable == make sure your /dev/zero is executable (needed for mmap() ) == 64 bit builds == http://www.x86-64.org/documentation/assembly.html == missing dlls == wget kegel.com/wine/winetricks sh winetricks mfc42 bml-0.6.1/ltmain.sh0000755042355400116100000073341511701127001011045 00000000000000# Generated from ltmain.m4sh. # ltmain.sh (GNU libtool) 2.2.6b # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print informational messages (default) # --version print version information # -h, --help print short or long help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . PROGRAM=ltmain.sh PACKAGE=libtool VERSION="2.2.6b Debian-2.2.6b-2ubuntu1" TIMESTAMP="" package_revision=1.3017 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # NLS nuisances: We save the old values to restore during execute mode. # Only set LANG and LC_ALL to C if already set. # These must not be set unconditionally because not all systems understand # e.g. LANG=C (notably SCO). lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done $lt_unset CDPATH : ${CP="cp -f"} : ${ECHO="echo"} : ${EGREP="/bin/grep -E"} : ${FGREP="/bin/grep -F"} : ${GREP="/bin/grep"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SED="/bin/sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # Generated shell functions inserted here. # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: # In the unlikely event $progname began with a '-', it would play havoc with # func_echo (imagine progname=-n), so we prepend ./ in that case: func_dirname_and_basename "$progpath" progname=$func_basename_result case $progname in -*) progname=./$progname ;; esac # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=: for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname${mode+: }$mode: $*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` done my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "X$my_tmpdir" | $Xsed } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "X$1" | $Xsed \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_version # Echo version message to standard output and exit. func_version () { $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $SED -n '/^# Usage:/,/# -h/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" $ECHO $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help # Echo long help message to standard output and exit. func_help () { $SED -n '/^# Usage:/,/# Report bugs to/ { s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ p }' < "$progpath" exit $? } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { func_error "missing argument for $1" exit_cmd=exit } exit_cmd=: # Check that we have a working $ECHO. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then # Yippee, $ECHO works! : else # Restart under the correct shell, and then maybe $ECHO will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # Parse options once, thoroughly. This comes as soon as possible in # the script to make things like `libtool --version' happen quickly. { # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Parse non-mode specific arguments: while test "$#" -gt 0; do opt="$1" shift case $opt in --config) func_config ;; --debug) preserve_args="$preserve_args $opt" func_echo "enabling shell trace mode" opt_debug='set -x' $opt_debug ;; -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break execute_dlfiles="$execute_dlfiles $1" shift ;; --dry-run | -n) opt_dry_run=: ;; --features) func_features ;; --finish) mode="finish" ;; --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break case $1 in # Valid mode arguments: clean) ;; compile) ;; execute) ;; finish) ;; install) ;; link) ;; relink) ;; uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac mode="$1" shift ;; --preserve-dup-deps) opt_duplicate_deps=: ;; --quiet|--silent) preserve_args="$preserve_args $opt" opt_silent=: ;; --verbose| -v) preserve_args="$preserve_args $opt" opt_silent=false ;; --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break preserve_args="$preserve_args $opt $1" func_enable_tag "$1" # tagname is set here shift ;; # Separate optargs to long options: -dlopen=*|--mode=*|--tag=*) func_opt_split "$opt" set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} shift ;; -\?|-h) func_usage ;; --help) opt_help=: ;; --version) func_version ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) nonopt="$opt" break ;; esac done case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_duplicate_deps ;; esac # Having warned about all mis-specified options, bail out if # anything was wrong. $exit_cmd $EXIT_FAILURE } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } ## ----------- ## ## Main. ## ## ----------- ## $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi test -z "$mode" && func_fatal_error "error: you must specify a MODE." # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$mode' for more information." } # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_ltwrapper_scriptname_result="" if func_ltwrapper_executable_p "$1"; then func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" fi } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case "$@ " in " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T <?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi removelist="$removelist $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist removelist="$removelist $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir command="$command -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then command="$command -o $obj" fi # Suppress compiler output if we already did a PIC compilation. command="$command$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$mode'" ;; esac $ECHO $ECHO "Try \`$progname --help' for more information about other modes." exit $? } # Now that we've collected a possible --mode arg, show help if necessary $opt_help && func_mode_help # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $execute_dlfiles; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_quote_for_eval "$file" args="$args $func_quote_for_eval_result" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" $ECHO "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS $ECHO "X----------------------------------------------------------------------" | $Xsed $ECHO "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done $ECHO $ECHO "If you ever happen to want to link against installed libraries" $ECHO "in a given directory, LIBDIR, you must either use libtool, and" $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" $ECHO "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" $ECHO " during execution" fi if test -n "$runpath_var"; then $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" $ECHO " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $ECHO $ECHO "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" $ECHO "pages." ;; *) $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac $ECHO "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS } test "$mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $ECHO "X$nonopt" | $GREP shtool >/dev/null; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" install_prog="$install_prog$func_quote_for_eval_result" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" install_prog="$install_prog $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for progfile in $progfiles; do func_verbose "extracting global C symbols from \`$progfile'" $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" } done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" fi $ECHO >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; " case $host in *cygwin* | *mingw* | *cegcc* ) $ECHO >> "$output_objdir/$my_dlsyms" "\ /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */" lt_dlsym_const= ;; *osf5*) echo >> "$output_objdir/$my_dlsyms" "\ /* This system does not cope well with relocations in const data */" lt_dlsym_const= ;; *) lt_dlsym_const=const ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ extern $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) symtab_cflags="$symtab_cflags $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper_part1 [arg=no] # # Emit the first part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part1 () { func_emit_wrapper_part1_arg1=no if test -n "$1" ; then func_emit_wrapper_part1_arg1=$1 fi $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then ECHO=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then # Yippee, \$ECHO works! : else # Restart under the correct shell, and then maybe \$ECHO will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $ECHO "\ # Find the directory that this script lives in. thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done " } # end: func_emit_wrapper_part1 # func_emit_wrapper_part2 [arg=no] # # Emit the second part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part2 () { func_emit_wrapper_part2_arg1=no if test -n "$1" ; then func_emit_wrapper_part2_arg1=$1 fi $ECHO "\ # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # end: func_emit_wrapper_part2 # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=no if test -n "$1" ; then func_emit_wrapper_arg1=$1 fi # split this up so that func_emit_cwrapperexe_src # can call each part independently. func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" } # func_to_host_path arg # # Convert paths to host format when used with build tools. # Intended for use with "native" mingw (where libtool itself # is running under the msys shell), or in the following cross- # build environments: # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # where wine is equipped with the `winepath' executable. # In the native mingw case, the (msys) shell automatically # converts paths for any non-msys applications it launches, # but that facility isn't available from inside the cwrapper. # Similar accommodations are necessary for $host mingw and # $build cygwin. Calling this function does no harm for other # $host/$build combinations not listed above. # # ARG is the path (on $build) that should be converted to # the proper representation for $host. The result is stored # in $func_to_host_path_result. func_to_host_path () { func_to_host_path_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' case $build in *mingw* ) # actually, msys # awkward: cmd appends spaces to result lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_path_tmp1=`( cmd //c echo "$1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_path_tmp1=`cygpath -w "$1"` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # Unfortunately, winepath does not exit with a non-zero # error code, so we are forced to check the contents of # stdout. On the other hand, if the command is not # found, the shell will set an exit code of 127 and print # *an error message* to stdout. So we must check for both # error code of zero AND non-empty stdout, which explains # the odd construction: func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` else # Allow warning below. func_to_host_path_result="" fi ;; esac if test -z "$func_to_host_path_result" ; then func_error "Could not determine host path corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_path_result="$1" fi ;; esac fi } # end: func_to_host_path # func_to_host_pathlist arg # # Convert pathlists to host format when used with build tools. # See func_to_host_path(), above. This function supports the # following $build/$host combinations (but does no harm for # combinations not listed here): # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # # Path separators are also converted from $build format to # $host format. If ARG begins or ends with a path separator # character, it is preserved (but converted to $host format) # on output. # # ARG is a pathlist (on $build) that should be converted to # the proper representation on $host. The result is stored # in $func_to_host_pathlist_result. func_to_host_pathlist () { func_to_host_pathlist_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_to_host_pathlist_tmp2="$1" # Once set for this call, this variable should not be # reassigned. It is used in tha fallback case. func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e 's|^:*||' -e 's|:*$||'` case $build in *mingw* ) # Actually, msys. # Awkward: cmd appends spaces to result. lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # unfortunately, winepath doesn't convert pathlists func_to_host_pathlist_result="" func_to_host_pathlist_oldIFS=$IFS IFS=: for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do IFS=$func_to_host_pathlist_oldIFS if test -n "$func_to_host_pathlist_f" ; then func_to_host_path "$func_to_host_pathlist_f" if test -n "$func_to_host_path_result" ; then if test -z "$func_to_host_pathlist_result" ; then func_to_host_pathlist_result="$func_to_host_path_result" else func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" fi fi fi IFS=: done IFS=$func_to_host_pathlist_oldIFS ;; esac if test -z "$func_to_host_pathlist_result" ; then func_error "Could not determine the host path(s) corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This may break if $1 contains DOS-style drive # specifications. The fix is not to complicate the expression # below, but for the user to provide a working wine installation # with winepath so that path translation in the cross-to-mingw # case works properly. lt_replace_pathsep_nix_to_dos="s|:|;|g" func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_replace_pathsep_nix_to_dos"` fi # Now, add the leading and trailing path separators back case "$1" in :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" ;; esac case "$1" in *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" ;; esac ;; esac fi } # end: func_to_host_pathlist # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include # define setmode _setmode #else # include # include # ifdef __CYGWIN__ # include # define HAVE_SETENV # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif # endif #endif #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif #ifdef _MSC_VER # define S_IXUSR _S_IEXEC # define stat _stat # ifndef _INTPTR_T_DEFINED # define intptr_t int # endif #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifdef __CYGWIN__ # define FOPEN_WB "wb" #endif #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #undef LTWRAPPER_DEBUGPRINTF #if defined DEBUGWRAPPER # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args static void ltwrapper_debugprintf (const char *fmt, ...) { va_list args; va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } #else # define LTWRAPPER_DEBUGPRINTF(args) #endif const char *program_name = NULL; void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_fatal (const char *message, ...); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_opt_process_env_set (const char *arg); void lt_opt_process_env_prepend (const char *arg); void lt_opt_process_env_append (const char *arg); int lt_split_name_value (const char *arg, char** name, char** value); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); static const char *script_text_part1 = EOF func_emit_wrapper_part1 yes | $SED -e 's/\([\\"]\)/\\\1/g' \ -e 's/^/ "/' -e 's/$/\\n"/' echo ";" cat <"))); for (i = 0; i < newargc; i++) { LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); } EOF case $host_os in mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); return 127; } return rval; EOF ;; *) cat <<"EOF" execv (lt_argv_zero, newargz); return rval; /* =127, but avoids unused variable warning */ EOF ;; esac cat <<"EOF" } void * xmalloc (size_t num) { void *p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char) name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable (const char *path) { struct stat st; LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", tmp_pathspec)); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { char *errstr = strerror (errno); lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal ("Could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } void lt_setenv (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", (name ? name : ""), (value ? value : ""))); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } int lt_split_name_value (const char *arg, char** name, char** value) { const char *p; int len; if (!arg || !*arg) return 1; p = strchr (arg, (int)'='); if (!p) return 1; *value = xstrdup (++p); len = strlen (arg) - strlen (*value); *name = XMALLOC (char, len); strncpy (*name, arg, len-1); (*name)[len - 1] = '\0'; return 0; } void lt_opt_process_env_set (const char *arg) { char *name = NULL; char *value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); } lt_setenv (name, value); XFREE (name); XFREE (value); } void lt_opt_process_env_prepend (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); } new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_opt_process_env_append (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); } new_value = lt_extend_str (getenv (name), value, 1); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_update_exe_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF } # end: func_emit_cwrapperexe_src # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) deplibs="$deplibs $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) weak_libs="$weak_libs $arg" prev= continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname '-L' '' "$arg" dir=$func_stripname_result if test -z "$dir"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" linker_flags="$linker_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -F/path gives path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" compiler_flags="$compiler_flags $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_duplicate_deps ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= case $lib in *.la) func_source "$lib" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` case " $weak_libs " in *" $deplib_base "*) ;; *) deplibs="$deplibs $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" dir=$func_stripname_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $ECHO $ECHO "*** Warning: Trying to link with static lib archive $deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because the file extensions .$libext of this argument makes me believe" $ECHO "*** that it is just a static archive that I should not use here." else $ECHO $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) temp_rpath="$temp_rpath$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded notinst_deplibs="$notinst_deplibs $lib" need_relink=no ;; *) if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then $ECHO if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $ECHO $ECHO "*** And there doesn't seem to be a static archive available" $ECHO "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $ECHO $ECHO "*** Warning: This system can not link to static lib archive $lib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $ECHO "*** But as you try to build a module library, libtool will still create " $ECHO "*** a static module, that should work as long as the dlopening application" $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_dirname "$deplib" "" "." dir="$func_dirname_result" # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else $ECHO $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type \`$version_type'" ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" libobjs="$libobjs $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` done fi if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | $GREP . >/dev/null; then $ECHO if test "X$deplibs_check_method" = "Xnone"; then $ECHO "*** Warning: inter-library dependencies are not supported in this platform." else $ECHO "*** Warning: inter-library dependencies are not known to be supported." fi $ECHO "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $ECHO $ECHO "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" $ECHO "*** a static module, that should work as long as the dlopening" $ECHO "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $ECHO "*** The inter-library dependencies that have been dropped here will be" $ECHO "*** automatically added whenever a program is linked with this library" $ECHO "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $ECHO $ECHO "*** Since this library must not contain undefined symbols," $ECHO "*** because either the platform does not support them or" $ECHO "*** it was explicitly requested with -no-undefined," $ECHO "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" delfiles="$delfiles $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" func_len " $cmd" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then func_show_eval "$cmd" 'exit $?' skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$ECHO "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" $ECHO 'INPUT (' > $output for obj in $save_libobjs do $ECHO "$obj" >> $output done $ECHO ')' >> $output delfiles="$delfiles $output" elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do $ECHO "$obj" >> $output done delfiles="$delfiles $output" output=$firstobj\"$file_list_spec$output\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=$obj func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi delfiles="$delfiles $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *cegcc) # Disable wrappers for cegcc, we are cross compiling anyway. wrappers_required=no ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $ECHO for shipping. if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then oldobjs="$oldobjs $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles oldobjs="$oldobjs $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else $ECHO "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlfiles="$newdlfiles $libdir/$name" ;; *) newdlfiles="$newdlfiles $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlprefiles="$newdlprefiles $libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$mode" = link || test "$mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) RM="$RM $arg"; rmforce=yes ;; -*) RM="$RM $arg" ;; *) files="$files $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= origobjdir="$objdir" for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then objdir="$origobjdir" else objdir="$dir/$origobjdir" fi func_basename "$file" name="$func_basename_result" test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result rmfiles="$rmfiles $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$mode" = uninstall || test "$mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 bml-0.6.1/Makefile.in0000644042355400116100000006320711701127005011266 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(srcdir)/libbml.pc.in $(top_srcdir)/configure \ $(top_srcdir)/tests/bt-cfg.sh.in AUTHORS COPYING ChangeLog \ INSTALL NEWS TODO compile config.guess config.sub depcomp \ install-sh ltmain.sh missing mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = libbml.pc tests/bt-cfg.sh CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(pkgconfigdir)" DATA = $(pkgconfig_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DIST_SUBDIRS = dllwrapper src DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d "$(distdir)" \ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr "$(distdir)"; }; } am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARCH_CCASFLAGS = @ARCH_CCASFLAGS@ ARCH_CFLAGS = @ARCH_CFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BML_CFLAGS = @BML_CFLAGS@ BML_CXXFLAGS = @BML_CXXFLAGS@ BML_LIBS = @BML_LIBS@ BML_MAJOR_VERSION = @BML_MAJOR_VERSION@ BML_MICRO_VERSION = @BML_MICRO_VERSION@ BML_MINOR_VERSION = @BML_MINOR_VERSION@ BML_VERSION = @BML_VERSION@ BML_VERSION_INFO = @BML_VERSION_INFO@ BML_VERSION_NUMBER = @BML_VERSION_NUMBER@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ locv_path = @locv_path@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @USE_X86_FALSE@DLLWRAPPER = @USE_X86_TRUE@DLLWRAPPER = dllwrapper SUBDIRS = ${DLLWRAPPER} src ACLOCAL_AMFLAGS = -I m4 pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libbml.pc EXTRA_DIST = \ libbml.pc.in # CLEANFILES is for files generated by make CLEANFILES = \ $(pkgconfig_DATA) all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 libbml.pc: $(top_builddir)/config.status $(srcdir)/libbml.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ tests/bt-cfg.sh: $(top_builddir)/config.status $(top_srcdir)/tests/bt-cfg.sh.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ done uninstall-pkgconfigDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @case `sed 15q $(srcdir)/NEWS` in \ *"$(VERSION)"*) : ;; \ *) \ echo "NEWS not updated; not releasing" 1>&2; \ exit 1;; \ esac $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(pkgconfigdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-pkgconfigDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-pkgconfigDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ ctags-recursive install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ distcheck distclean distclean-generic distclean-hdr \ distclean-libtool distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-pkgconfigDATA install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-pkgconfigDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: bml-0.6.1/configure.ac0000644042355400116100000001217711701126763011521 00000000000000dnl $Id: configure.ac 3775 2011-12-19 11:48:18Z ensonic $ dnl Initialise the autoconf/automake tool AC_PREREQ(2.61) AC_INIT([bml],[0.6.1],[buzztard-devel@lists.sourceforge.net]) AM_INIT_AUTOMAKE([-Wall -Werror check-news std-options]) AC_CONFIG_SRCDIR([ChangeLog]) AC_CONFIG_HEADERS(config.h) AC_CONFIG_MACRO_DIR(m4) AC_CANONICAL_HOST([]) # Support silent build rules, requires at least automake-1.11. Disable # by either passing --disable-silent-rules to configure or passing V=1 # to make m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) BML_MAJOR_VERSION=0 BML_MINOR_VERSION=6 BML_MICRO_VERSION=0 BML_VERSION=$BML_MAJOR_VERSION.$BML_MINOR_VERSION.$BML_MICRO_VERSION BML_VERSION_INFO=`expr $BML_MAJOR_VERSION + $BML_MINOR_VERSION`:$BML_MICRO_VERSION:$BML_MINOR_VERSION BML_VERSION_NUMBER=`expr $BML_MAJOR_VERSION \* 10000 + $BML_MINOR_VERSION \* 100 + $BML_MICRO_VERSION` AC_SUBST(BML_MAJOR_VERSION) AC_SUBST(BML_MINOR_VERSION) AC_SUBST(BML_MICRO_VERSION) AC_SUBST(BML_VERSION) AC_SUBST(BML_VERSION_INFO) AC_SUBST(BML_VERSION_NUMBER) AC_DEFINE_UNQUOTED(PACKAGE_VERSION_NUMBER, ${BML_VERSION_NUMBER}, [version as a number]) dnl Checks for programs. AC_PROG_CXX AC_PROG_CC AC_PROG_CPP AC_PROG_INSTALL AC_PROG_LN_S AC_ISC_POSIX AC_PROG_LIBTOOL AM_PROG_AS AM_PROG_CC_C_O dnl check target cpu architecture ARCH_CFLAGS="" ARCH_CCASFLAGS="" case "x${host_cpu}" in xi?86 | k?) HAVE_X86=yes ;; xx86_64|xamd64) HAVE_X86=no #ARCH_CFLAGS="-m32" #ARCH_CCASFLAGS="-m32" ;; *) HAVE_X86=no ;; esac if test x$HAVE_X86 = xyes; then AC_DEFINE(HAVE_X86, 1, [Defined if host is x86]) fi AM_CONDITIONAL(USE_X86, test x$HAVE_X86 = xyes) dnl enable runtime debugging code AC_MSG_CHECKING(whether to enable runtime debugging code) AC_ARG_ENABLE( debug, AS_HELP_STRING([--enable-debug],[enable runtime debugging code (default=no)]), , [enable_debug="no"]) AC_MSG_RESULT($enable_debug) if test "$enable_debug" = "yes"; then AC_DEFINE(LOG, [1], [enable runtime debugging code]) DEBUG_CFLAGS="-O0 -Wall -Werror -g" else DEBUG_CFLAGS="" fi dnl enable coverage analysis AC_MSG_CHECKING(whether to enable coverage analysis) AC_ARG_ENABLE( coverage, AS_HELP_STRING([--enable-coverage],[enable coverage analysis (default=no)]), , [enable_coverage="no"]) AC_MSG_RESULT($enable_coverage) if test "$enable_coverage" = "yes"; then COVERAGE_CFLAGS="-O0 -g -fprofile-arcs -ftest-coverage" COVERAGE_LIBS="-lgcov" AC_PATH_PROG(locv_path, [lcov], [no]) if test "x$lcov_path" != "xno" ; then LCOV_VERSION=`lcov --version|head -n 1| 's/^.* version //'` LCOV_MAJOR=`echo $LCOV_VERSION | cut -d. -f1 | sed s/[a-zA-Z\-].*//g` LCOV_MINOR=`echo $LCOV_VERSION | cut -d. -f2 | sed s/[a-zA-Z\-].*//g` if [[ "$LCOV_MAJOR" -lt "1" ]]; then AC_MSG_WARN([lcov >= 1.6 is required, you have $LCOV_VERSION]) lcov_path="no" elif [[ "$LCOV_MAJOR" -eq "1" ]] && \ [[ "$LCOV_MINOR" -lt "6" ]]; then AC_MSG_WARN([lcov >= 1.6 is required, you have $LCOV_VERSION]) lcov_path="no" fi fi else COVERAGE_CFLAGS="" COVERAGE_LIBS="" fi AM_CONDITIONAL(USE_LCOV, test ! x$lcov_path = xyes) dnl chek for headers AC_HEADER_STDC([]) AC_CHECK_HEADERS( \ alloca.h assert.h byteswap.h dirent.h execinfo.h kstat.h libgen.h malloc.h \ netdb.h ucontext.h \ sys/mman.h sys/mixer.h sys/times.h sys/ioctl.h sys/param.h \ ) AC_CHECK_DECL(sysi86,[ AC_DEFINE(HAVE_SYSI86,1,[Define this if the 'sysi86' function is declared in sys/sysi86.h]) ],,[ #include ]) dnl check for libraries AC_CHECK_LIBM AC_SUBST(LIBM) ACX_PTHREAD AC_CHECK_LIB([rt], [main]) AC_CHECK_FUNCS([vsscanf clock_gettime]) AC_CHECK_FUNC(dlopen, [AC_DEFINE(HAVE_LIBDL,1,[We can use libdl functions])], [AC_CHECK_LIB(dl, dlopen, [ DL_LIBS=-ldl AC_DEFINE(HAVE_LIBDL,1,[We can use libdl functions]) ], []) ]) # Compilation and Linker flags BML_CFLAGS="$DEBUG_CFLAGS $COVERAGE_CFLAGS" # the -Wno-non-virtual-dtor is needed to suppress : virtual methods with no virtual destructor BML_CXXFLAGS="$DEBUG_CFLAGS $COVERAGE_CFLAGS -Wno-non-virtual-dtor" BML_LIBS="$COVERAGE_LIBS $DL_LIBS" AC_SUBST(BML_CFLAGS) AC_SUBST(BML_CXXFLAGS) AC_SUBST(BML_LIBS) AC_SUBST(ARCH_CFLAGS) AC_SUBST(ARCH_CCASFLAGS) AC_CONFIG_FILES(Makefile \ libbml.pc \ src/Makefile \ src/BuzzMachineLoader/Makefile \ dllwrapper/Makefile \ dllwrapper/wine/Makefile \ tests/bt-cfg.sh \ ) AC_OUTPUT echo " Configuration Version : ${VERSION} Source code location : ${srcdir} Prefix : ${prefix} Compiler : ${CC} x86 win32 buzzmachines : $HAVE_X86 Debug : ${enable_debug} Coverage profiling : ${enable_coverage} " if test ! `echo "$PKG_CONFIG_PATH:/usr" | tr \: \\n | grep $prefix` ; then echo " You are installing buzztard libraries into a location that is not yet known to system. In order for other buzztard modules to find them and the application to work with all features please register the location (see README for details): export LD_LIBRARY_PATH=$prefix/lib:\$LD_LIBRARY_PATH export PKG_CONFIG_PATH="\$PKG_CONFIG_PATH:$prefix/lib/pkgconfig" " fi bml-0.6.1/config.h.in0000644042355400116100000000716011701130243011236 00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* Define to 1 if you have the header file. */ #undef HAVE_ALLOCA_H /* Define to 1 if you have the header file. */ #undef HAVE_ASSERT_H /* Define to 1 if you have the header file. */ #undef HAVE_BYTESWAP_H /* Define to 1 if you have the `clock_gettime' function. */ #undef HAVE_CLOCK_GETTIME /* Define to 1 if you have the header file. */ #undef HAVE_DIRENT_H /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_EXECINFO_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_KSTAT_H /* We can use libdl functions */ #undef HAVE_LIBDL /* Define to 1 if you have the header file. */ #undef HAVE_LIBGEN_H /* Define to 1 if you have the `rt' library (-lrt). */ #undef HAVE_LIBRT /* Define to 1 if you have the header file. */ #undef HAVE_MALLOC_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_NETDB_H /* Define if you have POSIX threads libraries and header files. */ #undef HAVE_PTHREAD /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define this if the 'sysi86' function is declared in sys/sysi86.h */ #undef HAVE_SYSI86 /* Define to 1 if you have the header file. */ #undef HAVE_SYS_IOCTL_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_MIXER_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_MMAN_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PARAM_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIMES_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UCONTEXT_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the `vsscanf' function. */ #undef HAVE_VSSCANF /* Defined if host is x86 */ #undef HAVE_X86 /* enable runtime debugging code */ #undef LOG /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Define to 1 if your C compiler doesn't accept -c and -o together. */ #undef NO_MINUS_C_MINUS_O /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* version as a number */ #undef PACKAGE_VERSION_NUMBER /* Define to necessary symbol if this constant uses a non-standard name on your system. */ #undef PTHREAD_CREATE_JOINABLE /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION bml-0.6.1/tests/0000755042355400116100000000000011701130243010431 500000000000000bml-0.6.1/tests/bt-cfg.sh.in0000644042355400116100000000013111576362477012501 00000000000000#!/bin/sh # $Id: bt-cfg.sh.in 1740 2008-04-16 06:19:17Z ensonic $ LIBDIR="@prefix@/lib" bml-0.6.1/mkinstalldirs0000754042355400116100000000370411576362500012035 00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain errstatus=0 dirmode="" usage="\ Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." # process command line arguments while test $# -gt 0 ; do case $1 in -h | --help | --h*) # -h for help echo "$usage" 1>&2 exit 0 ;; -m) # -m PERM arg shift test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } dirmode=$1 shift ;; --) # stop option processing shift break ;; -*) # unknown option echo "$usage" 1>&2 exit 1 ;; *) # first non-opt arg break ;; esac done for file do if test -d "$file"; then shift else break fi done case $# in 0) exit 0 ;; esac case $dirmode in '') if mkdir -p -- . 2>/dev/null; then echo "mkdir -p -- $*" exec mkdir -p -- "$@" fi ;; *) if mkdir -m "$dirmode" -p -- . 2>/dev/null; then echo "mkdir -m $dirmode -p -- $*" exec mkdir -m "$dirmode" -p -- "$@" fi ;; esac for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case $pathcomp in -*) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr else if test ! -z "$dirmode"; then echo "chmod $dirmode $pathcomp" lasterr="" chmod "$dirmode" "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then errstatus=$lasterr fi fi fi fi pathcomp="$pathcomp/" done done exit $errstatus # Local Variables: # mode: shell-script # sh-indentation: 2 # End: # mkinstalldirs ends here bml-0.6.1/ChangeLog0000644042355400116100000017123411675570274011017 000000000000002011-12-25 Stefan Sauer * NEWS: Releasing. 2011-12-19 Stefan Sauer * configure.ac: Fix typo. 2011-12-02 Stefan Sauer * NEWS: * TODO: Planning and release prep. 2011-12-02 Stefan Sauer * src/bml.c: * src/bml.h: * src/bmltest_info.c: * src/bmltest_process.c: Remove unused parameter. 2011-12-02 Stefan Sauer * TODO: Add idea + links for dgb script. 2011-11-27 Stefan Sauer * dllwrapper/wine/ext.c: * dllwrapper/wine/pe_image.c: * dllwrapper/wine/registry.c: * dllwrapper/wine/win32.c: Fix set-but-unused warnings. 2011-10-07 Stefan Sauer * AUTHORS: Change my name. 2011-07-09 Stefan Sauer * src/bmltest_process.h: Check the fwrite return value to handle gcc warning. 2011-05-12 Stefan Kost * dllwrapper/wine/ext.c: * dllwrapper/wine/module.c: * dllwrapper/wine/pe_resource.c: * dllwrapper/wine/registry.c: * dllwrapper/wine/win32.c: Remove some left-over debug logging. Fix some compiler warnings. 2011-05-10 Stefan Kost * src/Makefile.am: Also link tools against LIBM. 2011-03-25 Stefan Kost * src/bml.c: Investigate the crashers with the locking and Check_FS_Segment() deactivated. The locking seems to be not needed, but the Check_FS_Segment(). 2011-02-22 Stefan Kost * src/bml.c: Code cleanup and some interesting discovery about performance. Yet, conditionally off. * tests/testmachine.sh: Use proper signal name. 2011-01-30 Stefan Kost * dllwrapper/wine/win32.c: Emulate more functions. 2011-01-29 Stefan Kost * dllwrapper/wine/win32.c: Add more API. Emulate GetStartupInfoA more. 2011-01-29 Stefan Kost * src/bmltest_info.h: * src/bmltest_process.h: Fix double free. 2011-01-11 Stefan Kost * TODO: Update TODO list and results from latest bml for another setup. 2011-01-10 Stefan Kost * src/bmltest_info.h: Filter newlines in command output. * tests/testmachine.sh: Improve report: lowercase dlls (takes less space), print extra commands. 2011-01-10 Stefan Kost * TODO: * dllwrapper/wine/win32.c: Improve faking our indentity. Fixes cheapo spread :). 2011-01-09 Stefan Kost * TODO: * dllwrapper/wine/win32.c: Also register MSVCRTD (debug variant). Fixes one more machine. 2011-01-09 Stefan Kost * tests/testmachine.sh: Fix link for sortable.js. Add more cmdline tricks for log analysis. 2011-01-09 Stefan Kost * TODO: * src/BuzzMachineLoader.dll: * src/BuzzMachineLoader/BuzzMachineCallbacks.cpp: * src/BuzzMachineLoader/BuzzMachineCallbacksPre12.cpp: * src/BuzzMachineLoader/BuzzMachineLoader.ncb: * src/BuzzMachineLoader/BuzzMachineLoader.suo: Callbacks::GetWave() should not return NULL, but a empty slot instead. Fixes a few more machines (e.g. whitenoise looper 2). 2011-01-09 Stefan Kost * tests/testmachine.sh: Place all generates files in subdir to easy keeping snapshots. 2010-11-25 Stefan Kost * src/bmltest_info.c: Add a comment about an issue on x86 when not having any win32 dlls. 2010-10-06 Stefan Kost * dllwrapper/wine/ldt_keeper.c: Init a var. 2010-09-24 Stefan Kost * src/BuzzMachineLoader/BuzzMachineLoader.cpp: Use {} for if statements then have a DBG output to fix release versions with debug turned off. 2010-09-21 Stefan Kost * Makefile.am: Remove some more shave leftovers. 2010-05-17 Stefan Kost * TODO: update some findings. * dllwrapper/wine/module.c: Put out libdir earlier in the internal search path. Also don't build list of failed dirs, as this is never used anyway. 2010-05-13 Stefan Kost * autogen.sh: Also kill shave from default args. * configure.ac: * src/Makefile.am: Make libbml versioned. * dllwrapper/wine/stubs.s: * src/BuzzMachineLoader/BuzzMachineLoader.cpp: Add comments. 2010-04-16 Stefan Kost * configure.ac: * shave.in (deleted): * shave-libtool.in (deleted): Get rid of shave and switch to automake silent rules if available. 2010-04-13 Stefan Kost patch by: Sebastian Dröge * src/BuzzMachineLoader/Makefile.am: * src/Makefile.am: * src/bml.c: Use pkgdir for dlopened libraries. 2010-03-30 Stefan Kost * configure.ac: Improve checking of non-std install prefix. 2010-03-29 Stefan Kost * dllwrapper/wine/ldt_keeper.c: Remove wrong copyright header. Upstream versions in xine/mplayer repositories don't have this and the legal notice from xine (included in README one level up) also states that this code is LGPL. 2010-02-03 Stefan Kost * TODO: Update stats. * dllwrapper/wine/Makefile.am: Remove obsolete comment. * dllwrapper/wine/pe_image.c: * dllwrapper/wine/stubs.s: Formatting. * tests/testmachine.sh: Fix example. 2010-01-22 Stefan Kost * dllwrapper/wine/debugtools.h: * src/bml.c: Fix the build for --disable-debug. 2010-01-13 Stefan Kost * README: * dllwrapper/wine/debugtools.h: * dllwrapper/wine/module.c: * dllwrapper/wine/registry.c: * dllwrapper/wine/win32.c: * src/bml.c: * tests/testmachine.sh: Turn BLM_DEBUG envvar into flag based for more finegrained log control. Have also filename:lineno on bml debug logs. 2010-01-12 Stefan Kost * dllwrapper/wine/debugtools.h: * dllwrapper/wine/ldt_keeper.c: * dllwrapper/wine/module.c: * dllwrapper/wine/pe_image.c: * dllwrapper/wine/registry.c: * src/bml.c: Add a custom logger, that also prints timestamps. Small cleanups and fixmes. 2009-11-01 Stefan Kost * src/bmltest_info.c: * src/bmltest_info.h: * tests/testmachine.sh: Print creating and init time. Add to testmachine script. 2009-11-01 Stefan Kost * TODO: * configure.ac: * dllwrapper/wine/elfdll.c: Add configure checks for thing uses conditionally in dllwrapper. 2009-10-28 Stefan Kost * src/bmltest_process.c: * src/bmltest_process.h: * tests/testmachine.sh: Add denormal detection to tests. 2009-09-06 Stefan Kost * configure.ac: Back to development. === release 0.5.0 === 2009-09-05 Stefan Kost * NEWS: Update NEWS. 2009-06-26 Krzysztof Foltman * dllwrapper/wine/win32.c: Fix gcc 4.4 compile error. 2009-06-04 Stefan Kost * src/BuzzMachineLoader.dll: Rebuild for API changes. * src/bmltest_info.h: Fix bm->bmh. 2009-06-04 Stefan Kost * src/BuzzMachineLoader/BuzzMachineLoader.cpp: * src/BuzzMachineLoader/BuzzMachineLoader.h: * src/bml.c: * src/bml.h: * src/bmltest_info.h: * src/bmltest_process.h: Split the api further into library and instance api. 2009-06-03 Stefan Kost * src/BuzzMachineLoader/BuzzMachineLoader.cpp: * src/BuzzMachineLoader/BuzzMachineLoader.h: * src/bml.c: * src/bml.h: * src/bmltest_info.h: * src/bmltest_process.h: Break the API. We need open/close calls for the plugin, as well as new/free calls for the instances. 2009-05-10 Stefan Kost * autogen.sh: aclocal gather all the necessary macros. And libtoolize installs m4 files. They must be present before running aclocal. Without this patch, autoconf complains about unknown libtool macros (using 2.2.6a-4 on Debian). 2009-05-07 Stefan Kost * TODO: Idea. * src/Makefile.am: * src/bmltest_info.c: * src/bmltest_info.h: * src/bmltest_process.c: * src/bmltest_process.h: * src/bmltest_info.h (added): * src/bmltest_process.h (added): Refactor to avoid code duplication for native/wrapped. Reset triggers after 1st iteration. Trigger more param types. Support m2s machines. * tests/testmachine.sh: If result is stereo then convert it as stereo. 2009-05-04 Stefan Kost * src/BuzzMachineLoader/BuzzMachineLoader.cpp: More explanation in TODO comment 2009-04-30 Stefan Kost * NEWS: Prepare for pre-releasing. * src/bmltest_info.c: Fix wrong warning. 2009-04-27 Stefan Kost * README: * README.libfst: * README.local: We don't have the fst wrapper in anymore. 2009-04-23 Stefan Kost * TODO: More todos * dllwrapper/wine/ldt_keeper.c: Clang checker fix. * shave-libtool.in: Fix the build. * src/BuzzMachineLoader/BuzzMachineLoader.cpp: * src/BuzzMachineLoader/MachineInterface.h: Comments. 2009-03-13 Stefan Kost * dllwrapper/wine/win32.c: Zero memory for new. Makes valgrind much happier. * src/BuzzMachineLoader/BuzzMachineLoader.cpp: Free more, leak less. 2009-02-25 Stefan Kost * src/BuzzMachineLoader/BuzzMachineLoader.h: Indent. 2009-02-25 Stefan Kost * Makefile.am: * autogen.sh: * m4/shave.m4: * shave-libtool.in: * shave.in: Update shave. 2009-02-20 Stefan Kost * configure.ac: * m4/shave.m4: * shave-libtool.in: * shave.in: * m4/shave.m4 (added): * shave.in (added): * shave-libtool.in (added): Have a less verbose build. 2009-02-18 Stefan Kost * README: * configure.ac: Give a hint if user installs into a non know location. 2009-01-30 Stefan Kost * src/bmltest_process.c: * tests/testmachine.sh: Fix the audio amplitude ranges. 2009-01-29 Stefan Kost * TODO: Add results. * src/bmltest_process.c: Set a min tracks if needed. Fix setting voice params. Don't call work with 0 length. * tests/testmachine.sh: Small parsing and output fix. 2009-01-27 Stefan Kost * TODO: * src/bmltest_info.c: * src/bmltest_process.c: * tests/testmachine.sh: Extend the machine test script to actually generate or process audio. 2009-01-13 Stefan Kost * README: * TODO: More tips. * dllwrapper/wine/module.c: Do incasesensitive search to avoid reloading libraries. Add more details to log. * dllwrapper/wine/win32.c: Add missing \n. Make returned id's increment. 2008-12-31 Stefan Kost * src/Makefile.am: Seems its better to use PTHREAD_CFLAGS for all targets. 2008-12-30 Stefan Kost * m4/acx_pthread.m4: Add PTHREAD_* variabled to be shown at the end of ./configure --help. Merge change from avahi to check for shared lib behaviour (do we need -lpthread). 2008-12-30 Stefan Kost * Makefile.am: * autogen.sh: * configure.ac: * m4/acx_pthread.m4: * src/BuzzMachineLoader/Makefile.am: * src/Makefile.am: * m4 (added): * m4/acx_pthread.m4 (added): Detect pthreads. 2008-12-27 Stefan Kost * configure.ac: Use more automake features. * src/Makefile.am: No need to override build order. 2008-12-26 Stefan Kost * configure.ac: Run 'autoupdate' on configure.ac. 2008-12-13 Stefan Kost * dllwrapper/wine/module.c: * dllwrapper/wine/resource.c: Comment out more traceing. * libbml.pc.in: Don't add lib specific include dir. 2008-12-04 Stefan Kost * Makefile.am: * configure.ac: * src/Makefile.am: Only build & link dllwrapper on x86. * src/BuzzMachineLoader/dsplib.h: __fastcall is x86 only. * src/bmltest_info.c: whitespace. 2008-12-02 Stefan Kost * dllwrapper/wine/Makefile.am: * src/Makefile.am: Also remove comments now that we changed it. 2008-12-02 Stefan Kost * README: * dllwrapper/wine/Makefile.am: * dllwrapper/wine/module.c: * src/Makefile.am: Have windows dlls in $prefix/lib/win32 instead of $prefix/lib. 2008-12-01 Stefan Kost * configure.ac: * src/BuzzMachineLoader/Makefile.am: * src/Makefile.am: Check for libm and libdl. The libdl part should fix #2367633. 2008-12-01 Stefan Kost * configure.ac: * src/Makefile.am: Only install dll on x86. 2008-12-01 Stefan Kost * Makefile.am: * configure.ac: * src/BuzzMachineLoader/Makefile.am: * src/Makefile.am: * + dllwrapper (added): * dllwrapper1 (deleted): * dllwrapper1/libwin32.h (deleted): * dllwrapper1/wine (deleted): * dllwrapper1/wine/winuser.h (deleted): * dllwrapper1/wine/poppack.h (deleted): * dllwrapper1/wine/afl.c (deleted): * dllwrapper1/wine/win32.c (deleted): * dllwrapper1/wine/ntdef.h (deleted): * dllwrapper1/wine/win32.h (deleted): * dllwrapper1/wine/registry.c (deleted): * dllwrapper1/wine/loader.h (deleted): * dllwrapper1/wine/debugtools.h (deleted): * dllwrapper1/wine/winerror.h (deleted): * dllwrapper1/wine/registry.h (deleted): * dllwrapper1/wine/ldt_keeper.c (deleted): * dllwrapper1/wine/stubs.s (deleted): * dllwrapper1/wine/msacmdrv.h (deleted): * dllwrapper1/wine/windef.h (deleted): * dllwrapper1/wine/heap.h (deleted): * dllwrapper1/wine/ldt_keeper.h (deleted): * dllwrapper1/wine/resource.c (deleted): * dllwrapper1/wine/vfl.c (deleted): * dllwrapper1/wine/ldt.h (deleted): * dllwrapper1/wine/wineacm.h (deleted): * dllwrapper1/wine/basetsd.h (deleted): * dllwrapper1/wine/driver.c (deleted): * dllwrapper1/wine/.cvsignore (deleted): * dllwrapper1/wine/resource.h (deleted): * dllwrapper1/wine/winestring.h (deleted): * dllwrapper1/wine/windows.h (deleted): * dllwrapper1/wine/driver.h (deleted): * dllwrapper1/wine/ext.c (deleted): * dllwrapper1/wine/winreg.h (deleted): * dllwrapper1/wine/wrapper.S (deleted): * dllwrapper1/wine/elfdll.c (deleted): * dllwrapper1/wine/winnt.h (deleted): * dllwrapper1/wine/msacm.h (deleted): * dllwrapper1/wine/ext.h (deleted): * dllwrapper1/wine/pe_image.c (deleted): * dllwrapper1/wine/elfdll.h (deleted): * dllwrapper1/wine/vfw.h (deleted): * dllwrapper1/wine/pe_resource.c (deleted): * dllwrapper1/wine/pe_image.h (deleted): * dllwrapper1/wine/mmreg.h (deleted): * dllwrapper1/wine/pshpack1.h (deleted): * dllwrapper1/wine/pshpack2.h (deleted): * dllwrapper1/wine/pshpack4.h (deleted): * dllwrapper1/wine/com.h (deleted): * dllwrapper1/wine/module.c (deleted): * dllwrapper1/wine/wrapper.h (deleted): * dllwrapper1/wine/pshpack8.h (deleted): * dllwrapper1/wine/Makefile.am (deleted): * dllwrapper1/wine/module.h (deleted): * dllwrapper1/wine/stubs64.s (deleted): * dllwrapper1/wine/avifmt.h (deleted): * dllwrapper1/wine/winbase.h (deleted): * dllwrapper1/Makefile.am (deleted): * dllwrapper1/.cvsignore (deleted): * dllwrapper1/README (deleted): Rename dllwrapper1 to dllwrapper. 2008-12-01 Stefan Kost * Makefile.am: * configure.ac: * src/Makefile.am: * src/bml.c: * dllwrapper2 (deleted): * dllwrapper2/pthreademu.c (deleted): * dllwrapper2/Makefile.in (deleted): * dllwrapper2/interlocked.c (deleted): * dllwrapper2/pthreademu.h (deleted): * dllwrapper2/lib.c (deleted): * dllwrapper2/lib.h (deleted): * dllwrapper2/server.h (deleted): * dllwrapper2/thread.h (deleted): * dllwrapper2/gettid.c (deleted): * dllwrapper2/libwinelib.c (deleted): * dllwrapper2/libwinelib.h (deleted): * dllwrapper2/windef16.h (deleted): * dllwrapper2/port.h (deleted): * dllwrapper2/libbml.spec.c (deleted): * dllwrapper2/server_protocol.h (deleted): Remove dllwrapper2 - not used anymore. 2008-11-27 Stefan Kost * TODO: Add name for objdump under ubuntu. * dllwrapper1/README: * dllwrapper1/Makefile.am: Add README that explains where this code originates from and clarifies the license (LGPL). 2008-11-26 Stefan Kost * configure.ac: Back to development. === release 0.4.0 === 2008-11-26 Stefan Kost * NEWS: Prepare release. 2008-11-24 Stefan Kost * TODO: Too quick. Update again. 2008-11-24 Stefan Kost * TODO: Update. 2008-11-21 Stefan Kost * TODO: * tests/testmachine.sh: More ideas and handle extensions. 2008-11-20 Stefan Kost * TODO: Noticed that all auxbus machines fail. Also updated list off missing dll entries. * dllwrapper1/wine/registry.c: * dllwrapper1/wine/win32.c: Fixing compiler warnings. Notes about how to get from a dll ordinal to a function name. * src/BuzzMachineLoader/BuzzMachineCallbacks.cpp: * src/BuzzMachineLoader/BuzzMachineLoader.cpp: * src/BuzzMachineLoader/CMachine.h: Try to implement one more callback api. * src/bml.c: * src/bmltest_process.c: Compiler warnings. * tests/testmachine.sh: Log used dll's 2008-11-19 Stefan Kost * TODO: Update info of failing machines. * dllwrapper1/wine/win32.c: Replace some fixed values by defines and adjust ranges. * src/BuzzMachineLoader.dll: Recompiled binary. * src/bmltest_info.c: * src/bmltest_process.c: * tests/testmachine.sh: Switch to unbuffered output for better testability. Reactivate logging in testmachine script. 2008-11-17 Stefan Kost * dllwrapper1/wine/win32.c: Implement _control87. Seems to fix dsplib based machines. 2008-11-16 Stefan Kost * src/BuzzMachineLoader/BuzzMachineCallbacks.h: * src/BuzzMachineLoader/BuzzMachineCallbacksPre12.h: * src/BuzzMachineLoader/BuzzMachineLoader.cpp: Call machine destructor and fix freeing mdkimpl twice. 2008-11-11 Stefan Kost * src/BuzzMachineLoader.dll: New win32 binary. Better mdk support. 2008-11-11 Stefan Kost * src/BuzzMachineLoader/BuzzMachineLoader.cpp: * src/BuzzMachineLoader/mdkimp.cpp: Look at CMachineInterfaceEx * before checking mdkimpl. 2008-11-10 Stefan Kost * src/BuzzMachineLoader/BuzzMDKHelper.cpp: * src/BuzzMachineLoader/BuzzMDKHelper.h: * src/BuzzMachineLoader/BuzzMachineCallbacks.cpp: * src/BuzzMachineLoader/BuzzMachineCallbacksPre12.cpp: * src/BuzzMachineLoader/BuzzMachineLoader.cpp: * src/BuzzMachineLoader/BuzzMachineLoader.h: * src/BuzzMachineLoader/mdkimp.h: Revert reordering. Add some more comments. Need to recomplie a win32 binary. 2008-11-10 Stefan Kost * src/BuzzMachineLoader/BuzzMachineLoader.cpp: Reorder function and modify initialisation sequence. 2008-11-04 Stefan Kost * dllwrapper1/wine/Makefile.am: Try using --ffast-math (recommended in the source). * dllwrapper1/wine/win32.c: Make more stuff static and disable some unused things. 2008-11-04 Stefan Kost * dllwrapper1/wine/module.c: * dllwrapper1/wine/pe_image.c: Indeting and more logging. 2008-10-17 Stefan Kost * TODO: * dllwrapper1/wine/win32.c: Wrap one more win api to get "cheapo spread" working. 2008-09-24 Stefan Kost * dllwrapper1/wine/Makefile.am: * src/BuzzMachineLoader/Makefile.am: * src/Makefile.am: Don't confuse CPPFLAGS with CFLAGS. 2008-09-24 Stefan Kost * dllwrapper1/wine/win32.c: Use buzz.exe as a app name. * dllwrapper1/wine/Makefile.am: * src/BuzzMachineLoader/Makefile.am: * src/Makefile.am: Get rid of INCLUDES variable (automake deprecates it). 2008-09-22 Stefan Kost * configure.ac: Display summary after configure. 2008-09-04 Stefan Kost * src/BuzzMachineLoader/Makefile.am: * src/Makefile.am: Do not install the test apps. 2008-09-04 Stefan Kost * src/BuzzMachineLoader/Makefile.am: Don't install *.a for dlopened libs. 2008-09-02 Stefan Kost * src/BuzzMachineLoader/Makefile.am: libbuzzmachineloader.so will be dlopened, so pass -module -no-version to save some files. 2008-09-01 Stefan Kost * dllwrapper1/wine/ext.c: handle more return values. * src/BuzzMachineLoader/BuzzMachineLoader.h: TODOs and indenting. 2008-09-01 Stefan Kost * Makefile.am: * dllwrapper1/wine/Makefile.am: * src/Makefile.am: Remove hack and move libs from LDFLAGS to LDADD to get deps right. 2008-08-31 Stefan Kost * TODO: more TODOs. * dllwrapper1/wine/module.c: * dllwrapper1/wine/pe_image.c: Less logging. * src/BuzzMachineLoader/BuzzMachineLoader.cpp: Update some debug, remove expection. * README: * src/bml.c: * src/dsplib/dsplib.cpp: Add env var to limmit debug spew a bit more. 2008-06-23 Krzysztof Foltman * src/dsplib/Makefile: * src/dsplib/dsplib.cpp: * src/dsplib/dsplib.def: Add primitive implementation of DSPLib primitives with proper exports (enough to make Bass 3 work), use single variable for mingw32 prefix in Makefile. 2008-06-24 Stefan Kost patch by: Krzysztof Foltman * README: * dllwrapper1/wine/pe_image.c: What if there is now DllMain? * src/dsplib/Makefile: * src/dsplib/dsplib.def: Add def file to get same symbol names as original dsplib. * src/dsplib/dsplib.cpp: Structure source so that we can add dummies for the missing parts. 2008-06-22 Stefan Kost * src/bmltest_process.c: Add example for native plugins. 2008-06-17 Stefan Kost * Makefile.am: * dllwrapper1/wine/Makefile.am: * src/Makefile.am: Different workaround for Bug #1981932. 2008-06-17 Stefan Kost * dllwrapper1/wine/Makefile.am: * src/Makefile.am: Workaround for Bug #1981932. 2008-06-15 Stefan Kost * src/BuzzMachineLoader.dll: Rebuild. * src/dsplib/dsplib.cpp: * src/dsplib/dsplib.sln: * src/dsplib/dsplib.vcproj: Add projects files and tweak the build. 2008-06-13 Stefan Kost * src/dsplib/Makefile: * src/dsplib/dsplib.cpp: Adding dsplib rewrite donated by zubb. 2008-06-02 Stefan Kost * dllwrapper1/wine/module.c: Comment out unused function. 2008-06-02 Stefan Kost * src/Makefile.am: Fix _LIBS var with wrong name. 2008-05-28 Stefan Kost * TODO: * src/BuzzMachineLoader/BuzzMachineLoader.cpp: Valgrind fixes. 2008-05-13 Stefan Kost * src/BuzzMachineLoader.dll: New version that calls host callbacks. 2008-05-12 Stefan Kost * src/BuzzMachineLoader/BuzzMachineLoader.cpp: * src/BuzzMachineLoader/dsplib.h: Crosscompilation fixes. 2008-05-11 Stefan Kost * src/BuzzMachineLoader/BuzzMachineCallbacks.cpp: * src/BuzzMachineLoader/BuzzMachineCallbacks.h: * src/BuzzMachineLoader/BuzzMachineCallbacksPre12.cpp: * src/BuzzMachineLoader/BuzzMachineCallbacksPre12.h: * src/BuzzMachineLoader/BuzzMachineLoader.cpp: * src/BuzzMachineLoader/BuzzMachineLoader.h: * src/BuzzMachineLoader/CSong.h: * src/BuzzMachineLoader/Makefile.am: * src/BuzzMachineLoader/dsplib.h: * src/bml.c: * src/bml.h: Call host callback if its available. 2008-05-08 Stefan Kost * README: Some info about cross compilations attempts. * TODO: Update issue list. * dllwrapper1/wine/module.c: * dllwrapper1/wine/pe_image.c: * dllwrapper1/wine/win32.c: Cache unavailable libs and shortcut next loading attempts. Speeds up loading and make log reading easier. 2008-04-27 Stefan Kost * src/BuzzMachineLoader/BuzzMachineCallbacks.h: * src/BuzzMachineLoader/BuzzMachineCallbacksPre12.h: * src/BuzzMachineLoader/BuzzMachineLoader.cpp: * src/BuzzMachineLoader/BuzzMachineLoader.h: * src/BuzzMachineLoader/CMachine.h: * src/BuzzMachineLoader/CSong.h: * src/BuzzMachineLoader/Makefile.am: Split sources and headers. Add CSong class needed fro wavtable. 2008-04-21 Stefan Kost * src/BuzzMachineLoader/BuzzMachineCallbacks.cpp: * src/BuzzMachineLoader/BuzzMachineCallbacks.h: * src/BuzzMachineLoader/BuzzMachineCallbacksPre12.cpp: * src/BuzzMachineLoader/BuzzMachineCallbacksPre12.h: Return default wavelevel for now. Add comment about auxbuffer size. Also lower it back to 1K. * src/BuzzMachineLoader/BuzzMachineLoader.cpp: Todo comments. 2008-04-21 Stefan Kost * src/BuzzMachineLoader/dsplib.h: No fastcall attribute on 64bit. 2008-04-20 Stefan Kost * configure.ac: * src/bmltest_info.c: * src/bmltest_process.c: Disable nachine emu for 64bit. 2008-04-19 Stefan Kost * configure.ac: * dllwrapper1/wine/Makefile.am: * src/Makefile.am: Only use ARCH flags for bml part. 2008-04-19 Stefan Kost * README: More notes to the 64bit issues. * configure.ac: * dllwrapper1/wine/Makefile.am: Revert last change and fix asflags. * dllwrapper1/wine/ldt_keeper.c: Fix one cast warning. 2008-04-19 Stefan Kost * configure.ac: * dllwrapper1/wine/Makefile.am: * dllwrapper1/wine/stubs64.s: Made 64bit variant. Disable -m32 and try to build 64bit version on 64bit platforms. 2008-04-19 Stefan Kost * src/BuzzMachineLoader/Makefile.am: Change LDFLAGS to LIBADD and add -lstdc++. 2008-04-16 Stefan Kost * Makefile.am: * README: * TODO: * autogen.sh: * configure.ac: * dllwrapper1/wine/ldt_keeper.c: * dllwrapper2/lib.h: * src/BuzzMachineLoader/BuzzMDKHelper.cpp: * src/BuzzMachineLoader/BuzzMDKHelper.h: * src/BuzzMachineLoader/BuzzMachine.h: * src/BuzzMachineLoader/BuzzMachineCallbacks.cpp: * src/BuzzMachineLoader/BuzzMachineCallbacks.h: * src/BuzzMachineLoader/BuzzMachineCallbacksPre12.cpp: * src/BuzzMachineLoader/BuzzMachineCallbacksPre12.h: * src/BuzzMachineLoader/BuzzMachineLoader.cpp: * src/BuzzMachineLoader/BuzzMachineLoader.h: * src/BuzzMachineLoader/BuzzMachineVirtualCallbacks.cpp: * src/BuzzMachineLoader/Makefile.am: * src/BuzzMachineLoader/OscTable.cpp: * src/BuzzMachineLoader/OscTable.h: * src/BuzzMachineLoader/debug.cpp: * src/BuzzMachineLoader/debug.h: * src/Makefile.am: * src/bml.c: * src/bml.h: * src/bmltest_info.c: * src/bmltest_process.c: * tests/bt-cfg.sh.in: * tests/testmachine.sh: Svn property tuning. 2008-03-26 Stefan Kost * configure.ac: Back to development. === release 0.3.0 === 2008-03-26 Stefan Kost * NEWS: Updated NEWS: * src/bmltest_process.c: fpu experiments. 2008-03-18 Stefan Kost * src/BuzzMachineLoader.dll: Rebuild dll. 2008-03-18 Stefan Kost * src/BuzzMachineLoader/mdkimp.cpp: Comment only change. 2008-03-18 Stefan Kost * dllwrapper1/wine/Makefile.am: * src/BuzzMachineLoader/BuzzMachineLoader.cpp: * src/BuzzMachineLoader/BuzzMachineLoader.h: * src/BuzzMachineLoader/Makefile.am: More build fixes (don't pull win compat header in installed header). * tests/testmachine.sh: Add the stereo fields. 2008-03-16 Stefan Kost * TODO: * src/BuzzMachineLoader/BuzzMachineCallbacks.cpp: * src/BuzzMachineLoader/BuzzMachineCallbacks.h: * src/BuzzMachineLoader/BuzzMachineCallbacksPre12.cpp: * src/BuzzMachineLoader/BuzzMachineCallbacksPre12.h: * src/BuzzMachineLoader/BuzzMachineLoader.cpp: * src/BuzzMachineLoader/BuzzMachineLoader.h: * src/BuzzMachineLoader/BuzzMachineVirtualCallbacks.cpp: * src/BuzzMachineLoader/MachineDataImpl.h: * src/BuzzMachineLoader/Makefile.am: * src/BuzzMachineLoader/mdkimp.cpp: * src/BuzzMachineLoader/windows_compat.h: * src/Makefile.am: * src/bml.h: * src/bmltest_info.c: Cleanup the repository. Fix some build scenarios. Export channel configuration. 2008-03-13 Stefan Kost * README: * src/BuzzMachineLoader/mdk.h: Formatting. * src/bmltest_process.c: Some comments about creating testdata. 2008-03-12 Stefan Kost * src/BuzzMachineLoader/BuzzMachineCallbacks.cpp: * src/BuzzMachineLoader/BuzzMachineCallbacks.h: * src/BuzzMachineLoader/BuzzMachineCallbacksPre12.cpp: * src/BuzzMachineLoader/BuzzMachineCallbacksPre12.h: * src/BuzzMachineLoader/Makefile.am: * src/BuzzMachineLoader/mdk.h: * src/BuzzMachineLoader/mdkimp.cpp: * src/BuzzMachineLoader/mdkimp.h: Add and use mdk implementation. 2008-03-12 Stefan Kost * TODO: Update test findings. * dllwrapper1/wine/pe_image.c: Some tracing fixes. 2008-03-11 Stefan Kost * src/BuzzMachineLoader.dll: * src/BuzzMachineLoader/BuzzMachineLoader.cpp: * src/BuzzMachineLoader/BuzzMDKHelper.cpp: * src/BuzzMachineLoader/BuzzMDKHelper.h: * src/BuzzMachineLoader/CMachine.h: Remove try{} catch. Always call AttributesChanged during init. A bit of MDK work. 2008-03-10 Stefan Kost * configure.ac: * src/BuzzMachineLoader/MachineInterface.h: * src/BuzzMachineLoader/Makefile.am: Revert ABI breakage in machineinterface. Use CXXFLAGS to supress warning instead. 2008-03-09 Stefan Kost * NEWS: * configure.ac: Prepare the release. 2008-02-27 Stefan Kost * src/BuzzMachineLoader/BuzzMDKHelper.cpp: * src/BuzzMachineLoader/BuzzMachineCallbacks.cpp: Make it actually buildable :/ 2008-02-26 Stefan Kost * src/BuzzMachineLoader/BuzzMDKHelper.cpp: * src/BuzzMachineLoader/BuzzMachineCallbacks.cpp: Comment and logging changes. 2008-02-23 Stefan Kost * TODO: * dllwrapper1/wine/module.c: * dllwrapper1/wine/pe_image.c: * dllwrapper1/wine/win32.c: * src/BuzzMachineLoader/BuzzMachineLoader.cpp: * src/bmltest_info.c: * tests/testmachine.sh: More logging tweaks. Added work arounds to get some borked machines working. Gather info about remaining issues. 2008-02-23 Stefan Kost * TODO: * dllwrapper1/wine/module.c: * dllwrapper1/wine/pe_image.c: * dllwrapper1/wine/win32.c: * src/BuzzMachineLoader.dll: * src/BuzzMachineLoader/BuzzMachineCallbacksPre12.cpp: * src/BuzzMachineLoader/BuzzMachineLoader.cpp: * tests/testmachine.sh: Tune logging to be a bit less verbose. Implement more wrapped API, got more machines working. 2008-02-19 Stefan Kost * src/BuzzMachineLoader/BuzzMachineLoader.cpp: Reorder init calls. * src/BuzzMachineLoader/BuzzMachineCallbacks.h: * src/BuzzMachineLoader/BuzzMachineCallbacksPre12.h: No need to clear auxuffer. 2008-02-18 Stefan Kost * TODO: * tests/testmachine.sh: Get more details and also link to the results. * src/bmltest_info.c: Do fflush to increase the likelyhood we have the logs complete. 2008-02-17 Stefan Kost * src/BuzzMachineLoader/BuzzMachineLoader.cpp: Format comment. * TODO: * src/bmltest_info.c: * tests/sorttable.js: * tests/testmachine.sh: Generate html result table. 2008-02-16 Stefan Kost * src/BuzzMachineLoader/BuzzMachineCallbacksPre12.cpp: Remove newline from log print. * src/BuzzMachineLoader/BuzzMachineLoader.cpp: * src/BuzzMachineLoader/BuzzMachineLoader.h: * src/bml.c: * src/bml.h: Add AttributesChanged to wrapped api. * src/bmltest_process.c: Try calling this to get ninja delay fixed. I looks like something is not getting initialized here. 2008-02-11 Stefan Kost * src/bmltest_process.c: Extended the test app. 2008-02-11 Stefan Kost * src/BuzzMachineLoader.dll: New version 2008-02-11 Stefan Kost * TODO: * src/BuzzMachineLoader/BuzzMachineLoader.cpp: Don't access version, if its not initialized yet. 2008-02-10 Stefan Kost * src/BuzzMachineLoader.dll: New version 2008-02-10 Stefan Kost * src/BuzzMachineLoader/BuzzMachineCallbacks.cpp: * src/BuzzMachineLoader/BuzzMachineCallbacks.h: * src/BuzzMachineLoader/BuzzMachineCallbacksPre12.cpp: * src/BuzzMachineLoader/BuzzMachineCallbacksPre12.h: * src/BuzzMachineLoader/BuzzMachineLoader.cpp: * src/BuzzMachineLoader/BuzzMachineLoader.h: * src/BuzzMachineLoader/MachineInterface.h: * src/BuzzMachineLoader/dsplib.h: Rebuild under windows. 2008-02-07 Stefan Kost * TODO: * dllwrapper1/wine/win32.c: More crash info. Playing with CXX exception handler. 2008-02-06 Stefan Kost * README: Some wine comments. Not sure if this is used at all. 2008-02-04 Stefan Kost * README: * dllwrapper1/wine/pe_image.c: * dllwrapper1/wine/win32.c: Our wine wrapper can resolve filenames incasesensitive. No more symlinks needed! Yay. 2007-12-12 Stefan Kost * src/BuzzMachineLoader/BuzzMachineVirtualCallbacks.cpp: Take this one too. 2007-12-12 Stefan Kost * src/BuzzMachineLoader/BuzzMachineCallbacks.cpp: More build fixes. 2007-12-12 Stefan Kost * src/BuzzMachineLoader/BuzzMachineCallbacksPre12.cpp: More build fixes. 2007-12-12 Stefan Kost * src/BuzzMachineLoader/MachineInterface.h: Fix gcc warnings. 2007-12-03 Stefan Kost * src/BuzzMachineLoader/BuzzMachineLoader.cpp: Only create CMachineInput if needed. 2007-11-21 Stefan Kost * src/Makefile.am: Use local version to link against when building bmltest_* binaries. 2007-11-21 Stefan Kost * src/BuzzMachineLoader/BuzzMachineLoader.cpp: Free the machine-iface causes a double free here. Disable for now. 2007-11-10 Stefan Kost * README: * TODO: * configure.ac: * dllwrapper1/wine/Makefile.am: * src/BuzzMachineLoader/BuzzMachineCallbacks.cpp: * src/BuzzMachineLoader/BuzzMachineCallbacks.h: * src/BuzzMachineLoader/BuzzMachineCallbacksPre12.cpp: * src/BuzzMachineLoader/BuzzMachineCallbacksPre12.h: * src/BuzzMachineLoader/BuzzMachineLoader.cpp: * src/BuzzMachineLoader/BuzzMachineLoader.h: * src/BuzzMachineLoader/Makefile.am: * src/BuzzMachineLoader/debug.cpp: * src/BuzzMachineLoader/debug.h: * src/Makefile.am: * src/bml.c: * src/bmltest_info.c: * src/bmltest_process.c: Check for CPU arch. Only build dll-wrapper part on x86. Automatically add correct flags for build on 64bit arch. Enable debug logging on the native bml lib. Add some todo about enhancing compatibillity. 2007-10-31 Stefan Kost * .cvsignore: * tests/.cvsignore: More cleaning. 2007-10-31 Stefan Kost * src/BuzzMachineLoader/.cvsigore: Add .cvsignore file. 2007-10-31 Stefan Kost * TODO: * configure.ac: * src/BuzzMachineLoader/BuzzMDKHelper.cpp: * src/BuzzMachineLoader/BuzzMDKHelper.h: * src/BuzzMachineLoader/BuzzMachine.h: * src/BuzzMachineLoader/BuzzMachineCallbacks.cpp: * src/BuzzMachineLoader/BuzzMachineCallbacks.h: * src/BuzzMachineLoader/BuzzMachineCallbacksPre12.cpp: * src/BuzzMachineLoader/BuzzMachineCallbacksPre12.h: * src/BuzzMachineLoader/BuzzMachineLoader.aps: * src/BuzzMachineLoader/BuzzMachineLoader.cpp: * src/BuzzMachineLoader/BuzzMachineLoader.h: * src/BuzzMachineLoader/BuzzMachineLoader.ncb: * src/BuzzMachineLoader/BuzzMachineLoader.rc: * src/BuzzMachineLoader/BuzzMachineLoader.sln: * src/BuzzMachineLoader/BuzzMachineLoader.suo: * src/BuzzMachineLoader/BuzzMachineLoader.vcproj: * src/BuzzMachineLoader/BuzzMachineVirtualCallbacks.cpp: * src/BuzzMachineLoader/MachineDataImpl.cpp: * src/BuzzMachineLoader/MachineDataImpl.h: * src/BuzzMachineLoader/MachineInterface.h: * src/BuzzMachineLoader/Makefile.am: * src/BuzzMachineLoader/OscTable.cpp: * src/BuzzMachineLoader/OscTable.h: * src/BuzzMachineLoader/bw.h: * src/BuzzMachineLoader/debug.cpp: * src/BuzzMachineLoader/debug.h: * src/BuzzMachineLoader/dsplib.h: * src/BuzzMachineLoader/resample.h: * src/BuzzMachineLoader/resource.h: * src/BuzzMachineLoader/stdafx.cpp: * src/BuzzMachineLoader/stdafx.h: * src/BuzzMachineLoader/windows_compat.h: * src/Makefile.am: * src/bml.c: * src/bml.h: * src/bmltest_info.c: * src/bmltest_process.c: Add windows wrapper sources. Add dual build to allow to use wrapped and native buzzmachines in parallel. 2007-09-23 Stefan Kost * README: Add info about how to build on 64bit systems. * configure.ac: * dllwrapper1/wine/Makefile.am: * dllwrapper1/wine/elfdll.c: * dllwrapper1/wine/ldt_keeper.c: * dllwrapper1/wine/module.c: * dllwrapper1/wine/pe_image.c: * dllwrapper1/wine/pshpack1.h: * dllwrapper1/wine/pshpack2.h: * dllwrapper1/wine/stubs.s: * dllwrapper1/wine/win32.c: * dllwrapper1/wine/wrapper.S: * dllwrapper1/wine/wrapper.h: Some cleanups and sync with upstream changes. 2007-09-23 Stefan Kost * configure.ac: Improved lcov detection. 2007-09-02 Stefan Kost * autogen.sh: Update autogen.sh to be in sync with other modules. * dllwrapper1/wine/win32.c: Add sin() to emulated api. Fixes #1786592. 2007-07-08 Stefan Kost * src/BuzzMachineLoader.dll: Update bridge library (removed -1 from again setNumTracks(tracks)). 2007-06-25 Stefan Kost * README: * dllwrapper1/wine/module.c: (MODULE_FindModule), (MODULE_InitDll), (LoadLibraryExA), (dump_component), (report_func), (report_func_ret): * dllwrapper1/wine/win32.c: (expLoadCursorA), (expSetLocalTime), (expGetSystemTime), (expSystemTimeToFileTime), (expLocalFileTimeToFileTime), (expSetFileTime), (expCreateFileA), (expCreateFileW), (expCreatePipe), (expLockFile), (expUnlockFile), (expGetNumberOfConsoleInputEvents), (expPeekConsoleInputA), (expReadConsoleInputA), (expPeekNamedPipe), (expGetFileInformationByHandle), (expWriteConsoleA), (expSetEndOfFile), (add_stub), (LookupExternal): More functions wrapped. * src/BuzzMachineLoader.dll: Better logging capabillities. Emulate API for buzz<1.2 machines 2007-05-13 Stefan Kost * NEWS: * README: * TODO: * configure.ac: * testmachine.sh: * tests/bt-cfg.sh.in: * tests/testmachine.sh: Move test script to tests dir and add cfg. Add examples abou how to scan for issues. * dllwrapper1/wine/pe_image.c: (dump_exports), (PE_FindExportedFunction), (fixup_imports), (calc_vma_size), (do_relocations), (PE_LoadImage), (PE_CreateModule), (PE_LoadLibraryExA), (PE_InitDLL), (_fixup_address): Fix logging 2007-05-12 Stefan Kost * src/BuzzMachineLoader.dll: * src/bml.c: (bml_logger), (bml_setup): Add log handler to savely redirect BuzzMachineLoader to the bml side. 2007-05-02 Stefan Kost * ChangeLog: Released === release 0.2.0 === 2007-05-02 Stefan Kost * NEWS: * TODO: * configure.ac: Releasing 2007-04-19 Stefan Kost * TODO: * dllwrapper1/wine/win32.c: (dbgprintf), (expWaitForMultipleObjects), (expCreateMutexA), (expLeaveCriticalSection), (expTlsSetValue), (expTlsGetValue), (expGetCommandLineW), (expEnumDisplayMonitors), (expGetMonitorInfoA), (expCreateDirectoryA), (exp_malloc_dbg), (expCreatePalette), (exprealloc), (add_stub), (LookupExternal): added one more symbol 2007-02-20 Stefan Kost * src/bmltest_process.c: (test_process): * testmachine.sh: trigger params for sources in testscript 2007-02-19 Stefan Kost * src/bmltest_process.c: (test_process): improve the tests a little (more to come) 2007-02-19 Stefan Kost * TODO: start a list of machines that don't work yet 2007-02-19 Stefan Kost * dllwrapper1/wine/module.c: (LoadLibraryExA): fix logging 2007-02-19 Stefan Kost * configure.ac: add AM_PROG_AS to fix "am__fastdepCCAS does not appear in AM_CONDITIONAL", spotted by Daniel Oberhoff 2007-01-26 Stefan Kost * configure.ac: configure cleanups 2006-11-26 Stefan Kost * README: * src/BuzzMachineLoader.dll: 2006-11-26 Stefan Kost * src/BuzzMachineLoader.dll: new version 2006-11-25 Stefan Kost * src/BuzzMachineLoader.dll: new version * src/bml.c: (bml_init): * src/bml.h: * src/bmltest_info.c: (test_info): * src/bmltest_process.c: (test_process): add two new params fro bm_init 2006-11-12 Stefan Kost * src/bml.c: TODO comments 2006-11-01 Stefan Kost * .cvsignore: ignore more * dllwrapper1/wine/module.c: (MODULE_LoadLibraryExA), (LoadLibraryExA): * dllwrapper1/wine/win32.c: (test_heap), (my_mreq), (my_release), (mreq_private), (ext_unknown), (expCreateThread), (destroy_event), (expCreateEventA), (expHeapCreate), (expHeapAlloc), (expHeapFree), (expVirtualAlloc), (expInitializeCriticalSection), (expEnterCriticalSection), (expLeaveCriticalSection), (expDeleteCriticalSection), (expLocalAlloc), (expGlobalAlloc), (expGlobalSize), (expCreateSemaphoreA), (expGetModuleFileNameA), (expCreateWindowExA), (expGetPrivateProfileIntA), (expWritePrivateProfileStringA), (expGetEnvironmentVariableA), (UnregisterComClass), (expIsRectEmpty), (expFindNextFileA), (expFindFirstFileA), (expCreateFileA), (expmalloc), (expcalloc), (expnew), (exp_initterm), (expfopen), (explog10), (expcos), (exppow), (expldexp), (expfrexp), (expExitProcess), (expMessageBoxA), (expTerminateProcess), (expVariantInit), (LookupExternalNative), (LookupExternal), (LookupExternalByName), (my_garbagecollection): * src/bml.c: (bml_setup), (bml_finalize): more printf->TRACE/dbgprintf to be silent when not enabling debug === release 0.1.0 === 2006-10-29 Stefan Kost * Makefile.in: tidy CVS 2006-10-11 Stefan Kost * README: /home/ensonic -> $HOME 2006-09-11 Stefan Kost * configure.ac: coverage fixes for gcc-4 2006-08-27 Stefan Kost * NEWS: * configure.ac: * dllwrapper2/Makefile.in: * src/Makefile.am: prepare release 0.1.0 2006-08-24 Stefan Kost * COPYING: * buzz/BuzzMachineLoader.h: * dllwrapper1/wine/ldt_keeper.h: * src/bml.c: * src/bml.h: * src/bmltest_info.c: * src/bmltest_process.c: Add licence header + more comments 2006-08-05 Stefan Kost * Makefile.in: * configure.ac: * dllwrapper1/wine/ext.c: (VirtualAlloc): * dllwrapper1/wine/ext.h: * dllwrapper1/wine/ldt_keeper.c: (Setup_FS_Segment), (Check_FS_Segment), (_modify_ldt), (Setup_LDT_Keeper), (Restore_LDT_Keeper): * dllwrapper1/wine/ldt_keeper.h: * dllwrapper1/wine/loader.h: * dllwrapper1/wine/module.c: (MODULE32_LookupHMODULE), (LoadLibraryExA): * dllwrapper1/wine/pe_image.c: (PE_FindExportedFunction): * dllwrapper1/wine/pe_resource.c: (PE_EnumResourceNamesA), (PE_EnumResourceLanguagesA): * dllwrapper1/wine/resource.c: * dllwrapper1/wine/win32.c: (dbgprintf), (expIsBadWritePtr), (expIsBadReadPtr), (expGetDriverModuleHandle), (expCreateThread), (expCreateEventA), (expSetEvent), (expResetEvent), (expWaitForSingleObject), (expWaitForMultipleObjects), (expCreateMutexA), (DumpSystemInfo), (expIsProcessorFeaturePresent), (expHeapCreate), (expHeapAlloc), (expHeapDestroy), (expHeapFree), (expHeapSize), (expVirtualAlloc), (expVirtualFree), (expInitializeCriticalSection), (expEnterCriticalSection), (expLeaveCriticalSection), (expDeleteCriticalSection), (expGetCurrentThreadId), (expTlsSetValue), (expTlsGetValue), (expTlsFree), (expLocalAlloc), (expLocalReAlloc), (expLocalLock), (expGlobalAlloc), (expGlobalLock), (expGlobalSize), (expLoadStringA), (expMultiByteToWideChar), (expWideCharToMultiByte), (expGetVersionExA), (expCreateSemaphoreA), (expReleaseSemaphore), (expRegOpenKeyExA), (expRegCloseKey), (expRegQueryValueExA), (expRegCreateKeyExA), (expRegSetValueExA), (expRegOpenKeyA), (expQueryPerformanceCounter), (expQueryPerformanceFrequency), (exptimeGetTime), (expLocalHandle), (expGlobalHandle), (expGlobalUnlock), (expGlobalFree), (expGlobalReAlloc), (expLocalUnlock), (expLocalFree), (expFindResourceA), (expLockResource), (expFreeResource), (expCloseHandle), (expGetEnvironmentStringsW), (expRtlZeroMemory), (expRtlMoveMemory), (expRtlFillMemory), (expFreeEnvironmentStringsW), (expFreeEnvironmentStringsA), (expGetEnvironmentStrings), (expGetStartupInfoA), (expGetStdHandle), (expGetModuleFileNameA), (expSetUnhandledExceptionFilter), (expLoadLibraryA), (expGetProcAddress), (expCreateFileMappingA), (expOpenFileMappingA), (expMapViewOfFile), (expUnmapViewOfFile), (expGetWindowRect), (expMonitorFromRect), (expMonitorFromPoint), (expEnumDisplayMonitors), (expGetMonitorInfoA), (expEnumDisplayDevicesA), (expGetClassNameA), (expGetClassInfoA), (expGetObjectA), (expEnumWindows), (expGetWindowThreadProcessId), (expCreateWindowExA), (expDrawTextA), (expGetPrivateProfileStringA), (expStringFromGUID2), (expGetFileVersionInfoSizeA), (expIsBadStringPtrW), (expInterlockedIncrement), (expInterlockedDecrement), (expOutputDebugStringA), (expLoadCursorA), (expSetCursor), (expGetCursorPos), (expGetSystemPaletteEntries), (expGetTimeZoneInformation), (expGetLocalTime), (expGetSystemTime), (expGetSystemTimeAsFileTime), (expGetEnvironmentVariableA), (expGetTempPathA), (expFindNextFileA), (expFindFirstFileA), (expGetWindowsDirectoryA), (expGetCurrentDirectoryA), (expSetCurrentDirectoryA), (expCreateDirectoryA), (expDeleteFileA), (expFileTimeToLocalFileTime), (expGetTempFileNameA), (expCreateFileA), (expGetSystemDirectoryA), (expGetFullPathNameA), (expGetShortPathNameA), (expReadFile), (expWriteFile), (expSetFilePointer), (expOpenDriverA), (expOpenDriver), (expGetProcessAffinityMask), (explstrcmpiA), (explstrlenA), (explstrcpyA), (explstrcpynA), (explstrcatA), (expDuplicateHandle), (expmalloc), (exp_initterm), (expwsprintfA), (expsprintf), (expsscanf), (expfprintf), (expprintf), (expstrrchr), (expstrchr), (expstrlen), (expstrcpy), (expstrcmp), (expstrncmp), (expstrcat), (exp_strdup), (expmemmove), (expmemcmp), (expmemcpy), (expmemset), (exptime), (exp_CIpow), (expSetThreadPriority), (expUnregisterClassA), (expCreatePalette), (expGetClientRect), (expClientToScreen), (expDialogBoxParamA), (exprealloc), (add_stub): * dllwrapper2/Makefile.in: * src/bml.c: (bml_set_master_info), (bml_new), (bml_init), (bml_free), (bml_get_machine_info), (bml_get_global_parameter_info), (bml_get_track_parameter_info), (bml_get_attribute_info), (bml_get_track_parameter_location), (bml_get_track_parameter_value), (bml_set_track_parameter_value), (bml_get_global_parameter_location), (bml_get_global_parameter_value), (bml_set_global_parameter_value), (bml_get_attribute_location), (bml_get_attribute_value), (bml_set_attribute_value), (bml_tick), (bml_work), (bml_work_m2s), (bml_stop), (bml_set_num_tracks), (bml_describe_global_value), (bml_describe_track_value), (bml_setup): merge Changes from upstream CVS 2006-07-11 Stefan Kost * dllwrapper1/wine/ext.c: (HEAP_strdupAtoW): * dllwrapper1/wine/pe_image.c: (PE_FindExportedFunction), (fixup_imports): * dllwrapper1/wine/pe_image.h: * dllwrapper1/wine/win32.c: (expWideCharToMultiByte): * dllwrapper1/wine/winbase.h: fixes for gcc-4.1.0 2006-03-20 Stefan Kost * Makefile.in: * buzz/BuzzMachineLoader.h: * src/BuzzMachineLoader.dll: * src/bmltest_info.c: (test_info): more infos, added dll-name property 2005-09-26 23:46 Stefan Kost * .cvsignore, src/BuzzMachineLoader.dll: new dll wrapper (fixes auxbus machines) 2005-09-12 20:26 Stefan Kost * README, dllwrapper1/wine/win32.c, src/BuzzMachineLoader.dll: calling other dlls works more info in the README 2005-09-12 18:34 Stefan Kost * dllwrapper1/wine/pe_image.c, dllwrapper1/wine/win32.c, src/bml.c: experiments with dsplib 2005-09-09 14:02 Stefan Kost * .cvsignore, testmachine.sh, buzz/.cvsignore: little cleanup and some notes 2005-09-06 00:40 Stefan Kost * .cvsignore, src/.cvsignore: more cvs maintainance 2005-09-06 00:38 Stefan Kost * .cvsignore, dllwrapper1/.cvsignore, dllwrapper1/wine/.cvsignore, src/.cvsignore: cvs maintainance 2005-09-06 00:31 Stefan Kost * testmachine.sh, dllwrapper1/wine/module.c, dllwrapper1/wine/win32.c, src/BuzzMachineLoader.dll, src/bmltest_info.c: updated test-machine script new version of wrapper dll 2005-06-30 17:51 Stefan Kost * src/BuzzMachineLoader.dll: def values are now correctly initialized 2005-06-23 23:16 Stefan Kost * NEWS: little distcheck fix (still problems) 2005-06-18 09:32 Stefan Kost * src/: BuzzMachineLoader.dll, bml.c, bml.h, bmltest_info.c: added another wrapper method bmltest_info used describe_value methods 2005-06-17 17:30 Stefan Kost * src/: bml.h, bmltest_info.c: use describe value in test tool 2005-06-17 12:05 Stefan Kost * dllwrapper1/wine/driver.c, dllwrapper1/wine/pe_image.c, src/BuzzMachineLoader.dll, src/bml.c, src/bml.h, src/bmltest_info.c, src/bmltest_process.c: fixed more warnings added another symbol 2005-06-14 09:20 Stefan Kost * configure.ac: added -Wall to cflags 2005-06-03 18:00 Stefan Kost * libbml.pc.in, src/Makefile.am: fixed Makefile.am in which we forgot to install some headers 2005-06-02 19:58 Stefan Kost * src/BuzzMachineLoader.dll: fix parameter value access in dll 2005-06-01 16:17 Stefan Kost * dllwrapper1/wine/module.c, dllwrapper1/wine/pe_image.c, dllwrapper1/wine/win32.c, src/bml.c, src/bml.h: added mutex locking around lib calls 2005-05-26 18:25 Stefan Kost * src/: Makefile.am, bmltest_info.c, bmltest_process.c: forgot to actually *use* pedantic gcc flags fixed warnings and deprecated __FUNCTION__ usage 2005-05-24 17:26 Stefan Kost * README: hints about /dev/zero in README 2005-05-20 15:22 Stefan Kost * dllwrapper1/wine/win32.c: added sinh, cosh to make more machines happy 2005-05-19 00:30 Stefan Kost * libbml.pc.in, src/bml.c, src/bml.h, src/bmltest_info.c, src/bmltest_process.c: all wrapped elements live in a separate namespace 2005-05-18 21:55 Stefan Kost * dllwrapper1/wine/Makefile.am, dllwrapper1/wine/module.c, src/BuzzMachineLoader.dll, src/Makefile.am, src/bml.c, src/bml.h: added lots of debug output 2005-05-18 19:24 Stefan Kost * Makefile.in, README, configure.ac, dllwrapper1/wine/Makefile.am, dllwrapper1/wine/debugtools.h, dllwrapper1/wine/ext.c, dllwrapper1/wine/module.c, dllwrapper1/wine/pe_image.c, src/BuzzMachineLoader.dll, src/Makefile.am, src/bml.c, src/bml.h: some more debug output 2005-05-18 14:58 Stefan Kost * dllwrapper1/wine/stubs.s: added missing file 2005-05-18 14:53 Stefan Kost * Makefile.am: added missing file 2005-05-18 14:47 Stefan Kost * AUTHORS, Makefile.in, NEWS, autogen.sh, configure.ac, bml/BuzzMachineLoader.dll, bml/ChangeLog, bml/Makefile.in, bml/bmlapi.c, bml/bmltest_info.c, bml/bmltest_process.c, bml/vstwin.c, dllwrapper1/Makefile.am, dllwrapper1/libwin32.h, dllwrapper1/wine/Makefile.am, dllwrapper1/wine/afl.c, dllwrapper1/wine/avifmt.h, dllwrapper1/wine/basetsd.h, dllwrapper1/wine/com.h, dllwrapper1/wine/debugtools.h, dllwrapper1/wine/driver.c, dllwrapper1/wine/driver.h, dllwrapper1/wine/elfdll.c, dllwrapper1/wine/elfdll.h, dllwrapper1/wine/ext.c, dllwrapper1/wine/ext.h, dllwrapper1/wine/heap.h, dllwrapper1/wine/ldt.h, dllwrapper1/wine/ldt_keeper.c, dllwrapper1/wine/ldt_keeper.h, dllwrapper1/wine/loader.h, dllwrapper1/wine/mmreg.h, dllwrapper1/wine/module.c, dllwrapper1/wine/module.h, dllwrapper1/wine/msacm.h, dllwrapper1/wine/msacmdrv.h, dllwrapper1/wine/ntdef.h, dllwrapper1/wine/pe_image.c, dllwrapper1/wine/pe_image.h, dllwrapper1/wine/pe_resource.c, dllwrapper1/wine/poppack.h, dllwrapper1/wine/pshpack1.h, dllwrapper1/wine/pshpack2.h, dllwrapper1/wine/pshpack4.h, dllwrapper1/wine/pshpack8.h, dllwrapper1/wine/registry.c, dllwrapper1/wine/registry.h, dllwrapper1/wine/resource.c, dllwrapper1/wine/resource.h, dllwrapper1/wine/vfl.c, dllwrapper1/wine/vfw.h, dllwrapper1/wine/win32.c, dllwrapper1/wine/win32.h, dllwrapper1/wine/winbase.h, dllwrapper1/wine/windef.h, dllwrapper1/wine/windows.h, dllwrapper1/wine/wineacm.h, dllwrapper1/wine/winerror.h, dllwrapper1/wine/winestring.h, dllwrapper1/wine/winnt.h, dllwrapper1/wine/winreg.h, dllwrapper1/wine/winuser.h, dllwrapper1/wine/wrapper.S, dllwrapper1/wine/wrapper.h, dllwrapper2/Makefile.in, dllwrapper2/gettid.c, dllwrapper2/interlocked.c, dllwrapper2/lib.c, dllwrapper2/lib.h, dllwrapper2/libbml.spec.c, dllwrapper2/libwinelib.c, dllwrapper2/libwinelib.h, dllwrapper2/port.h, dllwrapper2/pthreademu.c, dllwrapper2/pthreademu.h, dllwrapper2/server.h, dllwrapper2/server_protocol.h, dllwrapper2/thread.h, dllwrapper2/windef16.h, src/BuzzMachineLoader.dll, src/Makefile.am, src/bml.c, src/bml.h, src/bmltest_info.c, src/bmltest_process.c: switched to dll wrapper by libavifile 2005-05-03 23:51 Stefan Kost * bml/: bml.h, bmlapi.c, bmltest_info.c, bmltest_process.c: fixed a few more warnings 2005-04-30 13:17 Stefan Kost * bml/: bml.h, bmlapi.c: better debug logging 2005-04-29 12:17 Stefan Kost * TODO, bml/BuzzMachineLoader.dll, bml/bmlapi.c: fixed a type, thanks to Alex 2005-04-13 11:33 Stefan Kost * README: spell checking the README 2005-02-17 14:47 Stefan Kost * buzz/BuzzMachineLoader.h: new api 2005-02-17 09:14 Stefan Kost * bml/: BuzzMachineLoader.dll, bml.h, bmlapi.c, bmltest_info.c, bmltest_process.c: [features] new api entries for param locations 2005-02-16 20:11 Stefan Kost * bml/: bml.h, bmlapi.c, bmltest_info.c: api fix 2005-02-16 08:47 Stefan Kost * bml/BuzzMachineLoader.dll, bml/bml.h, bml/bmlapi.c, buzz/BuzzMachineLoader.h: now oscillator table should work we now initialize attributes and global params 2005-02-12 21:00 Stefan Kost * bml/bmltest_info.c: use new api for getting track param values 2005-02-12 20:57 Stefan Kost * bml/: BuzzMachineLoader.dll, bml.h: api entries to get/set track params 2005-01-24 12:20 Stefan Kost * .cvsignore, bml/include/.cvsignore: added/updated cvsignore files 2005-01-20 20:06 Stefan Kost * bml/bmlapi.c: missing newline at eof 2005-01-20 17:21 Stefan Kost * bml/include/config.h: removed obsolete file from cvs 2005-01-20 17:19 Stefan Kost * bml/include/config.h: [no log message] 2005-01-20 09:08 Stefan Kost * bml/include/: config.h, port.h: commented out wrong include check 2005-01-16 15:13 Stefan Kost * autogen.sh, bml/include/config.h: we need to check for automake to locate aclocale, even we do not use automake here 2005-01-16 14:18 Stefan Kost * autogen.sh, bml/BuzzMachineLoader.dll, bml/include/config.h.in: added a real autogen.sh script 2005-01-16 11:05 Stefan Kost * README: README 2004-11-29 17:48 Stefan Kost * README, testmachine.sh, bml/BuzzMachineLoader.dll: simplified calculations (thanks to kleiner) 2004-09-25 18:08 Stefan Kost * .cvsignore, bml/.cvsignore: tuned the ignore rules 2004-09-25 18:03 Stefan Kost * .cvsignore, AUTHORS, bml/BuzzMachineLoader.dll: initial cvsignore file 2004-09-14 14:17 Stefan Kost * bml/BuzzMachineLoader.dll, bml/bml.h, bml/bmltest_info.c, bml/bmltest_process.c, buzz/BuzzMachineLoader.h: we can change parameter in buzz machines 2004-09-13 17:08 Stefan Kost * bml/BuzzMachineLoader.dll, bml/bml.h, bml/bmlapi.c, bml/bmltest_info.c, buzz/BuzzMachineLoader.h: new api for set/get parameters/attributes C: renamed API to make space for new methods 2004-09-09 18:54 Stefan Kost * bml/BuzzMachineLoader.dll, bml/Makefile.in, bml/bml.h, bml/bmlapi.c, bml/bmltest.c, bml/bmltest_info.c, bml/bmltest_process.c, buzz/BuzzMachineLoader.h: a new test, that runs a buzz effect A: new API entries 2004-09-03 16:50 Stefan Kost * bml/: bmlapi.c, bmltest.c: extended test to load multiple machines 2004-09-03 11:57 Stefan Kost * README, bml/bml.h, bml/bmlapi.c, bml/bmltest.c: path name resolving 2004-09-03 09:57 Stefan Kost * README: more in readme 2004-09-03 09:35 Stefan Kost * bml/: BuzzMachineLoader.dll, bmltest.c: fixed crashes, when windows dll could not be loaded 2004-09-03 09:18 Stefan Kost * README, bml/BuzzMachineLoader.dll: more infos in README 2004-09-03 09:05 Stefan Kost * bml/bmlapi.c: fixed return codes 2004-09-03 09:00 Stefan Kost * bml/BuzzMachineLoader.dll, bml/Makefile.in, buzz/BuzzMachineLoader.h: windows support files 2004-09-02 17:20 Stefan Kost * Makefile.in, configure.ac, bml/Makefile.in, bml/bmltest.c: build system fixes 2004-09-02 09:53 Stefan Kost * bml/bmltest.c: query info from the linux side 2004-09-02 09:49 Stefan Kost * bml/: Makefile.in, bml.h, bmlapi.c, bmltest.c: set master info 2004-08-31 17:42 Stefan Kost * bml/Makefile.in: build system fixes 2004-08-31 14:30 Stefan Kost * Makefile.in, bml/bml.h, bml/bmlapi.c, bml/bmltest.c: more API restructuring 2004-08-30 17:02 Stefan Kost * bml/bmlapi.c: outlined the next steps 2004-08-26 15:10 Stefan Kost * README, README.libfst, TODO, bml/Makefile.in, bml/bml.h, bml/bmlapi.c, bml/bmlapi.cpp, bml/bmltest.c, bml/bmltest.cpp: : design, now using two wraper stages 2004-08-10 16:35 Stefan Kost * bml/: bmlapi.cpp, bmltest.cpp: more info about the problems 2004-08-10 15:55 Stefan Kost * bml/: bmltest.c, bmltest.cpp: *now* bmltest is a cpp app 2004-08-10 15:54 Stefan Kost * bml/: Makefile.in, bml.c, bml.h, bmlapi.cpp, libwinelib.c, libwinelib.h, pthreademu.h, server.h, server_protocol.h, thread.h, windef16.h: now bmltest is a cpp app 2004-08-09 18:22 Stefan Kost * aclocal.m4, configure, libbml.pc, bml/bmltest: R: obsolete files 2004-08-09 18:02 Stefan Kost * README, aclocal.m4, fixheaders, AUTHORS, ChangeLog, Make.rules.in, Makefile.in, README.local, autogen.sh, configure, configure.ac, libbml.pc.in, mkinstalldirs, COPYING, libbml.pc, bml/ChangeLog, bml/Makefile.in, bml/bml.c, bml/bml.h, bml/bmltest, bml/bmltest.c, bml/gettid.c, bml/interlocked.c, bml/libwinelib.c, bml/libwinelib.h, bml/pthreademu.c, bml/pthreademu.h, bml/server.h, bml/server_protocol.h, bml/thread.h, bml/vstwin.c, bml/windef16.h, bml/include/ChangeLog, bml/include/config.h, bml/include/config.h.in, bml/include/port.h: initial source of the buzz machine loader 2004-08-09 18:02 Stefan Kost * README, aclocal.m4, fixheaders, AUTHORS, ChangeLog, Make.rules.in, Makefile.in, README.local, autogen.sh, configure, configure.ac, libbml.pc.in, mkinstalldirs, COPYING, libbml.pc, bml/ChangeLog, bml/Makefile.in, bml/bml.c, bml/bml.h, bml/bmltest, bml/bmltest.c, bml/gettid.c, bml/interlocked.c, bml/libwinelib.c, bml/libwinelib.h, bml/pthreademu.c, bml/pthreademu.h, bml/server.h, bml/server_protocol.h, bml/thread.h, bml/vstwin.c, bml/windef16.h, bml/include/ChangeLog, bml/include/config.h, bml/include/config.h.in, bml/include/port.h: Initial revision bml-0.6.1/src/0000755042355400116100000000000011701130243010056 500000000000000bml-0.6.1/src/bmltest_process.h0000644042355400116100000002167411606132170013376 00000000000000/* $Id: bmltest_process.h 3470 2011-07-09 20:05:12Z ensonic $ * * Buzz Machine Loader * Copyright (C) 2009 Buzztard team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ void bml(test_process(char *libpath,const char *infilename,const char *outfilename)) { // buzz machine handle void *bmh,*bm; /* { fpu_control_t cw=0x27F; //_FPU_GETCW(cw); //cw&=~_FPU_EXTENDED; //cw|=_FPU_DOUBLE; _FPU_SETCW(cw); } */ printf("%s(\"%s\")\n",__FUNCTION__,libpath); if((bmh=bml(open(libpath)))) { if((bm=bml(new(bmh)))) { FILE *infile,*outfile; int s_size=BUFFER_SIZE,i_size,o_size,r_size; short int buffer_w[BUFFER_SIZE*2]; float buffer_fm[BUFFER_SIZE],buffer_fs[BUFFER_SIZE*2],*buffer_f; int i,mtype,mflags,tracks; //int ival=0,oval,vs=10; const char *type_name[3]={"","generator","effect"}; int nan=0,inf=0,den=0; int clipped=0; float ma=0.0; int mode=3/*WM_READWRITE*/; int triggered=TRUE; puts(" windows machine created"); bml(init(bm,0,NULL)); bml(get_machine_info(bmh,BM_PROP_TYPE,&mtype)); bml(get_machine_info(bmh,BM_PROP_FLAGS,&mflags)); printf(" %s initialized\n",type_name[mtype]); bml(get_machine_info(bmh,BM_PROP_MIN_TRACKS,(void *)&tracks)); if(tracks) { bml(set_num_tracks(bm,tracks)); printf(" activated %d tracks\n",tracks); } //bml(stop(bm)); //bml(attributes_changed(bm)); // open raw files infile=fopen(infilename,"rb"); outfile=fopen(outfilename,"wb"); if(infile && outfile) { printf(" processing "); if(mtype==1) { int num,ptype,pflags,pmaval; // trigger a note for generators bml(get_machine_info(bmh,BM_PROP_NUM_GLOBAL_PARAMS,&num)); // set value for trigger parameter(s) for(i=0;i0) && (ival==1000)) || ((vs<0) && (ival==0))) vs=-vs; printf("."); // set GlobalVals, TrackVals bml(tick(bm)); i_size=fread(buffer_w,2,s_size,infile); if(i_size) { // generators get silence, effects get the input if(mtype==1) { for(i=0;ima) ma=buffer_f[i]; if(buffer_f[i]>32767) { buffer_w[i]=32767; clipped++; } else if(buffer_f[i]<-32768) { buffer_w[i]=-32768; clipped++; } else { buffer_w[i]=(short int)(buffer_f[i]); } } if((r_size=fwrite(buffer_w,2,o_size,outfile)) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef BML_H #define BML_H #include #include #include #include #include #include #include #include #include #include #include "BuzzMachineLoader.h" #ifndef FALSE #define FALSE 0 #endif #ifndef TRUE #define TRUE (!FALSE) #endif //#ifdef __cplusplus //extern "C" { //#endif extern int bml_setup(void); extern void bml_finalize(void); // dll passthrough API method pointer types typedef void (*BMSetMasterInfo)(long bpm, long tpb, long srat); typedef BuzzMachineHandle * (*BMOpen)(char *bm_file_name); typedef void (*BMClose)(BuzzMachineHandle *bmh); typedef int (*BMGetMachineInfo)(BuzzMachineHandle *bmh, BuzzMachineProperty key, void *value); typedef int (*BMGetGlobalParameterInfo)(BuzzMachineHandle *bmh,int index,BuzzMachineParameter key,void *value); typedef int (*BMGetTrackParameterInfo)(BuzzMachineHandle *bmh,int index,BuzzMachineParameter key,void *value); typedef int (*BMGetAttributeInfo)(BuzzMachineHandle *bmh,int index,BuzzMachineAttribute key,void *value); typedef const char *(*BMDescribeGlobalValue)(BuzzMachineHandle *bmh, int const param,int const value); typedef const char *(*BMDescribeTrackValue)(BuzzMachineHandle *bmh, int const param,int const value); typedef BuzzMachine * (*BMNew)(BuzzMachineHandle *bmh); typedef void (*BMFree)(BuzzMachine *bm); typedef void (*BMInit)(BuzzMachine *bm, unsigned long blob_size, unsigned char *blob_data); typedef void * (*BMGetTrackParameterLocation)(BuzzMachine *bm,int track,int index); typedef int (*BMGetTrackParameterValue)(BuzzMachine *bm,int track,int index); typedef void (*BMSetTrackParameterValue)(BuzzMachine *bm,int track,int index,int value); typedef void * (*BMGetGlobalParameterLocation)(BuzzMachine *bm,int index); typedef int (*BMGetGlobalParameterValue)(BuzzMachine *bm,int index); typedef void (*BMSetGlobalParameterValue)(BuzzMachine *bm,int index,int value); typedef void * (*BMGetAttributeLocation)(BuzzMachine *bm,int index); typedef int (*BMGetAttributeValue)(BuzzMachine *bm,int index); typedef void (*BMSetAttributeValue)(BuzzMachine *bm,int index,int value); typedef void (*BMTick)(BuzzMachine *bm); typedef int (*BMWork)(BuzzMachine *bm,float *psamples, int numsamples, int const mode); typedef int (*BMWorkM2S)(BuzzMachine *bm,float *pin, float *pout, int numsamples, int const mode); typedef void (*BMStop)(BuzzMachine *bm); typedef void (*BMAttributesChanged)(BuzzMachine *bm); typedef void (*BMSetNumTracks)(BuzzMachine *bm, int num); typedef void *(*BMSetCallbacks)(BuzzMachine *bm, CHostCallbacks *callbacks); // windows plugin API functions extern void bmlw_set_master_info(long bpm, long tpb, long srat); extern BuzzMachineHandle *bmlw_open(char *bm_file_name); extern void bmlw_close(BuzzMachineHandle *bmh); extern int bmlw_get_machine_info(BuzzMachineHandle *bmh, BuzzMachineProperty key, void *value); extern int bmlw_get_global_parameter_info(BuzzMachineHandle *bmh,int index,BuzzMachineParameter key,void *value); extern int bmlw_get_track_parameter_info(BuzzMachineHandle *bmh,int index,BuzzMachineParameter key,void *value); extern int bmlw_get_attribute_info(BuzzMachineHandle *bmh,int index,BuzzMachineAttribute key,void *value); extern const char *bmlw_describe_global_value(BuzzMachineHandle *bmh, int const param,int const value); extern const char *bmlw_describe_track_value(BuzzMachineHandle *bmh, int const param,int const value); extern BuzzMachine *bmlw_new(BuzzMachineHandle *bmh); extern void bmlw_free(BuzzMachine *bm); extern void bmlw_init(BuzzMachine *bm, unsigned long blob_size, unsigned char *blob_data); extern void *bmlw_get_track_parameter_location(BuzzMachine *bm,int track,int index); extern int bmlw_get_track_parameter_value(BuzzMachine *bm,int track,int index); extern void bmlw_set_track_parameter_value(BuzzMachine *bm,int track,int index,int value); extern void *bmlw_get_global_parameter_location(BuzzMachine *bm,int index); extern int bmlw_get_global_parameter_value(BuzzMachine *bm,int index); extern void bmlw_set_global_parameter_value(BuzzMachine *bm,int index,int value); extern void *bmlw_get_attribute_location(BuzzMachine *bm,int index); extern int bmlw_get_attribute_value(BuzzMachine *bm,int index); extern void bmlw_set_attribute_value(BuzzMachine *bm,int index,int value); extern void bmlw_tick(BuzzMachine *bm); extern int bmlw_work(BuzzMachine *bm,float *psamples, int numsamples, int const mode); extern int bmlw_work_m2s(BuzzMachine *bm,float *pin, float *pout, int numsamples, int const mode); extern void bmlw_stop(BuzzMachine *bm); extern void bmlw_attributes_changed(BuzzMachine *bm); extern void bmlw_set_num_tracks(BuzzMachine *bm, int num); extern void bmlw_set_callbacks(BuzzMachine *bm, CHostCallbacks *callbacks); // native plugin API functions extern BMSetMasterInfo bmln_set_master_info; extern BMOpen bmln_open; extern BMClose bmln_close; extern BMGetMachineInfo bmln_get_machine_info; extern BMGetGlobalParameterInfo bmln_get_global_parameter_info; extern BMGetTrackParameterInfo bmln_get_track_parameter_info; extern BMGetAttributeInfo bmln_get_attribute_info; extern BMDescribeGlobalValue bmln_describe_global_value; extern BMDescribeTrackValue bmln_describe_track_value; extern BMNew bmln_new; extern BMFree bmln_free; extern BMInit bmln_init; extern BMGetTrackParameterLocation bmln_get_track_parameter_location; extern BMGetTrackParameterValue bmln_get_track_parameter_value; extern BMSetTrackParameterValue bmln_set_track_parameter_value; extern BMGetGlobalParameterLocation bmln_get_global_parameter_location; extern BMGetGlobalParameterValue bmln_get_global_parameter_value; extern BMSetGlobalParameterValue bmln_set_global_parameter_value; extern BMGetAttributeLocation bmln_get_attribute_location; extern BMGetAttributeValue bmln_get_attribute_value; extern BMSetAttributeValue bmln_set_attribute_value; extern BMTick bmln_tick; extern BMWork bmln_work; extern BMWorkM2S bmln_work_m2s; extern BMStop bmln_stop; extern BMAttributesChanged bmln_attributes_changed; extern BMSetNumTracks bmln_set_num_tracks; extern BMSetCallbacks bmln_set_callbacks; //#ifdef __cplusplus //} //#endif #endif // BML_H bml-0.6.1/src/Makefile.in0000644042355400116100000006646611701127005012067 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = bmltest_info$(EXEEXT) bmltest_process$(EXEEXT) subdir = src DIST_COMMON = $(libbml_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(dlldir)" \ "$(DESTDIR)$(libbmldir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = @USE_X86_TRUE@am__DEPENDENCIES_2 = \ @USE_X86_TRUE@ $(top_builddir)/dllwrapper/wine/libloader.la libbml_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) am_libbml_la_OBJECTS = bml.lo libbml_la_OBJECTS = $(am_libbml_la_OBJECTS) AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) am__v_lt_0 = --silent libbml_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libbml_la_LDFLAGS) $(LDFLAGS) -o $@ PROGRAMS = $(noinst_PROGRAMS) am_bmltest_info_OBJECTS = bmltest_info.$(OBJEXT) bmltest_info_OBJECTS = $(am_bmltest_info_OBJECTS) bmltest_info_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) libbml.la am_bmltest_process_OBJECTS = bmltest_process.$(OBJEXT) bmltest_process_OBJECTS = $(am_bmltest_process_OBJECTS) bmltest_process_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) libbml.la DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_$(V)) am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) am__v_CC_0 = @echo " CC " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_$(V)) am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) am__v_CCLD_0 = @echo " CCLD " $@; AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libbml_la_SOURCES) $(bmltest_info_SOURCES) \ $(bmltest_process_SOURCES) DIST_SOURCES = $(libbml_la_SOURCES) $(bmltest_info_SOURCES) \ $(bmltest_process_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive DATA = $(dll_DATA) HEADERS = $(libbml_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARCH_CCASFLAGS = @ARCH_CCASFLAGS@ ARCH_CFLAGS = @ARCH_CFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BML_CFLAGS = @BML_CFLAGS@ BML_CXXFLAGS = @BML_CXXFLAGS@ BML_LIBS = @BML_LIBS@ BML_MAJOR_VERSION = @BML_MAJOR_VERSION@ BML_MICRO_VERSION = @BML_MICRO_VERSION@ BML_MINOR_VERSION = @BML_MINOR_VERSION@ BML_VERSION = @BML_VERSION@ BML_VERSION_INFO = @BML_VERSION_INFO@ BML_VERSION_NUMBER = @BML_VERSION_NUMBER@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ locv_path = @locv_path@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = BuzzMachineLoader @USE_X86_FALSE@DLLWRAPPER_LIB = @USE_X86_TRUE@DLLWRAPPER_LIB = $(top_builddir)/dllwrapper/wine/libloader.la lib_LTLIBRARIES = libbml.la AM_CPPFLAGS = \ -I$(top_srcdir)/dllwrapper/wine \ -I$(top_srcdir)/src/BuzzMachineLoader \ -I$(top_srcdir)/src \ -DNATIVE_BML_DIR="\"$(pkglibdir)\"" AM_CFLAGS = $(PTHREAD_CFLAGS) $(BML_CFLAGS) $(ARCH_CFLAGS) libbmldir = $(includedir)/libbml libbml_HEADERS = bml.h ./BuzzMachineLoader/BuzzMachineLoader.h libbml_la_SOURCES = bml.c libbml_la_LIBADD = $(LIBM) $(PTHREAD_LIBS) $(BML_LIBS) $(DLLWRAPPER_LIB) libbml_la_LDFLAGS = \ -export-symbols-regex ^_?\(bml_\|bmlw_\|bmln_\).* \ -version-info @BML_VERSION_INFO@ bmltest_info_SOURCES = bmltest_info.c bmltest_info.h bmltest_info_LDADD = $(LIBM) $(PTHREAD_LIBS) $(BML_LIBS) libbml.la bmltest_process_SOURCES = bmltest_process.c bmltest_process.h bmltest_process_LDADD = $(LIBM) $(PTHREAD_LIBS) $(BML_LIBS) libbml.la @USE_X86_TRUE@dlldir = $(libdir)/win32 @USE_X86_TRUE@dll_DATA = BuzzMachineLoader.dll # unconditionally dist the dll EXTRA_DIST = BuzzMachineLoader.dll all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libbml.la: $(libbml_la_OBJECTS) $(libbml_la_DEPENDENCIES) $(AM_V_CCLD)$(libbml_la_LINK) -rpath $(libdir) $(libbml_la_OBJECTS) $(libbml_la_LIBADD) $(LIBS) clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list bmltest_info$(EXEEXT): $(bmltest_info_OBJECTS) $(bmltest_info_DEPENDENCIES) @rm -f bmltest_info$(EXEEXT) $(AM_V_CCLD)$(LINK) $(bmltest_info_OBJECTS) $(bmltest_info_LDADD) $(LIBS) bmltest_process$(EXEEXT): $(bmltest_process_OBJECTS) $(bmltest_process_DEPENDENCIES) @rm -f bmltest_process$(EXEEXT) $(AM_V_CCLD)$(LINK) $(bmltest_process_OBJECTS) $(bmltest_process_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bml.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bmltest_info.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bmltest_process.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dllDATA: $(dll_DATA) @$(NORMAL_INSTALL) test -z "$(dlldir)" || $(MKDIR_P) "$(DESTDIR)$(dlldir)" @list='$(dll_DATA)'; test -n "$(dlldir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dlldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(dlldir)" || exit $$?; \ done uninstall-dllDATA: @$(NORMAL_UNINSTALL) @list='$(dll_DATA)'; test -n "$(dlldir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(dlldir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(dlldir)" && rm -f $$files install-libbmlHEADERS: $(libbml_HEADERS) @$(NORMAL_INSTALL) test -z "$(libbmldir)" || $(MKDIR_P) "$(DESTDIR)$(libbmldir)" @list='$(libbml_HEADERS)'; test -n "$(libbmldir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libbmldir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(libbmldir)" || exit $$?; \ done uninstall-libbmlHEADERS: @$(NORMAL_UNINSTALL) @list='$(libbml_HEADERS)'; test -n "$(libbmldir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(libbmldir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(libbmldir)" && rm -f $$files # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(dlldir)" "$(DESTDIR)$(libbmldir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstPROGRAMS mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dllDATA install-libbmlHEADERS install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-dllDATA uninstall-libLTLIBRARIES \ uninstall-libbmlHEADERS .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool clean-noinstPROGRAMS ctags \ ctags-recursive distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dllDATA install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-libbmlHEADERS install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am uninstall-dllDATA \ uninstall-libLTLIBRARIES uninstall-libbmlHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: bml-0.6.1/src/bml.c0000644042355400116100000005111011666207747010742 00000000000000/* $Id: bml.c 3724 2011-12-02 17:50:30Z ensonic $ * * Buzz Machine Loader * Copyright (C) 2006 Buzztard team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #include "config.h" #ifdef HAVE_X86 #include "win32.h" #include "windef.h" #include "ldt_keeper.h" #endif /* HAVE_X86 */ #include #define BML_C #include "bml.h" // buzz machine loader handle and dll handling #ifdef HAVE_X86 static HINSTANCE emu_dll=0L; static ldt_fs_t *ldt_fs; #define LoadDLL(name) LoadLibraryA(name) #define GetSymbol(dll,name) GetProcAddress(dll,name) #define FreeDLL(dll) FreeLibrary(dll) #define BMLX(a) fptr_ ## a // FIXME: without the mutex and the Check_FS_Segment() things are obviously faster // it seems to work more or less, but some songs crash when disposing them without // without the Check_FS_Segment(ldt_fs) #if 0 static pthread_mutex_t ldt_mutex = PTHREAD_MUTEX_INITIALIZER; #define win32_prolog(_nop_) \ pthread_mutex_lock(&ldt_mutex); \ Check_FS_Segment(ldt_fs) #define win32_eliplog(_nop_) \ pthread_mutex_unlock(&ldt_mutex) #else #define win32_prolog(_nop_) \ Check_FS_Segment(ldt_fs) #define win32_eliplog(_nop_) \ do {} while(0) #endif #endif /* HAVE_X86 */ static void *emu_so=NULL; /* we can configure the packge with --enable-debug to get LOG defined * if log is defined logging is compiled in otherwise out * if it is in we can still control the amount of logging by setting bits in * BML_DEBUG: * 1 : only logging from the windows adapter (BuzzMachineLoader.dll) * 2 : only logging from bml and dllwrapper */ #ifdef LOG #include #include static double _first_ts = 0.0; static double _get_timestamp (void) { struct timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts); return (((double) ts.tv_sec+ (double) ts.tv_nsec * 1.0e-9) - _first_ts); } static void _log_stdout_printf (const char *file, const int line, const char *fmt, ...) { va_list ap; if(file) printf ("%10.4lf: %s:%d: ", _get_timestamp(), file, line); else printf ("%10.4lf: ", _get_timestamp()); va_start(ap, fmt); vprintf (fmt, ap); va_end(ap); } static void _log_null_printf (const char *file, const int line, const char *fmt, ...) { } void (*_log_printf)(const char *file, const int line, const char *fmt, ...)=_log_null_printf; # define TRACE(...) _log_printf(__FILE__,__LINE__,__VA_ARGS__) #else # define TRACE(...) #endif typedef void (*BMLDebugLogger)(char *str); typedef void (*BMSetLogger)(BMLDebugLogger func); #ifdef HAVE_X86 // windows plugin API method pointers BMSetLogger BMLX(bmlw_set_logger); BMSetMasterInfo BMLX(bmlw_set_master_info); BMOpen BMLX(bmlw_open); BMClose BMLX(bmlw_close); BMGetMachineInfo BMLX(bmlw_get_machine_info); BMGetGlobalParameterInfo BMLX(bmlw_get_global_parameter_info); BMGetTrackParameterInfo BMLX(bmlw_get_track_parameter_info); BMGetAttributeInfo BMLX(bmlw_get_attribute_info); BMNew BMLX(bmlw_new); BMFree BMLX(bmlw_free); BMInit BMLX(bmlw_init); BMGetTrackParameterLocation BMLX(bmlw_get_track_parameter_location); BMGetTrackParameterValue BMLX(bmlw_get_track_parameter_value); BMSetTrackParameterValue BMLX(bmlw_set_track_parameter_value); BMGetGlobalParameterLocation BMLX(bmlw_get_global_parameter_location); BMGetGlobalParameterValue BMLX(bmlw_get_global_parameter_value); BMSetGlobalParameterValue BMLX(bmlw_set_global_parameter_value); BMGetAttributeLocation BMLX(bmlw_get_attribute_location); BMGetAttributeValue BMLX(bmlw_get_attribute_value); BMSetAttributeValue BMLX(bmlw_set_attribute_value); BMTick BMLX(bmlw_tick); BMWork BMLX(bmlw_work); BMWorkM2S BMLX(bmlw_work_m2s); BMStop BMLX(bmlw_stop); BMAttributesChanged BMLX(bmlw_attributes_changed); BMSetNumTracks BMLX(bmlw_set_num_tracks); BMDescribeGlobalValue BMLX(bmlw_describe_global_value); BMDescribeTrackValue BMLX(bmlw_describe_track_value); BMSetCallbacks BMLX(bmlw_set_callbacks); #endif /* HAVE_X86 */ // native plugin API method pointers BMSetLogger bmln_set_logger; BMSetMasterInfo bmln_set_master_info; BMOpen bmln_open; BMClose bmln_close; BMGetMachineInfo bmln_get_machine_info; BMGetGlobalParameterInfo bmln_get_global_parameter_info; BMGetTrackParameterInfo bmln_get_track_parameter_info; BMGetAttributeInfo bmln_get_attribute_info; BMNew bmln_new; BMFree bmln_free; BMInit bmln_init; BMGetTrackParameterLocation bmln_get_track_parameter_location; BMGetTrackParameterValue bmln_get_track_parameter_value; BMSetTrackParameterValue bmln_set_track_parameter_value; BMGetGlobalParameterLocation bmln_get_global_parameter_location; BMGetGlobalParameterValue bmln_get_global_parameter_value; BMSetGlobalParameterValue bmln_set_global_parameter_value; BMGetAttributeLocation bmln_get_attribute_location; BMGetAttributeValue bmln_get_attribute_value; BMSetAttributeValue bmln_set_attribute_value; BMTick bmln_tick; BMWork bmln_work; BMWorkM2S bmln_work_m2s; BMStop bmln_stop; BMAttributesChanged bmln_attributes_changed; BMSetNumTracks bmln_set_num_tracks; BMDescribeGlobalValue bmln_describe_global_value; BMDescribeTrackValue bmln_describe_track_value; BMSetCallbacks bmln_set_callbacks; #ifdef HAVE_X86 // passthrough functions // global API void bmlw_set_master_info(long bpm, long tpb, long srat) { win32_prolog(); BMLX(bmlw_set_master_info(bpm,tpb,srat)); win32_eliplog(); } // library api BuzzMachineHandle *bmlw_open(char *bm_file_name) { BuzzMachineHandle *bmh; win32_prolog(); bmh=BMLX(bmlw_open(bm_file_name)); win32_eliplog(); return(bmh); } void bmlw_close(BuzzMachineHandle *bmh) { win32_prolog(); BMLX(bmlw_close(bmh)); win32_eliplog(); } int bmlw_get_machine_info(BuzzMachineHandle *bmh, BuzzMachineProperty key, void *value) { int ret; win32_prolog(); ret=BMLX(bmlw_get_machine_info(bmh,key,value)); win32_eliplog(); return(ret); } int bmlw_get_global_parameter_info(BuzzMachineHandle *bmh,int index,BuzzMachineParameter key,void *value) { int ret; win32_prolog(); ret=BMLX(bmlw_get_global_parameter_info(bmh,index,key,value)); win32_eliplog(); return(ret); } int bmlw_get_track_parameter_info(BuzzMachineHandle *bmh,int index,BuzzMachineParameter key,void *value) { int ret; win32_prolog(); ret=BMLX(bmlw_get_track_parameter_info(bmh,index,key,value)); win32_eliplog(); return(ret); } int bmlw_get_attribute_info(BuzzMachineHandle *bmh,int index,BuzzMachineAttribute key,void *value) { int ret; win32_prolog(); ret=BMLX(bmlw_get_attribute_info(bmh,index,key,value)); win32_eliplog(); return(ret); } const char *bmlw_describe_global_value(BuzzMachineHandle *bmh, int const param,int const value) { const char *ret; win32_prolog(); ret=BMLX(bmlw_describe_global_value(bmh,param,value)); win32_eliplog(); return(ret); } const char *bmlw_describe_track_value(BuzzMachineHandle *bmh, int const param,int const value) { const char *ret; win32_prolog(); ret=BMLX(bmlw_describe_track_value(bmh,param,value)); win32_eliplog(); return(ret); } // instance api BuzzMachine *bmlw_new(BuzzMachineHandle *bmh) { BuzzMachine *bm; win32_prolog(); bm=BMLX(bmlw_new(bmh)); win32_eliplog(); return(bm); } void bmlw_free(BuzzMachine *bm) { win32_prolog(); BMLX(bmlw_free(bm)); win32_eliplog(); } void bmlw_init(BuzzMachine *bm, unsigned long blob_size, unsigned char *blob_data) { win32_prolog(); BMLX(bmlw_init(bm,blob_size,blob_data)); win32_eliplog(); } void *bmlw_get_track_parameter_location(BuzzMachine *bm,int track,int index) { void *ret; win32_prolog(); ret=BMLX(bmlw_get_track_parameter_location(bm,track,index)); win32_eliplog(); return(ret); } int bmlw_get_track_parameter_value(BuzzMachine *bm,int track,int index) { int ret; win32_prolog(); ret=BMLX(bmlw_get_track_parameter_value(bm,track,index)); win32_eliplog(); return(ret); } void bmlw_set_track_parameter_value(BuzzMachine *bm,int track,int index,int value) { win32_prolog(); BMLX(bmlw_set_track_parameter_value(bm,track,index,value)); win32_eliplog(); } void *bmlw_get_global_parameter_location(BuzzMachine *bm,int index) { void *ret; win32_prolog(); ret=BMLX(bmlw_get_global_parameter_location(bm,index)); win32_eliplog(); return(ret); } int bmlw_get_global_parameter_value(BuzzMachine *bm,int index) { int ret; win32_prolog(); ret=BMLX(bmlw_get_global_parameter_value(bm,index)); win32_eliplog(); return(ret); } void bmlw_set_global_parameter_value(BuzzMachine *bm,int index,int value) { win32_prolog(); BMLX(bmlw_set_global_parameter_value(bm,index,value)); win32_eliplog(); } void *bmlw_get_attribute_location(BuzzMachine *bm,int index) { void *ret; win32_prolog(); ret=BMLX(bmlw_get_attribute_location(bm,index)); win32_eliplog(); return(ret); } int bmlw_get_attribute_value(BuzzMachine *bm,int index) { int ret; win32_prolog(); ret=BMLX(bmlw_get_attribute_value(bm,index)); win32_eliplog(); return(ret); } void bmlw_set_attribute_value(BuzzMachine *bm,int index,int value) { win32_prolog(); BMLX(bmlw_set_attribute_value(bm,index,value)); win32_eliplog(); } void bmlw_tick(BuzzMachine *bm) { win32_prolog(); BMLX(bmlw_tick(bm)); win32_eliplog(); } int bmlw_work(BuzzMachine *bm,float *psamples, int numsamples, int const mode) { int ret; win32_prolog(); ret=BMLX(bmlw_work(bm,psamples,numsamples,mode)); win32_eliplog(); return(ret); } int bmlw_work_m2s(BuzzMachine *bm,float *pin, float *pout, int numsamples, int const mode) { int ret; win32_prolog(); ret=BMLX(bmlw_work_m2s(bm,pin,pout,numsamples,mode)); win32_eliplog(); return(ret); } void bmlw_stop(BuzzMachine *bm) { win32_prolog(); BMLX(bmlw_stop(bm)); win32_eliplog(); } void bmlw_attributes_changed(BuzzMachine *bm) { win32_prolog(); BMLX(bmlw_attributes_changed(bm)); win32_eliplog(); } void bmlw_set_num_tracks(BuzzMachine *bm, int num) { win32_prolog(); BMLX(bmlw_set_num_tracks(bm,num)); win32_eliplog(); } void bmlw_set_callbacks(BuzzMachine *bm, CHostCallbacks *callbacks) { win32_prolog(); // @todo: remove after rebuild if(BMLX(bmlw_set_callbacks)!=NULL) BMLX(bmlw_set_callbacks(bm,callbacks)); win32_eliplog(); } #endif /* HAVE_X86 */ // wrapper management static void bml_stdout_logger(char *str) { #ifdef LOG static char lbuf[1000]; static int p=0; int i=0; if(!str) return; while((str[i]!='\0') && (str[i]!='\n')) { if(p<1000) lbuf[p++]=str[i++]; } if(str[i]=='\n') { lbuf[p]='\0'; _log_stdout_printf(NULL,0,"%s\n",lbuf); p=0; } #endif } static void bml_null_logger(char *str) { } int bml_setup(void) { const char *debug_log_flag_str=getenv("BML_DEBUG"); const int debug_log_flags=debug_log_flag_str?atoi(debug_log_flag_str):0; #ifdef LOG _first_ts = _get_timestamp(); if (debug_log_flags&0x2) { _log_printf=_log_stdout_printf; } #endif TRACE("%s\n",__FUNCTION__); #ifdef HAVE_X86 ldt_fs=Setup_LDT_Keeper(); TRACE("%s: wrapper initialized: 0x%p\n",__FUNCTION__,ldt_fs); //Check_FS_Segment(ldt_fs); if(!(emu_dll=LoadDLL("BuzzMachineLoader.dll"))) { TRACE("%s: failed to load window bml\n",__FUNCTION__); return(FALSE); } TRACE("%s: windows bml loaded\n",__FUNCTION__); if(!(BMLX(bmlw_set_logger)=(BMSetLogger)GetSymbol(emu_dll,"bm_set_logger"))) { puts("bm_set_logger is missing");return(FALSE);} if(!(BMLX(bmlw_set_master_info)=(BMSetMasterInfo)GetSymbol(emu_dll,"bm_set_master_info"))) { puts("bm_set_master_info is missing");return(FALSE);} if(!(BMLX(bmlw_open)=(BMOpen)GetSymbol(emu_dll,"bm_open"))) { puts("bm_open is missing");return(FALSE);} if(!(BMLX(bmlw_close)=(BMClose)GetSymbol(emu_dll,"bm_close"))) { puts("bm_close is missing");return(FALSE);} if(!(BMLX(bmlw_get_machine_info)=(BMGetMachineInfo)GetSymbol(emu_dll,"bm_get_machine_info"))) { puts("bm_get_machine_info is missing");return(FALSE);} if(!(BMLX(bmlw_get_global_parameter_info)=(BMGetGlobalParameterInfo)GetSymbol(emu_dll,"bm_get_global_parameter_info"))) { puts("bm_get_global_parameter_info is missing");return(FALSE);} if(!(BMLX(bmlw_get_track_parameter_info)=(BMGetTrackParameterInfo)GetSymbol(emu_dll,"bm_get_track_parameter_info"))) { puts("bm_get_track_parameter_info is missing");return(FALSE);} if(!(BMLX(bmlw_get_attribute_info)=(BMGetAttributeInfo)GetSymbol(emu_dll,"bm_get_attribute_info"))) { puts("bm_get_attribute_info is missing");return(FALSE);} if(!(BMLX(bmlw_describe_global_value)=(BMDescribeGlobalValue)GetSymbol(emu_dll,"bm_describe_global_value"))) { puts("bm_describe_global_value is missing");return(FALSE);} if(!(BMLX(bmlw_describe_track_value)=(BMDescribeTrackValue)GetSymbol(emu_dll,"bm_describe_track_value"))) { puts("bm_describe_track_value is missing");return(FALSE);} if(!(BMLX(bmlw_new)=(BMNew)GetSymbol(emu_dll,"bm_new"))) { puts("bm_new is missing");return(FALSE);} if(!(BMLX(bmlw_free)=(BMFree)GetSymbol(emu_dll,"bm_free"))) { puts("bm_free is missing");return(FALSE);} if(!(BMLX(bmlw_init)=(BMInit)GetSymbol(emu_dll,"bm_init"))) { puts("bm_init is missing");return(FALSE);} if(!(BMLX(bmlw_get_track_parameter_location)=(BMGetTrackParameterLocation)GetSymbol(emu_dll,"bm_get_track_parameter_location"))) { puts("bm_get_track_parameter_location is missing");return(FALSE);} if(!(BMLX(bmlw_get_track_parameter_value)=(BMGetTrackParameterValue)GetSymbol(emu_dll,"bm_get_track_parameter_value"))) { puts("bm_get_track_parameter_value is missing");return(FALSE);} if(!(BMLX(bmlw_set_track_parameter_value)=(BMSetTrackParameterValue)GetSymbol(emu_dll,"bm_set_track_parameter_value"))) { puts("bm_set_track_parameter_value is missing");return(FALSE);} if(!(BMLX(bmlw_get_global_parameter_location)=(BMGetGlobalParameterLocation)GetSymbol(emu_dll,"bm_get_global_parameter_location"))) { puts("bm_get_global_parameter_location is missing");return(FALSE);} if(!(BMLX(bmlw_get_global_parameter_value)=(BMGetGlobalParameterValue)GetSymbol(emu_dll,"bm_get_global_parameter_value"))) { puts("bm_get_global_parameter_value is missing");return(FALSE);} if(!(BMLX(bmlw_set_global_parameter_value)=(BMSetGlobalParameterValue)GetSymbol(emu_dll,"bm_set_global_parameter_value"))) { puts("bm_set_global_parameter_value is missing");return(FALSE);} if(!(BMLX(bmlw_get_attribute_location)=(BMGetAttributeLocation)GetSymbol(emu_dll,"bm_get_attribute_location"))) { puts("bm_get_attribute_location is missing");return(FALSE);} if(!(BMLX(bmlw_get_attribute_value)=(BMGetAttributeValue)GetSymbol(emu_dll,"bm_get_attribute_value"))) { puts("bm_get_attribute_value is missing");return(FALSE);} if(!(BMLX(bmlw_set_attribute_value)=(BMSetAttributeValue)GetSymbol(emu_dll,"bm_set_attribute_value"))) { puts("bm_set_attribute_value is missing");return(FALSE);} if(!(BMLX(bmlw_tick)=(BMTick)GetSymbol(emu_dll,"bm_tick"))) { puts("bm_tick is missing");return(FALSE);} if(!(BMLX(bmlw_work)=(BMWork)GetSymbol(emu_dll,"bm_work"))) { puts("bm_work is missing");return(FALSE);} if(!(BMLX(bmlw_work_m2s)=(BMWorkM2S)GetSymbol(emu_dll,"bm_work_m2s"))) { puts("bm_work_m2s is missing");return(FALSE);} if(!(BMLX(bmlw_stop)=(BMStop)GetSymbol(emu_dll,"bm_stop"))) { puts("bm_stop is missing");return(FALSE);} if(!(BMLX(bmlw_attributes_changed)=(BMAttributesChanged)GetSymbol(emu_dll,"bm_attributes_changed"))) { puts("bm_attributes_changed is missing");return(FALSE);} if(!(BMLX(bmlw_set_num_tracks)=(BMSetNumTracks)GetSymbol(emu_dll,"bm_set_num_tracks"))) { puts("bm_set_num_tracks is missing");return(FALSE);} if(!(BMLX(bmlw_set_callbacks)=(BMSetCallbacks)GetSymbol(emu_dll,"bm_set_callbacks"))) { puts("bm_set_callbacks is missing");return(FALSE);} TRACE("%s: symbols connected\n",__FUNCTION__); BMLX(bmlw_set_logger((debug_log_flags&0x1)?bml_stdout_logger:bml_null_logger)); #endif /* HAVE_X86 */ if(!(emu_so=dlopen(NATIVE_BML_DIR "/libbuzzmachineloader.so",RTLD_LAZY))) { TRACE("%s: failed to load native bml : %s\n",__FUNCTION__,dlerror()); return(FALSE); } TRACE("%s: native bml loaded\n",__FUNCTION__); if(!(bmln_set_logger=(BMSetLogger)dlsym(emu_so,"bm_set_logger"))) { puts("bm_set_logger is missing");return(FALSE);} if(!(bmln_set_master_info=(BMSetMasterInfo)dlsym(emu_so,"bm_set_master_info"))) { puts("bm_set_master_info is missing");return(FALSE);} if(!(bmln_open=(BMOpen)dlsym(emu_so,"bm_open"))) { puts("bm_open is missing");return(FALSE);} if(!(bmln_close=(BMClose)dlsym(emu_so,"bm_close"))) { puts("bm_close is missing");return(FALSE);} if(!(bmln_get_machine_info=(BMGetMachineInfo)dlsym(emu_so,"bm_get_machine_info"))) { puts("bm_get_machine_info is missing");return(FALSE);} if(!(bmln_get_global_parameter_info=(BMGetGlobalParameterInfo)dlsym(emu_so,"bm_get_global_parameter_info"))) { puts("bm_get_global_parameter_info is missing");return(FALSE);} if(!(bmln_get_track_parameter_info=(BMGetTrackParameterInfo)dlsym(emu_so,"bm_get_track_parameter_info"))) { puts("bm_get_track_parameter_info is missing");return(FALSE);} if(!(bmln_get_attribute_info=(BMGetAttributeInfo)dlsym(emu_so,"bm_get_attribute_info"))) { puts("bm_get_attribute_info is missing");return(FALSE);} if(!(bmln_describe_global_value=(BMDescribeGlobalValue)dlsym(emu_so,"bm_describe_global_value"))) { puts("bm_describe_global_value is missing");return(FALSE);} if(!(bmln_describe_track_value=(BMDescribeTrackValue)dlsym(emu_so,"bm_describe_track_value"))) { puts("bm_describe_track_value is missing");return(FALSE);} if(!(bmln_new=(BMNew)dlsym(emu_so,"bm_new"))) { puts("bm_new is missing");return(FALSE);} if(!(bmln_free=(BMFree)dlsym(emu_so,"bm_free"))) { puts("bm_free is missing");return(FALSE);} if(!(bmln_init=(BMInit)dlsym(emu_so,"bm_init"))) { puts("bm_init is missing");return(FALSE);} if(!(bmln_get_track_parameter_location=(BMGetTrackParameterLocation)dlsym(emu_so,"bm_get_track_parameter_location"))) { puts("bm_get_track_parameter_location is missing");return(FALSE);} if(!(bmln_get_track_parameter_value=(BMGetTrackParameterValue)dlsym(emu_so,"bm_get_track_parameter_value"))) { puts("bm_get_track_parameter_value is missing");return(FALSE);} if(!(bmln_set_track_parameter_value=(BMSetTrackParameterValue)dlsym(emu_so,"bm_set_track_parameter_value"))) { puts("bm_set_track_parameter_value is missing");return(FALSE);} if(!(bmln_get_global_parameter_location=(BMGetGlobalParameterLocation)dlsym(emu_so,"bm_get_global_parameter_location"))) { puts("bm_get_global_parameter_location is missing");return(FALSE);} if(!(bmln_get_global_parameter_value=(BMGetGlobalParameterValue)dlsym(emu_so,"bm_get_global_parameter_value"))) { puts("bm_get_global_parameter_value is missing");return(FALSE);} if(!(bmln_set_global_parameter_value=(BMSetGlobalParameterValue)dlsym(emu_so,"bm_set_global_parameter_value"))) { puts("bm_set_global_parameter_value is missing");return(FALSE);} if(!(bmln_get_attribute_location=(BMGetAttributeLocation)dlsym(emu_so,"bm_get_attribute_location"))) { puts("bm_get_attribute_location is missing");return(FALSE);} if(!(bmln_get_attribute_value=(BMGetAttributeValue)dlsym(emu_so,"bm_get_attribute_value"))) { puts("bm_get_attribute_value is missing");return(FALSE);} if(!(bmln_set_attribute_value=(BMSetAttributeValue)dlsym(emu_so,"bm_set_attribute_value"))) { puts("bm_set_attribute_value is missing");return(FALSE);} if(!(bmln_tick=(BMTick)dlsym(emu_so,"bm_tick"))) { puts("bm_tick is missing");return(FALSE);} if(!(bmln_work=(BMWork)dlsym(emu_so,"bm_work"))) { puts("bm_work is missing");return(FALSE);} if(!(bmln_work_m2s=(BMWorkM2S)dlsym(emu_so,"bm_work_m2s"))) { puts("bm_work_m2s is missing");return(FALSE);} if(!(bmln_stop=(BMStop)dlsym(emu_so,"bm_stop"))) { puts("bm_stop is missing");return(FALSE);} if(!(bmln_attributes_changed=(BMAttributesChanged)dlsym(emu_so,"bm_attributes_changed"))) { puts("bm_attributes_changed is missing");return(FALSE);} if(!(bmln_set_num_tracks=(BMSetNumTracks)dlsym(emu_so,"bm_set_num_tracks"))) { puts("bm_set_num_tracks is missing");return(FALSE);} if(!(bmln_set_callbacks=(BMSetCallbacks)dlsym(emu_so,"bm_set_callbacks"))) { puts("bm_set_callbacks is missing");return(FALSE);} TRACE("%s: symbols connected\n",__FUNCTION__); bmln_set_logger((debug_log_flags&0x1)?bml_stdout_logger:bml_null_logger); return(TRUE); } void bml_finalize(void) { #ifdef HAVE_X86 FreeDLL(emu_dll); Restore_LDT_Keeper(ldt_fs); #endif /* HAVE_X86 */ dlclose(emu_so); TRACE("%s: bml unloaded\n",__FUNCTION__); } bml-0.6.1/src/bmltest_info.c0000644042355400116100000000532311666207750012654 00000000000000/* $Id: bmltest_info.c 3724 2011-12-02 17:50:30Z ensonic $ * * Buzz Machine Loader * Copyright (C) 2006 Buzztard team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /** * display machine info block * * invoke it e.g. as * LD_LIBRARY_PATH=".:./BuzzMachineLoader/.libs" ./bmltest_info ../machines/elak_svf.dll * LD_LIBRARY_PATH=".:./BuzzMachineLoader/.libs" ./bmltest_info ../../buzzmachines/Elak/SVF/liblibelak_svf.so * * the dll/so *must* be a buzz-machine, not much error checking ;-) */ #include "config.h" #include #include #include #include #include #include #include #include #include #include "bml.h" static inline double _get_timestamp (void) { #ifdef HAVE_CLOCK_GETTIME struct timespec now; clock_gettime (CLOCK_MONOTONIC, &now); return ((double)now.tv_sec + ((double)now.tv_nsec/1000000000.0)); #else /* GTimeVal now; g_get_current_time (&now); return GST_TIMEVAL_TO_TIME (now); */ return 0UL; #endif } #ifdef HAVE_X86 #define bml(a) bmlw_ ## a #include "bmltest_info.h" #undef bml #endif /* HAVE_X86 */ #define bml(a) bmln_ ## a #include "bmltest_info.h" #undef bml int main( int argc, char **argv ) { setlinebuf(stdout); setlinebuf(stderr); puts("main beg"); if(bml_setup()) { char *lib_name; int sl; int i; #ifdef HAVE_X86 /* FIXME: if people have no real win32 dlls, only emulated things, this will crash here */ bmlw_set_master_info(120,4,44100); #endif bmln_set_master_info(120,4,44100); puts(" master info initialized"); for(i=1;i4) { if(!strcmp(&lib_name[sl-4],".dll")) { #ifdef HAVE_X86 bmlw_test_info(lib_name); #else puts("no dll emulation on non x86 platforms"); #endif /* HAVE_X86 */ } else { bmln_test_info(lib_name); } } } bml_finalize(); } puts("main end"); return 0; } bml-0.6.1/src/BuzzMachineLoader.dll0000644042355400116100000111000011576362477014064 00000000000000MZÿÿ¸@𺴠Í!¸LÍ!This program cannot be run in DOS mode. $zJ¢¯>+Ìü>+Ìü>+Ìü-#¥ü?+Ìü;'Ãü.+Ìü;'“üd+Ìü½#‘ü<+Ìü>+Íü+Ìü>+Ìü:+Ìü;'¬ü"+Ìü;'ü?+ÌüÒ ’ü?+Ìü;'–ü?+ÌüRich>+ÌüPELý¤)Mà!  °ðuHàÀ@Q< 9°@ðБ”.textbss9. à.textÂ¥@° `.rdataVð`À@@.data°9P @À.idataµ @@À.rsrc9 P@@.relocB"°0`@BÌÌÌÌÌéìvé1éŒéW”éÒém†éûé34é:véy«é4YéËéÊRé%/éPàé+ÓéÆ<éàéÜFé­é1éÍ”éX1écõéŽYéuvét£éo-é¸uéåÁé@&éËséFvéêéœvé·%éB¦é…uéÈáé'éôuéIXé„,é_ÝéÊÕéeþé`íé«é¶ é¡äé¬:é‡þéÒ•é‘éˆáéãÀéî‹é?uéô–éßëéÊæéé`Céûév3éA éÌHéG#é’Áéý³éX-éˆéxé­é„Léï”éÚDé•èé éKGé6$éEéÌ$éG/ébOé éHréCEéN,é9”éôEé/?éºìéUíéÚtéÛGé&ßé¡«é¼3éçyéòxéÎéèÁéc¯éîÛé¹Åéþé¿0éªé%céÐAé;:é8é±\éBé'´éEé­—éXïé#xéÎôé¹¼éüé{é*]é‡téÀÿé›té–`é§s錢éwÈéÂ%émVé…é³;é®yéYïéLtéOèéZ'éUWé€véÛèéFPé5té|ìé×Þé¢ìéÍLéØÅé“1éN˜é9[é4Eé¯qéjÏéâé°-é{6éfŽéA»éÜžéçûérLé KéHZés+é.téyréÚéoCéªDé3éÀWé~é–éóré {é—éâÐé™séÈ–éS€é΋é VéDîé&éúVééÀ–é¯sé–Fé¡ÕévséÇKé é-¥é¸ŠéEsénqé)ÏéTUé?³éÊÅée1éP2éû"é¦YéÑ4é,Ýéßé¢Téédré#!éðóéÉõéô¢éétóéu™éJèé›éÆ éáIé Ëé·ëé²3é]‹é8´éæé>åéyìéÔ‡ééZ«éeÌé éËéÆéQ:élÙ釃é§éí–éx’链éŽééŽé4˜éßEéZxé…ëéïé;•éPqéÁ'é,™é¿q鲯é–éøgé#ééžýé¹wéD•é_$é ˆéUÉé°ké{8éÆùéÁþéì³é—é7éÛéÂéÓíéήéY1éä¹éŸiéjbéÕêéð)ékàéÖ'éñÏéôpé·éÒHé=ñéh‹éC éÎAéù€éÔÕé)éÊ’é%ÄéðPéÛ@醴鱟éÌ™éÇ éé}qéÈ¿éÓêé^Béé¦édÖé? éé¥wé ?ékéÖ#éÏoélãéÍpéRêéM&é¸çé·o鞸é9µéé/!éjOéÃéÐoéûèéºoé!‡éüé7óé¢éM#é‘éC‰é¾óééåéœpéo¥éBo镊éŽpéKéFIé‘$é #é÷ÅéòDé«oé¨éÕéNHéùé¤Ì韋éÊOéÅéHé .éf@é¿é,Fé×5éàéÝ£éH•é“‚éqé©Îé4éoÑéJAéu¨éð÷é ÃévÕéµoé<ýéïïéâ‘éÍLéH^éƒ*éNAéé€é†néþé@éõæé€XéÏé&‡éáré| é§Üé‚|éÝIé¨5éc=é¾Ké <é4˜éïé*„é†éPé‹òéF7éé̃é8éRoé ÀéX¡éSD鮂éÙné$<é¯éº#éå·é°ré 6éVCé‘òé–né·ŠérEé+é˜]éùméîé©éÔEéYéºüéeñéPé *évàéÑ é êé§Öé’YémÁéœmé³ÓéŽ.éI÷é”Úé•é Ãéõ<é`hé‹LéHnéaPéÜŠéWéR´éÍéh é#€éîRé[méVéÁl銉é5ˆéÀ—é{;éf:éÉméübéWíéÒ†é=Îé(é“&éÃîéÙféôiéIméjé%<é 9é»-éæ)éÁ?é| éæér?é-èé¨%éCéîé‰<é¤éφé'éé@DéÇlé¶ŒéÑUé<âé…âé;é½<éŒléS>én é© é4éÿ;éúAéÛé é[–éöÍéÑééÁ2éØég@éBåé]|é8³é# é.éYEéôBé_麑é%²éÐôéëŒé–Øéáòé<ÊéÇéVé¨éhÍésÀéîÀé©péôêé¿'é:âéÕ’éàéëéfæéQLéŒÙé7OéÒé­}é(kéóOé.é‰NéäžéŸ<é 7éYké Õék)é&ké1éLÈé³kéRãé‘éÛéC/éÞ:鉋é¤ÏéŸwé:½éÅ:é =ék&鯒éoìél“é÷¸éRé9éÈWéÃÃéîMéété4½éÏéÊ)éÕé€é›méVéAé<é'öé"Zéý&éÈåéujéÎié7éd¥éO7éjéõÞéæéùiév×é!Aéœ égøé‚™ééàéóòéîˆé1éÿéÿ¥éÚ†éUié`AéKÕé¦_éqj霿é%jé2Áé]WéXéã‡é®éù„éhé?^éséeàéP·éUj鶘éq<é¼é·é’2éjéxëé£àéØhéi6é´9éï¹éÖhéåƒé™éû·éö9éaÞé »é§#é’Êéý<éžÔé£Âéþ2éÙé” éoBéºéEGé`žéKþéÖéöéœÈé—eébßé­Yéø;é“dé®{驳é„Ý韋éªféuMéŒé{8éÔéËéì¹é×åéÒÀé]Vé˜ éÃ@ébÞé9¾é„‚éOŠé4héÅ逌é{é6Ké:éŒ7é=éÀhéÝé˜é³Gé>é™é´ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPh\ñjh8ñ‹ @]ƒÁQhÈðè¨åÿÿƒÄ‹Eøƒx,t1‹Eø‹H,ƒ9t&‹ô‹EP‹Mø‹Q,‹P‹Mø‹Q,‹ÿPƒÄ;ôè÷ìÿÿë¸Dn_^[ÄÌ;ìèàìÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQh”ñjhhñ‹D]ƒÂRhÈðèÔäÿÿƒÄ‹Eøƒx,t5‹Eø‹H,ƒ9t*‹ô‹E P‹MQ‹Uø‹B,‹Q‹Uø‹B,‹ÿQƒÄ ;ôèìÿÿë‹EøƒÀ_^[ÄÌ;ìèìÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjÿhîÃd¡Pd‰%ìèSVWQ½ ÿÿÿ¹:¸ÌÌÌÌó«Y‰Mì‹E P‹MQhòjhäñ‹H]ƒÂRhÈðèßãÿÿƒÄƒ}ÿ…ʃ} ÿ…À‹Eìƒx(…hÈñjhäñ¡H]ƒÀPhÈðèœãÿÿƒÄh(èíÿÿƒÄ‰… ÿÿÿÇEüƒ½ ÿÿÿt‹ ÿÿÿèœäÿÿ‰… ÿÿÿë Ç… ÿÿÿ‹… ÿÿÿ‰…ÿÿÿÇEüÿÿÿÿ‹Mì‹•ÿÿÿ‰Q(‹Eì‹H(Qh¨ñjhäñ‹H]ƒÂ RhÈðèãÿÿƒÄ‹Eì‹@(ëD‹Eìƒx,t5‹Eì‹H,ƒ9t*‹ô‹E P‹MQ‹Uì‹B,‹Q‹Uì‹B,‹ÿQ ƒÄ ;ôèVêÿÿë‹EìƒÀ‹Môd‰ _^[Äô;ìè4êÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjÿh Äd¡Pd‰%ìÌSVWQ½(ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mì‹EìÇ,ò‹MìƒÁèíëÿÿÇEü‹MìƒÁè?ìÿÿÇEüÿÿÿÿ‹Eì‹Môd‰ _^[ÄØ;ìè7éÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Møèìÿÿ‹Eƒàt ‹EøPè¦âÿÿƒÄ‹Eø_^[ÄÌ;ìè·èÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Møhœòjhtò¡L]ƒÀPhÈðèÍàÿÿƒÄh`òjhtò¡L]ƒÀPhÈðè«àÿÿƒÄ3À_^[ÄÌ;ìè èÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹M Q‹URhÌòjh ò¡P]ƒÀPhÈðè!àÿÿƒÄ h`òjh ò¡P]ƒÀPhÈðèÿßÿÿƒÄ2À_^[ÄÌ;ìètçÿÿ‹å] ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPh\ñjhìò‹ T]ƒÁQhÈðèxßÿÿƒÄh`òjhìò¡T]ƒÀPhÈðèVßÿÿƒÄ3À_^[ÄÌ;ìèËæÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹M Q‹URhHójhó¡X]ƒÀPhÈðèÁÞÿÿƒÄ _^[ÄÌ;ìè8æÿÿ‹å] ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPhójhhó‹ \]ƒÁQhÈðèHÞÿÿƒÄƒ}t ‹EPèJèÿÿƒÄ_^[ÄÌ;ìè­åÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Møhœòjh ó¡`]ƒÀPhÈðè½ÝÿÿƒÄh`òjh ó¡`]ƒÀPhÈðè›ÝÿÿƒÄ_^[ÄÌ;ìèåÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰MøhœòjhÀó¡d]ƒÀPhÈðèÝÿÿƒÄh`òjhÀó¡d]ƒÀPhÈðèûÜÿÿƒÄ_^[ÄÌ;ìèräÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQhôjhäó‹h]ƒÂRhÈðètÜÿÿƒÄh`òjhäó¡h]ƒÀPhÈðèRÜÿÿƒÄ_^[ÄÌ;ìèÉãÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQhLôjh(ô‹l]ƒÂRhÈðèÄÛÿÿƒÄh`òjh(ô¡l]ƒÀPhÈðè¢ÛÿÿƒÄ_^[ÄÌ;ìèãÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPh˜ôjhdô‹ p]ƒÁQhÈðèÛÿÿƒÄ‹EÁà À_^[ÄÌ;ìè„âÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Møhœòjh¬ô¡t]ƒÀPhÈðèÚÿÿƒÄh`òjh¬ô¡t]ƒÀPhÈðèkÚÿÿƒÄ3À_^[ÄÌ;ìèàáÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰MøhœòjhÔô¡x]ƒÀPhÈðèíÙÿÿƒÄh`òjhÔô¡x]ƒÀPhÈðèËÙÿÿƒÄ3À_^[ÄÌ;ìè@áÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Møhœòjhüô¡|]ƒÀPhÈðèMÙÿÿƒÄ‹Eø‹@_^[ÄÌ;ìè¾àÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPh\õjh(õ‹ €]ƒÁQhÈðèÈØÿÿƒÄh`òjh(õ¡€]ƒÀPhÈðè¦ØÿÿƒÄ3À_^[ÄÌ;ìèàÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹M Q‹URh˜õjhlõ¡„]ƒÀPhÈðèØÿÿƒÄ h`òjhlõ¡„]ƒÀPhÈðèï×ÿÿƒÄ3À_^[ÄÌ;ìèdßÿÿ‹å] ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Møhœòjh¼õ¡ˆ]ƒÀPhÈðèm×ÿÿƒÄh`òjh¼õ¡ˆ]ƒÀPhÈðèK×ÿÿƒÄ3À_^[ÄÌ;ìèÀÞÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EøƒÀ0Phö‹Mø‹Q ‹B(Phèõ‹ Œ]ƒÁQhÈðè½ÖÿÿƒÄ‹EøƒÀ0_^[ÄÌ;ìè.Þÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììØSVWQ½(ÿÿÿ¹6¸ÌÌÌÌó«Y‰Møhœò‹Eø‹H ‹Q(Rhö¡]ƒÀPhÈðè5ÖÿÿƒÄÇEìë ‹EìƒÀ‰Eì}ìs‹Eì‹MøÇD0ëÞ_^[ÄØ;ìèÝÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQhpöjhHö‹”]ƒÂRhÈðè„ÕÿÿƒÄh`òjhHö¡”]ƒÀPhÈðèbÕÿÿƒÄ3À_^[ÄÌ;ìè×Üÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹M Q‹URh°öjhˆö¡˜]ƒÀPhÈðèÑÔÿÿƒÄ h`òjhˆö¡˜]ƒÀPhÈðè¯ÔÿÿƒÄ2À_^[ÄÌ;ìè$Üÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPh ÷jhÜö‹ œ]ƒÁQhÈðè(ÔÿÿƒÄh`òjhÜö¡œ]ƒÀPhÈðèÔÿÿƒÄ_^[ÄÌ;ìè}Ûÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQhD÷jh÷‹ ]ƒÂRhÈðètÓÿÿƒÄh`òjh÷¡ ]ƒÀPhÈðèRÓÿÿƒÄ3À_^[ÄÌ;ìèÇÚÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPhˆ÷jh`÷‹ ¤]ƒÁQhÈðèÈÒÿÿƒÄh`òjh`÷¡¤]ƒÀPhÈðè¦ÒÿÿƒÄ3À_^[ÄÌ;ìèÚÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPhÄ÷jh˜÷‹ ¨]ƒÁQhÈðèÒÿÿƒÄh`òjh˜÷¡¨]ƒÀPhÈðèöÑÿÿƒÄ3À_^[ÄÌ;ìèkÙÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQhøjhÔ÷‹¬]ƒÂRhÈðèdÑÿÿƒÄh`òjhÔ÷¡¬]ƒÀPhÈðèBÑÿÿƒÄ_^[ÄÌ;ìè¹Øÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPhÄ÷jh$ø‹ °]ƒÁQhÈðè¸ÐÿÿƒÄh`òjh$ø¡°]ƒÀPhÈðè–ÐÿÿƒÄ_^[ÄÌ;ìè Øÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹MQ‹UR‹E P‹MQh|øjhPø‹´]ƒÂRhÈðèøÏÿÿƒÄ(h`òjhPø¡´]ƒÀPhÈðèÖÏÿÿƒÄ3À_^[ÄÌ;ìèK×ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹MQ‹UR‹EP‹M Q‹URhàøjh´ø¡¸]ƒÀPhÈðè5ÏÿÿƒÄ,h`òjh´ø¡¸]ƒÀPhÈðèÏÿÿƒÄ_^[ÄÌ;ìèŠÖÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Møhœòjh ù¡¼]ƒÀPhÈðèÎÿÿƒÄh`òjh ù¡¼]ƒÀPhÈðèkÎÿÿƒÄ3À_^[ÄÌ;ìèàÕÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPhxùjhLù‹ À]ƒÁQhÈðèèÍÿÿƒÄh`òjhLù¡À]ƒÀPhÈðèÆÍÿÿƒÄ_^[ÄÌ;ìè=Õÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPh¸ùjhˆù‹ Ä]ƒÁQhÈðè8ÍÿÿƒÄh`òjhˆù¡Ä]ƒÀPhÈðèÍÿÿƒÄ3À_^[ÄÌ;ìè‹Ôÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQhôùjhÄù‹È]ƒÂRhÈðè„ÌÿÿƒÄ_^[ÄÌ;ìèûÓÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPh@újh ú‹ Ì]ƒÁQhÈðèÌÿÿƒÄ‹Eø‹M‰ˆ0 _^[ÄÌ;ìèsÓÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹MQ‹U R‹EPhˆújhLú‹ Ð]ƒÁQhÈðèlËÿÿƒÄ$h`òjhLú¡Ð]ƒÀPhÈðèJËÿÿƒÄ_^[ÄÌ;ìèÁÒÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹MQ‹UR‹E P‹MQhäújh¸ú‹Ô]ƒÂRhÈðè¨ÊÿÿƒÄ(h`òjh¸ú¡Ô]ƒÀPhÈðè†ÊÿÿƒÄ_^[ÄÌ;ìèýÑÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø¶EPhLûjhû‹ Ø]ƒÁQhÈðè÷ÉÿÿƒÄh`òjhû¡Ø]ƒÀPhÈðèÕÉÿÿƒÄ3À_^[ÄÌ;ìèJÑÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹M Q‹URh€ûjh\û¡Ü]ƒÀPhÈðèAÉÿÿƒÄ h`òjh\û¡Ü]ƒÀPhÈðèÉÿÿƒÄ_^[ÄÌ;ìè–Ðÿÿ‹å] ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹M Q‹URh€ûjh°û¡à]ƒÀPhÈðè‘ÈÿÿƒÄ h`òjh°û¡à]ƒÀPhÈðèoÈÿÿƒÄ_^[ÄÌ;ìèæÏÿÿ‹å] ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQhüjhÔû‹ä]ƒÂRhÈðèäÇÿÿƒÄh`òjhÔû¡ä]ƒÀPhÈðèÂÇÿÿƒÄ_^[ÄÌ;ìè9Ïÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹MQ‹U R‹EPhLüjhü‹ è]ƒÁQhÈðè,ÇÿÿƒÄ$h`òjhü¡è]ƒÀPhÈðè ÇÿÿƒÄ_^[ÄÌ;ìèÎÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPh¤üjhtü‹ ì]ƒÁQhÈðèxÆÿÿƒÄh`òjhtü¡ì]ƒÀPhÈðèVÆÿÿƒÄ_^[ÄÌ;ìèÍÍÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPhÜüjh´ü‹ ð]ƒÁQhÈðèÈÅÿÿƒÄh`òjh´ü¡ð]ƒÀPhÈðè¦ÅÿÿƒÄ3À_^[ÄÌ;ìèÍÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPh\õjhìü‹ ô]ƒÁQhÈðèÅÿÿƒÄ‹E‹€ü_^[ÄÌ;ìè†Ìÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPh\õjhý‹ ø]ƒÁQhÈðèˆÄÿÿƒÄh`òjhý¡ø]ƒÀPhÈðèfÄÿÿƒÄ3À_^[ÄÌ;ìèÛËÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP¶MQ‹UR‹E P‹MQhlýjhDý‹ü]ƒÂRhÈðèÇÃÿÿƒÄ(h`òjhDý¡ü]ƒÀPhÈðè¥ÃÿÿƒÄ2À_^[ÄÌ;ìèËÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììØSVWQ½(ÿÿÿ¹6¸ÌÌÌÌó«Y‰MøQ‹ÌèjÉÿÿ‹Møè¨Éÿÿ‹MøèÁÁÿÿ‹Mø‰A‹EøÇ@‹Eø_^[ÄØ;ìè‹Êÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹MøèËÿÿ_^[ÄÌ;ìè.Êÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Møè7Çÿÿ‹Eø_^[ÄÌ;ìèÛÉÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjÿh Äd¡Pd‰%QìèSVWQ½ÿÿÿ¹:¸ÌÌÌÌó«Y‰eð‰Mèj‹MèèrÀÿÿ‰EÜÇEÐÇEü‹EÜPèßÀÿÿƒÄ‰…ÿÿÿMÜQ‹•ÿÿÿR‹MèƒÁèÊÀÿÿ‹EЃÀ‰EЋEÜP調ÿÿƒÄ‰…ÿÿÿMÜQ‹•ÿÿÿR‹MèƒÁè™Àÿÿë5ƒ}Ð~‹EÜPè~ÀÿÿƒÄP‹MèƒÁè÷¿ÿÿj‹EÜP‹MèèøÉÿÿjjè9ÆÿÿÇEüÿÿÿÿ‹EÜR‹ÍP ‚ètÂÿÿXZ‹Môd‰ _^[Äø;ìèÈÿÿ‹å]Ã(‚Üÿÿÿ4‚_PnodeÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Møè¥Æÿÿ‹Eø‹HQèx¿ÿÿƒÄP‹MøƒÁèñ¾ÿÿ‹Eø‹HQèY¾ÿÿƒÄP‹MøƒÁèÖ¾ÿÿj‹Eø‹HQ‹MøèÔÈÿÿ‹EøÇ@_^[ÄÌ;ìèÇÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììØSVWQ½(ÿÿÿ¹6¸ÌÌÌÌó«Y‰MøQ‹ÌEPè¾ÿÿ‹Møè´ÂÿÿEP‹MøƒÁèë½ÿÿ‹Eø_^[ÄØ;ìèÇÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Eø_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EøÇ‹Eø_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹E_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹EƒÀ_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììäSVWQ½ÿÿÿ¹9¸ÌÌÌÌó«Y‰Mø‹Eø‹HQè0½ÿÿƒÄ‹‰Uà‹Eø‹HQè½ÿÿƒÄ‹Uø‹J‰‹Eø‹HQè¼ÿÿƒÄ‹Uø‹J‰‹EøÇ@ë‹Eì‰Eà‹Eø‹Mà;Ht-‹EàPèÔ¼ÿÿƒÄ‹‰Mì‹EàP‹Møè©Äÿÿj‹EàP‹MøèIÆÿÿëÂ_^[Ää;ìèÅÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììØSVWQ½(ÿÿÿ¹6¸ÌÌÌÌó«Y‰MøQ‹ÌEPèr»ÿÿ‹MøèeÅÿÿEP‹MøƒÁèj»ÿÿ‹Eø_^[ÄØ;ìè€Äÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Eø_^[‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPèÆ½ÿÿƒÄ_^[ÄÌ;ìèÚÃÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Møj‹EPèwÃÿÿƒÄ_^[ÄÌ;ìèxÃÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQè*ÂÿÿƒÄ_^[ÄÌ;ìèÃÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPèÙ»ÿÿƒÄ_^[ÄÌ;ìèºÂÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰MøEP‹Møè?Åÿÿ‹Eø_^[ÄÌ;ìèWÂÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPè@¼ÿÿƒÄ_^[ÄÌ;ìèúÁÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Eø_^[‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹EkÀ(PèYÃÿÿƒÄ_^[ÄÀ;ìè\Áÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÐSVW½0ÿÿÿ¹4¸ÌÌÌÌó«‹EPj覷ÿÿƒÄ‰…8ÿÿÿƒ½8ÿÿÿt‹8ÿÿÿ‹U ‹‰‹8ÿÿÿ‰0ÿÿÿë Ç…0ÿÿÿ_^[ÄÐ;ìèÉÀÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹E _^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Eø_^[‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«j‹M輿ÿÿ_^[ÄÀ;ì豿ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Møè)Ãÿÿ‹Eƒàt ‹EøPè6¹ÿÿƒÄ‹Eø_^[ÄÌ;ìèG¿ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹MøƒÁè;»ÿÿ_^[ÄÌ;ìèë¾ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Møè&¾ÿÿ_^[ÄÌ;ì莾ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Møjj‹MøèÙ»ÿÿ_^[ÄÌ;ìè:¾ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììØSVWQ½(ÿÿÿ¹6¸ÌÌÌÌó«Y‰Mø¶E…ÀuëE‹Eøƒxr<‹Eø‹H‰Mìƒ} v‹E P‹MìQ‹UøƒÂRèFºÿÿƒÄ ‹Eø‹HƒÁQ‹UìR‹Møè&Áÿÿ‹EøÇ@‹E P‹Møè¯½ÿÿ_^[ÄØ;ìè½ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹EP‹M Q‹URèÛºÿÿƒÄ _^[ÄÀ;ìè½ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììØSVWQ½(ÿÿÿ¹6¸ÌÌÌÌó«Y‰MøÆ…/ÿÿÿ‹Eø‹M‰H•/ÿÿÿR‹Møè§·ÿÿEPèO¶ÿÿƒÄ_^[ÄØ;ì苼ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹E‹M Šˆ_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÐSVWQ½0ÿÿÿ¹4¸ÌÌÌÌó«Y‰Mø‹Eøƒxr‹Mø‹Q‰•0ÿÿÿë ‹EøƒÀ‰…0ÿÿÿ‹…0ÿÿÿ_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPèfµÿÿƒÄ_^[ÄÌ;ìèz»ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPh\ñjh,þ‹ ^ƒÁQh¸ý舳ÿÿƒÄ‹Eøƒx,t1‹Eø‹H,ƒ9t&‹ô‹EP‹Mø‹Q,‹P‹Mø‹Q,‹ÿPƒÄ;ôè׺ÿÿë¸(o_^[ÄÌ;ìèÀºÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQh”ñjhXþ‹^ƒÂRh¸ýè´²ÿÿƒÄ‹Eøƒx,t5‹Eø‹H,ƒ9t*‹ô‹E P‹MQ‹Uø‹B,‹Q‹Uø‹B,‹ÿQƒÄ ;ôèÿ¹ÿÿë‹EøƒÀ_^[ÄÌ;ìèç¹ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjÿh>Äd¡Pd‰%ìèSVWQ½ ÿÿÿ¹:¸ÌÌÌÌó«Y‰Mì‹E P‹MQhòjhˆþ‹^ƒÂRh¸ý迱ÿÿƒÄƒ}ÿ…ʃ} ÿ…À‹Eìƒx(…hÈñjhˆþ¡^ƒÀPh¸ýè|±ÿÿƒÄh(èãºÿÿƒÄ‰… ÿÿÿÇEüƒ½ ÿÿÿt‹ ÿÿÿè|²ÿÿ‰… ÿÿÿë Ç… ÿÿÿ‹… ÿÿÿ‰…ÿÿÿÇEüÿÿÿÿ‹Mì‹•ÿÿÿ‰Q(‹Eì‹H(Qh¨ñjhˆþ‹^ƒÂ Rh¸ýèó°ÿÿƒÄ‹Eì‹@(ëD‹Eìƒx,t5‹Eì‹H,ƒ9t*‹ô‹E P‹MQ‹Uì‹B,‹Q‹Uì‹B,‹ÿQ ƒÄ ;ôè6¸ÿÿë‹EìƒÀ‹Môd‰ _^[Äô;ìè¸ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰MøhœòjhÀþ¡ ^ƒÀPh¸ýèͯÿÿƒÄh`òjhÀþ¡ ^ƒÀPh¸ý諯ÿÿƒÄ3À_^[ÄÌ;ìè ·ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹M Q‹URhÌòjhðþ¡^ƒÀPh¸ýè!¯ÿÿƒÄ h`òjhðþ¡^ƒÀPh¸ýèÿ®ÿÿƒÄ2À_^[ÄÌ;ìèt¶ÿÿ‹å] ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPhójh ÿ‹ ^ƒÁQh¸ýèx®ÿÿƒÄƒ}t ‹EPèz¸ÿÿƒÄ_^[ÄÌ;ìèݵÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰MøhœòjhPÿ¡^ƒÀPh¸ýèí­ÿÿƒÄh`òjhPÿ¡^ƒÀPh¸ýèË­ÿÿƒÄ_^[ÄÌ;ìèBµÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Møhœòjhxÿ¡^ƒÀPh¸ýèM­ÿÿƒÄh`òjhxÿ¡^ƒÀPh¸ýè+­ÿÿƒÄ_^[ÄÌ;ì袴ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQhôjh ÿ‹ ^ƒÂRh¸ý褬ÿÿƒÄh`òjh ÿ¡ ^ƒÀPh¸ý肬ÿÿƒÄ_^[ÄÌ;ìèù³ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQhLôjhÔÿ‹$^ƒÂRh¸ýèô«ÿÿƒÄh`òjhÔÿ¡$^ƒÀPh¸ýèÒ«ÿÿƒÄ_^[ÄÌ;ìèI³ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPh˜ôjh‹ (^ƒÁQh¸ýèH«ÿÿƒÄ‹EÁà À_^[ÄÌ;ìè´²ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Møhœòjh8¡,^ƒÀPh¸ý轪ÿÿƒÄh`òjh8¡,^ƒÀPh¸ý蛪ÿÿƒÄ3À_^[ÄÌ;ìè²ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Møhœòjhh¡0^ƒÀPh¸ýèªÿÿƒÄh`òjhh¡0^ƒÀPh¸ýèû©ÿÿƒÄ3À_^[ÄÌ;ìèp±ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EøƒÀ0Phö‹Mø‹Q ‹B(Ph˜‹ 4^ƒÁQh¸ýèm©ÿÿƒÄ‹EøƒÀ0_^[ÄÌ;ìèÞ°ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììØSVWQ½(ÿÿÿ¹6¸ÌÌÌÌó«Y‰Møhœò‹Eø‹H ‹Q(RhÈ¡8^ƒÀPh¸ýèå¨ÿÿƒÄÇEìë ‹EìƒÀ‰Eì}ìs‹Eì‹MøÇD0ëÞ_^[ÄØ;ìè1°ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQhpöjhü‹<^ƒÂRh¸ýè4¨ÿÿƒÄƒ}}‹EiÀ“±9>;0%ÿÿÿë$h`òjhü¡<^ƒÀPh¸ýè÷§ÿÿƒÄ3À_^[ÄÌ;ìèl¯ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹M Q‹URh°öjh,¡@^ƒÀPh¸ýèa§ÿÿƒÄ h`òjh,¡@^ƒÀPh¸ýè?§ÿÿƒÄ2À_^[ÄÌ;ìè´®ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPh ÷jh\‹ D^ƒÁQh¸ý踦ÿÿƒÄh`òjh\¡D^ƒÀPh¸ýè–¦ÿÿƒÄ_^[ÄÌ;ìè ®ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQhD÷jh”‹H^ƒÂRh¸ýè¦ÿÿƒÄh`òjh”¡H^ƒÀPh¸ýèâ¥ÿÿƒÄ3À_^[ÄÌ;ìèW­ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPhˆ÷jhÈ‹ L^ƒÁQh¸ýèX¥ÿÿƒÄh`òjhÈ¡L^ƒÀPh¸ýè6¥ÿÿƒÄ3À_^[ÄÌ;ì諬ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPhÄ÷jhø‹ P^ƒÁQh¸ý訤ÿÿƒÄh`òjhø¡P^ƒÀPh¸ý膤ÿÿƒÄ3À_^[ÄÌ;ìèû«ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQhøjh,‹T^ƒÂRh¸ýèô£ÿÿƒÄh`òjh,¡T^ƒÀPh¸ýèÒ£ÿÿƒÄ_^[ÄÌ;ìèI«ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPhÄ÷jh`‹ X^ƒÁQh¸ýèH£ÿÿƒÄh`òjh`¡X^ƒÀPh¸ýè&£ÿÿƒÄ_^[ÄÌ;ìèªÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹MQ‹UR‹E P‹MQh|øjh”‹\^ƒÂRh¸ý舢ÿÿƒÄ(h`òjh”¡\^ƒÀPh¸ýèf¢ÿÿƒÄ3À_^[ÄÌ;ìèÛ©ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹MQ‹UR‹EP‹M Q‹URhàøjhÈ¡`^ƒÀPh¸ýèÅ¡ÿÿƒÄ,h`òjhÈ¡`^ƒÀPh¸ý裡ÿÿƒÄ_^[ÄÌ;ìè©ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Møhœòjhü¡d^ƒÀPh¸ýè¡ÿÿƒÄh`òjhü¡d^ƒÀPh¸ýèû ÿÿƒÄ3À_^[ÄÌ;ìèp¨ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPhxùjh0‹ h^ƒÁQh¸ýèx ÿÿƒÄh`òjh0¡h^ƒÀPh¸ýèV ÿÿƒÄ_^[ÄÌ;ìèͧÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPh¸ùjhd‹ l^ƒÁQh¸ýèÈŸÿÿƒÄh`òjhd¡l^ƒÀPh¸ý覟ÿÿƒÄ3À_^[ÄÌ;ìè§ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQhôùjh˜‹p^ƒÂRh¸ýèŸÿÿƒÄ_^[ÄÌ;ì苦ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹E£üm_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹E£àm‹E £äm‹E£èm¡èmkÀ<‹ àm¯ äm™÷ù£ìmÇðmÛèmÚ5ìmÙôm‹ô‹ èmÿ4“;ô襥ÿÿ_^[ÄÀ;ìè•¥ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«ƒ}t{‹Eƒxt‹E‹HQè ¥ÿÿƒÄ‹Eƒxt‹E‹HQè¨ÿÿƒÄ‹Eƒ8t7‹ô‹E‹QÿØ‘;ôèø¤ÿÿhHjh<¡€^ƒÀPhÐèOÿÿƒÄ‹EPèÔ§ÿÿƒÄ_^[ÄÀ;ì躤ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììäSVW½ÿÿÿ¹9¸ÌÌÌÌó«jjèŸÿÿƒÄ‰EøÇEìÇEà‹ô‹EPÿà‘;ôè;¤ÿÿ‹Mø‰‹Eøƒ8u:‹EPhÐjhÄ‹ „^ƒÁ QhÐ耜ÿÿƒÄ‹EøPèk›ÿÿƒÄ3Àé\‹EPh°jhÄ‹ „^ƒÁQhÐèFœÿÿƒÄ‹EPèŸÿÿƒÄ‹Mø‰A‹ôh¤‹Eø‹QÿÜ‘;ôè¡£ÿÿ‰Eì‹ôh”‹Eø‹QÿÜ‘;ôè„£ÿÿ‰Eàƒ}ìu5hdjhÄ¡„^ƒÀPhÐèÒ›ÿÿƒÄ‹EøP轚ÿÿƒÄ3À鮃}àu5h,jhÄ¡„^ƒÀ$PhÐè—›ÿÿƒÄ‹EøP肚ÿÿƒÄ3Àés‹Eø‹Mà‰HhjhÄ¡„^ƒÀ)PhÐèY›ÿÿƒÄ‹ôÿUì;ôèÔ¢ÿÿ‹Mø‰AhøjhÄ¡„^ƒÀ-PhÐè%›ÿÿƒÄ‹Eø‹Hƒy uv‹Eø‹Hƒyt/h¸jhÄ¡„^ƒÀ2PhÐèëšÿÿƒÄ‹Eø‹HÇA‹Eø‹Hƒyt/h|jhÄ¡„^ƒÀ6PhÐè°šÿÿƒÄ‹Eø‹HÇA‹EøPèU›ÿÿƒÄ‹Mø‰A‹UøƒztBjj‹Eø‹HQ豟ÿÿƒÄ ‹Eø‹Hƒyt!‹Eø‹H‹Qƒzt‹Eø‹H‹Q‹Eø‹J‰H ë2h\jhÄ¡„^ƒÀEPhÐè$šÿÿƒÄ‹EøPè™ÿÿƒÄ3Àë‹Eø_^[Ää;ì舡ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììèSVW½ÿÿÿ¹:¸ÌÌÌÌó«ÇEøƒ}u3Àé|‹E‰Eì‹E‰Eà‹E ‰…ÿÿÿƒ½ÿÿÿ‡P‹ÿÿÿÿ$µ«‹E‹H‹U싉é8‹E‹H‹Uì‹A‰é%‹E‹H‹Uì‹A‰é‹E‹H‹Uì‹A ‰éÿ‹E‹H‹Uì‹A‰éì‹E‹H‹Uì‹A‰éÙ‹E‹H‹Uì‹A‰鯋E‹H‹Uì‹A ‰鳋E‹H‹Uà‹A(‰é ‹E‹H‹Uà‹A,‰é‹E‹H‹Uà‹A0‰ë}‹E‹H‹Uà‹A4‰ëm‹Eà‹M‹Q‰ë`‹Eƒx t ‹Eì‹M‹Q ‰ë ‹EìÇë?‹Eƒx u ‹EìÇë"‹E‹H‹Qƒât ‹EìÇë ‹EìÇëÇEø‹Eø_^[‹å]Ãaªsª†ª™ª¬ª¿ªÒªåªøª ««.«>«K«l«ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«ƒ}u3Àë*‹E‹H‹U ;Q|3Àë‹EP‹MQ‹U R‹EPè1ƒÄ_^[ÄÀ;ìèçÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììèSVW½ÿÿÿ¹:¸ÌÌÌÌó«ÇEø‹E‰Eì‹E‰Eà‹E‰…ÿÿÿƒ½ÿÿÿ‡Ý‹ÿÿÿÿ$%®‹E‹H‹Q‹E ‹ ‚‹U싉鼋E‹H‹Q‹E ‹ ‚‹Uà‹A‰é ‹E‹H‹Q‹E ‹ ‚‹Uà‹A‰é„‹E‹H‹Q‹E ‹ ‚‹Uì‹A ‰ëk‹E‹H‹Q‹E ‹ ‚‹Uì‹A‰ëR‹E‹H‹Q‹E ‹ ‚‹Uì‹A‰ë9‹E‹H‹Q‹E ‹ ‚‹Uì‹A‰ë ‹E‹H‹Q‹E ‹ ‚‹Uì‹A‰ëÇEø‹Eø_^[‹å]ÃD­_­{­—­°­É­â­û­ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«ƒ}u3Àë3‹E‹H‹U ;Q|3Àë!‹EP‹MQ‹U‹B‹HM Q‹URèøýÿÿƒÄ_^[ÄÀ;ìè®›ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììèSVW½ÿÿÿ¹:¸ÌÌÌÌó«ÇEøƒ}u3Àé­‹E‹H‹U ;Q |3À阋E‰Eì‹E‰Eà‹E‰…ÿÿÿƒ½ÿÿÿwp‹ÿÿÿÿ$°‹E‹H‹Q$‹E ‹ ‚‹Uà‹‰ëR‹E‹H‹Q$‹E ‹ ‚‹Uì‹A‰ë9‹E‹H‹Q$‹E ‹ ‚‹Uì‹A‰ë ‹E‹H‹Q$‹E ‹ ‚‹Uì‹A ‰ëÇEø‹Eø_^[‹å]⯺¯Ó¯ì¯ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹E‹H‹U ;Q|¡t^ë*‹ô‹EP‹M Q‹U‹B‹H ‹U‹B‹P ‹‹ÊÿP8;ôèì™ÿÿ_^[ÄÀ;ìèÜ™ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹E‹H‹U ;Q|¡x^ë1‹ô‹EP‹M‹Q‹BE P‹M‹Q‹B ‹M‹Q‹J ‹ÿP8;ôèU™ÿÿ_^[ÄÀ;ìèE™ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìì0SVW½Ðþÿÿ¹L¸ÌÌÌÌó«ƒ}„ª‹E‹H‰Møhtjhh¡ˆ^ƒÀPhÐè?‘ÿÿƒÄ‹E‹H ‰äþÿÿ‹•äþÿÿ‰•Øþÿÿƒ½Øþÿÿt#‹ôj‹…Øþÿÿ‹‹Øþÿÿÿ;ô芘ÿÿ‰…Ðþÿÿë Ç…Ðþÿÿ‹E‹H‰ðþÿÿ‹•ðþÿÿRè9’ÿÿƒÄƒ}ø„‹E‹H‹Q‰Uì‹EìPhHjhh‹ ˆ^ƒÁ QhÐè™ÿÿƒÄ‹Eì%ÿƒø}a‹Eø‰…ÿÿÿ‹ÿÿÿ‰üþÿÿƒ½üþÿÿtj‹üþÿÿèâŽÿÿ‰…Ðþÿÿë Ç…Ðþÿÿh jhh¡ˆ^ƒÀ PhÐè-ÿÿƒÄë_‹Eø‰… ÿÿÿ‹ ÿÿÿ‰ÿÿÿƒ½ÿÿÿtj‹ÿÿÿèÏšÿÿ‰…Ðþÿÿë Ç…Ðþÿÿhjhh¡ˆ^ƒÀPhÐèÌÿÿƒÄ‹EPèQšÿÿƒÄ_^[Ä0;ìè7—ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹MøèuŒÿÿ‹Eƒàt ‹EøPèVÿÿƒÄ‹Eø_^[ÄÌ;ìèg–ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EøÇ€_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Møè,˜ÿÿ‹Eƒàt ‹EøPè¦ÿÿƒÄ‹Eø_^[ÄÌ;ìè·•ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EøÇh_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììSVW½èþÿÿ¹F¸ÌÌÌÌó«jjèÓÿÿƒÄ‰Eø‹Eø‹M‰‹Eø‹‹Uø‹A‰B‹Eø‹‹ôÿQ;ôè•ÿÿ‹Uø‰B hÀjh¸¡Œ^ƒÀ PhÐèVÿÿƒÄhè½–ÿÿƒÄ‰…üþÿÿƒ½üþÿÿt!‹Eø‹HQ‹Uø‹B P‹üþÿÿèÉ‘ÿÿ‰…èþÿÿë Ç…èþÿÿ‹èþÿÿ‰ðþÿÿ‹Uø‹…ðþÿÿ‰B‹EøÇ@‹Eø‹H‹QRhœjh¸¡Œ^ƒÀPhÐèÁŒÿÿƒÄ‹Eø‹H‹Qâÿƒú”h0 è–ÿÿƒÄ‰…ÿÿÿƒ½ÿÿÿt/‹EøƒÀP‹Mø‹QR‹Eø‹H Q‹Uø‹BP‹ÿÿÿèd•ÿÿ‰…èþÿÿë Ç…èþÿÿ‹èþÿÿ‰ÿÿÿ‹Uø‹…ÿÿÿ‰Bhtjh¸¡Œ^ƒÀPhÐèŒÿÿƒÄéh4 è|•ÿÿƒÄ‰…,ÿÿÿƒ½,ÿÿÿt/‹EøƒÀP‹Mø‹QR‹Eø‹H Q‹Uø‹BP‹,ÿÿÿèýÿÿ‰…èþÿÿë Ç…èþÿÿ‹èþÿÿ‰ ÿÿÿ‹Uø‹… ÿÿÿ‰BhPjh¸¡Œ^ƒÀPhÐ膋ÿÿƒÄ‹Eø‹H ÇAàm‹Eø‹H ‹Uø‹B‰A‹Eø_^[Ä;ìèÞ’ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Møèˆÿÿ‹EøÇh‹Eø‹M‰H‹Eø‹M ‰H‹EøÇ€0 ‹Eø‹M‰H ‹EøÇ@$‹EøÇ@ ‹EøÇ@‹EøÇ@‹EøÇ@‹EøÇ@‹EøÇ@(‹Eø‹M‰H,‹Eø_^[ÄÌ;ìè{‘ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EøÇà‹Eø_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Møèr‡ÿÿ‹EøÇ€‹Eø‹M‰H‹Eø‹M ‰H‹Eø‹M‰H ‹EøÇ@$‹EøÇ@ ‹EøÇ@‹EøÇ@‹EøÇ@‹EøÇ@‹EøÇ@(‹Eø‹M‰H,‹Eø_^[ÄÌ;ìè8ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Eø‹M‰ˆø‹Eø‹M ‰ˆü‹Eø_^[‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììSVW½ÿÿÿ¹@¸ÌÌÌÌó«‹EP‹M QhŒ jh€ ‹^ƒÂRhÐèɇÿÿƒÄÇEøë ‹EøƒÀ‰Eø‹E‹H‹Uø;Q }%‹E‹H‹Q$‹Eø‹ ‚‹Q R‹EøP‹MQè¿…ÿÿƒÄ ëÄh` jh€ ¡^ƒÀ PhÐèb‡ÿÿƒÄÇEàƒ} tYƒ}tSjè¹ÿÿƒÄ‰…ÿÿÿƒ½ÿÿÿt‹E P‹MQ‹ÿÿÿè\‘ÿÿ‰…ÿÿÿë Ç…ÿÿÿ‹•ÿÿÿ‰•ÿÿÿ‹…ÿÿÿ‰Eà‹ô‹EàP‹M‹Q ‹E‹H ‹ÿR;ôèeŽÿÿh4 jh€ ¡^ƒÀPhÐ輆ÿÿƒÄ‹E‹H‹QâÿƒúŒƒ‹E‹Hƒ¹0 tt‹ôjÿjÿ‹E‹H‹U‹B‹‹ÈÿR@;ôèüÿÿ‹M‰A‹Eƒxt‹M‹Q‹B‰…ÿÿÿë Ç…ÿÿÿ‹ÿÿÿQh jh€ ‹^ƒÂRhÐè!†ÿÿƒÄ‹E‹H ‹U‹B ‹‹ô‹ÈÿR;ôèŒÿÿhÜ jh€ ¡^ƒÀ%PhÐèã…ÿÿƒÄ‹E‹H‹ô‹Q R‹E‹H ‹U‹B ‹‹ÈÿR$;ôèDÿÿ‹E‹H‹Q Rh¤ jh€ ¡^ƒÀ-PhÐè‘…ÿÿƒÄÇEøë ‹EøƒÀ‰Eø‹E‹H‹Uø;Q}a‹E‹H‹Q‹Eø‹ ‚‹Qƒât%‹E‹H‹Q‹Eø‹ ‚‹QR‹EøP‹MQè«„ÿÿƒÄ ë#‹E‹H‹Q‹Eø‹ ‚‹QR‹EøP‹MQ膄ÿÿƒÄ ëˆh| jh€ ¡^ƒÀ;PhÐèî„ÿÿƒÄ‹E‹Hƒy Ž$‹E‹HƒyŽ‹E‹H‹QR‹E‹H‹Q R‹E‹H‹QRh8 jh€ ¡^ƒÀ>PhÐ莄ÿÿƒÄ ÇEìë ‹EìƒÀ‰Eì‹E‹H‹Uì;Q°ÇEøë ‹EøƒÀ‰Eø‹E‹H‹Uø;Q‡‹E‹H‹U‹B‹PUø‹A‹ ‹Qƒât2‹E‹H‹U‹B‹PUø‹A‹ ‹QR‹EøP‹MìQ‹URè°ˆÿÿƒÄë0‹E‹H‹U‹B‹PUø‹A‹ ‹QR‹EøP‹MìQ‹URè~ˆÿÿƒÄé^ÿÿÿé5ÿÿÿh jh€ ¡^ƒÀJPhÐ蘃ÿÿƒÄ‹E‹H ‹U‹B ‹‹ô‹ÈÿR;ôè‹ÿÿhä jh€ ¡^ƒÀTPhÐèZƒÿÿƒÄ‹E‹H‹QƒâtDhÈ jh€ ¡^ƒÀWPhÐè*ƒÿÿƒÄh`òjh€ ¡^ƒÀXPhÐèƒÿÿƒÄ_^[Ä;ìèŠÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììôSVW½ ÿÿÿ¹=¸ÌÌÌÌó«ÇEø‹E‹H‹U ;Q|3Àé,‹E‹H‹U;Q|3Àé‹E‹H ƒyu3Àé‹E‹H ‹Q‰Uìƒ}ìu"hÐ jh¨ ¡”^ƒÀ PhÐè ÿÿƒÄÇEàë ‹EàƒÀ‰Eà‹Eà;E ¯ÇEÔë ‹EÔƒÀ‰EÔ‹E‹H‹UÔ;Q†‹E‹H‹U‹B‹PUÔ‹A‹ ‹‰• ÿÿÿƒ½ ÿÿÿ|Xƒ½ ÿÿÿ~ ƒ½ ÿÿÿt%ëD‹Eà;E u‹EÔ;Eu‹Eì‰Eøë ‹EìƒÀ‰Eìë!‹Eà;E u‹EÔ;Eu‹Eì‰Eøë ‹EìƒÀ‰Eìé_ÿÿÿé<ÿÿÿ‹Eø_^[Äô;ì資ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÜSVW½$ÿÿÿ¹7¸ÌÌÌÌó«ÇEø‹E‹H‹U;Q|3Àë{‹E‹H ƒyu3Àëk‹EP‹M Q‹URè¨ÿÿƒÄ ‰Eì‹E‹H‹U‹B‹PU‹A‹ ‹‰•$ÿÿÿƒ½$ÿÿÿ|(ƒ½$ÿÿÿ~ ƒ½$ÿÿÿt ë‹E춉Møë ‹Eì·‰Mø‹Eø_^[ÄÜ;ì臆ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÐSVW½0ÿÿÿ¹4¸ÌÌÌÌó«‹E‹H‹U;Q|ëv‹E‹H ƒyuëh‹EP‹M Q‹URè³~ÿÿƒÄ ‰Eø‹E‹H‹U‹B‹PU‹A‹ ‹‰•0ÿÿÿƒ½0ÿÿÿ|(ƒ½0ÿÿÿ~ ƒ½0ÿÿÿt ë‹EøŠMˆë ‹Eøf‹Mf‰_^[ÄÐ;ìè•…ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììèSVW½ÿÿÿ¹:¸ÌÌÌÌó«ÇEø‹E‹H‹U ;Q|3Àé΋E‹H ƒyu3À黋E‹H ‹Q‰Uìƒ}ìu"h jhø ¡˜^ƒÀPhÐèQ}ÿÿƒÄÇEàë ‹EàƒÀ‰Eà‹Eà;E j‹E‹H‹Q‹Eà‹ ‚‹‰•ÿÿÿƒ½ÿÿÿ|Hƒ½ÿÿÿ~ ƒ½ÿÿÿtë4‹Eà;E u‹Eì‰Eøë ‹EìƒÀ‰Eìë‹Eà;E u‹Eì‰Eøë ‹EìƒÀ‰Eìë…‹Eø_^[Äè;ìèA„ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÜSVW½$ÿÿÿ¹7¸ÌÌÌÌó«ÇEø‹E‹H‹U ;Q|3Àën‹E‹H ƒyu3Àë^‹E P‹MQè(}ÿÿƒÄ‰Eì‹E‹H‹Q‹E ‹ ‚‹‰•$ÿÿÿƒ½$ÿÿÿ|(ƒ½$ÿÿÿ~ ƒ½$ÿÿÿt ë‹E춉Møë ‹Eì·‰Mø‹Eø_^[ÄÜ;ìè4ƒÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÐSVW½0ÿÿÿ¹4¸ÌÌÌÌó«‹E‹H‹U ;Q|ëi‹E‹H ƒyuë[‹E P‹MQèC|ÿÿƒÄ‰Eø‹E‹H‹Q‹E ‹ ‚‹‰•0ÿÿÿƒ½0ÿÿÿ|(ƒ½0ÿÿÿ~ ƒ½0ÿÿÿt ë‹EøŠMˆë ‹Eøf‹Mf‰_^[ÄÐ;ìèR‚ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹E‹H‹U ;Q |3Àë‹E‹H ƒy u3Àë‹E‹H ‹Q ‹E ‚_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹E‹H‹U ;Q |3Àë‹E‹H ƒy u3Àë‹E‹H ‹Q ‹E ‹‚_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹E‹H‹U ;Q |ë ‹E‹H ƒy uë‹E‹H ‹Q ‹E ‹M‰ ‚_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹E‹Hƒy ~>‹E‹H ‹U‹B ‹‹ô‹ÈÿR;ô胀ÿÿhÜ jhH ¡œ^ƒÀPhÐèÚxÿÿƒÄ_^[ÄÀ;ìèQ€ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹E‹H ‹U‹B ‹‹ô‹ÈÿR;ôèïÿÿ_^[ÄÀ;ìèßÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVW½4ÿÿÿ¹3¸ÌÌÌÌó«ÆEû‹ô‹EP‹MQ‹U R‹E‹H ‹U‹B ‹‹ÈÿR ;ôèoÿÿˆEûŠEû_^[ÄÌ;ìèYÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVW½4ÿÿÿ¹3¸ÌÌÌÌó«ÆEû‹ô‹EP‹MQ‹UR‹E P‹M‹Q ‹E‹H ‹ÿR;ôèí~ÿÿˆEûŠEû_^[ÄÌ;ìè×~ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹E‹H ‹U‹B ‹‹ô‹ÈÿR;ôè~ÿÿ_^[ÄÀ;ìèo~ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹E Ph| jhd ‹  ^ƒÁQhÐè}vÿÿƒÄ‹ô‹E P‹M‹Q ‹E‹H ‹ÿR$;ôèæ}ÿÿ_^[ÄÀ;ìèÖ}ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹E‹M ‰H_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPh¤ hˆ è©ÿÿƒÄ 3À_^[ÄÌ;ìè}ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQhè hÀ è5ÿÿƒÄ3À_^[ÄÌ;ìèª|ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQh0 h èÅ~ÿÿƒÄ3À_^[ÄÌ;ìè:|ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Møhp hX è]~ÿÿƒÄ3À_^[ÄÌ;ìèÒ{ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹M Q‹URhÄ h èñ}ÿÿƒÄ2À_^[ÄÌ;ìèf{ÿÿ‹å] ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPhä hˆ è‰}ÿÿƒÄ 3À_^[ÄÌ;ìèþzÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹M Q‹URh8hè}ÿÿƒÄ_^[ÄÌ;ìèˆzÿÿ‹å] ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPh„h`è©|ÿÿƒÄ ƒ}t ‹EPè«|ÿÿƒÄ_^[ÄÌ;ìèzÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Møh¤hX è-|ÿÿƒÄ_^[ÄÌ;ìè¤yÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Møh¼hX èÍ{ÿÿƒÄ_^[ÄÌ;ìèDyÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQhhØèe{ÿÿƒÄ_^[ÄÌ;ìèÜxÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQhTh(èõzÿÿƒÄ_^[ÄÌ;ìèlxÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPh˜hpè‰zÿÿƒÄ 3À_^[ÄÌ;ìèþwÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰MøhÀhX èzÿÿƒÄ3À_^[ÄÌ;ìè’wÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰MøhàhX è½yÿÿƒÄ3À_^[ÄÌ;ìè2wÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰MøhhX è]yÿÿƒÄ3À_^[ÄÌ;ìèÒvÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPhDh$èùxÿÿƒÄ 3À_^[ÄÌ;ìènvÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹M Q‹URh¤hlèxÿÿƒÄ3À_^[ÄÌ;ìèöuÿÿ‹å] ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰MøhÈhX èxÿÿƒÄ3À_^[ÄÌ;ìè’uÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰MøhìhX è½wÿÿƒÄ3À_^[ÄÌ;ìè2uÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Møh hX è]wÿÿƒÄ_^[ÄÌ;ìèÔtÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQhXh0èõvÿÿƒÄ3À_^[ÄÌ;ìèjtÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹M Q‹URh¸hxèvÿÿƒÄ2À_^[ÄÌ;ìèösÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPhôhØèvÿÿƒÄ _^[ÄÌ;ìèsÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQhLhè¥uÿÿƒÄ3À_^[ÄÌ;ìèsÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPh”hpè9uÿÿƒÄ 3À_^[ÄÌ;ìè®rÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPhÔh´èÉtÿÿƒÄ 3À_^[ÄÌ;ìè>rÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQh0høèUtÿÿƒÄ_^[ÄÌ;ìèÌqÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPhTh´èésÿÿƒÄ _^[ÄÌ;ìè`qÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹MQ‹UR‹E P‹MQhÄhxèisÿÿƒÄ3À_^[ÄÌ;ìèÞpÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹MQ‹UR‹EP‹M Q‹URh<hèèårÿÿƒÄ _^[ÄÌ;ìè\pÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Møh`hX è}rÿÿƒÄ3À_^[ÄÌ;ìèòoÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPh¤h„èrÿÿƒÄ _^[ÄÌ;ìèoÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPhèhÈè©qÿÿƒÄ 3À_^[ÄÌ;ìèoÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQh4h è5qÿÿƒÄ_^[ÄÌ;ìè¬nÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPhxhXèÉpÿÿƒÄ _^[ÄÌ;ìè@nÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹MQ‹U R‹EPhèh¤èMpÿÿƒÄ_^[ÄÌ;ìèÄmÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹MQ‹UR‹E P‹MQhdhèÉoÿÿƒÄ_^[ÄÌ;ìè@mÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø¶EPh¬hˆèXoÿÿƒÄ 3À_^[ÄÌ;ìèÍlÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹M Q‹URhhÔèánÿÿƒÄ_^[ÄÌ;ìèXlÿÿ‹å] ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹M Q‹URh4hÔèqnÿÿƒÄ_^[ÄÌ;ìèèkÿÿ‹å] ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQhxhPènÿÿƒÄ_^[ÄÌ;ìè|kÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹M Q‹URhÜh¤è‘mÿÿƒÄ_^[ÄÌ;ìèkÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPh hè)mÿÿƒÄ _^[ÄÌ;ìè jÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPhhhDè¹lÿÿƒÄ 3À_^[ÄÌ;ìè.jÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPhˆh$èIlÿÿƒÄ 3À_^[ÄÌ;ìè¾iÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPh¬h$èÙkÿÿƒÄ 3À_^[ÄÌ;ìèNiÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP¶MQ‹UR‹E P‹MQh0hÐèXkÿÿƒÄ2À_^[ÄÌ;ìèÍhÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììØSVW½(÷ÿÿ¹6¸ÌÌÌÌó«¡àb‰EüE‰Eôƒ=üm„—ƒ}t&‹EP‹MQ‹U R‹EPhXì÷ÿÿQè¼hÿÿƒÄë ‹EP‹M Q‹URhL…ì÷ÿÿPèšhÿÿƒÄ‹ô…ì÷ÿÿPÿümƒÄ;ôè hÿÿ‹EôP‹MQ•ì÷ÿÿRèÂjÿÿƒÄ ‹ô…ì÷ÿÿPÿümƒÄ;ôèÛgÿÿëjƒ}t$‹EP‹MQ‹U R‹EPhXh`èC`ÿÿƒÄë‹EP‹M Q‹URhLh`è#`ÿÿƒÄ‹EôP‹MQh`èR]ÿÿƒÄ h`è[jÿÿƒÄÇEôR‹ÍP~ãèaÿÿXZ‹MüèÛ]ÿÿ_^[ÄØ;ìè?gÿÿ‹å]Æãì÷ÿÿ’ãstrÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQhìjhЋ¤^ƒÂRhhèä^ÿÿƒÄ‹E Pj‹MQè©_ÿÿƒÄ _^[ÄÌ;ìèIfÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹E P‹MQhìjh‹¨^ƒÂRhhèD^ÿÿƒÄ_^[ÄÌ;ìè»eÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹MøèNgÿÿ‹EøÇ8‹Eø‹M‰H‹EøÇ@‹EøÇ@ ‹Eø_^[ÄÌ;ìè5eÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹MøèÞZÿÿ‹Eƒàt ‹EøPè¦^ÿÿƒÄ‹Eø_^[ÄÌ;ìè·dÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EøÇD‹Eø_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Møèþeÿÿ‹EøÇ8‹EøÇ@‹Eø‹M‰H‹Eø‹M ‰H ‹Eø_^[ÄÌ;ìèæcÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EøÇ8_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Eøƒx„¨‹Eø‹H ;M r7‹E P‹Mø‹QR‹EPèë`ÿÿƒÄ ‹Eø‹HM ‹Uø‰J‹Eø‹H +M ‹Uø‰J ëa‹E P‹MQh”jhp‹¬^ƒÂRhhèU[ÿÿƒÄ‹Eø‹H Q‹Uø‹BP‹MQè†`ÿÿƒÄ ‹Eø‹H‹UøJ ‹Eø‰H‹EøÇ@ é…‹Eøƒxt?‹E P‹MQhHjhp‹¬^ƒÂRhhèæZÿÿƒÄ‹E Pj‹MQè«[ÿÿƒÄ ë=‹E P‹MQhìjhp‹¬^ƒÂRhhè§ZÿÿƒÄ‹E Pj‹MQèl[ÿÿƒÄ _^[ÄÌ;ìè bÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹MøèVaÿÿ‹EøÇÄ‹Eø‹M‰H‹EøÇ@‹EøÇ@ ‹Eø_^[ÄÌ;ìèEaÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Møèæcÿÿ‹Eƒàt ‹EøPè¶ZÿÿƒÄ‹Eø_^[ÄÌ;ìèÇ`ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EøÇЋEø_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Møè`ÿÿ‹EøÇÄ‹EøÇ@‹EøÇ@‹EøÇ@ ‹Eø_^[ÄÌ;ìèô_ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Eø‹@ _^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Eø‹@_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EøÇÄ_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹E ‹M ÙØAØM‹UÙ‹EƒÀ‰E‹E ƒÀ‰E ‹Eƒè‰EuÐ_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹E ‹M ÙØAØM‹UØ‹EÙ‹MƒÁ‰M‹E ƒÀ‰E ‹Eƒè‰EuË_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÐSVW½0ÿÿÿ¹4¸ÌÌÌÌó«‹E ÙEØÝ]ô‹M ƒÁ‰M ÝEô‹EÙÝEô‹EÙX‹EƒÀ‰E‹Eƒè‰EuÇ_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹E ÙEØ‹MØ‹UÙ‹E ƒÀ‰E ‹MƒÁ‰M‹Eƒè‰EuÑ_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìììSVW½ÿÿÿ¹;¸ÌÌÌÌó«ÙEÝ]ôƒ}r`‹EÁè‰Eè‹E ÙÜMô‹MÙ‹E Ù@ÜMô‹MÙY‹E Ù@ÜMô‹MÙY‹E Ù@ ÜMô‹MÙY ‹E ƒÀ‰E ‹EƒÀ‰E‹Eèƒè‰Eèu©‹Eƒà‰EÜ‹E܉…ÿÿÿ‹M܃é‰M܃½ÿÿÿt!‹E ÙÜMô‹MÙ‹UƒÂ‰U‹E ƒÀ‰E ëÄ_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìììSVW½ÿÿÿ¹;¸ÌÌÌÌó«ÙEÝ]ôƒ}‚“‹EÁè‰Eè‹E ÙÜMôÙ•ÿÿÿ‹MØ‹UÙ‹E Ù@ÜMôÙ•ÿÿÿ‹MØA‹UÙZ‹E Ù@ÜMôÙ•ÿÿÿ‹MØA‹UÙZ‹E Ù@ ÜMôÙ•ÿÿÿ‹MØA ‹UÙZ ‹E ƒÀ‰E ‹EƒÀ‰E‹Eèƒè‰Eè…vÿÿÿ‹Eƒà‰EÜ‹E܉…ÿÿÿ‹M܃é‰M܃½ÿÿÿt,‹E ÙÜMôÙ•ÿÿÿ‹MØ‹UÙ‹E ƒÀ‰E ‹MƒÁ‰Më¹_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìì SVW½ôþÿÿ¹C¸ÌÌÌÌó«ÙEÝ]ôƒ}‚’‹EÑè‰Eè‹E ÙÜMôÝ]ØÝEØÙ•ôþÿÿ‹EØ‹MÙÝEØÙ•ôþÿÿ‹EØ@‹MÙY‹E Ù@ÜMôÝ]ØÝEØÙ•ôþÿÿ‹EØ@‹MÙYÝEØÙ•ôþÿÿ‹EØ@ ‹MÙY ‹E ƒÀ‰E ‹EƒÀ‰E‹Eèƒè‰Eè…vÿÿÿ‹Eƒà‰EÌ‹Ẻ…ôþÿÿ‹M̃é‰M̃½ôþÿÿtG‹E ÙÜMôÝ]¼‹M ƒÁ‰M ÝE¼Ù•ôþÿÿ‹EØ‹MÙÝE¼Ù•ôþÿÿ‹EØ@‹MÙY‹EƒÀ‰Eëž_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹EÁàP‹M Q‹URèØVÿÿƒÄ _^[ÄÀ;ìèYÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjÿh[Äd¡Pd‰%ìüSVWQ½øþÿÿ¹?¸ÌÌÌÌó«Y‰Mìƒ}uëXŠE P‹MQÿÿÿè™Zÿÿ‰…üþÿÿ‹•üþÿÿ‰•øþÿÿÇEü‹…øþÿÿP‹MìƒÁè°OÿÿÇEüÿÿÿÿÿÿÿè™Tÿÿ‹MìèTÿÿ‹Môd‰ _^[Ä;ìè7Xÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹MøèúYÿÿ‹EøŠM ˆH‹Eø_^[ÄÌ;ìè®Wÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììüSVWQ½ÿÿÿ¹?¸ÌÌÌÌó«Y‰MøEìP‹MøƒÁè¦Xÿÿëj…ÿÿÿPMìèœOÿÿ…ÿÿÿP‹MøƒÁèZÿÿPMìèbPÿÿ¶È…Ét9‹EPMìèvLÿÿ‹ÈèZÿÿ…Àu ‹EìP ÿÿÿQ‹MøƒÁèâPÿÿ‹Møè¡Rÿÿëë”R‹ÍP÷óè•PÿÿXZ_^[Äü;ìèÈVÿÿ‹å]Âÿóìÿÿÿ ôiÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììðSVWQ½ÿÿÿ¹<¸ÌÌÌÌó«Y‰MøEìP‹MøƒÁè†Wÿÿëj…ÿÿÿPMìè|Nÿÿ… ÿÿÿP‹MøƒÁèñXÿÿPMìèBOÿÿ¶È…Ét.‹EPMìèVKÿÿ‹Èè_Yÿÿ…Àu‹E PMìè?Kÿÿ‹ÈèePÿÿëëŸR‹ÍP õè€OÿÿXZ_^[Äð;ìè³Uÿÿ‹å]Âõìÿÿÿ õiÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììðSVWQ½ÿÿÿ¹<¸ÌÌÌÌó«Y‰MøEìP‹MøƒÁèvVÿÿëj…ÿÿÿPMìèlMÿÿ… ÿÿÿP‹MøƒÁèáWÿÿPMìè2Nÿÿ¶È…Ét1‹EPMìèFJÿÿ‹ÈèOXÿÿ…ÀuMìè3JÿÿŠM ˆH‹MøèyPÿÿëëœR‹ÍPöèmNÿÿXZ_^[Äð;ìè Tÿÿ‹å]Â'öìÿÿÿ3öiÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììðSVWQ½ÿÿÿ¹<¸ÌÌÌÌó«Y‰Mø…ÿÿÿP‹MøƒÁèóVÿÿP‹MøƒÁèAMÿÿ¶È…Éu‹°^ƒÂRh@hèPUÿÿƒÄ ƒ}uj… ÿÿÿP‹MøƒÁè#Lÿÿ鬋Eø‹HQ‹Uø‹BPhôjhÔ‹ °^ƒÁ Qh@èLÿÿƒÄ‹Eøƒx…¦‹EøƒxuM‹MøƒÁèÔHÿÿ¶@…Àt‹EP‹M Q‹UR‹EøƒÀ(PèÍHÿÿƒÄë‹EP‹M Q‹UR‹EøƒÀ(PèâHÿÿƒÄëK‹MøƒÁè‡Hÿÿ¶@…Àt‹EP‹M Q‹UR‹EøƒÀ(Pè VÿÿƒÄë‹EP‹M Q‹UR‹EøƒÀ(Pè£IÿÿƒÄ饋EøƒxuO‹MøƒÁè.Hÿÿ¶@…Àt‹EP‹M ÑáQ‹UR‹EøƒÀ(PèWHÿÿƒÄë‹EP‹M Q‹UR‹EøƒÀ(PèŸLÿÿƒÄëM‹MøƒÁèßGÿÿ¶@…Àt‹EP‹M ÑáQ‹UR‹EøƒÀ(PèIÿÿƒÄë‹EP‹M Q‹UR‹EøƒÀ(PèýNÿÿƒÄ‹Eø‹HƒÁ‹Uø‰Jj…,ÿÿÿP‹MøƒÁèrJÿÿ_^[Äð;ìè Rÿÿ‹å] ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììäSVWQ½ÿÿÿ¹9¸ÌÌÌÌó«Y‰Mø‹Eø‹HQ‹UR‹E P‹MQhÀjh ‹´^ƒÂRh@è‰IÿÿƒÄ$‹Eƒàt ‹Eøƒxt‹E P‹MøƒÁ(Q‹URè:HÿÿƒÄ ‹ô‹EP‹M Q‹UR‹Eø‹H‹Uø‹B‹‹ÈÿRT;ôèÀPÿÿˆEï… ÿÿÿP‹MøƒÁèúQÿÿ‹‹Uø‰J‹EøÇ@ŠEï_^[Ää;ìè†Pÿÿ‹å] ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììäSVWQ½ÿÿÿ¹9¸ÌÌÌÌó«Y‰Mø‹Eø‹HQ‹UR‹EP‹M Q‹URh jhࡸ^ƒÀPh@èVHÿÿƒÄ(‹Eƒàt"‹Eøƒxt‹EÑàP‹MøƒÁ(Q‹U RèGÿÿƒÄ ‹ô‹EP‹MQ‹U R‹Eø‹H‹Uø‹B‹‹ÈÿRX;ôè‹OÿÿˆEï… ÿÿÿP‹MøƒÁèÅPÿÿ‹‹Uø‰J‹EøÇ@ŠEï_^[Ää;ìèQOÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììäSVWQ½ÿÿÿ¹9¸ÌÌÌÌó«Y‰MøhPjh0¡¼^ƒÀPh@è=GÿÿƒÄ‹Eø‹H‹Q‹Eø‹H‹I‹‹ôÿ’ˆ;ôè¡Nÿÿ‹Mø‰A$‹EøÇ@… ÿÿÿP‹MøƒÁèÎOÿÿ‹‹Uø‰J‹EøÇ@‹EøÇ@ ƒ}t EïP‹Mè~Nÿÿ‹ô‹EP‹Mø‹Q‹Eø‹H‹ÿR\;ôè3NÿÿR‹ÍP­üèßGÿÿXZ_^[Ää;ìèNÿÿ‹å]µüïÿÿÿÁüverÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹ôj‹EP‹Mø‹‹Møÿ;ôèmMÿÿ_^[ÄÌ;ìè]Mÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Møj‹MèMÿÿ‹ô‹EP‹Mø‹Q‹Eø‹H‹ÿR`;ôèîLÿÿ_^[ÄÌ;ìèÞLÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹ôjEP‹Mø‹‹Møÿ;ôè}Lÿÿ_^[ÄÌ;ìèmLÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø¶E3É…À•ÁA‹Uø‰J‹Eø‹Mø‹Q‰P ‹ôŠEP‹Mø‹Q‹Eø‹H‹ÿRP;ôèêKÿÿ_^[ÄÌ;ìèÚKÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììüSVWQ½ÿÿÿ¹?¸ÌÌÌÌó«Y‰Mø…ÿÿÿP‹MøƒÁèÃLÿÿ‹‹Uø‰J‹EøÇ@‹Eøƒx ~g‹Eø‹Mø‹Q ‰P‹ô‹Eø‹HQ‹Uø‹B$P‹Mø‹Q‹B‹Mø‹Q‹J‹ÿœ;ôèKÿÿ‹EøƒxŸÁ‹ôQ‹Uø‹B‹Mø‹I‹ÿRP;ôè÷JÿÿéEìP‹MøƒÁè2Lÿÿëj…ÿÿÿPMìè(Cÿÿ… ÿÿÿP‹MøƒÁèMÿÿPMìèîCÿÿ¶È…ÉtwMìè@ÿÿ¶@…Àtb‹EøÇ@‹ô‹Eø‹HQ‹Uø‹B$P‹Mø‹Q‹B‹Mø‹Q‹J‹ÿœ;ôècJÿÿ‹EøƒxŸÁ‹ôQ‹Uø‹B‹Mø‹I‹ÿRP;ôè>JÿÿëeéVÿÿÿ‹EøÇ@‹ô‹Eø‹HQ‹Uø‹B$P‹Mø‹Q‹B‹Mø‹Q‹J‹ÿœ;ôèüIÿÿ‹EøƒxŸÁ‹ôQ‹Uø‹B‹Mø‹I‹ÿRP;ôè×IÿÿR‹ÍPèƒCÿÿXZ_^[Äü;ìè¶Iÿÿ‹å]ÃìÿÿÿiÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EøÇ,ò‹MøƒÁè]Fÿÿ_^[ÄÌ;ìèÒHÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹ôŠE P‹MQ‹Uø‹B‹Mø‹I‹ÿR;ôètHÿÿ_^[ÄÌ;ìèdHÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹ô‹EP‹Mø‹Q‹Eø‹H‹ÿR;ôèøGÿÿ_^[ÄÌ;ìèèGÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹ô‹E P‹MQ‹Uø‹B‹Mø‹I‹ÿR ;ôè„Gÿÿ_^[ÄÌ;ìètGÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹ôŠE P‹MQ‹Uø‹B‹Mø‹I‹ÿR;ôèGÿÿ_^[ÄÌ;ìèôFÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹ô‹EP‹M Q‹UR‹Eø‹H‹Uø‹B‹‹ÈÿR;ôè~Fÿÿ_^[ÄÌ;ìènFÿÿ‹å] ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹ô‹EP‹M Q‹UR‹Eø‹H‹Uø‹B‹‹ÈÿR;ôèþEÿÿ_^[ÄÌ;ìèîEÿÿ‹å] ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹ô‹EP‹MQ‹U R‹EP‹Mø‹Q‹Eø‹H‹ÿR;ôè|Eÿÿ_^[ÄÌ;ìèlEÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹ô‹EP‹Mø‹Q‹Eø‹H‹ÿR$;ôèEÿÿ_^[ÄÌ;ìèøDÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹ôŠEP‹Mø‹Q‹Eø‹H‹ÿR(;ôè˜Dÿÿ_^[ÄÌ;ìèˆDÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjÿhxÄd¡Pd‰%ìèSVWQ½ ÿÿÿ¹:¸ÌÌÌÌó«Y‰Mì‹EìÇ€ÇEü‹Eì‹H‰ ÿÿÿ‹• ÿÿÿ‰•ÿÿÿƒ½ÿÿÿt#‹ôj‹…ÿÿÿ‹‹ÿÿÿÿ;ôèåCÿÿ‰… ÿÿÿë Ç… ÿÿÿÇEüÿÿÿÿ‹MìègFÿÿ‹Môd‰ _^[Äô;ìèªCÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EøÇø_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø_^[‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø2À_^[‹å] ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø2À_^[‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø_^[‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø_^[‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø_^[‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø_^[‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø2À_^[‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø_^[‹å] ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø_^[‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø3À_^[‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø3À_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø2À_^[‹å] ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰MøƒÈÿ_^[‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Møè!Aÿÿ‹Eƒàt ‹EøPèF8ÿÿƒÄ‹Eø_^[ÄÌ;ìèW>ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Møè:ÿÿ‹Eƒàt ‹EøPèÖ7ÿÿƒÄ‹Eø_^[ÄÌ;ìèç=ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììØSVWQ½(ÿÿÿ¹6¸ÌÌÌÌó«Y‰MøhtjhT¡À^ƒÀPh@èý5ÿÿƒÄ‹ôjÿjÿ‹Eø‹H‹Uø‹B‹‹ÈÿR@;ôèd=ÿÿ‹Mø‰A‹Eø‹H‹Uø‰Q‹Eø‹‹ô‹MøÿRL;ôè>=ÿÿ‰Eì‹Eì‹Mø‹Q‰P‹ô‹EìP‹Mø‹Q‹Eø‹H‹ÿRt;ôè=ÿÿ‹ô‹EP‹Mø‹Q‹Eø‹H‹ÿR ;ôèó<ÿÿ_^[ÄØ;ìèã<ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììØSVWQ½(ÿÿÿ¹6¸ÌÌÌÌó«Y‰MøQ‹Ìè„?ÿÿ‹Møè9ÿÿjj‹Møèé9ÿÿ‹EP‹Møèå1ÿÿ‹Eø_^[ÄØ;ìè;<ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹Møè1ÿÿ_^[ÄÌ;ìèÚ;ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPèC5ÿÿƒÄP‹MQ‹Uø‹BPj‹MøèZ<ÿÿ_^[ÄÌ;ìèd;ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹EPè©5ÿÿƒÄ_^[ÄÀ;ìèÿ:ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Eø‹HQè@2ÿÿƒÄ‹R‹Mèq9ÿÿ‹E_^[ÄÌ;ìè™:ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Eø‹HQ‹Mè 9ÿÿ‹E_^[ÄÌ;ìè4:ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììØSVWQ½(ÿÿÿ¹6¸ÌÌÌÌó«Y‰Mø‹EP,ÿÿÿQ‹MøèÂ<ÿÿ‹R‹Møèï6ÿÿ_^[ÄØ;ìèÈ9ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììäSVWQ½ÿÿÿ¹9¸ÌÌÌÌó«Y‰Møj… ÿÿÿPM èÍ1ÿÿ‹ÈèÏ<ÿÿ‰Eì‹Eø‹Mì;Ht{‹EìPèÝ0ÿÿƒÄ‹ð‹MìQèË/ÿÿƒÄ‹RèÄ0ÿÿƒÄ‹‰‹EìPè°/ÿÿƒÄ‹ð‹MìQè¦0ÿÿƒÄ‹Rè—/ÿÿƒÄ‹‰‹EìP‹Møèq8ÿÿj‹EìP‹Møè:ÿÿ‹Eø‹Hƒé‹Uø‰J‹E‹M ‰‹E_^[Ää;ìèÊ8ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Møè¸8ÿÿ_^[ÄÌ;ìèN8ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììØSVWQ½(ÿÿÿ¹6¸ÌÌÌÌó«Y‰Mø‹Eø‹‰Mì‹MøèÖ:ÿÿ‹E‹M쉋ER‹ÍPåè§1ÿÿXZ_^[ÄØ;ìèÚ7ÿÿ‹å]Âíìÿÿÿù_TmpÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹Møè4ÿÿ¶À÷ØÀ@_^[ÄÌ;ìèR7ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EPèÃ0ÿÿƒÄP‹MQ‹Møè0ÿÿ_^[ÄÌ;ìèí6ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììàSVWQ½ ÿÿÿ¹8¸ÌÌÌÌó«Y‰Mø‹Eø‹H;Ms‹Møèð8ÿÿ‹Eø‹H+M;M s ‹Eø‹H+M‰M ƒ} u Ç…$ÿÿÿëA‹E ;Es ‹M ‰ ÿÿÿë ‹U‰• ÿÿÿ‹… ÿÿÿP‹MQ‹Møè)1ÿÿEPèu6ÿÿƒÄ ‰…$ÿÿÿ‹•$ÿÿÿ‰Uìƒ}ìt ‹E쉅$ÿÿÿë1‹M ;Ms Ç… ÿÿÿÿÿÿÿë‹U 3À;U•À‰… ÿÿÿ‹ ÿÿÿ‰$ÿÿÿ‹…$ÿÿÿ_^[Äà;ìèÅ5ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹EP‹M Q‹URè3ÿÿƒÄ _^[ÄÀ;ìè75ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÐSVWQ½0ÿÿÿ¹4¸ÌÌÌÌó«Y‰Mø‹Eøƒxr‹Mø‹Q‰•0ÿÿÿë ‹EøƒÀ‰…0ÿÿÿ‹…0ÿÿÿ_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰MøEP‹Møè¢*ÿÿ‹Eø_^[ÄÌ;ìèg4ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Eø_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Eø_^[‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììäSVWQ½ÿÿÿ¹9¸ÌÌÌÌó«Y‰MøMèÿ6ÿÿ‰Eì‹E P‹MìQè*ÿÿƒÄ‹R‹EìP‹MøèŸ)ÿÿ‰Eàj‹Møè$3ÿÿ‹EìPèè)ÿÿƒÄ‹Mà‰‹EàPè×)ÿÿƒÄ‹QèÐ*ÿÿƒÄ‹Uà‰_^[Ää;ìè23ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹Møè`3ÿÿ‹Eø_^[ÄÌ;ìè·2ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹MøèË*ÿÿ‹Eø_^[ÄÌ;ìè[2ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Eø‹Qè_)ÿÿƒÄ_^[ÄÌ;ìèø1ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Eø‹M‹+÷ØÀ@_^[‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Eø‹_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹Møè&/ÿÿ¶È…Ét ‹E P‹Møè,ÿÿ‹M+ÈQ‹UøR‹MøèÈ0ÿÿë=j‹E P‹Møè±-ÿÿ¶È…Ét%‹E P‹MQ‹MøèÎ+ÿÿPèN-ÿÿƒÄ ‹E P‹Møè×0ÿÿ‹Eø_^[ÄÌ;ìè¦0ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììØSVWQ½(ÿÿÿ¹6¸ÌÌÌÌó«Y‰Mø‹MèL1ÿÿ;E s‹MøèŽ2ÿÿ‹Mè71ÿÿ+E ‰Eì‹E;Eìs‹E‰Eì‹Eø;Eu%¡¤P‹M MìQ‹Møè+ÿÿ‹U Rj‹Møè+ÿÿëBj‹EìP‹Møè¦,ÿÿ¶È…Ét-‹EìP‹Mè¸*ÿÿE P‹Møè»*ÿÿPè;,ÿÿƒÄ ‹EìP‹MøèÄ/ÿÿ‹Eø_^[ÄØ;ìè“/ÿÿ‹å] ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Eø‹@_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììØSVWQ½(ÿÿÿ¹6¸ÌÌÌÌó«Y‰Mø‹Eø‹H;Ms‹Møè01ÿÿ‹Eø‹H+M;M s ‹Eø‹H+M‰M ƒ} vH‹Eø‹H+M+M Q‹Møèž)ÿÿEE P‹Møè)ÿÿEPèµ,ÿÿƒÄ ‹Eø‹H+M ‰Mì‹EìP‹Møè‰.ÿÿ‹Eø_^[ÄØ;ìèX.ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹EP‹M Q‹URèV+ÿÿƒÄ _^[ÄÀ;ìè×-ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÐSVWQ½0ÿÿÿ¹4¸ÌÌÌÌó«Y‰Mø‹Møèˆ.ÿÿ;Es‹Møèô#ÿÿ‹Eø‹H;Ms‹Eø‹HQ‹UR‹Møèó)ÿÿëS¶E …Àt;ƒ}s5‹Eø‹M;Hs ‹U‰•0ÿÿÿë ‹Eø‹H‰0ÿÿÿ‹•0ÿÿÿRj‹Møè¯*ÿÿëƒ}u j‹Møè,-ÿÿ3À;EÀ÷Ø_^[ÄÐ;ìèõ,ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹EƒÀ_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjÿh¤Äd¡Pd‰%QìøSVWQ½øþÿÿ¹>¸ÌÌÌÌó«Y‰eð‰Mèj‹Mèè2#ÿÿ‰EÜÇEü‹EÜPj(è´"ÿÿƒÄ‰…ÿÿÿÆEüƒ½ÿÿÿt+‹MQ‹U R‹EP‹ÿÿÿè¾"ÿÿ‰…üþÿÿ‹üþÿÿ‰øþÿÿë Ç…øþÿÿ‹•øþÿÿ‰•ÿÿÿÆEüëj‹EÜP‹MèèÐ,ÿÿjjè)ÿÿÇEüÿÿÿÿ‹EÜ‹Môd‰ _^[Ä;ìè†+ÿÿ‹å] ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌU‹ìjÿhËÄd¡Pd‰%ì SVWQ½Ôþÿÿ¹H¸ÌÌÌÌó«Y‰Mì‹Mìè_&ÿÿ‹Mì+A;Es:h¨ÿÿÿèÞ,ÿÿÇEü…ÿÿÿPØþÿÿè' ÿÿh(=ØþÿÿQèë'ÿÿ‹Eì‹HM‹Uì‰J‹Môd‰ _^[Ä,;ìè[*ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹Møè!ÿÿ‹EøÇ@‹Eø_^[ÄÌ;ìèÎ)ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjÿhèÄd¡Pd‰%ìÌSVWQ½(ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mì‹Mìè+ÿÿÇEü‹EìÇP‹EP‹MìƒÁ è+ÿÿÇEüÿÿÿÿ‹Eì‹Môd‰ _^[ÄØ;ìè&)ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹MøƒÁ èö%ÿÿ_^[ÄÌ;ìè»(ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Møèxÿÿ‹Eƒàt ‹EøPè6"ÿÿƒÄ‹Eø_^[ÄÌ;ìèG(ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjÿhÅd¡Pd‰%ìÌSVWQ½(ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mì‹EìÇPÇEü‹MìƒÁ è^'ÿÿÇEüÿÿÿÿ‹Mìè%ÿÿ‹Môd‰ _^[ÄØ;ìè­'ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EøÇ@‹Møè_ÿÿ_^[ÄÌ;ìèE'ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Møèi ÿÿ‹Eƒàt ‹EøPèÆ ÿÿƒÄ‹Eø_^[ÄÌ;ìè×&ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììØSVWQ½(ÿÿÿ¹6¸ÌÌÌÌó«Y‰MøQ‹Ì‹EPè²ÿÿ‹Møè+#ÿÿjj‹Møè$ÿÿ¡¤Pj‹MQ‹Møè5&ÿÿ‹Eø_^[ÄØ;ìèO&ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Møèï ÿÿ_^[ÄÌ;ìèî%ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Eø‹M‰‹Eø_^[‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Eø‹QèáÿÿƒÄ‹Uø‹‰‹Eø_^[ÄÌ;ìè>%ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹MøèÑÿÿ‹EøÇ@‹Eø_^[ÄÌ;ìèÎ$ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjÿh(Åd¡Pd‰%ìÌSVWQ½(ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mì‹EP‹Mìè"ÿÿÇEü‹EìÇP‹EƒÀ P‹MìƒÁ è&ÿÿÇEüÿÿÿÿ‹Eì‹Môd‰ _^[ÄØ;ìè$ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÜSVWQ½$ÿÿÿ¹7¸ÌÌÌÌó«Y‰Mø‹Møè{%ÿÿ‰Eìƒ}ìw Ç…$ÿÿÿë ‹Eìƒè‰…$ÿÿÿ‹…$ÿÿÿ_^[ÄÜ;ìè‡#ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjÿh@Åd¡Pd‰%QìèSVWQ½ÿÿÿ¹:¸ÌÌÌÌó«Y‰eð‰Mè‹EƒÈ‰EÜ‹Mèè$ÿÿ;EÜs‹E‰EÜëC‹Eè‹HÑé‹EÜ3Ò¾÷ö;Ás+‹Eè‹pÑî‹Mèèá#ÿÿ+Æ‹Mè9Aw‹Eè‹HÑé‹UèJ‰MÜÇEü‹E܃ÀP‹Mèè¹ÿÿ‰…ÿÿÿ‹ÿÿÿ‰MÐëQ‰eð‹E‰EÜÆEü‹E܃ÀP‹MèèŒÿÿ‰…ÿÿÿ‹ÿÿÿ‰MÐëjj‹MèèûÿÿjjèÊÿÿÇEü¸c(ÃëÇEüÿÿÿÿƒ} v‹E P‹Mèè;ÿÿP‹MÐQè·ÿÿƒÄ jj‹Mèè±ÿÿ‹Eè‹MЉH‹Eè‹M܉H‹E P‹Mèè""ÿÿ‹Môd‰ _^[Äø;ìèê!ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹MøèNÿÿ9Er‹MøèAÿÿ‹MøA;Ew2Àë°_^[ÄÌ;ìè !ÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹MøƒÁèŒ#ÿÿ_^[ÄÌ;ìè» ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹Eø‹M‰‹Eø‹M ‰H‹EP‹MøƒÁè%ÿÿ‹Eø_^[ÄÌ;ìèC ÿÿ‹å] ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Mø‹EP‹Møè¶!ÿÿ‹Eø‹MŠQˆP‹Eø_^[ÄÌ;ìèËÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÌSVWQ½4ÿÿÿ¹3¸ÌÌÌÌó«Y‰Møj‹EPèÑÿÿƒÄ_^[ÄÌ;ìèhÿÿ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÜSVWQ½$ÿÿÿ¹7¸ÌÌÌÌó«Y‰MøÇEìÿÿÿÿƒ}ìv ‹E쉅$ÿÿÿë Ç…$ÿÿÿ‹…$ÿÿÿ_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÜSVWQ½$ÿÿÿ¹7¸ÌÌÌÌó«Y‰MøÇEìÿÿÿƒ}ìv ‹E쉅$ÿÿÿë Ç…$ÿÿÿ‹…$ÿÿÿ_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììÀSVW½@ÿÿÿ¹0¸ÌÌÌÌó«‹EPè, ÿÿƒÄ_^[ÄÀ;ìè/ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÿ%4“ÿ%Ø‘ÿ%Ü‘ÿ%à‘ÌÌÌÌÌÌÌÌÌÌU‹ìQ‹EPèˆÿÿƒÄ‰Eüƒ}üu‹MQèÿÿƒÄ…ÀuèØÿÿëÔ‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjÿhXÅd¡Pd‰%ƒìH‰M¬h(M°è®ÿÿÇEüE°PMÌèýÿÿh(=MÌQèÄÿÿ‹Môd‰ ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjÿhxÅd¡Pd‰%ƒìH‰M¬h\M°è>ÿÿÇEüE°PMÌèŠÿÿhÌ>MÌQèTÿÿ‹Môd‰ ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQ‰Mü‹EP‹Müèâÿÿ‹MüÇ|‹Eü‹å]ÂÌÌÌÌÌÌÌÌÌÌÌU‹ìQ‰Mü‹EüÇ|‹Müè‹ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQ‰Mü‹Müèÿÿ‹Eƒàt ‹MüQè"ÿÿƒÄ‹Eü‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQ‰Mü‹EP‹Müèýÿÿ‹MüÇ|‹Eü‹å]ÂÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì ¡nƒàu+‹ nƒÉ‰ nhˆ¹nèèÿÿh°ÕèÜÿÿƒÄhnMôè¼ÿÿh8?UôRè ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQ‰MüEP‹Müèèÿÿ‹MüÇ ‹Eü‹å]ÂÌÌÌÌÌÌÌÌÌÌÌU‹ìQ‰Mü‹EüÇ ‹Müè€ÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQ‰Mü‹Müè@ÿÿ‹Eƒàt ‹MüQèâÿÿƒÄ‹Eü‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQ‰Mü‹EP‹Müètÿÿ‹MüÇ ‹Eü‹å]ÂÌÌÌÌÌÌÌÌÌÌÌuÃU‹ìƒìPRSVW‹EjPè“ÿÿƒÄ_^[ZX‹å]ÃÌÌÌÌÌÌÌÌÌÌÌU‹ìQSV‹ò‹W3ÿ;Njى}ü~F‹F‹ 8‹TüÇúÌÌÌÌu‹PÑ<ÌÌÌÌt‹F‹L8‹UQRèÿÿƒÄ‹Eü‹@ƒÇ ;Á‰Eü|º_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ n„ÀujjjjjÆnè£ÿÿPèEÿÿƒÄÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌjjjjjèsÿÿƒÄÃÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQƒ}uën‹Eƒè ‰Eü‹Mü‹QâÿÿƒútA‹Eüƒxt8‹Mü‹Qâÿÿƒút'‹Eüƒxth¼jj4h¬jè§ÿÿƒÄƒøuÌ‹Uü‹BP‹MQèÿÿƒÄ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQS‹E ƒÀ ‰Eüd‹‹d£‹E‹] ‹cü‹müÿà[‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌXY‡$ÿàÌÌÌÌÌÌÌÌÌXY‡$ÿàÌÌÌÌÌÌÌÌÌXY‡$ÿàÌÌÌÌÌÌÌÌÌU‹ìƒìSVWd‹5‰uüÇEøM2j‹E P‹MøQ‹URèÿÿÿ‹E ‹Hƒáý‹U ‰Jd‹=‹]ü‰;d‰_^[‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒìSVWü‰Eøjjj‹EøP‹MQ‹UR‹E P‹MQèÿÿƒÄ ‰Eü_^[‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ì‹E‹HQ‹U‹B(Pj‹M‹QRè$ÿÿƒÄ]ÂÌÌÌÌÌÌÌÌÌÌU‹ìƒìÇEèÇEì3¡àb‰Eð‹M ‰Mô‹U‰Uø‹EƒÀ‰Eüd¡‰EèEèd£‹MQ‹UR‹EPèÎÿÿ‰Eä‹Eèd£‹Eä‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQü‹E ‹H; àbt‹U‹BƒÈ‹M‰A¸ë3j‹U R‹E ‹HQ‹U ‹B Pj‹MQ‹U ‹BP‹MQèfÿÿƒÄ ‰Eü‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì4S}#u¸¼4‹M ‰¸é±ÇEØÇEÜ 5¡àb‰Eà‹M‰Mä‹U ‰Uè‹E‰Eì‹M ‰MðÇEôÇEøÇEü‰eô‰mød¡‰EØEØd£ÇEÌ‹U‰UЋE‰EÔMÐQ‹U‹Pÿ¤nƒÄÇẼ}ütd‹‹‹]؉d‰ë ‹EØd£‹EÌ[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQSü‹E ‹H; àbt‹U‹BƒÈ‹M‰A¸é‹U‹Bƒàft‹M ÇA$¸ëtj‹U ‹BP‹M ‹QR‹E ‹H Qj‹UR‹E ‹HQ‹URè³ÿÿƒÄ ‹E ƒx$u ‹MQ‹U Rè¤ÿÿjjjjjEüPh#è4ÿÿƒÄ‹Eü‹] ‹c‹k ÿà¸[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQ‹E‹HSV‹p ‰Mü‹M …ÉW‹þ‹Þ|=‹ÿƒþÿuè" ÿÿ‹Eü‹MN¶9H};H~ƒþÿu ‹E H‹û‰E ‹Þ‹E …À}È‹E‹M‹UF‰1‰:;x w;÷vèØ ÿÿ‹Mü_¶^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ì‹E‹n‹M ‰‰P£n]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ì¡n…Àt‹M9t‹@…Àuõ¸]Ã3À]ÃÌÌÌÌÌÌÌÌÌÌU‹ì‹U‹ n;Ñu ‹B£n]ÃAVƒ8t‹;Ðt‹È‹q…öAuî^]é ÿÿ‹R‰Q^]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìSVWUjjh 7ÿuè¬ÿÿ]_^[‹å]ËL$÷A¸t‹D$‹T$‰¸ÃSVW‹D$Pjþh¨7dÿ5d‰%‹D$ ‹X‹p ƒþÿt.;t$$t(4v‹ ³‰L$‰H ƒ|³uh‹D³è@ÿT³ëÃdƒÄ _^[Ã3Àd‹ y¨7u‹Q ‹R 9Qu¸ÃSQ»x_ë SQ»x_‹M‰K‰C‰k Y[ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒìÇEøÿÿÿÿƒ}uhôjj1hìjè- ÿÿƒÄƒøuÌh`è„ ÿÿƒÄ‰Eð‹MQèF ÿÿƒÄ‰Eüh`‹UüRj‹EPèt ÿÿƒÄ‰Eô‹Mô;MüuQ‹`ƒê‰`x'¡`Æ ¹ áÿ‰Mì‹`ƒÂ‰`ëh`j èœÿÿƒÄ‰EìÇEøh`‹EðPè€ÿÿƒÄ‹Eø‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìèÎÿÿèÑÿÿ£ nƒ}tè!ÿÿÛâ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ì]ÃÌÌÌÌÌÌÌÌÌÌÌU‹ìÇ> >4>‹E^_ÉÊFˆG‹E^_ÉÃIŠFˆGŠFˆG‹E^_ÉÊFˆGŠFˆGŠFˆG‹E^_ÉÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQjjj¡ÐnP‹MQè² ÿÿƒÄ‰Eü‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌU‹ìQ‹EP‹MQ‹U R¡ÐnP‹MQè| ÿÿƒÄ‰Eü‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjjj‹E P‹MQèE ÿÿƒÄ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQ‹EP‹MQ‹UR‹EPè ÿÿƒÄ‰Eüƒ}üuƒ} u‹Eüë‹MQè ÿÿƒÄ…Àu3Àë뾋å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjjj‹EPèÀÿÿƒÄ]ÃÌÌÌÌÌÌÌÌÌU‹ìƒìÇEüƒ=@nvU¡@nƒè90nu6è ÿÿ…Àu!h4jhZh(jèŽÿÿƒÄƒøuÌÇ0në‹0nƒÂ‰0n¡´_‰Eôƒ=¸_ÿt ‹Mô; ¸_uÌ‹UR‹EP‹MôQ‹U R‹EPjjÿXdƒÄ…ÀuRƒ}t%‹MQ‹URhèjjjjèÿÿƒÄƒøuÌë hÀh¼jjjjèæÿÿƒÄƒøuÌ3Àé‹U âÿÿƒút¡°_ƒàuÇEüƒ}àw ‹MƒÁ$ƒùàv&‹URhjjjjèÿÿƒÄƒøuÌ3À龋M áÿÿƒùt:ƒ} t4‹U âÿÿƒút&ƒ} t hTh¼jjjjèAÿÿƒÄƒøuÌ‹MƒÁ$‰Mð‹UðRèÿþÿƒÄ‰Eøƒ}øu3ÀéQ¡´_ƒÀ£´_ƒ}ütI‹MøÇ‹UøÇB‹EøÇ@‹MøÇA ¼ºÜþ‹Uø‹E‰B‹MøÇA‹UøÇBéž¡(nE£(n‹ ÷þÿƒÄƒøuÌéVjjj‹M Qj‹URjÿXdƒÄ…Àu%hX h¼jjjjèúöþÿƒÄƒøuÌé‹MQèy÷þÿƒÄ…Àu!hjhlh(jèÄöþÿƒÄƒøuÌ‹Eƒè ‰Eü‹Mü‹QâÿÿƒútD‹Eüƒxt;‹Mü‹Qâÿÿƒút*‹Eüƒxt!h¼jhrh(jèföþÿƒÄƒøuÌ‹°_ƒâ…µj ¼_P‹MüƒÁQèõƒÄ …Àu<‹UüƒÂ R‹Eü‹HQ‹Uü‹B%ÿÿ‹ …À_Qh$ jjjjèöþÿƒÄ ƒøuÌj ¼_P‹Mü‹Q‹EüL Qè—ƒÄ …Àu<‹UüƒÂ R‹Eü‹HQ‹Uü‹B%ÿÿ‹ …À_Qhôjjjjè¢õþÿƒÄ ƒøuÌ‹Eüƒxue‹Müy ¼ºÜþu ‹Uüƒzt!h¨jh‰h(jècõþÿƒÄƒøuÌ‹Mü‹QƒÂ$R¶½_P‹MüQè0õþÿƒÄ ‹UüRè#ûþÿƒÄéQ‹Eüƒxu ƒ} uÇE ‹Mü‹Q;U t!h„jh—h(jèòôþÿƒÄƒøuÌ‹Mü‹‹Mü‹À_R‹Eü‹M‹TR‹Eü‹M‹TRh` jjjjè+àþÿƒÄ ƒøuÌ볋M‹Q,Rh8 jjjjèàþÿƒÄƒøuÌ‹M‹Q0Rh jjjjèåßþÿƒÄƒøuÌ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjjj‹E P‹MQè²ßþÿƒÄ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ì‹EP‹MQj‹U R‹EPè~ßþÿƒÄ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjjj‹EP‹M Q‹URè&ßþÿƒÄ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ì‹EP‹MQj‹UR‹E P‹MQèòÞþÿƒÄ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjj‹EP‹M Q‹URèðÞþÿƒÄ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì‹E ƒè#E t63Éu!h¬ jhŸ h(jèˆÞþÿƒÄƒøuÌÇÔn3Àéç‹E;Er<ƒ}t63Éu!h„ jh¦ h(jèDÞþÿƒÄƒøuÌÇÔn3À飃} v‹E ‰EìëÇEì‹Mìƒé‰M 3Ò+Uƒâ‰Uð‹EP‹MQj‹UðU‹E LQèµÚþÿƒÄ‰Eôƒ}ôu3ÀëM‹UôU Uð‹EL‹U ÷Ò#Ê+M‰Mø‹Eø+Eðƒè‰Eüj¶ ¿_Q‹UüƒÂRè†ÝþÿƒÄ ‹Eü‹Mô‰‹Eø‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjj‹EP‹MQ‹U R‹EPèÝþÿƒÄ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì ƒ}u!‹EP‹MQ‹UR‹EP‹M QèÝþÿƒÄé"ƒ} u‹URè çþÿƒÄ3Àé ‹Eƒàüƒè‰EèjŠ ¼_Q‹UƒêRèYìÿÿƒÄ …Àt&‹EPh jjjjèÜþÿƒÄƒøuÌ3Àé»jŠ¿_R‹EèƒÀPèìÿÿƒÄ …Àu‹MQhØ jjjjè?ÜþÿƒÄƒøuÌ‹Eƒè#Et63Éu!h¬ jh" h(jèÜþÿƒÄƒøuÌÇÔn3Àé?‹E;E r<ƒ}t63Éu!h„ jh( h(jèËÛþÿƒÄƒøuÌÇÔn3Àéû‹Eè‹Qè3àþÿƒÄ‹Uè‹M+ +Á‰Eôƒ}v‹U‰UäëÇEä‹Eäƒè‰E3É+Mƒá‰Mì‹UR‹EPj‹MìM ‹UDPè!ØþÿƒÄ‰Eðƒ}ðu3À釋MðMMì‹UD‹M÷Ñ#Á+E‰Eø‹Uø+Uìƒê‰Uüj¶¿_P‹MüƒÁQèïÚþÿƒÄ ‹Uü‹Eð‰‹Mô;M v‹U ‰Uàë‹Eô‰Eà‹MàQ‹UR‹EøPè1ßþÿƒÄ j‹Mè‹Rè.áþÿƒÄ‹Eø‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ì‹EPèJäþÿƒÄ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQƒ}u锋Eƒàüƒè‰EüjŠ ¼_Q‹UƒêRè€éÿÿƒÄ …Àt!‹EPhxjjjjè¨ÙþÿƒÄƒøuÌëKjŠ¿_R‹EüƒÀPèCéÿÿƒÄ …Àu‹MQhØ jjjjèkÙþÿƒÄƒøuÌj‹Eü‹QèÇßþÿƒÄ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì E ‰Eüƒ}uhØjj6hÌjèþØþÿƒÄƒøuÌh`èUØþÿƒÄ‰Eô‹UüR‹EPh`è$ÝþÿƒÄ ‰Eøh`‹MôQè»áþÿƒÄ‹Eø‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒ}u jè`ƒÄë:‹EPè–áþÿƒÄ…ÀtƒÈÿë%‹M‹Q â@t‹E‹HQèSÛþÿƒÄ÷ØÀë3À]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì ÇEü‹E‰Eô‹Mô‹Q ƒâƒúuv‹Eô‹H áth‹Uô‹Eô‹ +H‰Møƒ}ø~T‹UøR‹Eô‹HQ‹Uô‹BPè?×þÿƒÄ ;Eøu‹Mô‹Q â€t‹Eô‹H ƒáý‹Uô‰J ë‹Eô‹H ƒÉ ‹Uô‰J ÇEüÿÿÿÿ‹Eô‹Mô‹Q‰‹EôÇ@‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjèƒÄ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì ÇEüÇEôÇEøë ‹EøƒÀ‰Eø‹Mø;  ‰‹Uø¡Hvƒ<t|‹Mø‹Hv‹Š‹H áƒteƒ}u$‹Uø¡Hv‹ QèAàþÿƒÄƒøÿt ‹UüƒÂ‰Uüë;ƒ}u5‹Eø‹ Hv‹‹B ƒàt!‹Mø‹Hv‹ŠPèàþÿƒÄƒøÿuÇEôÿÿÿÿéYÿÿÿƒ}u‹Eüë‹Eô‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì ƒ}uhüjj5hìjèôÕþÿƒÄƒøũ} uhØjj6hìjèÐÕþÿƒÄƒøuÌ‹U‰Uü‹EüPè"ÕþÿƒÄ‰Eô‹MQ‹U R‹EüPèòÙþÿƒÄ ‰Eø‹MüQ‹UôRèŠÞþÿƒÄ‹Eø‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒìE‰Eüƒ}uhüjj8h jè.ÕþÿƒÄƒøũ} uhØjj9h jè ÕþÿƒÄƒøuÌ‹E‰Eø‹MøQè\ÔþÿƒÄ‰Eð‹UüR‹E P‹MøQè,ÙþÿƒÄ ‰Eô‹UøR‹EðPèÄÝþÿƒÄ‹Eô‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ì¸à_]ÃÌÌÌÌÌÌU‹ìQƒ= ‰u Ç ‰ëƒ= ‰} Ç ‰h‰hjj¡ ‰PèõÝþÿƒÄ£Hvƒ=Hvu?Ç ‰hŒhjj‹  ‰QèÀÝþÿƒÄ£Hvƒ=Hvu ¸éÇEüë ‹UüƒÂ‰Uüƒ}ü}‹EüÁàà_‹Mü‹Hv‰ŠëØÇEüë ‹EüƒÀ‰Eüƒ}ü}D‹MüÁù‹Uüƒâ‹Àtƒ<Ðÿt‹MüÁù‹Uüƒâ‹Àtƒ<Ðu‹MüÁáÇð_ÿÿÿÿë­3À‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìèòÓþÿ¾o…ÀtèÿÔþÿ]ÃÌÌÌÌÌÌU‹ìƒì,E؉Eøƒ} uhØjjZh$jè¾ÒþÿƒÄƒøũ}uhôjj]h$jèšÒþÿƒÄƒøuÌ‹EøÇ@ÿÿÿ‹MøÇA B‹Uø‹E‰B‹Mø‹U‰‹EP‹M Q‹UøRè¬ÖþÿƒÄ ‰Eüƒ}tJ‹Eø‹Hƒé‹Uø‰J‹Eøƒx|!‹Mø‹Æ3À%ÿ‰EÔ‹Mø‹ƒÂ‹Eø‰ë‹MøQjèÚþÿƒÄ‰EÔ‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì(E؉Eøƒ}u!hØjhˆh$jè›ÑþÿƒÄƒøuÌ‹UøÇBÿÿÿ‹EøÇ@ B‹MøÇA‹UøÇ‹E P‹MQ‹UøRè«ÕþÿƒÄ ‰Eü‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì0EÔ‰EôM‰Müƒ} uhØjj]h4jèøÐþÿƒÄƒøũ}uhôjj^h4jèÔÐþÿƒÄƒøuÌ‹MôÇAÿÿÿ‹UôÇB B‹Eô‹M‰H‹Uô‹E‰‹MüQ‹U R‹EôPèæÔþÿƒÄ ‰Eøƒ}tK‹Mô‹Qƒê‹Eô‰P‹Môƒy|"‹Uô‹Æ3Éáÿ‰MЋUô‹ƒÀ‹Mô‰ë‹UôRjèAØþÿƒÄ‰EЋEø‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì,EÔ‰EôM ‰Müƒ}u!hØjh‘h4jèÅÏþÿƒÄƒøuÌ‹EôÇ@ÿÿÿ‹MôÇA B‹UôÇB‹EôÇ‹MüQ‹UR‹EôPèÕÓþÿƒÄ ‰Eø‹Eø‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ; àbuÃéÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjÿh@hDd¡Pd‰%ƒìSVW‰eèÇEüjjè©ÏþÿƒÄÇEüÿÿÿÿë¸ËeèÇEüÿÿÿÿjÿø‘‹Mðd‰ _^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ‹T$ ‹L$…ÒtO3ÀŠD$W‹ùƒúr1÷Ùƒát +шƒÇƒéuö‹ÈÁàÁ‹ÈÁàÁ‹ÊƒâÁétó«…Òt ˆƒÇƒêuö‹D$_ËD$ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììH¡àb‰EüVWƒ=`ntƒ=`nuXƒ=dnuO¡,`% ujjjh `è ÕþÿƒÄ‹MQ‹U R‹EPhðbh `èðÌþÿƒÄh `è=×þÿƒÄénh¨ØýÿÿQèÏþÿƒÄ‹ cR…ØýÿÿPèbÎþÿƒÄhœØýÿÿQèNÎþÿƒÄÆ…Ìýÿÿh•ÈüÿÿRjÿü‘…Àuh€…ÈüÿÿPè»ÎþÿƒÄÈüÿÿ‰Ôýÿÿ•ÈüÿÿRèZÎþÿƒÄƒÀ ƒø‹Mƒ<dÿt1j•äÏÿÿR…ðïÿÿPèp¤þÿƒÄPðïÿÿQ‹U‹•dPÿ’‹M‹øcƒât …ðïÿÿPÿ’‹M‹øcƒâthƒ}tj …ÐÏÿÿP‹MQèN£þÿƒÄ ‰…ÈÏÿÿë Ç…ÈÏÿÿ•ðÏÿÿR‹EP‹ÈÏÿÿQ‹U R‹EPè=ƒÄ‰Eøƒ}u hôcÿ’‹Eøëƒ}u hôcÿ’3À‹Mô蛟þÿ_‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ì¸Dèw þÿ¡àb‰Eôƒ}u%h¬jh:h¨jè2¡þÿƒÄƒøuèþÿÆ…ìïÿÿhèîÿÿQjÿü‘…Àuh€•èîÿÿRèv¢þÿƒÄ…èîÿÿ‰Eø‹MøQè¢þÿƒÄƒø@v)‹UøRè ¢þÿƒÄ‹MøTÀ‰UøjhX‹EøPèF¨þÿƒÄ ‹M‰Müƒ}üt:‹UüRèÕ¡þÿƒÄƒø@v)‹EüPèÄ¡þÿƒÄ‹MüTÀ‰UüjhX‹EüPè¨þÿƒÄ ƒ}u Ç…àîÿÿ ë Ç…àîÿÿË‹M¾…Òt ‹E‰…Üîÿÿë Ç…ÜîÿÿË‹M¾…Òtƒ}u Ç…Øîÿÿ`ë Ç…ØîÿÿË‹E¾…Ét Ç…ÔîÿÿPë Ç…Ôîÿÿ˃}t ‹U‰•Ðîÿÿë Ç…Ðîÿÿ˃}t Ç…Ìîÿÿë Ç…Ìîÿÿ˃} t ‹E ‰…Èîÿÿë Ç…Èîÿÿ˃} t Ç…Äîÿÿë Ç…Äîÿÿ˃}üt ‹Mü‰Àîÿÿë Ç…Àîÿÿ˃}üt Ç…¼îÿÿüë Ç…¼îÿÿË‹•àîÿÿR‹…ÜîÿÿP‹ØîÿÿQ‹•ÔîÿÿR‹…ÐîÿÿP‹ÌîÿÿQ‹•ÈîÿÿR‹…ÄîÿÿP‹ÀîÿÿQ‹•¼îÿÿR‹EøP‹M‹dRh˜h…ðïÿÿPèÒšþÿƒÄ<…À}hàðïÿÿQèA þÿƒÄh hl•ðïÿÿRèÛþÿƒÄ ‰…äîÿÿƒ½äîÿÿuj迤þÿƒÄjèoŸþÿƒ½äîÿÿu¸ë3À‹Môèš›þÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì‹E‹áÿÿÿù “uëèÜ›þÿ‹U‹Bƒàft/‹Mƒytƒ}ujÿ‹UR‹EP‹M QèfžþÿƒÄ¸é’‹Uƒz „€‹E8csmàuM‹My “vA‹U‹B‹H‰Müƒ}üt/¶U$R‹E P‹MQ‹UR‹EP‹MQ‹U R‹EPÿUüƒÄ ‰Eø‹Eøë-‹M Q‹URŠE$P‹MQ‹UR‹EP‹M Q‹URèLƒÄ ¸‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì(ÆEû‹E ‹H‰Müƒ}üÿ| ‹U‹Eü;B}ë衚þÿ‹M9csmà…¤‹Uƒz…—‹Ex “t ‹My!“u‹Uƒzuvƒ=”nué¡”n‰E‹ ˜n‰MÆEûj‹URèø›þÿƒÄ…Àtëè(šþÿ‹E8csmàu/‹Mƒyu&‹Uz “t ‹Ex!“u‹Mƒyuèî™þÿ‹U:csmà…c‹Eƒx…V‹My “t‹Uz!“…:EìPMðQ‹UüR‹E P‹MQèX¢þÿƒÄ‰Eôë‹UðƒÂ‰Uð‹EôƒÀ‰Eô‹Mð;Mìƒã‹Uô‹;Eü ‹Mô‹Uü;Q~ëË‹Eô‹H‰Mä‹Uô‹B ‰Eèë‹Mèƒé‰Mè‹UäƒÂ‰Uäƒ}莗‹E‹H‹Q ƒÂ‰UÜ‹E‹H‹Q ‹‰Eàë‹Màƒé‰Mà‹U܃‰U܃}à~[‹EÜ‹‰MØ‹U‹BP‹MØQ‹UäRè±ƒÄ …ÀuëÊEûP‹M$Q‹U R‹EôP‹MØQ‹UäR‹EP‹MQ‹UR‹E P‹MQè'ƒÄ,ëéMÿÿÿéÿþÿÿ¶U…Òtj‹EPèÛ¢þÿƒÄë7¶M…Éu*‹U$R‹E P‹MüQ‹UR‹EP‹MQ‹U R‹EPè³ƒÄ ëèÊšþÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì ‹E8€uéƒ=¤nt-‹M$Q‹U R‹EP‹MQ‹UR‹E P‹MQèë™þÿƒÄ…ÀtéÑUôREøP‹MQ‹U R‹EPèòŸþÿƒÄ‰Eüë‹MøƒÁ‰Mø‹UüƒÂ‰Uü‹Eø;Eôƒ’‹Mü‹U;|B‹Eü‹M;H7‹Uü‹B ƒèÁà‹Mü‹Qƒ|t ‹Eü‹H ƒéÁá‹Uü‹B‹L¾Q…Òtë”j‹E$P‹M Q‹UüRj‹Eü‹H ƒéÁá‹UüJQ‹EP‹MQ‹UR‹E P‹MQè ƒÄ,éPÿÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQ‹Eƒxt‹M‹Q¾B…Àu ¸é‹M‹U ‹A;Bt$‹M ‹QƒÂR‹E‹HƒÁQèì˜þÿƒÄ…Àt3ÀëO‹U ‹ƒàt ‹M‹ƒât1‹E‹ƒát ‹U‹ƒàt‹M‹ƒât ‹E‹ƒát ÇEüëÇEü‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjÿhÈhDd¡Pd‰%ƒÄðSVW‰eè‹E‹H‰M䋜nƒÂ‰œnÇEü‹Eä;E„Žƒ}äÿ~ ‹M‹Uä;Q}ëèã”þÿ‹E‹H‹Uä‹щEàÇEü‹M‹Q‹Eäƒ|Ât%‹M‹Uà‰Qh‹EP‹M‹Q‹Eä‹LÂQè^—þÿÇEüë‹UìR躃ÄËeèÇEü‹Eà‰EäéfÿÿÿÇEüÿÿÿÿèëƒ=œn~‹ œnƒé‰ œnËUä;Uuëè7”þÿ‹E‹Mä‰H‹Mðd‰ _^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì‹E‹‰Mü‹Uü‹‰Eø}øcsmàtëÇœnè!–þÿ3À‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì‹E ‰Eüƒ} t‹M Q‹UR‹EüP‹MQèɃă},u‹UR‹E Pè&þÿë ‹MQ‹U,Rèþÿ‹E$‹Q‹UR‹EP‹MüQèЕþÿƒÄ‹U$‹BƒÀ‹M ‰Ah‹U(R‹E‹H Q‹UR‹EP‹MüQ‹URèVƒÄ‰Eøƒ}øt ‹E P‹MøQè°’þÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjÿhèhDd¡Pd‰%ƒÄÈSVW‰eè‹E‰EÐÇEÜ‹M ‹Qü‰Uà‹E‹HQUÔRèH™þÿƒÄ‰Eä¡”n‰EÈ‹ ˜n‰MÌ‹U‰”n‹E£˜nÇEüÇEü‹M Q‹UR‹EP‹MQ‹U RèœþÿƒÄ‰EÐÇEü鳋EìPèÚƒÄËeè‹M‹Q‰U¸‹E ‹H‰M¼‹U‹B‰EÀÇEÄë ‹MăÁ‰MÄ‹U‹EÄ;B sG‹MÄkÉ‹UÀ‹E¼;D ~3‹MÄkÉ‹UÀ‹E¼;D !‹MÄkÉ‹UÀ‹D ƒÀ‰E¼‹M¼‹U¸‹ʉE¼ë륋M¼Q‹URj‹E Pèô“þÿƒÄÇEÐÇEüÇEüÿÿÿÿèé…‹M ‹Uà‰Qü‹EäPèúþÿƒÄ‹Mȉ ”n‹Ủ˜n‹E8csmàuR‹MƒyuI‹Uz “t ‹Ex!“u1ƒ}Üu+ƒ}Ðt%‹M‹QRè”þÿƒÄ…Àtèu’þÿP‹EPèôšþÿƒÄËEЋMðd‰ _^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQ‹E‹‰Mü‹Uü:csmàu1‹Eüƒxu(‹Müy “t ‹Uüz!“u‹Eüƒxu¸ë3À‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjÿhhDd¡Pd‰%ƒÄôSVW‰eè‹Eƒxt#‹M‹Q¾B…Àt‹Mƒyu‹U‹%€ué.‹M‹â€t‹E ‰Eäë‹M‹Q‹E L ‰MäÇEü‹U‹ƒàtXj‹M‹QRè³þÿƒÄ…Àt9j‹EäPè;’þÿƒÄ…Àt'‹Mä‹U‹B‰‹MƒÁQ‹Uä‹PèƒÄ‹Mä‰ë謎þÿ鉋U‹ƒàtxj‹M‹QRèQþÿƒÄ…ÀtYj‹EäPèÙ‘þÿƒÄ…ÀtG‹M‹QR‹E‹HQ‹UäRè”þÿƒÄ ‹Eƒxu"‹Mäƒ9t‹UƒÂR‹Eä‹QèƒÄ‹Uä‰ëè*Žþÿé‹Eƒxu]j‹M‹QRèÐþÿƒÄ…Àt>j‹EäPèX‘þÿƒÄ…Àt,‹M‹QR‹EƒÀP‹M‹QRè?ƒÄP‹EäP臓þÿƒÄ ëèÄþÿé¡j‹M‹QRèsþÿƒÄ…À„ƒj‹EäPè÷þÿƒÄ…Àtq‹M‹QRè—þÿƒÄ…Àt^‹E‹ƒát+j‹UƒÂR‹E‹HQèÆƒÄP‹U‹BP‹MäQè”þÿë'‹UƒÂR‹E‹HQèƒÄP‹U‹BP‹MäQ臔þÿëèþÿÇEüÿÿÿÿë¸ËeèèŒþÿ‹Mðd‰ _^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjÿhhDd¡Pd‰%ƒìSVW‰eèƒ}tE‹E‹Hƒyt9ÇEü‹U‹B‹HQ‹U‹BPè2þÿÇEüÿÿÿÿë¶E ÷ØÀ÷ØÃ‹eèè`Žþÿ‹Mðd‰ _^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQ‹E ‹M‰Mü‹U ƒz|'‹E ‹H‹U‹ ‹M ‹Q‹Mü ‰Mü‹U ‹EüB‰Eü‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ì3Àƒ=œn•À]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì ƒ}u3Àéw‹E‹‰Mèƒ} t ‹U ¾B…Àu\‹Mè9csmàu:‹Uèƒzu1‹Eèx “t ‹Mèy!“u‹Uèƒzuƒ=”nu3À顜nƒÀ£œn¸é‹Mè9csmà…ñ‹Uèƒz…ä‹Eèx “t‹Mèy!“…È‹Uèƒzuƒ=”nu3À鱡”n‰Eè‹M ‰Mô‹U‰Uð‹E𠀉Eð‹Mè‹Q‹B ƒÀ‰Eä‹Mè‹Q‹B ‹‰Mìë‹Uìƒê‰Uì‹EäƒÀ‰Eäƒ}ì~Y‹M䋉Uà‹Eè‹HQ‹UàREðPè¥óÿÿƒÄ …Àt4‹ œnƒÁ‰ œnƒ}t‹UàREðP‹MQ‹UèRèúÿÿƒÄ¸ëë3À‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒìÇEð‹E ‰Eü‹MüƒÁ‰Mô‹UôƒÂ‰Uøƒ}„„‹Eƒ8t|‹M‹‰Uð‹Eð8csmàu3‹Mðƒyu*‹Uðz “t ‹Eðx!“u‹Mðƒyu ‹”n‰Uð‹Eð‹HQ‹UüRè—þÿƒÄ‰Eü‹Eô‹ ”n‰‹Uø¡˜n‰‹Mð‰ ”në‹UôÇÿÿÿÿ‹EøÇÿÿÿÿ‹ œnƒé‰ œny Çœn¸‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQƒ}u3ÀëF‹E‹‰Mü‹Uü:csmàu1‹Eüƒxu(‹Müy “t ‹Uüz!“u‹Eüƒxu¸ë3À‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì ‹E‰Eü‹MüƒÁ‰Mô‹UôƒÂ‰Uø‹Eôƒ8ÿ„„‹MüQè:‡þÿƒÄƒ} u]‹”n:csmàuO¡”nƒxuD‹ ”ny “t‹”nz!“u&¡”n‹HQèMŠþÿƒÄ…Àtj‹”nRè@‘þÿƒÄ‹Eô‹‰ ”n‹Uø‹£˜n‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ì¸]ÃÌÌÌÌÌÌU‹ìjÿh(hDd¡Pd‰%ƒìSVW‰eèÇEü‹M ÿUÇEüÿÿÿÿë‹EìPè{òÿÿƒÄËeèÇEüÿÿÿÿ‹Mðd‰ _^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjÿh8hDd¡Pd‰%ƒìSVW‰eèÇEü‹EP‹MQ‹UR‹E PÿUÇEüÿÿÿÿë‹MìQèîñÿÿƒÄËeèÇEüÿÿÿÿ‹Mðd‰ _^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒìSQ‹E ƒÀ ‰Eü‹EUÿu‹M‹müèzŒþÿVWÿÐ_^‹Ý]‹MU‹ëùu¹QèXŒþÿ]Y[É ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjÿhHhDd¡Pd‰%ƒìSVW‰eèƒ=¨nt&ÇEüÿ¨nÇEüÿÿÿÿë¸ËeèÇEüÿÿÿÿèiƒþÿ‹Mðd‰ _^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒ=0dtÿ0dèú†þÿ]ÃÌÌÌÌÌÌÌU‹ìjÿhXhDd¡Pd‰%ƒìSVW‰eèƒ=4dt&ÇEüÿ4dÇEüÿÿÿÿë¸ËeèÇEüÿÿÿÿè—†þÿ‹Mðd‰ _^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒìƒ}uhüjjAhhjèd…þÿƒÄƒøuÌ‹M‰Mü‹Uü‹BPèsþÿƒÄ…Àu3Àéû}ü`u ÇEøë}ü `u ÇEøë3ÀéЋ LnƒÁ‰ Ln‹Uü‹B % t3Àé­‹Møƒ<°nuZj]hhjhèžþÿƒÄ‹Uø‰•°n‹Eøƒ<…°nu-‹MüƒÁ‹Uü‰J‹Eü‹Mü‹Q‰‹EüÇ@‹MüÇAë/‹Uü‹Eø‹ …°n‰J‹Uü‹Eü‹H‰ ‹UüÇB‹EüÇ@‹Mü‹Q Ê‹Eü‰P ¸‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQƒ}t'ƒ}t!htjhhhj轃þÿƒÄƒøuÌ‹M ‰Müƒ}tI‹Uü‹B %t:‹MüQ豌þÿƒÄ‹Uü‹B %ÿîÿÿ‹Mü‰A ‹UüÇB‹EüÇ‹MüÇAë‹Uü‹B %t ‹MüQèhŒþÿƒÄ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒìƒ} uhüjjfhÜjèô‚þÿƒÄƒøuÌ‹M ‰Mø‹Uø‹B‰Eð‹Mø‹Q â‚t ‹Eø‹H ƒá@t‹Uø‹B ƒÈ ‹Mø‰A ƒÈÿéä‹Uø‹B ƒàtH‹MøÇA‹Uø‹B ƒàt‹Mø‹Uø‹B‰‹Mø‹Q ƒâþ‹Eø‰P ë‹Mø‹Q ƒÊ ‹Eø‰P ƒÈÿé‘‹Mø‹Q ƒÊ‹Eø‰P ‹Mø‹Q ƒâï‹Eø‰P ‹MøÇAÇEü‹Uü‰Uô‹Eø‹H á u.}ø`t }ø `u‹UðRè%ŠþÿƒÄ…Àu ‹EøPèNˆþÿƒÄ‹Mø‹Q â„Ì‹Eø‹Mø‹+Qy!hjhhÜjè±þÿƒÄƒøuÌ‹Mø‹Uø‹+B‰Eü‹Mø‹QƒÂ‹Eø‰‹Mø‹Qƒê‹Eø‰Pƒ}ü~‹MüQ‹Uø‹BP‹MðQè×€þÿƒÄ ‰EôëDƒ}ðÿt‹UðÁú‹Eðƒà‹ •ÀtÁ‰UìëÇEì|d‹Eì¾Hƒá tjj‹UðR軀þÿƒÄ ‹Eø‹HŠUˆëÇEü‹EüPMQ‹UðRèf€þÿƒÄ ‰Eô‹Eô;Eüt‹Mø‹Q ƒÊ ‹Eø‰P ƒÈÿë‹E%ÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì(‹E‰Eè‹M ¯M‰Mð‹Uð‰Uüƒ}üu3Àéæ‹E‹H á t ‹U‹B‰EôëÇEôƒ}ü„¹‹M‹Q âtt‹Eƒxtk‹M‹Uü;Qs‹Eü‰Eàë ‹M‹Q‰Uà‹Eà‰Eì‹MìQ‹UèR‹E‹QèëƒþÿƒÄ ‹Uü+Uì‰Uü‹E‹H+Mì‹U‰J‹E‹Mì‹U‰ ‹EèEì‰Eèé2‹Mü;Mô‚È‹U‹B %t ‹MQèMˆþÿƒÄ…Àt‹Eð+Eü3Ò÷u éƒ}ôt‹Eü3Ò÷uô‹Eü+‰EÜë‹Mü‰MÜ‹U܉Uì‹EìP‹MèQ‹U‹BPèS~þÿƒÄ ‰Eøƒ}øÿu‹M‹Q ƒÊ ‹E‰P ‹Eð+Eü3Ò÷u éž‹Mü+Mø‰Mü‹UèUø‰Uè‹Eø;Eìs‹M‹Q ƒÊ ‹E‰P ‹Eð+Eü3Ò÷u ëhë^‹M辉Uä‹EP‹MäQèc†þÿƒÄƒøÿu ‹Eð+Eü3Ò÷u ë;‹UèƒÂ‰Uè‹Eüƒè‰Eü‹Mƒy~ ‹U‹B‰EØëÇEØ‹M؉Môé=þÿÿ‹E‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìhhè~þÿƒÄ]ÃÌÌÌÌÌÌÌÌÌU‹ìƒìÝÝ]øÝøÝ]ðÝEðÜuøÜMøÜmðÝ]èÝEèÜèßàöÄAu ÇEäëÇEä‹Eä‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒìh4ÿ ’‰Eøƒ}øth‹EøPÿÜ‘‰Eüƒ}ütjÿUüëè¥þÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì‹E¾Q詃þÿƒÄƒøetB‹UƒÂ‰Uƒ=`d~j‹E¾QèÍ}þÿƒÄ‰Eøëj‹U¾Pè’zþÿƒÄ‰Eøƒ}øu¾‹MŠˆUÿ‹EŠ ddˆ‹UƒÂ‰U‹EŠˆMþ‹UŠEÿˆŠMþˆMÿ‹U¾‹MƒÁ‰M…Àu׋å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQ‹E¾…Ét‹U¾¾ dd;Át ‹UƒÂ‰UëÚ‹E¾‹UƒÂ‰U…É„’‹E¾…Ét!‹U¾ƒøet‹M¾ƒúEt ‹EƒÀ‰EëÕ‹M‰Mü‹Uƒê‰U‹E¾ƒù0u ‹Uƒê‰Uëê‹E¾¾dd;Êu ‹Eƒè‰E‹MƒÁ‰M‹U‹EüŠˆ ‹U¾‹MüƒÁ‰Mü…ÀtëØ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQ‹EÝÜ@ßàöÄu ÇEüëÇEü‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì ƒ}t ‹EPMøQèð|þÿƒÄ‹U ‹Eø‰‹Mü‰Jë‹UREôPè9}þÿƒÄ‹M ‹Uô‰‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì‹E‰Eð¾ Àn…Ét2‹¼n‰Uô‹Eô3Ƀ8-”ÁM ‰Mü3Òƒ}ŸÂR‹EüPè<ƒÄëB‹Mð‹QR‹Pè$|þÿƒÄ‰Eô‹MôQ‹UƒÂR‹Eô3Ƀ8-”ÁM 3Òƒ}ŸÂÊQè,vþÿƒÄ ‹E ‰Eü‹Môƒ9-u‹UüÆ-‹EüƒÀ‰Eüƒ}~‹Mü‹UüŠBˆ‹MüƒÁ‰Mü‹Uü ddˆhL‹MüM¾Àn÷ÚÒBÊQè«zþÿƒÄ‰Eüƒ}t‹EüÆE‹MüƒÁ‰Mü‹Uô‹B ¾ƒù0„¦‹Uô‹Bƒè‰Eøy‹Mø÷Ù‰Mø‹UüÆ-‹EüƒÀ‰Eüƒ}ød|)‹Eø™¹d÷ù¾Ð‹Eü¾Ê‹Uüˆ ‹Eø™¹d÷ù‰Uø‹UüƒÂ‰Uüƒ}ø |)‹Eø™¹ ÷ù¾Ð‹Eü¾Ê‹Uüˆ ‹Eø™¹ ÷ù‰Uø‹UüƒÂ‰Uü¾Eø‹Mü¾ЋEüˆ‹E ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì‹E‰Eô¾ Àn…ÉtH‹¼n‰Uø‹Eø3Ƀ8-”ÁM ‰Mü‹Än;Uu!‹EüÄn‰Eð‹MðÆ0‹UðƒÂ‰Uð‹EðÆë:‹Mô‹QR‹PèÎyþÿƒÄ‰Eø‹MøQ‹Uø‹EBP‹Mø3Òƒ9-”ÂU RèÞsþÿƒÄ ‹E ‰Eü‹Møƒ9-u‹UüÆ-‹EüƒÀ‰Eü‹Møƒyj‹UüRèvƒÄ‹EüÆ0‹MüƒÁ‰Müë ‹Uø‹EüB‰Eüƒ}ŽŠj‹MüQèAƒÄ‹Uü ddˆ‹MüƒÁ‰Mü‹Uøƒz}`¾Àn…Àt ‹Mø‹Q÷Ú‰Uë&‹Eø‹H÷Ù9M}‹U‰Uìë ‹Eø‹H÷Ù‰Mì‹Uì‰U‹EP‹MüQè׃ċURj0‹EüPèKvþÿƒÄ ‹E ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì‹E‰Eø‹Mø‹QR‹Pè1xþÿƒÄ£¼n‹ ¼n‹Qƒê‰Än¡¼n3Ƀ8-”ÁM ‰Mü‹¼nR‹EP‹MüQè(rþÿƒÄ ‹¼n‹Bƒè9ÄnœÁˆ Èn‹¼n‹Bƒè£Änƒ=Änü| ‹ Än;M|‹UR‹EP‹M Q‹UR范Äë;¾Èn…Àt‹Mü¾‹EüƒÀ‰Eü…Òtëë‹MüÆAþ‹UR‹E P‹MQèŸƒÄ ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQÆÀn‹EP‹MQ‹U R‹EPè|xþÿƒÄ‰EüÆÀn‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQÆÀn‹EP‹M Q‹URè5xþÿƒÄ ‰EüÆÀn‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒ}etƒ}Eu‹EP‹MQ‹U R‹EPèèwþÿƒÄë4ƒ}fu‹MQ‹U R‹EPèÑwþÿƒÄ ë‹MQ‹UR‹E P‹MQè¼wþÿƒÄ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒ} t#‹EPè¾tþÿƒÄƒÀP‹MQ‹UU Rè|wþÿƒÄ ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ì‹E‹9csmàu,‹U‹ƒxu!‹M‹z “t‹E‹y!“uèõsþÿƒ=Ìnt‹ÌnRèèzþÿƒÄ…Àt ‹EPÿÌnë3À]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìhìIÿ$’£Ìn3À]ÃÌÌÌÌÌÌÌÌÌU‹ì¡ÌnPÿ$’]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQ¡ÐnP‹MQè pþÿƒÄ‰Eü‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQƒ}àv3ÀëEƒ}àw‹EPè1oþÿƒÄ‰EüëÇEüƒ}üuƒ} u‹Eüë‹MQèõwþÿƒÄ…Àu3Àë뻋å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQƒ=vu%‹E;àuw‹MQèÔzþÿƒÄ‰Eüƒ}üt‹Eüë5ƒ}uÇEƒ=vt ‹UƒÂƒâð‰U‹EPj‹ vQÿ(’‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ì¸]ÃÌÌÌÌÌÌU‹ìƒìƒ} àv3À鱃=vu‹EPèaqþÿƒÄ‰Eøƒ}øt0ÇEü‹M ; àuw‹U R‹EP‹MøQè}qþÿƒÄ …Àt‹U‰Uüƒ}øu2ƒ} uÇE ‹E ƒÀƒàð‰E ‹M Q‹URj¡ vPÿ,’‰Eüë&ƒ} uÇE ‹M Q‹URj¡ vPÿ,’‰Eü‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì‹E ‰Eøƒ}u‹M Qè:oþÿƒÄé.ƒ} u‹URèvþÿƒÄ3Àéƒ=v…ªÇEüƒ} à‡l‹EPè#pþÿƒÄ‰Eðƒ}ð„‹M ; àu‡Š‹U R‹EP‹MðQè>pþÿƒÄ …Àt‹U‰Uüëj‹E PèªxþÿƒÄ‰Eüƒ}ütU‹M‹Qüƒê‰Uô‹Eô;E s‹Mô‰Mìë‹U ‰Uì‹EìP‹MQ‹UüRèÀsþÿƒÄ ‹EPèoþÿƒÄ‰Eð‹MQ‹UðRè wþÿƒÄƒ}üu{ƒ} uÇE ‹E ƒÀƒàð‰E ‹M Qj‹ vRÿ(’‰Eüƒ}ütF‹E‹Hüƒé‰Mô‹Uô;U s‹Eô‰Eèë‹M ‰Mè‹UèR‹EP‹MüQè0sþÿƒÄ ‹UR‹EðPè‹vþÿƒÄƒ}ðu3ƒ} uÇE ‹M ƒÁƒáð‰M ‹U R‹EPj‹ vQÿ,’‰Eüƒ}üu ƒ=Ðnu‹Eüëw‹U RèHtþÿƒÄ…Àu3ÀëcéVþÿÿÇEüƒ} àw'ƒ} uÇE ‹E P‹MQj‹ vRÿ,’‰Eüƒ}üu ƒ=Ðnu‹Eüë‹E PèçsþÿƒÄ…Àu3Àë뢋å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQƒ}uë[ƒ=vu@‹EPèxmþÿƒÄ‰Eüƒ}üt‹MQ‹UüRèîtþÿƒÄƒ}üu‹EPj‹ vQÿ0’ë‹URj¡ vPÿ0’‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQÇEüþÿÿÿƒ=vuèmþÿ…À}ÇEüüÿÿÿjj¡ vPÿô‘…Àu(ÿ4’ƒøxuÇØnxÇÔn(ëÇEüüÿÿÿ‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìèûlþÿ]ÃÌÌÌÌÌÌU‹ìQÇEüƒ=ànuƒ=ìnr¸ë¸‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjh3Àƒ}”ÀPÿ<’£ vƒ= vu3Àë:èŸrþÿ£vƒ=vu"høèEsþÿƒÄ…Àu‹ vQÿ8’3Àë¸]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒìƒ=v……¡Üu‰EøÇEüë ‹MüƒÁ‰Mü‹Uü;Øu}Kh@h‹Eø‹H Qÿ@’h€j‹Uø‹B Pÿ@’‹Mø‹QRj¡ vPÿ0’‹MøƒÁ‰Møë¡‹ÜuRj¡ vPÿ0’‹ vQÿ8’‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ì¡ v]ÃÌÌÌÌÌÌU‹ìQƒ=”_t ‹EPÿ”_ƒÄh$Vh S臃ĉEüƒ}üt‹Eüë!hgBèðiþÿƒÄhRhPè*ƒÄ3À‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjj‹EPèpƒÄ ]ÃÌÌÌÌÌÌÌÌÌÌÌU‹ìjj‹EPèPƒÄ ]ÃÌÌÌÌÌÌÌÌÌÌÌU‹ìjjjè2ƒÄ ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjjjèƒÄ ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒ= ou‹EPÿH’PÿD’ÇoŠMˆ oƒ} uLƒ=vt1‹vƒê‰v¡v;vr‹ vƒ9t‹vÿëÏh0Yh(WèƒÄh<\h4ZèïƒÄƒ=$oujÿè1hþÿƒÄƒà tÇ$oè›nþÿƒ}tëÇ o‹EPè¨iþÿƒÄ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒìhhÿ ’‰Eüƒ}üthT‹EüPÿÜ‘‰Eøƒ}øt‹MQÿUø‹URÿø‘‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ì‹E;E s‹Mƒ9t‹Uÿ‹EƒÀ‰Eëà]ÃÌÌÌÌÌÌÌÌÌÌÌU‹ìQÇEü‹E;E s!ƒ}üu‹Mƒ9t‹Uÿ‰Eü‹EƒÀ‰Eë׋Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒ=vu¡àuë3À]ÃÌÌÌÌÌÌÌÌÌU‹ìƒ=vu}øw‹E£àu¸ëH3ÀëDƒ=vu9ƒ}v3}øw*‹MQè¥nþÿƒÄ…Àt‹U‰àuÇv¸ë3À]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìh@j¡ vPÿ(’£Üuƒ=Üuu3Àë8‹M‰ àu‹Üu‰äuÇÔuÇØuÇèu¸]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì ¡ØukÀÜu‰Eü‹ Üu‰Mø‹Uø;Uüs%‹Eø‹M+H ‰Mô}ôs‹Eøë ‹UøƒÂ‰UøëÓ3À‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì ‹E‹M +H ‰Mø‹UøÁê‰Uü¸€‹MüÓè‹M#Au‹Uøƒâu‹Eø%ÿt ÇEôëÇEô‹Eô‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì<‹E‹H‰MÔ‹U‹E +B ‰Eà‹MàÁé‰Mì‹UìiÒ‹EÔŒD‰MØ‹U ƒê‰Uè‹E苃é‰MÄ‹UăâtéY‹EèEĉEø‹Mø‹‰UÌ‹Eè‹Hü‰Mä‹Ũâ…‹EÌÁøƒè‰Eðƒ}ð?vÇEð?‹Mø‹Uø‹A;B…ƃ}ð sZº€‹MðÓê÷Ò‹Eì‹MÔ#TD‹Eì‹MÔ‰TD‹UÔUðŠB,‹MÔMðˆA‹UÔUð¾B…Àuº€‹MðÓê÷Ò‹E#‹M‰ëf‹Mðƒé º€Óê÷Ò‹Eì‹MÔ#”Ä‹Eì‹MÔ‰”Ä‹UÔUðŠB,‹MÔMðˆA‹UÔUð¾B…Àu‹Mðƒé º€Óê÷Ò‹E#P‹M‰Q‹Uø‹B‹Mø‹Q‰P‹Eø‹H‹Uø‹B‰A‹MÄM̉MÄ‹UÄÁúƒê‰Uȃ}È?vÇEÈ?‹Eäƒà…M‹Mè+Mä‰Mô‹UäÁúƒê‰UЃ}Ð?vÇEÐ?‹EÄEä‰EÄ‹MÄÁùƒé‰Mȃ}È?vÇEÈ?‹UÐ;UÈ„÷‹Eô‹Mô‹P;Q…ǃ}Ð s[¸€‹MÐÓè÷ЋMì‹UÔ#DŠD‹Mì‹UÔ‰DŠD‹EÔEЊH€é‹UÔUЈJ‹EÔEоH…Éuº€‹MÐÓê÷Ò‹E#‹M‰ëf‹MÐƒé º€Óê÷Ò‹Eì‹MÔ#”Ä‹Eì‹MÔ‰”Ä‹UÔUЊB,‹MÔMЈA‹UÔUоB…Àu‹MÐƒé º€Óê÷Ò‹E#P‹M‰Q‹Uô‹B‹Mô‹Q‰P‹Eô‹H‹Uô‹B‰A‹Mô‰Mè‹Uäƒâu ‹EÐ;EÈ„‹MÈ‹UØʉEÜ‹Mè‹UÜ‹B‰A‹Mè‹U܉Q‹EÜ‹Mè‰H‹Uè‹B‹Mè‰H‹Uè‹Eè‹J;H…Àƒ}È sW‹UÔUȾB‹MÔMÈŠQ€Â‹MÔMȈQ…Àuº€‹MÈÓê‹E ‹M‰º€‹MÈÓê‹Eì‹MÔ TD‹Eì‹MÔ‰TDëc‹UÔUȾB‹MÔMÈŠQ€Â‹MÔMȈQ…Àu‹MÈƒé º€Óê‹E P‹M‰Q‹MÈƒé º€Óê‹Eì‹MÔ ”Ä‹Eì‹MÔ‰”Ä‹Uè‹Eĉ‹MèMÄ‹UĉQü‹EØ‹ƒé‹U؉ ‹E؃8…`ƒ=Ôu„B‹ ìuÁá‹ÔuJ ‰Müh@h€‹EüPÿ@’º€‹ ìuÓê¡Ôu P‹ Ôu‰Q‹Ôu‹B‹ ìuÇ„ˆÄ‹Ôu‹BŠHC€é‹Ôu‹BˆHC‹ Ôu‹Q¾BC…Àu‹ Ôu‹Qƒâþ¡Ôu‰P‹ Ôuƒyÿ…‘h€j‹Ôu‹B Pÿ@’‹ Ôu‹QRj¡ vPÿ0’‹ ØukÉ Üu‹ÔuƒÂ+ÊQ¡ÔuƒÀP‹ ÔuQèdþÿƒÄ ‹Øuƒê‰Øu‹E;Ôuv ‹Mƒé‰M‹Üu‰äu‹E£Ôu‹Mì‰ ìu‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì8V¡ØukÀÜu‰Eô‹MƒÁƒáð‰MÈ‹UÈÁúƒê‰Ũ}Ì }ƒÈÿ‹MÌÓè‰EèÇEÐÿÿÿÿëÇEè‹MÌƒé ƒÊÿÓê‰UСäu‰Eä‹Mä;Môs"‹Uä‹Eè#‹Mä‹UÐ#Q Âtë ‹EäƒÀ‰EäëÖ‹Mä;Mô…Û‹Üu‰Uä‹Eä;äus"‹Mä‹Uè#‹Eä‹MÐ#H Ñtë ‹UäƒÂ‰UäëÓ‹Eä;äu…–‹Mä;Môs‹Uäƒztë ‹EäƒÀ‰Eäëâ‹Mä;MôuJ‹Üu‰Uä‹Eä;äus‹Mäƒytë ‹UäƒÂ‰Uäëß‹Eä;äuuèª_þÿ‰Eäƒ}äu3Àé‹MäQè¯ZþÿƒÄ‹Uä‹J‰‹Uä‹Bƒ8ÿu3À霋Mä‰ äu‹Uä‹B‰EØ‹MØ‹‰Uìƒ}ìÿt!‹Eì‹MØ‹Uè#TD‹Eì‹MØ‹uÐ#´Ä Öu3ÇEì‹Uì‹EØ‹Mè#LD‹Uì‹EØ‹uÐ#´Ä Îu ‹MìƒÁ‰MìëÔ‹UìiÒ‹EØŒD‰MÜÇEÌ‹Uì‹EØ‹Mè#LD‰MüuÇEÌ ‹Uì‹EØ‹MÐ#ŒÄ‰Müƒ}ü|‹UüÑâ‰Uü‹ẼÀ‰EÌëç‹MÌ‹UÜ‹DʉEø‹Mø‹+UȉUÔ‹EÔÁøƒè‰Eðƒ}ð?~ÇEð?‹Mð;MÌ„‹Uø‹Eø‹J;H…ƃ}Ì }Zº€‹MÌÓê÷Ò‹Eì‹MØ#TD‹Eì‹M؉TD‹UØUÌŠB,‹MØM̈A‹UØU̾B…Àuº€‹MÌÓê÷Ò‹Eä#‹Mä‰ëf‹MÌƒé º€Óê÷Ò‹Eì‹MØ#”Ä‹Eì‹M؉”Ä‹UØUÌŠB,‹MØM̈A‹UØU̾B…Àu‹MÌƒé º€Óê÷Ò‹Eä#P‹Mä‰Q‹Uø‹B‹Mø‹Q‰P‹Eø‹H‹Uø‹B‰Aƒ}Ô„‹Mð‹UÜʉEà‹Mø‹Uà‹B‰A‹Mø‹Uà‰Q‹Eà‹Mø‰H‹Uø‹B‹Mø‰H‹Uø‹Eø‹J;H…Àƒ}ð }W‹UØUð¾B‹MØMðŠQ€Â‹MØMðˆQ…Àuº€‹MðÓê‹Eä ‹M䉺€‹MðÓê‹Eì‹MØ TD‹Eì‹M؉TDëc‹UØUð¾B‹MØMðŠQ€Â‹MØMðˆQ…Àu‹Mðƒé º€Óê‹Eä P‹Mä‰Q‹Mðƒé º€Óê‹Eì‹MØ ”Ä‹Eì‹M؉”ă}Ôt‹Uø‹EÔ‰‹MøMÔ‹UÔ‰Qü‹EøEÔ‰Eø‹MȃÁ‹Uø‰ ‹EȃÀ‹MøMȉAü‹UÜ‹‹MÜ‹ƒÂ‹M܉…Àu ‹Uä;Ôuu‹Eì;ìuu ÇÔu‹MØ‹U쉋EøƒÀ^‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQ¡Øu;èuuJ‹ èuƒÁkÉQ‹ÜuRj¡ vPÿ,’‰Eüƒ}üu3À鯋Mü‰ Üu‹èuƒÂ‰èu¡ØukÀÜu‰EühÄAj‹ vQÿ(’‹Uü‰B‹Eüƒxu3Àëvjh hjÿL’‹Mü‰A ‹Uüƒz u‹Eü‹HQj‹ vRÿ0’3Àë9‹EüÇ‹MüÇA‹UüÇBÿÿÿÿ¡ØuƒÀ£Øu‹Mü‹QÇÿÿÿÿ‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì,‹E‹H‰Mà‹U‹B‰EÔÇE؃}Ô|‹MÔÑá‰MÔ‹U؃‰UØëç‹EØiÀ‹Mà”D‰UäÇEìë ‹EìƒÀ‰Eìƒ}ì?} ‹Mì‹UäʉEø‹Mø‹Uø‰Q‹Eø‹Mø‰HëÑ‹UØÁâ‹EP ‰Uôjhh€‹MôQÿL’…ÀuƒÈÿé/‹UôÂp‰Uü‹Eô‰Eðë ‹MðÁ‰Mð‹Uð;Uüw]‹EðÇ@ÿÿÿÿ‹MðÇüÿÿÿÿ‹UðƒÂ ‰Uø‹EøÇð‹MøÁ‹Uø‰J‹Eø-‹Mø‰A‹UøÂì‰UÜ‹EÜÇðë‹MäÁø‰Mè‹UôƒÂ ‹Eè‰P‹Mè‹Q‰Uø‹Eø‹Mè‰H‹UüƒÂ ‹Eè‰P‹Mè‹Q‰Uø‹Eø‹Mè‰H‹UØ‹EàÇDD‹MØ‹UàÇ„ŠÄ‹Eà¾HC‹UàŠBC‹UàˆBC…Éu‹E‹HƒÉ‹U‰J¸€‹MØÓè÷ЋM#A‹U‰B‹EØ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì0‹EƒÀƒàð‰Eä‹M‹Q‰UÜ‹E‹M +H ‰Mì‹UìÁê‰Uô‹EôiÀ‹MÜ”D‰Uà‹E ƒè‰Eð‹Mð‹ƒê‰UЋEðEЉEü‹Mü‹‰UØ‹Eä;EÐŽœ‹M؃áu ‹UÐUØ9Uä~3Àé1‹EØÁøƒè‰Eøƒ}ø?vÇEø?‹Mü‹Uü‹A;B…ƃ}ø sZº€‹MøÓê÷Ò‹Eô‹MÜ#TD‹Eô‹M܉TD‹UÜUøŠB,‹MÜMøˆA‹UÜUø¾B…Àuº€‹MøÓê÷Ò‹E#‹M‰ëf‹Møƒé º€Óê÷Ò‹Eô‹MÜ#”Ä‹Eô‹M܉”Ä‹UÜUøŠB,‹MÜMøˆA‹UÜUø¾B…Àu‹Møƒé º€Óê÷Ò‹E#P‹M‰Q‹Uü‹B‹Mü‹Q‰P‹Eü‹H‹Uü‹B‰A‹MÐMØ+Mä‰M؃}ØŽ>‹UðUä‰Uü‹EØÁøƒè‰Eøƒ}ø?vÇEø?‹Mø‹UàʉEè‹Mü‹Uè‹B‰A‹Mü‹Uè‰Q‹Eè‹Mü‰H‹Uü‹B‹Mü‰H‹Uü‹Eü‹J;H…Àƒ}ø sW‹UÜUø¾B‹MÜMøŠQ€Â‹MÜMøˆQ…Àuº€‹MøÓê‹E ‹M‰º€‹MøÓê‹Eô‹MÜ TD‹Eô‹M܉TDëc‹UÜUø¾B‹MÜMøŠQ€Â‹MÜMøˆQ…Àu‹Møƒé º€Óê‹E P‹M‰Q‹Møƒé º€Óê‹Eô‹MÜ ”Ä‹Eô‹M܉”Ä‹Uü‹E؉‹MüMØ‹U؉Qü‹EäƒÀ‹Mð‰‹UäƒÂ‹EðEä‰Pü骋Mä;MО‹UäƒÂ‹Eð‰‹MäƒÁ‹UðUä‰Jü‹EðEä‰Eð‹MÐ+Mä‰MЋUÐÁúƒê‰UÔƒ}Ô?vÇEÔ?‹E؃à…1‹MØÁùƒé‰Møƒ}ø?vÇEø?‹Uü‹Eü‹J;H…ƃ}ø sZº€‹MøÓê÷Ò‹Eô‹MÜ#TD‹Eô‹M܉TD‹UÜUøŠB,‹MÜMøˆA‹UÜUø¾B…Àuº€‹MøÓê÷Ò‹E#‹M‰ëf‹Møƒé º€Óê÷Ò‹Eô‹MÜ#”Ä‹Eô‹M܉”Ä‹UÜUøŠB,‹MÜMøˆA‹UÜUø¾B…Àu‹Møƒé º€Óê÷Ò‹E#P‹M‰Q‹Uü‹B‹Mü‹Q‰P‹Eü‹H‹Uü‹B‰A‹MÐM؉MЋUÐÁúƒê‰UÔƒ}Ô?vÇEÔ?‹EÔ‹MàÁ‰Uè‹Eð‹Mè‹Q‰P‹Eð‹Mè‰H‹Uè‹Eð‰B‹Mð‹Q‹Eð‰B‹Mð‹Uð‹A;B…Àƒ}Ô sW‹MÜMÔ¾Q‹EÜEÔŠH€Á‹EÜEÔˆH…Òuº€‹MÔÓê‹E ‹M‰º€‹MÔÓê‹Eô‹MÜ TD‹Eô‹M܉TDëc‹UÜUÔ¾B‹MÜMÔŠQ€Â‹MÜMÔˆQ…Àu‹MÔƒé º€Óê‹E P‹M‰Q‹MÔƒé º€Óê‹Eô‹MÜ ”Ä‹Eô‹M܉”Ä‹Uð‹EЉ‹MðMЋUЉQü¸‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQƒ=Ôu„¡ìuÁà‹ ÔuA ‰Eüh@h€‹UüRÿ@’¸€‹ ìuÓè‹ Ôu A‹Ôu‰B¡Ôu‹H‹ìuÇ„‘Ä¡Ôu‹HŠQC€ê¡Ôu‹HˆQC‹Ôu‹B¾HC…Éu‹Ôu‹Bƒàþ‹ Ôu‰A‹Ôuƒzÿubƒ=Øu~Y¡Ôu‹HQj‹ vRÿ0’¡ØukÀÜu‹ ÔuƒÁ+ÁP‹ÔuƒÂR¡ÔuPèÙOþÿƒÄ ‹ Øuƒé‰ ØuÇÔu‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ììl¡ØukÀP‹ ÜuQÿì‘…ÀtƒÈÿéá‹Üu‰UÈÇ…”þÿÿë‹…”þÿÿƒÀ‰…”þÿÿ‹”þÿÿ; Øu©‹UÈ‹B‰E¸hÄA‹M¸Qÿì‘…Àt ¸þÿÿÿé…‹UÈ‹B ‰Eð‹M¸ÁD‰M¼‹UÈ‹B‰…¤þÿÿÇEÌÇE°ÇEäë ‹MäƒÁ‰Mäƒ}ä ÇEôÇEüÇEìÇ…˜þÿÿë‹•˜þÿÿƒÂ‰•˜þÿÿƒ½˜þÿÿ@}‹…˜þÿÿÇ„…¨þÿÿëÕƒ½¤þÿÿŒch€‹MðQÿì‘…Àt ¸üÿÿÿéÄ‹Uð‰UØÇEèë ‹EèƒÀ‰Eèƒ}è%‹M؃Á ‰MÜ‹UÜÂð‰UЋE܃xüÿu‹MЃ9ÿt ¸ûÿÿÿér‹UÜ‹‰EÄ‹Mĉ þÿÿ‹• þÿÿƒât'‹Eăè‰EÄ}Ä~ ¸úÿÿÿé:‹MìƒÁ‰Mìë?‹UÄÁúƒê‰•˜þÿÿƒ½˜þÿÿ?~ Ç…˜þÿÿ?‹…˜þÿÿ‹Œ…¨þÿÿƒÁ‹•˜þÿÿ‰Œ•¨þÿÿƒ}Ä|‹Eăàu }Äð~ ¸ùÿÿÿéÏ‹MÜMÄ‹Qü;• þÿÿt ¸øÿÿÿé´‹EÜEĉEÜ‹MÜ;MЂ-ÿÿÿ‹UÜ;UÐt ¸øÿÿÿé‹E؉EØéÈþÿÿ‹M¼‹;Uìt ¸÷ÿÿÿéi‹E¼‰EÀÇ…œþÿÿ닜þÿÿƒÁ‰œþÿÿƒ½œþÿÿ@½ÇE¬‹UÀ‰UÜ‹EÜ‹H‰Mø‹Uø;UÀ„î‹…œþÿÿ‹M¬;Œ…¨þÿÿ„Ø‹Uø;Uðr ‹Eð€9Eør ¸öÿÿÿéä‹Møáðÿÿ‰M´‹U´ƒÂ ‰UÔ‹EÔð‰Eà‹MÔ;Màt‹UÔ;Uøuë‹EÔ‹ƒáþMÔ‰MÔëÞ‹UÔ;Uàu ¸õÿÿÿé‹Eø‹Áùƒé‰˜þÿÿƒ½˜þÿÿ?~ Ç…˜þÿÿ?‹•˜þÿÿ;•œþÿÿt ¸ôÿÿÿéT‹Eø‹H;MÜt ¸óÿÿÿé?‹Uø‰UÜ‹E¬ƒÀ‰E¬éýþÿÿƒ}¬t]ƒ½œþÿÿ }(º€‹œþÿÿÓê Uô‰Uô¸€‹œþÿÿÓè ẺEÌë,‹œþÿÿƒé º€Óê Uü‰Uü‹œþÿÿƒé ¸€Óè E°‰E°‹MÜ‹Q;UÀu‹…œþÿÿ‹M¬;Œ…¨þÿÿt ¸òÿÿÿé¡‹UÀ‹B;EÜt ¸ñÿÿÿ錋MÀƒÁ‰MÀé'þÿÿ‹Uä‹E¸‹Mô;LDu‹Uä‹E¸‹Mü;ŒÄt¸ðÿÿÿëV‹Uð€‰Uð‹E¼‰E¼‹¤þÿÿÑቤþÿÿéßûÿÿ‹UÈ‹EÌ;u ‹MÈ‹U°;Qt¸ïÿÿÿë‹EȃÀ‰EÈé6ûÿÿ3À‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ì‹EƒÀ=vh„jj8hxjèÐDþÿƒÄƒøuÌ‹U¡0f·P#E ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì ‹EƒÀ=w‹M‹0f·J#E 釋EÁø%ÿ¶È‹0f·J%€t"‹MÁùáÿˆMôŠUˆUõÆEöÇEøëŠEˆEôÆEõÇEøj‹ XqQ‹hqREüP‹MøQUôRjè²IþÿƒÄ…Àu3Àë·Eü#E ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ì켡àb‰EÌÇEÜÇ…ÄýÿÿÇ…´ýÿÿÇEà‹E Šˆ¿ýÿÿ¾•¿ýÿÿ‹E ƒÀ‰E …Ò„` ƒ½ÄýÿÿŒS ¾¿ýÿÿƒù |%¾•¿ýÿÿƒúx¾…¿ýÿÿ¾ˆˆƒá‰\ýÿÿë Ç…\ýÿÿ‹•\ýÿÿ‰•Àýÿÿ‹…Àýÿÿ‹´ýÿÿ¾”Á¨Áú‰•´ýÿÿ‹…´ýÿÿ‰…Xýÿÿƒ½Xýÿÿ‡Ñ ‹Xýÿÿÿ$ ÇEô¶•¿ýÿÿ¡0f· Pá€tZ•ÄýÿÿR‹EPŠ¿ýÿÿQèƒÄ ‹U Šˆ…¿ýÿÿ‹M ƒÁ‰M ¾•¿ýÿÿ…Òu!h8jh’h,jèhBþÿƒÄƒøuÌÄýÿÿQ‹URŠ…¿ýÿÿPèÃƒÄ é, ÇEÔ‹MÔ‰MØ‹U؉Uè‹Eè‰EäÇEðÇEÐÿÿÿÿÇEôéù ¾¿ýÿÿ‰Týÿÿ‹•Týÿÿƒê ‰•Týÿÿƒ½TýÿÿwL‹…Týÿÿ¶ˆP ÿ$8 ‹UðƒÊ‰Uðë-‹EðƒÈ‰Eðë"‹MðƒÉ‰Mðë‹UðÊ€‰Uðë ‹EðƒÈ‰Eðéƒ ¾¿ýÿÿƒù*u(UR譃ĉEèƒ}è}‹EðƒÈ‰Eð‹Mè÷Ù‰Mèë‹UèkÒ ¾…¿ýÿÿLЉMèé6 ÇEÐé* ¾•¿ýÿÿƒú*uEPèTƒÄ‰EЃ}Ð}ÇEÐÿÿÿÿë‹MÐkÉ ¾•¿ýÿÿDЉEÐéç ¾¿ýÿÿ‰Pýÿÿ‹•PýÿÿƒêI‰•Pýÿÿƒ½Pýÿÿ.‡í‹…Pýÿÿ¶ˆu ÿ$a ‹UðƒÊ‰UðéË‹E ¾ƒù6u&‹U ¾Bƒø4u‹M ƒÁ‰M ‹UðÊ€‰Uðé‹E ¾ƒù3u#‹U ¾Bƒø2u‹M ƒÁ‰M ‹Uðâÿÿÿ‰UðëS‹E ¾ƒùdt7‹U ¾ƒøit,‹M ¾ƒúot!‹E ¾ƒùut‹U ¾ƒøxt ‹M ¾ƒúXuëÇ…´ýÿÿé&ýÿÿë‹EðƒÈ ‰Eðë ‹MðɉMðé̾•¿ýÿÿ‰•Lýÿÿ‹…LýÿÿƒèC‰…Lýÿÿƒ½Lýÿÿ5‡Ï‹Lýÿÿ¶‘à ÿ$•¤ ‹Eð%0u ‹MðɉMð‹UðâtƒÄëj‹EP‹M Q‹URè&ƒÄ‹E ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì‹E ‰Eüƒ}t‹MüÆ-‹UüƒÂ‰Uü‹E÷؉E‹Mü‰Mð‹E3Ò÷u‰Uø‹E3Ò÷u‰Eƒ}ø v‹UøƒÂW‹Eüˆ‹MüƒÁ‰Müë‹UøƒÂ0‹Eüˆ‹MüƒÁ‰Müƒ}w´‹UüÆ‹Eüƒè‰Eü‹MüŠˆU÷‹Eü‹MðŠˆ‹EðŠM÷ˆ‹Uüƒê‰Uü‹EðƒÀ‰Eð‹Mð;MürÌ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQƒ} uƒ}} ÇEüëÇEü‹EüP‹MQ‹U R‹EPèËþÿÿƒÄ‹E ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìj‹EP‹M Q‹URèšþÿÿƒÄ‹E ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQƒ} uƒ} |ƒ}s ÇEüëÇEü‹EüP‹MQ‹UR‹E P‹MQè‹E‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì‹E‰Eüƒ}t"‹MüÆ-‹UüƒÂ‰Uü‹E÷Ø‹M ƒÑ÷Ù‰E‰M ‹Uü‰Uð‹E3ÉQP‹U R‹EPèÕ!þÿ‰Eø‹M3ÒRQ‹E P‹MQè2!þÿ‰E‰U ƒ}ø v‹UøƒÂW‹Eüˆ‹MüƒÁ‰Müë‹UøƒÂ0‹Eüˆ‹MüƒÁ‰Müƒ} w™rƒ}w‘‹UüÆ‹Eüƒè‰Eü‹MüŠˆU÷‹Eü‹MðŠˆ‹EðŠM÷ˆ‹Uüƒê‰Uü‹EðƒÀ‰Eð‹Mð;MürÌ‹å]ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìj‹EP‹MQ‹U R‹EPè¶þÿÿ‹E]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ‹L$ W…É„·‹|$V÷ÇStŠƒÇ„Àt9÷Çuÿþþ~Ѓðÿ3ƒÇ©tè‹Gü„Àt!„ät©ÿt ©ÿuσïë ƒïëƒïëƒï‹t$÷Æu ‹ÙÁéu\ë"ŠƒÆ„Òt=ˆƒÇƒét)÷Æuå‹ÙÁéu8‹ËƒátŠƒÆˆƒÇ„Òtƒéuíˆ[^‹D$_È‹D$[^_ɃǃétȺÿþþ~‹Ѓðÿ3‹ƒÆ©tÜ„Òt΄öt*÷Âÿt÷Âÿuĉ‹D$[^_Ãf‰3Ò‹D$ˆW[^_Ãf‰‹D$[^_ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ‹L$ W…É„’VS‹Ù‹t$÷Æ‹|$u Áé……ë'ŠƒÆˆƒÇƒét+„Àt/÷Æuå‹ÙÁéuaƒãtŠƒÆˆƒÇ„Àt7ƒëuí‹D$[^_Ã÷ÇtˆƒÇƒé„˜÷Çuê‹ÙÁéutˆƒÇƒëuö[^‹D$_ɃǃétŸºÿþþ~‹Ѓðÿ3‹ƒÆ©tÜ„Òt,„öt÷Âÿt ÷Âÿuĉëâÿÿ‰ëâÿ‰ë3Ò‰ƒÇ3Àƒét 3À‰ƒÇƒéuöƒã…wÿÿÿ‹D$[^_ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌW‹|$ën¤$‹ÿ‹L$W÷ÁtŠƒÁ„Àt=÷Áuï‹ÿ‹ºÿþþ~Ѓðÿ3ƒÁ©tè‹Aü„Àt#„ät©ÿt©ÿtëÍyÿë yþëyýëyü‹L$ ÷ÁtŠƒÁ„ÒtfˆƒÇ÷Áuê뉃Ǻÿþþ~‹Ѓðÿ3‹ƒÁ©tá„Òt4„öt'÷Âÿt÷Âÿtëlj‹D$_Ãf‰‹D$ÆG_Ãf‰‹D$_È‹D$_ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒìÇEøƒ}uhüjj6hÀjè=þÿƒÄƒøũ}t#ƒ}r}ÿÿÿw ƒ}tƒ}@tƒÈÿéê‹Mƒáþ‰M‹U‰Uü‹EüPèþÿƒÄ‹MüQè;þÿƒÄ‹Uü‹B %óÂÿÿ‹Mü‰A ‹Uƒât!‹Eü‹H ƒÉ‹Uü‰J ‹EüƒÀ‰E ÇEëbƒ} uJjwhÀj‹MQècþÿƒÄ‰E ƒ} u‹LnƒÂ‰LnÇEøÿÿÿÿëJ‹Eü‹H É‹Uü‰J ë‹Eü‹H É‹Uü‰J ‹Eü‹M‰H‹Uü‹E ‰B‹Mü‹U ‰‹EüÇ@‹Eø‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ‹T$‹L$÷Âu<‹:u. Àt&:au% ätÁè:Au Àt:auƒÁƒÂ äuÒ‹ÿ3ÀÃÀÑàƒÀÃ÷ÂtŠƒÂ:uçƒÁ ÀtÜ÷Ât¤f‹ƒÂ:uÎ ÀtÆ:auÅ ät½ƒÁëˆÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒìƒ=vuè† þÿÇEø¡Xn‰Eüƒ}üuƒÈÿéA‹Mü¾…Òt,‹Eü¾ƒù=t ‹UøƒÂ‰Uø‹EüPèøþÿƒÄ‹MüT‰UüëÊjuhÌj‹Eø …Qèf þÿƒÄ‰Eô‹Uô‰oƒ=ouƒÈÿéÒ¡Xn‰Eüë ‹MüMð‰Mü‹Uü¾…À„‚‹MüQè†þÿƒÄƒÀ‰Eð‹Uü¾ƒø=t`h‚hÌj‹MðQèó þÿƒÄ‹Uô‰‹Eôƒ8u j‹ oQèvþÿƒÄÇoƒÈÿëO‹UüR‹Eô‹QèdþÿƒÄ‹UôƒÂ‰Uôégÿÿÿj¡XnPè7þÿƒÄÇXn‹MôÇÇðu3À‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒìƒ=vuè¦ þÿÆtphhpojÿü‘Çopoƒ=4vt¡4v¾…Ét ‹4v‰Uìë¡o‰Eì‹Mì‰MôUðREøPjj‹MôQ覃Äh‚hØj‹Uø‹Eð Qèn þÿƒÄ‰Eüƒ}üuƒÈÿë8UðREøP‹Mø‹UüŠP‹MüQ‹UôRèXƒÄ‹Eøƒè£ôn‹Mü‰ øn3À‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì‹EÇ‹MÇ‹U‰Uüƒ} t‹E ‹M‰‹U ƒÂ‰U ÇEø‹Eü¾ƒù"u3Òƒ}ø”‰Uø‹EüŠˆMó‹UüƒÂ‰Uüëv‹E‹ƒÁ‹U‰ ƒ}t‹E‹MüŠˆ‹EƒÀ‰E‹MüŠˆUó‹EüƒÀ‰Eü¶Mó¶‘arƒât/‹E‹ƒÁ‹U‰ ƒ}t‹E‹MüŠˆ‹EƒÀ‰E‹MüƒÁ‰Mü¶Uó…Òt ƒ}ø…Nÿÿÿ¶Eóƒø t ¶Móƒù …8ÿÿÿ¶Uó…Òu ‹Eüƒè‰Eüë ƒ}t‹MÆAÿÇEø‹Uü¾…Àt!‹Mü¾ƒú t ‹Eü¾ƒù u ‹UüƒÂ‰Uüëß‹Eü¾…ÉuéÖƒ} t‹U ‹E‰‹M ƒÁ‰M ‹U‹ƒÀ‹M‰ÇEôÇEì‹Uü¾ƒø\u‹MüƒÁ‰Mü‹UìƒÂ‰Uìëá‹Eü¾ƒù"uQ‹Eì3Ò¹÷ñ…Òu9ƒ}øt ‹Uü¾Bƒø"u ‹MüƒÁ‰MüëÇEôëÇEô3Òƒ}ø”‰Uø‹EìÑè‰Eì‹Mì‹Uìƒê‰Uì…Ét$ƒ}t‹EÆ\‹MƒÁ‰M‹U‹ƒÀ‹M‰ëÌ‹Uü¾…Àtƒ}øu‹Mü¾ƒú t ‹Eü¾ƒù u飃}ô„‹ƒ}tP‹Uü¶¶ˆarƒát)‹U‹EüŠˆ ‹UƒÂ‰U‹EüƒÀ‰Eü‹M‹ƒÂ‹E‰‹M‹UüŠˆ‹MƒÁ‰Më(‹Uü¶¶ˆarƒát‹UüƒÂ‰Uü‹E‹ƒÁ‹U‰ ‹E‹ƒÁ‹U‰ ‹EüƒÀ‰Eüéuþÿÿƒ}t‹MÆ‹UƒÂ‰U‹E‹ƒÁ‹U‰ éðýÿÿƒ} t‹E Ç‹M ƒÁ‰M ‹U‹ƒÀ‹M‰‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒìÇEøÇEèƒ=¬pu0ÿˆ’‰Eøƒ}øt Ǭpëÿ4’ƒøxu Ǭpƒ=¬p…óƒ}øuÿˆ’‰Eøƒ}øu3Àé—‹Eø‰Eô‹Mô·…Òt‹EôƒÀ‰Eô‹Mô·…Òu ‹EôƒÀ‰EôëØ‹Mô+MøÑùƒÁ‰Mìjjjj‹UìR‹EøPjjÿ„’‰Eüƒ}ütjahäj‹MüQè¿þÿƒÄ‰Eèƒ}èu‹UøRÿ€’3Àé jj‹EüP‹MèQ‹UìR‹EøPjjÿ„’…Àuj‹MèQèþÿƒÄÇEè‹UøRÿ€’‹EèéÀƒ=¬pt ƒ=¬p…¨ƒ}èuÿ|’‰Eèƒ}èu3À鎋Eè‰Eð‹Mð¾…Òt‹EðƒÀ‰Eð‹Mð¾…Òu ‹EðƒÀ‰EðëØ‹Mð+MèƒÁ‰MühŒhäj‹UüRèØþÿƒÄ‰Eðƒ}ðu‹EèPÿx’3Àë%‹MüQ‹UèR‹EðPèA þÿƒÄ ‹MèQÿx’‹Eðë3À‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjÿhðhDd¡Pd‰%ƒì SVW‰eè¾à4ƒÏÿ‰uäþ7s.ÇEü‹…ÀtÿЉ}üƒÆëÞ¸ËeèƒÏÿ‰}ü‹uäƒÆëÇ‹Mðd‰ _^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjÿhhDd¡Pd‰%ƒì SVW‰eè¾ 8ƒÏÿ‰uäþ0:s.ÇEü‹…ÀtÿЉ}üƒÆëÞ¸ËeèƒÏÿ‰}ü‹uäƒÆëÇ‹Mðd‰ _^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ=s÷ØăÀ…”‹PÃQL$é-…=sì+ȋą‹á‹‹@PÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ì}csmàu‹E P‹MQè þÿƒÄë3À]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì‹EPèƒÄ‰Eüƒ}üt ‹Müƒyu‹U RÿŒ’ér‹Eüƒxu‹MüÇA¸éU‹UüƒzuƒÈÿéD‹Eü‹H‰Mð‹°p‰Uø‹E £°p‹Müƒy…ú‹e‰Uôë ‹EôƒÀ‰Eô‹ e e9Mô}‹UôkÒ Ç‚˜dëÔ¡e‰Eì‹Mü9ŽÀuÇeƒéˆ‹Uü:Àu Çeëq‹Eü8‘Àu Çe„ëZ‹Mü9“Àu Çe…ëC‹Uü:Àu Çe‚ë,‹Eü8Àu Çe†ë‹Mü9’Àu ÇeŠ‹eRjÿUðƒÄ‹Eì£eë‹MüÇA‹Uü‹BPÿUðƒÄ‹Mø‰ °pƒÈÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQÇEüd‹Eü‹;Mt‹UüƒÂ ‰Uü¡ekÀ d9EüsëÙ‹ ekÉ Ád9Müs ‹Uü‹;Et3Àë‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒ} uƒ=Dvu ‹EPÿ’¸] ÌÌÌÌÌÌÌÌÌÌÌU‹ìƒ=`ntƒ=`nu2ƒ=dnu)hüè•þÿƒÄƒ=´ptÿ´phÿèyþÿƒÄ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìì$¡àb‰EìVÇEüë ‹EüƒÀ‰Eüƒ}üs‹Mü‹U;Í8euëëÞ‹Eü‹M; Å8e…«}üt*}ÿt!‹Uü‹Õd$‹H…É‹ptQjÿ”’Pÿ0’¡üpPjÿ”’Pÿ0’…ö‹Æ£üpuÆ3À¥ä÷ÿÿ_^[‹å]Ë(’‹VRÿäp‰F·HT¸‰Vè®ñÿÿ‹ühƇ‹F WPÿü‘…À„`ÿÿÿŠ3À„ÉtëIŠL8@„Éu÷@Pjÿ”’PÿÓ…À‰F„2ÿÿÿ3À‹VŠ8 8ˆŠ@„Òuí‹v…ö…hÿÿÿ¡üp…À‹È„Jÿÿÿ‹Q‹u;Öw+ò;qv ‹I…Éuèéëþÿÿ‹Á¥ä÷ÿÿ_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì¡q…ÀSVWu¡ðe‹5à‘PÇqÿÖ…À…h,%ÿÖ‹ø…ÿtR‹5Ü‘h%WÿÖ…À‰Eôt=h%WÿÖ‹Ø…Ût/hø$WÿÖ…À‰Eìt MøQjjhÀ$h€ÿUô…ÀtWÿØ‘3Àeà_^[‹å]ËMøUüRjEðPjh¤$QÿÓ…ÀuÙ‹EüƒÀ ‰EüƒÀƒàüèDïÿÿ‹Mø‹ôUüRVEðPjh¤$QÿÓ‹UøR‹ØÿUìWÿØ‘…Ûu™‹MüŠTþ°\:ÐtˆDÿëI‰Mü‹ ðe‹Æ+ο ‹ÿŠ‹]üˆ@OuóVÿà‘eà_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì0EÔ‰EôM‰Müƒ}uhØjj]h<%jèHóýÿƒÄƒøũ}uhôjj^h<%jè$óýÿƒÄƒøuÌ‹Mô‹U ‰Q‹EôÇ@ B‹Mô‹U‰Q‹Eô‹M‰‹UüR‹EP‹MôQè7÷ýÿƒÄ ‰Eøƒ}tK‹Uô‹Bƒè‹Mô‰A‹Uôƒz|"‹Eô‹Æ3Òâÿ‰UЋEô‹ƒÁ‹Uô‰ ë‹EôPjè’úýÿƒÄ‰EЋEø‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì,E؉Eøƒ}uhØjjZht%jèòýÿƒÄƒøuÌ‹Uø‹E ‰B‹MøÇA B‹Uø‹E‰B‹Mø‹U‰‹EP‹MQ‹UøRè1öýÿƒÄ ‰Eüƒ}tJ‹Eø‹Hƒé‹Uø‰J‹Eøƒx|!‹Mø‹Æ3À%ÿ‰EÔ‹Mø‹ƒÂ‹Eø‰ë‹MøQjèùýÿƒÄ‰EÔ‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQÇEü‹E P‹MQÿð‘…ÀtÇEü‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQÇEü‹E P‹MQÿì‘…ÀtÇEü‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQÇEü‹EPÿœ’…ÀtÇEü‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌU‹ì‹E;€tr3Àë‹MÁù‹Uƒâ‹Àt¾DЃà@]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì ‹E;€ts‹MÁù‹Uƒâ‹Àt¾LЃáuÇÔn ÇØnƒÈÿ韋URè­ôýÿƒÄ‰Eøƒ}øÿuÇÔn ƒÈÿë{‹EPj‹M Q‹UøRÿ ’‰Eüƒ}üÿu ÿ4’‰EôëÇEôƒ}ôt‹EôPèŒîýÿƒÄƒÈÿë5‹MÁù‹Uƒâ‹Àt¾LЃáý‹UÁú‹Eƒà‹•ÀtˆL‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQƒ}uhüjj.h°%jèïýÿƒÄƒøuÌ‹ LnƒÁ‰ Ln‹U‰Uüj:h°%jhè¦ëýÿƒÄ‹Mü‰A‹Uüƒzt‹Eü‹H ƒÉ‹Uü‰J ‹EüÇ@ë%‹Mü‹Q ƒÊ‹Eü‰P ‹MüƒÁ‹Uü‰J‹EüÇ@‹Mü‹Uü‹B‰‹MüÇA‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQ›Ý}üf‹EüPènƒÄ‹å]ÃÌÌÌÌÌÌÌU‹ìQÝ}üÛâf‹EüPèMƒÄ‹å]ÃÌÌÌÌÌÌU‹ìƒì›Ù}üf‹EüPè܃ĉEô‹M#M ‹U ÷Ò#Uô ʉMð‹EðPèZƒÄf‰EøÙmø‹Eð‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ì‹E %ÿÿ÷ÿP‹MQèïìýÿƒÄ]ÃÌÌÌÌÌÌU‹ìƒì¡°p‰EüÛãèiéýÿƒ}üt/‹Mü‹Q‹%t ‹Mü‹QƒÂ‰Uø‹EøÇ@‹MøÇAÿÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì ÇEü·Eƒàt ‹MüƒÉ‰Mü·Uƒât ‹EüƒÈ‰Eü·Mƒát ‹UüƒÊ‰Uü·Eƒàt ‹MüƒÉ‰Mü·Uƒâ t ‹EüƒÈ‰Eü·Mƒát ‹UüʉUü·E% ‰Eø}ø}øt$ƒ}øt}øt#ë:}ø t%ë/‹Mü‰Müë'‹UüʉUüë‹Eü ‰Eüë ‹MüɉMü·Uâ‰Uôt*}ôt}ôtë"‹Eü‰Eüë‹MüɉMüë ‹UüʉUü·E%t ‹MüɉMü‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì fÇEü‹Eƒàt ·MüƒÉf‰Mü‹Uƒât ·EüƒÈf‰Eü‹Mƒát ·UüƒÊf‰Uü‹Eƒàt ·MüƒÉf‰Mü‹Uƒât ·EüƒÈ f‰Eü‹Mát ·UüƒÊf‰Uü‹E%‰Eø}øw}øt&ƒ}øt}øt'ëB}øt+ë7f‹Müf‰Müë-·UüÊf‰Uüë·Eü f‰Eüë·MüÉ f‰Mü‹Uâ‰Uôt}ôt}ôt!ë'·Eü f‰Eüë·MüÉf‰Müëf‹Uüf‰Uü‹E%t·MüÉf‰Müf‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQÇEü·Eƒàt ‹MüƒÉ‰Mü·Uƒât ‹EüƒÈ‰Eü·Mƒát ‹UüƒÊ‰Uü·Eƒàt ‹MüƒÉ‰Mü·Uƒâ t ‹EüƒÈ‰Eü·Mƒát ‹UüʉUü‹Eü‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ì‹EƒÀ ]ÃÌÌÌÌÌU‹ìƒìƒ=Xqtƒ=‹Eø¾ƒù5|3‹Uüƒê‰Uü‹Eü¾ƒù9u‹UüÆ0‹Eüƒè‰Eüëä‹Mü¾ƒÂ‹Eüˆ‹M¾ƒú1u‹E‹HƒÁ‹U‰Jë&‹EƒÀPèÞýÿƒÄƒÀP‹MƒÁQ‹URèÁàýÿƒÄ ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì¡àb‰EüEPMðQèàýÿƒÄhqjjƒì ‹Ô‹Eð‰‹Mô‰Jf‹Eøf‰BèâýÿƒÄ£¿UôU‰Uƒ}.‹EfÇ‹MÆA ‹UÆB‹EÆ@0‹MÆA¸éûƒ}~ÇE·U²êþ?‰UìfÇE²ÇEèë ‹EèƒÀ‰Eèƒ}è}M¨Qè7¤ýÿƒÄëãƒ}ì}-‹Uì÷Úâÿ‰Uˆë ‹Eˆƒè‰Eˆƒ}ˆ~M¨Qè ýÿƒÄëã‹UƒÂ‰Uü‹EƒÀ‰Eøë ‹Møƒé‰Møƒ}ø~a‹U¨‰UÌ‹E¬‰EЋM°‰MÔU¨RèÁ£ýÿƒÄE¨Pèµ£ýÿƒÄMÌQU¨R踟ýÿƒÄE¨P虣ýÿƒÄ¶M³ƒÁ0‹Uüˆ ‹EüƒÀ‰EüÆE³ë‹Müƒé‰Mü‹UüŠˆEç‹Müƒé‰Mü¾Uçƒú5|\ë ‹Eüƒè‰Eü‹MƒÁ9Mür‹Uü¾ƒø9u‹MüÆ0ëÙ‹UƒÂ9Uüs‹EüƒÀ‰Eü‹Mf‹fƒÂ‹Ef‰‹MüŠ€Â‹EüˆëYë ‹Müƒé‰Mü‹UƒÂ9Uür ‹Eü¾ƒù0uëß‹UƒÂ9Uüs+‹EfÇ‹MÆA ‹UÆB‹EÆ@0‹MÆA¸ë&‹UƒÂ‹Eü+ƒÀ‹MˆA‹U¾B‹MÆD‹Eà‹MØèœýÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒìd¸è ™ÿÿ‰eœ‹Eœ‰EðjM¨Q‹UðRÿ´’…Àu3Àé‹E¬‰E MÄQÿÔ‘‹UȉUè‹Eèƒè÷Ð#Eð+Eè‰Eì‹ ànƒé÷ÙɃáñƒÁ¯MèM ‰Mø‹Uì;Uøs3À黃=ànt}‹E ‰E¤jM¨Q‹U¤Rÿ´’…Àu3Àé‘‹E¤E´‰E¤‹M¸átÑ‹U¨‰U¤‹E¼%t¸ëf‹Mì;M¤s3ÀëZ‹U¤;Uøs‹Eø‰E¤jh‹MèQ‹U¤RÿL’ë‹Eì‰E¤‹ ànƒé÷ÙÉáƒÁ‰MüUôR‹EüP‹MèQ‹U¤RÿÐ’eœ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì¡àb‰EøÆEöjEðPh‹MQÿT’…Àu ÇEüÿÿÿÿëUðRè¦ýÿƒÄ‰Eü‹Eü‹Møèg™ýÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìjÿh,hDd¡Pd‰%ƒÄÄ¡àb‰EÌSVW‰eèÇEàÇEÔ‹E‹‰MäÇEÜ‹U;U „E¸P‹MQÿ¼’…Àt%ƒ}¸uU¸R‹E Pÿ¼’…Àt ƒ}¸uÇE܃}Üt ƒ}äÿt‹Mä‰MØë‹UR襜ýÿƒÄƒÀ‰E؃}Üu(jj‹EäP‹MQj‹URÿ¤’‰E؃}Øu3ÀéžÇEü‹EØÑàƒÀƒàüè'–ÿÿ‰e´‰eè‹E´‰EЋMØÑáQj‹UÐRèðšýÿƒÄ ÇEüÿÿÿÿë¸ËeèèsžýÿÇEÐÇEüÿÿÿÿƒ}Ðu0j~h|,j‹EØPjèr¤ýÿƒÄ‰EЃ}Ðu3Àé‹MÔƒÁ‰MÔ‹UØR‹EÐP‹MäQ‹URj‹EPÿ¤’…À„у}t/jj‹MQ‹UR‹EØP‹MÐQj‹U Rÿ„’…Àt‹E‰Eà霃}Üu%jjjj‹MØQ‹UÐRj‹E Pÿ„’‰E؃}Øtqh¡h|,j‹MØQj軣ýÿƒÄ‰Eàƒ}àtNjj‹UØR‹EàP‹MØQ‹UÐRj‹E Pÿ„’‰E؃}Øuj‹MàQè8 ýÿƒÄÇEàëƒ}äÿt‹U‹E؉ƒ}Ôtj‹MÐQè  ýÿƒÄ‹Eàe¨‹Mðd‰ ‹MÌè°–ýÿ_^[‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìQV‹E;€ts‹MÁù‹Uƒâ‹Àt¾LЃáuÇÔn ÇØnƒÈÿé‹URèýÿƒÄƒøÿt=ƒ}tƒ}ujèýÿƒÄ‹ðjè÷œýÿƒÄ;ðt‹EPèçœýÿƒÄPÿ˜’…Àt ÇEüë ÿ4’‰Eü‹MQèq”ýÿƒÄ‹UÁú‹Eƒà‹ •ÀtÆDÁƒ}üt‹UüRèÌ–ýÿƒÄƒÈÿë3À^‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒìL¡àb‰EäfÇEìÇEÔÇEØÇEÜÇEà‹Ef‹H f‰Mè‹U f‹B f‰EзMè·UÐ3Êá€f‰Mì·Eè%ÿf‰Eè·MÐáÿf‰MзUè·EÐÐf‰Uð·Mèùÿ}·UÐúÿ} ·Eð=ý¿~2·Mì÷ÙÉá€Á€ÿ‹U‰J‹EÇ@‹MÇé ·Uðú¿?"‹EÇ@‹MÇA‹UÇéÝ·Eè…Àu8f‹MðfƒÁf‰Mð‹U‹B%ÿÿÿu‹Mƒyu‹Uƒ:u‹EfÇ@ é·MÐ…ÉuMf‹UðfƒÂf‰Uð‹E ‹Háÿÿÿu3‹U ƒzu*‹E ƒ8u"‹MÇA‹UÇB‹EÇéHÇEôÇEüë ‹MüƒÁ‰Müƒ}ü±‹UüÑâ‰UøÇE̸+Eü‰EÈë ‹Mȃé‰Mȃ}È~x‹UUø‰UÄ‹E ẺEÀ‹MôT ؉U¸‹EÄ·‹UÀ·¯È‰M´‹M¸Q‹U´R‹E¸‹Qèß™ýÿƒÄ ‰E¼ƒ}¼t‹Uôf‹DÜf‹Môf‰D Ü‹UøƒÂ‰Uø‹Ẽè‰EÌéyÿÿÿ‹MôƒÁ‰Môé<ÿÿÿ·Uðêþ?f‰Uð¿Eð…À~%‹Màá€uUØRè˜ýÿƒÄf‹Eðf-f‰EðëÓ¿Mð…ÉQf‹Uðfƒêf‰Uð¿Eð…À},·M؃át ‹Uԃ‰UÔEØPèØ“ýÿƒÄf‹MðfƒÁf‰Mðë̃}Ôt ·U؃Êf‰UØ·EØ=€‹MØáÿÿù€u\ƒ}ÚÿuMÇEÚƒ}Þÿu5ÇEÞ·UâúÿÿufÇEâ€f‹Eðff‰Eðë f‹MâfƒÁf‰Mâë ‹Uރ‰UÞë ‹EÚƒÀ‰EÚ·Mðùÿ|/·Uì÷ÚÒâ€Â€ÿ‹E‰P‹MÇA‹UÇë-‹Ef‹MÚf‰‹U‹E܉B‹M‹Uà‰Q·Eð·Mì Á‹Uf‰B ‹MäèÚýÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì¡àb‰Eø¸ iƒè`‰Eüƒ} u鞃} }‹M ÷Ù‰M º€jƒê`‰Uüƒ}u‹Efǃ} tq‹MüƒÁT‰Mü‹U ƒâ‰Uè‹E Áø‰E ƒ}èuë׋MèkÉ Mü‰Mä‹Uä·=€|#‹M䋉Uì‹A‰Eð‹I‰Mô‹Uîƒê‰UîEì‰Eä‹MäQ‹UR訚ýÿƒÄ뉋Møè ýÿ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì‹E¶QèzýÿƒÄ…Àt ‹UƒÂ‰Uëâ‹E¶‰Mô‹UƒÂ‰U‹Eô‰Eüƒ}ô-tƒ}ô+u‹M¶‰Uô‹EƒÀ‰EÇEøƒ}ô0|ƒ}ô9 ‹Môƒé0‰MðëÇEðÿÿÿÿ‹Uð‰Uôƒ}ôÿt ‹EøkÀ Eô‰Eø‹M¶‰Uô‹EƒÀ‰E붃}ü-u‹Eø÷Øë‹Eø‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ì‹EPèlšýÿƒÄ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒìV‹E¶QèiýÿƒÄ…Àt ‹UƒÂ‰Uëâ‹E¶‰Mì‹UƒÂ‰U‹Eì‰Eüƒ}ì-tƒ}ì+u‹M¶‰Uì‹EƒÀ‰EÇEðÇEôƒ}ì0|ƒ}ì9 ‹Mìƒé0‰MèëÇEèÿÿÿÿ‹Uè‰Uìƒ}ìÿt7jj ‹EôP‹MðQèýÿ‹È‹ò‹Eì™Èò‰Mð‰uô‹U¶‰Eì‹MƒÁ‰M럃}ü-u‹Eð÷Ø‹UôƒÒ÷Úë‹Eð‹Uô^‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ìƒì}ÿ†ˆfÇEü3Àf‰Eþ‹MÁéáÿˆMø‹UâÿˆUùƒ=Tru3Àéj¡ÜqP‹ dsQUüRjEøPjè•”ýÿƒÄ…Àu3ÀëV·Mþ…Éu·Uüƒât ÇEôëÇEô‹Eôë0ƒ=`d~j‹EPèýÿƒÄ‰Eðëj‹MQèàŒýÿƒÄ‰Eð‹Eð‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ‹D$‹L$ È‹L$ u ‹D$÷áÂS÷á‹Ø‹D$÷d$Ø‹D$÷áÓ[ÂÌÌÌÌÌÌÌÌÌÌÌÌÌÌÿ%ä‘ÿ%è‘ÿ%ì‘ÿ%ð‘ÿ%ô‘ÿ%ø‘ÿ%ü‘ÿ%’ÿ%’ÿ%’ÿ% ’ÿ%’ÿ%’ÿ%’ÿ%’ÿ% ’ÿ%$’ÿ%(’ÿ%,’ÿ%0’ÿ%4’ÿ%8’ÿ%<’ÿ%@’ÿ%D’ÿ%H’ÿ%L’ÿ%P’ÿ%Бÿ%X’ÿ%\’ÿ%`’ÿ%d’ÿ%h’ÿ%l’ÿ%p’ÿ%t’ÿ%x’ÿ%|’ÿ%€’ÿ%„’ÿ%ˆ’ÿ%Œ’ÿ%’ÿ%”’ÿ%˜’ÿ%œ’ÿ% ’ÿ%¤’ÿ%¨’ÿ%¬’ÿ%°’ÿ%´’ÿ%¸’ÿ%¼’ÿ%À’ÿ%Ä’ÿ%È’ÿ%Ì’ÿ%Ð’ÿ%Ô‘ÿ%T’ÌÌÌÌÌÌÌÌÌÌU‹ìQƒ}u3Àë5‹EPè©ýÿƒÄƒÀPè¢ýÿƒÄ‰Eüƒ}üt‹MQ‹UüRèÊýÿƒÄë3À‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ‹… ÿÿÿP覀ýÿYø<;é…†ýÿÌÌÌÌÌÌÌÌ‹MìƒÁé)„ýÿ¸d;éh†ýÿÌÌÌÌÌÌÌÌÌÌ̸¸;éS†ýÿÌÌÌÌÌÌ‹… ÿÿÿPèV€ýÿYøä;é5†ýÿÌÌÌÌÌÌÌÌÿÿÿéž‚ýÿ¸ <é†ýÿÌÌÌÌÌÌÌÌÌÌÌ‹Mìéäˆýÿ¸4<éû…ýÿÌÌÌÌÌÌÌÌÌÌÌÌÌÌ‹EÜP‹ÿÿÿQè4„ýÿƒÄø<éÏ…ýÿÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÿÿÿév…ýÿ¸D=騅ýÿÌÌÌÌÌÌÌÌÌÌÌ‹Mìéƒýÿ¸l=é‹…ýÿÌÌÌÌÌÌÌÌÌÌÌÌÌÌ‹Mìéð‚ýÿ¸”=ék…ýÿÌÌÌÌÌÌÌÌÌÌÌÌÌÌ‹MìéЂýÿ¸¼=éK…ýÿÌÌÌÌÌÌÌÌÌÌÌÌÌ̸D>é3…ýÿÌÌÌÌÌÌM°éé„ýÿ¸x>é…ýÿÌÌÌÌÌÌÌÌÌÌÌÌÌÌM°éÉ„ýÿ¸è>éû„ýÿÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌU‹ì¹nè"mýÿ]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌz„)Mw@/@ÿ €@0À€@ €@ ? c:\dokumente und einstellungen\ensonic\eigene dateien\projects\bml\buzzmachinecallbacks.cppBuzzMachineCallbacks::GetWave(i=%d) BuzzMachineCallbacks::GetWaveLevel(i=%d,level=%d) return the mdk helper, %p create the mdk helper BuzzMachineCallbacks::GetNearestWaveLevel(i=%d,note=%d) õ@gLK}E^ADB_EõErF)I*C!!! FIXME !!! BuzzMachineCallbacks::GetFreeWave() BuzzMachineCallbacks::AllocateWave(i=%d,size=%d,name="%s") BuzzMachineCallbacks::GetWaveNameBuzzMachineCallbacks::SetInternalWaveName(pmac=%p,i=%d,name="%s") BuzzMachineCallbacks::MessageBoxA(txt="%s") BuzzMachineCallbacks::LockBuzzMachineCallbacks::UnlockBuzzMachineCallbacks::ScheduleEvent(time=%d,data=%d) BuzzMachineCallbacks::MidiOut(dev=%d,data=%d) BuzzMachineCallbacks::GetOscillatorTable(waveform=%d) BuzzMachineCallbacks::GetWritePosBuzzMachineCallbacks::GetPlayPosBuzzMachineCallbacks::GetThisMachineBuzzMachineCallbacks::GetPlayingSequence(pmac=%p) BuzzMachineCallbacks::GetPlayingRow(pseq=%p,group=%d,track=%d) BuzzMachineCallbacks::GetStateFlagsBuzzMachineCallbacks::GetAuxBuffer()=%p BuzzMachineCallbacks::ClearAuxBufferBuzzMachineCallbacks::GetEnvSize(wave=%d,env=%d) BuzzMachineCallbacks::GetEnvPoint(wave=%d,env=%d,i=%d,&x,&y,&flags) BuzzMachineCallbacks::SetNumberOfTracks(n=%d) BuzzMachineCallbacks::CreatePattern(name="%s",length=%d) BuzzMachineCallbacks::GetPattern(index=%d) BuzzMachineCallbacks::GetPatternName(ppat=%p) BuzzMachineCallbacks::RenamePattern(oldname="%s",newname="%s") BuzzMachineCallbacks::DeletePatternBuzzMachineCallbacks::GetPatternData(ppat=%p,row=%d,group=%d,track=%d,field=%d) BuzzMachineCallbacks::SetPatternData(ppat=%p,row=%d,group=%d,track=%d,field=%d,value=%d) BuzzMachineCallbacks::CreateSequenceBuzzMachineCallbacks::DeleteSequence(pseq=%p) BuzzMachineCallbacks::GetSequenceData(row=%d) BuzzMachineCallbacks::SetSequenceData(row=%d,ppat=%p) BuzzMachineCallbacks::SetMachineInterfaceEx(pex=%p) BuzzMachineCallbacks::ControlChange__obsolete__(group=%d,track=%d,param=%d,value=%d) BuzzMachineCallbacks::ControlChange(pmac=%p,group=%d,track=%d,param=%d,value=%d) BuzzMachineCallbacks::ADGetnumChannels(input=%d) BuzzMachineCallbacks::ADWrite(channel=%d,psamples=%p,numsamples=%d) BuzzMachineCallbacks::ADReadBuzzMachineCallbacks::SetnumOutputChannels(pmac=%p,n=%d) BuzzMachineCallbacks::SetEventHandler(pmac=%p,et=%d,p=%p,param=%p) BuzzMachineCallbacks::GetMachineNames(pout=%p) BuzzMachineCallbacks::GetMachine(name="%s") BuzzMachineCallbacks::GetMachineInfoBuzzMachineCallbacks::GetMachineNameBuzzMachineCallbacks::GetInput(index=%d,psamples=%p,numsamples=%d,stereo=%d,extrabuffer=%p) c:\dokumente und einstellungen\ensonic\eigene dateien\projects\bml\buzzmachinecallbackspre12.cppBuzzMachineCallbacksPre12::GetWaveBuzzMachineCallbacksPre12::GetWaveLevelBuzzMachineCallbacksPre12::GetNearestWaveLevelBuzzMachineCallbacksPre12::GetFreeWaveBuzzMachineCallbacksPre12::AllocateWaveBuzzMachineCallbacksPre12::MessageBoxABuzzMachineCallbacksPre12::LockBuzzMachineCallbacksPre12::UnlockBuzzMachineCallbacksPre12::ScheduleEventBuzzMachineCallbacksPre12::MidiOutBuzzMachineCallbacksPre12::GetOscillatorTableBuzzMachineCallbacksPre12::GetWritePosBuzzMachineCallbacksPre12::GetPlayPosBuzzMachineCallbacksPre12::GetAuxBufferBuzzMachineCallbacksPre12::ClearAuxBufferBuzzMachineCallbacksPre12::GetEnvSizeBuzzMachineCallbacksPre12::GetEnvPointBuzzMachineCallbacksPre12::SetNumberOfTracksBuzzMachineCallbacksPre12::CreatePatternBuzzMachineCallbacksPre12::GetPatternBuzzMachineCallbacksPre12::GetPatternNameBuzzMachineCallbacksPre12::RenamePatternBuzzMachineCallbacksPre12::DeletePatternBuzzMachineCallbacksPre12::GetPatternDataBuzzMachineCallbacksPre12::SetPatternDataBuzzMachineCallbacksPre12::CreateSequenceBuzzMachineCallbacksPre12::DeleteSequenceBuzzMachineCallbacksPre12::GetSequenceDataBuzzMachineCallbacksPre12::SetSequenceDatac:\dokumente und einstellungen\ensonic\eigene dateien\projects\bml\buzzmachineloader.cppbm_close dll unloaded CreateMachine() failed !! buggy machine, maxTracks>0, but minTracks=0 !! buggy machine, numTrackParams>0, but minTracks=0 GetInfo() called symbols connected failed to connect to GreateMachine method failed to connect to GetInfo method CreateMachineGetInfo dll %s loaded bm_open failed to load machine dll from "%s" freed callback instance freed old callback instance freeing callbacks 0x%04x bm_freefreeing GÒJžG¶MIH)D7@ LÕBýGˆN!GJK±CN©A=I JCCC:BqBËG K¬HÙH…BLYKSGÅM6KüHÁLçDI@øLsJïKC~DÿEHPJ[IJA6A»HTAàF•A™B&LaH^F FœDŸAØIÈ@×@½ALcAÜEˆICi@¨GBµI(@KïA D‚E°ID C5B machine->TrackVals is NULL! bm_get_global_parameter_location -> machine->GlobalVals is NULL! bm_attributes_changedbm_set_num_tracks(num=%d) CMICallbacks::%s(i=%d) CMICallbacks::GetWaveCMICallbacks::%s(i=%d,level=%d) CMICallbacks::GetWaveLevelCMICallbacks::%s(i=%d,note=%d) CMICallbacks::GetNearestWaveLevelCMICallbacks::%s() CMICallbacks::GetFreeWaveCMICallbacks::%s(i=%d,size=%d,name="%s") CMICallbacks::AllocateWaveCMICallbacks::GetWaveNameCMICallbacks::%s(pmac=%p,i=%d,name="%s") CMICallbacks::SetInternalWaveNameCMICallbacks::%s(txt="%s") CMICallbacks::MessageBoxACMICallbacks::LockCMICallbacks::UnlockCMICallbacks::%s(time=%d,data=%ld) CMICallbacks::ScheduleEventCMICallbacks::%s(dev=%d,data=%ld) CMICallbacks::MidiOutCMICallbacks::%s(waveform=%d) CMICallbacks::GetOscillatorTableCMICallbacks::GetWritePosCMICallbacks::GetPlayPosCMICallbacks::GetThisMachineCMICallbacks::%s(pmac=%p) CMICallbacks::GetPlayingSequenceCMICallbacks::%s(pseq=%p,group=%d,track=%d) CMICallbacks::GetPlayingRowCMICallbacks::GetStateFlagsCMICallbacks::GetAuxBufferCMICallbacks::ClearAuxBufferCMICallbacks::%s(wave=%d,env=%d) CMICallbacks::GetEnvSizeCMICallbacks::%s(wave=%d,env=%d,i=%d,&x,&y,&flags) CMICallbacks::GetEnvPointCMICallbacks::%s(n=%d) CMICallbacks::SetNumberOfTracksCMICallbacks::%s(name="%s",length=%d) CMICallbacks::CreatePatternCMICallbacks::%s(index=%d) CMICallbacks::GetPatternCMICallbacks::%s(ppat=%p) CMICallbacks::GetPatternNameCMICallbacks::%s(oldname="%s",newname="%s") CMICallbacks::RenamePatternCMICallbacks::DeletePatternCMICallbacks::%s(ppat=%p,row=%d,group=%d,track=%d,field=%d) CMICallbacks::GetPatternDataCMICallbacks::%s(ppat=%p,row=%d,group=%d,track=%d,field=%d,value=%d) CMICallbacks::SetPatternDataCMICallbacks::CreateSequenceCMICallbacks::%s(pseq=%p) CMICallbacks::DeleteSequenceCMICallbacks::%s(row=%d) CMICallbacks::GetSequenceDataCMICallbacks::%s(row=%d,ppat=%p) CMICallbacks::SetSequenceDataCMICallbacks::%s(pex=%p) CMICallbacks::SetMachineInterfaceExCMICallbacks::%s(group=%d,track=%d,param=%d,value=%d) CMICallbacks::ControlChange__obsolete__CMICallbacks::%s(pmac=%p,group=%d,track=%d,param=%d,value=%d) CMICallbacks::ControlChangeCMICallbacks::%s(input=%d) CMICallbacks::ADGetnumChannelsCMICallbacks::%s(channel=%d,psamples=%p,numsamples=%d) CMICallbacks::ADWriteCMICallbacks::ADReadCMICallbacks::%s(pmac=%p,n=%d) CMICallbacks::SetnumOutputChannelsCMICallbacks::%s(pmac=%p,et=%d,p=?,param=%p) CMICallbacks::SetEventHandlerCMICallbacks::%s(pout=%p) CMICallbacks::GetMachineNamesCMICallbacks::%s(name="%s") CMICallbacks::GetMachineCMICallbacks::GetMachineInfoCMICallbacks::GetMachineNameCMICallbacks::%s(index=%d,psamples=%p,numsamples=%d,stereo=%d,extrabuffer=%p) CMICallbacks::GetInput%s:%d:%s %s:%d:%s:%s c:\dokumente und einstellungen\ensonic\eigene dateien\projects\bml\machinedataimpl.cppCMachineDataInput::Read(pbuf=%p,numbytes=%d) : no buffer CMachineDataOutput::WriteGDúE‡@(pbuf=%p,numbytes=%d) : no file CMachineDataInputImpl::Read(pbuf=%p,numbytes=%d) : out of buffer ÙCCHÙCCMDKImplementation::InputnumChannels=%d, HaveInput=%dInputIterator != Inputs.end()c:\dokumente und einstellungen\ensonic\eigene dateien\projects\bml\mdkimp.cppCMDKImplementation::Work(%p,%d,%d), HaveInput=%d CMDKImplementation::WorkMonoToStereo(%p,%p,%d,%d), HaveInput=%d CMDKImplementation::Init CMDKImplementation::Init() called ßLôFBMôKMpMÑKL†FDæEÞH€GµD”B<@KEªJªJªJªJªJªJIsEBN>HMóBÑKL†FDæEÞH€GµD”B<@KECMDKMachineInterface::Init CMDKMachineInterface::Init() called ÿÿÿÿlist too longdÉ-’ö[¿$ˆíQ¶~ãG¬tÙ=¡ j Î 2 — û _ à ' ‹ ï S · ãG«rÖ9dÇ+ŽòU¸~áD§ mÐ3•ø[½ ‚äF© mÏ1“ôV¸{Ü= Ÿ !a!Â!#"„"ä"E#¦#$g$Ç$'%‡%ç%G&§&'g'Æ'&(…(å(D)£)*a*À*+}+Û+:,˜,ö,T-²-.n.Ì.)/†/ä/A0ž0û0X1´12m2Ê2&3‚3Þ3:4–4ñ4M5¨56^6¹67o7É7$8~8Ø829Œ9æ9?:™:ò:K;¤;ý;V<®<=_=·=>g>¿>?n?Å?@s@Ê@ AwAÍA#ByBÏB%CzCÐC%DzDÏD#ExEÌE FtFÈFGoGÃGHiH¼HIaI³IJWJ©JúJLKKîK?LLàL0M€MÐM NoN¿NO]O¬OúOIP—PåP3Q€QÎQRhRµRSNSšSæS2T}TÉTU_UªUôU?V‰VÓVWfW°WùWBXŠXÓXYcY«YóY:ZZÈZ[V[œ[â[(\m\³\ø\=]‚]Æ] ^O^“^Ö^_]_ _â_%`g`©`ë`-ana¯aða0bqb±bñb0cpc¯cîc-dkd©dçd%ebe eÝefVf’fÎf gEgg¼g÷g1hkh¥hßhiRi‹iÄiüi4jlj¤jÛjkJk€k·kík#lXlŽlÃløl,mam•mÉmüm0ncn•nÈnún,o^ooÀoño"pRp‚p²pápq@qnqqËqùq&rTrr®rÚrs2s^s‰sµsßs t4t^tˆt±tÛtu,uTu|u¤uÌuóuv@vgvv²vØvýv"wGwkww³wÖwùwx?xaxƒx¥xÆxçxy)yIyiy‰y¨yÇyæyz#zAz^z|z™zµzÒzîz {%{A{\{v{‘{«{Ä{Þ{÷{|)|A|Y|p|ˆ|Ÿ|¶|Ì|â|ø|}#}8}M}a}u}‰}œ}°}Â}Õ}ç}ù} ~~-~>~N~^~n~~~~œ~ª~¹~Ç~Ô~â~ï~ü~ ,7BLWajt}†Ž–ž¦­´»ÁÇÍÒ×Üàäèìïòõ÷ùûüýþþÿþþýüûù÷õòïìèäàÜ×ÒÍÇÁ»´­¦ž–ކ}tjaWLB7, ü~ï~â~Ô~Ç~¹~ª~œ~~~~n~^~N~>~-~~ ~ù}ç}Õ}Â}°}œ}‰}u}a}M}8}#}}ø|â|Ì|¶|Ÿ|ˆ|p|Y|A|)||÷{Þ{Ä{«{‘{v{\{A{%{ {îzÒzµz™z|z^zAz#zzæyÇy¨y‰yiyIy)yyçxÆx¥xƒxax?xxùwÖw³wwkwGw"wývØv²vvgv@vvóuÌu¤u|uTu,uuÛt±tˆt^t4t tßsµs‰s^s2ssÚr®rrTr&rùqËqqnq@qqáp²p‚pRp"pñoÀoo^o,oúnÈn•ncn0nümÉm•mam,mølÃlŽlXl#lík·k€kJkkÛj¤jlj4jüiÄi‹iRiißh¥hkh1h÷g¼ggEg gÎf’fVffÝe ebe%eçd©dkd-dîc¯cpc0cñb±bqb0bða¯ana-aë`©`g`%`â_ _]__Ö^“^O^ ^Æ]‚]=]ø\³\m\(\â[œ[V[[ÈZZ:ZóY«YcYYÓXŠXBXùW°WfWWÓV‰V?VôUªU_UUÉT}T2TæSšSNSSµRhRRÎQ€Q3QåP—PIPúO¬O]OO¿NoN NÐM€M0MàLL?LîKKLKúJ©JWJJ³IaII¼HiHHÃGoGGÈFtF FÌExE#EÏDzD%DÐCzC%CÏByB#BÍAwA AÊ@s@@Å?n??¿>g>>·=_==®ÞÝÝ|ÝÝ»ÜZÜúÛ™Û9ÛÙÚyÚÚ¹ÙYÙùØ™Ø:ØÚ×{××¼Ö]ÖþÕŸÕ@ÕâÔƒÔ%ÔÆÓhÓ Ó¬ÒNÒðÑ’Ñ4Ñ×ÐzÐпÏbÏϨÎLÎïÍ“Í6ÍÚÌ~Ì"ÌÆËjË˳ÊXÊýÉ¢ÉGÉìÈ‘È7ÈÜÇ‚Ç(ÇÎÆtÆÆÁÅgÅŵÄ\ÄĪÃRÃù¡ÂIÂñÁ™ÁAÁêÀ’À;Àä¿¿6¿à¾‰¾3¾Ý½‡½1½Û¼†¼0¼Û»†»1»Ýºˆº4ºà¹Œ¹8¹ä¸‘¸=¸ê·—·D·ò¶Ÿ¶M¶ûµ©µWµµ´´c´´Á³q³ ³Ð²€²0²à±‘±A±ò°£°T°°·¯i¯¯Í®€®2®å­˜­K­ÿ¬²¬f¬¬Î«ƒ«7«ìª¡ªVª ªÁ©w©-©ã¨š¨P¨¨¾§v§-§å¦¦U¦ ¦Æ¥¥8¥ñ¤ª¤d¤¤Ø£“£M££Ã¢~¢:¢õ¡±¡m¡*¡æ £ `  ÛŸ™ŸWŸŸÓž’žQžžÐOМœQœœÓ›•›W››Ûšžš`š#šç™ª™n™2™ö˜»˜˜D˜ ˜Ï—•—[—!—ç–®–u–<––Ì•”•\•%•í”¶”€”I””Ý“¨“r“=““Ô’Ÿ’k’7’’Б‘k‘8‘‘Ô¢q@Þ®~NïŽÀŽ’ŽcŽ5ŽŽÚ¬R&úŒÎŒ¢ŒwŒKŒ!Œö‹Ì‹¢‹x‹O‹%‹ýŠÔЬЄŠ\Š4Š Šæ‰À‰™‰s‰N‰(‰‰Þˆ¹ˆ•ˆqˆMˆ*ˆˆä‡Á‡Ÿ‡}‡[‡:‡‡ø†×†·†—†w†X†9††ü…Ý…¿…¢…„…g…K….……ö„Û„¿„¤„Š„o„U„<„"„ „ðƒ×ƒ¿ƒ§ƒƒxƒaƒJƒ4ƒƒƒò‚݂Ȃ³‚Ÿ‚‹‚w‚d‚P‚>‚+‚‚‚õäÓ²¢’‚sdVG9,ø€ì€à€Ô€É€¾€´€©€Ÿ€–€Œ€ƒ€z€r€j€b€Z€S€L€E€?€9€3€.€)€$€ €€€€€€ € €€€€€€€€€€€€€€ € €€€€€€ €$€)€.€3€9€?€E€L€S€Z€b€j€r€z€ƒ€Œ€–€Ÿ€©€´€¾€É€Ô€à€ì€ø€,9GVds‚’¢²ÂÓäõ‚‚+‚>‚P‚d‚w‚‹‚Ÿ‚³‚Ȃ݂ò‚ƒƒ4ƒJƒaƒxƒƒ§ƒ¿ƒ×ƒðƒ „"„<„U„o„Š„¤„¿„Û„ö„….…K…g…„…¢…¿…Ý…ü…†9†X†w†—†·†×†ø†‡:‡[‡}‡Ÿ‡Á‡ä‡ˆ*ˆMˆqˆ•ˆ¹ˆÞˆ‰(‰N‰s‰™‰À‰æ‰ Š4Š\ЄЬŠÔŠýŠ%‹O‹x‹¢‹Ì‹ö‹!ŒKŒwŒ¢ŒÎŒúŒ&R¬ÚŽ5ŽcŽ’ŽÀŽïŽN~®Þ@q¢Ô‘8‘k‘‘Б’7’k’Ÿ’Ô’“=“r“¨“Ý“”I”€”¶”í”%•\•”•Ì•–<–u–®–ç–!—[—•—Ï— ˜D˜˜»˜ö˜2™n™ª™ç™#š`šžšÛš›W›•›Ó›œQœœÐœOОQž’žÓžŸWŸ™ŸÛŸ ` £ æ *¡m¡±¡õ¡:¢~¢Ã¢£M£“£Ø£¤d¤ª¤ñ¤8¥¥Æ¥ ¦U¦¦å¦-§v§¾§¨P¨š¨ã¨-©w©Á© ªVª¡ªìª7«ƒ«Î«¬f¬²¬ÿ¬K­˜­å­2®€®Í®¯i¯·¯°T°£°ò°A±‘±à±0²€²Ð² ³q³Á³´c´´´µWµ©µûµM¶Ÿ¶ò¶D·—·ê·=¸‘¸ä¸8¹Œ¹à¹4ºˆºÝº1»†»Û»0¼†¼Û¼1½‡½Ý½3¾‰¾à¾6¿¿ä¿;À’ÀêÀAÁ™ÁñÁI¡ÂùÂRêÃÄ\ĵÄÅgÅÁÅÆtÆÎÆ(Ç‚ÇÜÇ7È‘ÈìÈGÉ¢ÉýÉXʳÊËjËÆË"Ì~ÌÚÌ6Í“ÍïÍLΨÎÏbÏ¿ÏÐzÐ×Ð4Ñ’ÑðÑNÒ¬Ò ÓhÓÆÓ%ÔƒÔâÔ@ÕŸÕþÕ]Ö¼Ö×{×Ú×:Ø™ØùØYÙ¹ÙÚyÚÙÚ9Û™ÛúÛZÜ»ÜÝ|ÝÝÝ>ÞŸÞßaßÃß$à…àçàHáªá âmâÏâ1ã“ãõãWäºäå~åàåCæ¥æçkçÍç0è“èöèYé¼éê‚êåêHë«ëìrìÕì9íœíîcîÇî*ïŽïòïUð¹ðññåñIò­òóuóÙó=ô¡ôõiõÎõ2ö–öúö_÷Ã÷'øŒøðøTù¹ùú‚úæúJû¯ûüxüÜüAý¥ý þnþÓþ7ÿœÿÉ’[$í¶~GÙ¡j 2 û à ‹ S ã«r9ÇŽUá§m3ø½‚F Ï“VÜŸ a!#"ä"¦#g$'%ç%§&g'&(å(£)a*+Û+˜,T-.Ì.†/A0û0´1m2&3Þ3–4M56¹6o7$8Ø8Œ9?:ò:¤;V<=·=g>?Å?s@ AÍAyB%CÐCzD#EÌEtFGÃGiHI³IWJúJK?LàL€M N¿N]OúO—P3QÎQhRSšS2TÉT_UôU‰VW°WBXÓXcYóYZ[œ[(\³\=]Æ]O^Ö^]_â_g`ë`naðaqbñbpcîckdçdbeÝeVfÎfEg¼g1h¥hi‹iüiljÛjJk·k#lŽlølamÉm0n•nún^oÀo"p‚páp@qqùqTr®rs^sµs t^t±tuTu¤uóu@vvØv"wkw³wùw?xƒxÆxyIy‰yÇyzAz|zµzîz%{\{‘{Ä{÷{)|Y|ˆ|¶|â|}8}a}‰}°}Õ}ù}~>~^~~~œ~¹~Ô~ï~ 7Lat†–¦´ÁÍ×àèïõùüþÿþüùõïèà×ÍÁ´¦–†taL7 ï~Ô~¹~œ~~~^~>~~ù}Õ}°}‰}a}8}}â|¶|ˆ|Y|)|÷{Ä{‘{\{%{îzµz|zAzzÇy‰yIyyÆxƒx?xùw³wkw"wØvv@vóu¤uTuu±t^t tµs^ss®rTrùqq@qáp‚p"pÀo^oún•n0nÉmamølŽl#l·kJkÛjljüi‹ii¥h1h¼gEgÎfVfÝebeçdkdîcpcñbqbðanaë`g`â_]_Ö^O^Æ]=]³\(\œ[[ZóYcYÓXBX°WW‰VôU_UÉT2TšSShRÎQ3Q—PúO]O¿N N€MàL?LKúJWJ³IIiHÃGGtFÌE#EzDÐC%CyBÍA As@Å??g>·==V<¤;ò:?:Œ9Ø8$8o7¹66M5–4Þ3&3m2´1û0A0†/Ì..T-˜,Û++a*£)å(&(g'§&ç%'%g$¦#ä"#"a!Ÿ ÜV“Ï F‚½ø3m§áUŽÇ9r«ãS ‹ à û 2 j ¡ÙG~¶í$[’É7ÿnþ¥ýÜüüJû‚ú¹ùðø'ø_÷–öÎõõ=ôuó­òåññUðŽïÇîî9írì«ëåêêYé“èÍççCæ~åºäõã1ãmâªáçà$àaߟÞÝÝÝZÜ™ÛÙÚÚYÙ™ØÚ××]ÖŸÕâÔ%ÔhÓ¬ÒðÑ4ÑzпÏÏLΓÍÚÌ"Ìj˳ÊýÉGÉ‘ÈÜÇ(ÇtÆÁÅÅ\ĪÃùÂI™ÁêÀ;À¿à¾3¾‡½Û¼0¼†»Ýº4ºŒ¹ä¸=¸—·ò¶M¶©µµc´Á³ ³€²à±A±£°°i¯Í®2®˜­ÿ¬f¬Î«7«¡ª ªw©ã¨P¨¾§-§¦ ¦¥ñ¤d¤Ø£M£Ã¢:¢±¡*¡£  ™ŸŸ’žžœœ•››žš#šª™2™»˜D˜Ï—[—ç–u––”•%•¶”I”Ý“r““Ÿ’7’Бk‘‘¢@Þ~ÀŽcŽެRúŒ¢ŒKŒö‹¢‹O‹ýЬŠ\Š ŠÀ‰s‰(‰Þˆ•ˆMˆˆÁ‡}‡:‡ø†·†w†9†ü…¿…„…K……Û„¤„o„<„ „׃§ƒxƒJƒƒò‚È‚Ÿ‚w‚P‚+‚‚䢂dG,ø€à€É€´€Ÿ€Œ€z€j€Z€L€?€3€)€ €€€ €€€€€€€€ €€€ €)€3€?€L€Z€j€z€Œ€Ÿ€´€É€à€ø€,Gd‚¢Âä‚+‚P‚w‚Ÿ‚È‚ò‚ƒJƒxƒ§ƒ×ƒ „<„o„¤„Û„…K…„…¿…ü…9†w†·†ø†:‡}‡Á‡ˆMˆ•ˆÞˆ(‰s‰À‰ Š\ЬŠýŠO‹¢‹ö‹KŒ¢ŒúŒR¬ŽcŽÀŽ~Þ@¢‘k‘Б7’Ÿ’“r“Ý“I”¶”%•”•–u–ç–[—Ï—D˜»˜2™ª™#šžš›•›œœž’žŸ™Ÿ £ *¡±¡:¢Ã¢M£Ø£d¤ñ¤¥ ¦¦-§¾§P¨ã¨w© ª¡ª7«Î«f¬ÿ¬˜­2®Í®i¯°£°A±à±€² ³Á³c´µ©µM¶ò¶—·=¸ä¸Œ¹4ºÝº†»0¼Û¼‡½3¾à¾¿;ÀêÀ™ÁIÂùªÃ\ÄÅÁÅtÆ(ÇÜÇ‘ÈGÉýɳÊjË"ÌÚÌ“ÍLÎÏ¿ÏzÐ4ÑðѬÒhÓ%ÔâÔŸÕ]Ö×Ú×™ØYÙÚÙÚ™ÛZÜÝÝÝŸÞaß$àçàªámâ1ãõãºä~åCæçÍç“èYéêåê«ërì9íîÇîŽïUðñåñ­òuó=ôõÎõ–ö_÷'øðø¹ù‚úJûüÜü¥ýnþ7ÿ’$¶GÙj û ‹ «9ÇUámø‚ “Ÿ #"¦#'%§&&(£)+˜,.†/û0m2Þ3M5¹6$8Œ9ò:V<·=?s@ÍA%CzDÌEGiH³IúJ?L€M¿NúO3QhRšSÉTôUWBXcYZœ[³\Æ]Ö^â_ë`ðañbîcçdÝeÎf¼g¥h‹iljJk#lølÉm•n^o"pápqTrsµs^tu¤u@vØvkwùwƒxy‰yz|zîz\{Ä{)|ˆ|â|8}‰}Õ}~^~œ~Ô~7a†¦Á×èõüÿüõè×Á¦†a7Ô~œ~^~~Õ}‰}8}â|ˆ|)|Ä{\{îz|zz‰yyƒxùwkwØv@v¤uu^tµssTrqáp"p^o•nÉmøl#lJklj‹i¥h¼gÎfÝeçdîcñbðaë`â_Ö^Æ]³\œ[ZcYBXWôUÉTšShR3QúO¿N€M?LúJ³IiHGÌEzD%CÍAs@?·=V<ò:Œ9$8¹6M5Þ3m2û0†/.˜,+£)&(§&'%¦##"Ÿ “ ‚ømáUÇ9«‹ û j ÙG¶$’nþÜüJû¹ù'ø–öõuóåñUðÇî9í«ëê“èç~åõãmâçàaßÝÝZÜÙÚYÙÚ×]ÖâÔhÓðÑzÐÏ“Í"̳ÊGÉÜÇtÆŪÃIÂêÀ¿3¾Û¼†»4ºä¸—·M¶µÁ³€²A±°Í®˜­f¬7« ªã¨¾§¦¥d¤M£:¢*¡ Ÿžœ›#š2™D˜[—u–”•¶”Ý““7’k‘¢ÞcެúŒKŒ¢‹ýŠ\ŠÀ‰(‰•ˆˆ}‡ø†w†ü…„……¤„<„׃xƒƒÈ‚w‚+‚ä¢d,ø€É€Ÿ€z€Z€?€)€€ €€€€ €€)€?€Z€z€Ÿ€É€ø€,d¢ä+‚w‚È‚ƒxƒ×ƒ<„¤„…„…ü…w†ø†}‡ˆ•ˆ(‰À‰\ŠýŠ¢‹KŒúŒ¬cŽÞ¢k‘7’“Ý“¶””•u–[—D˜2™#š›œžŸ *¡:¢M£d¤¥¦¾§ã¨ ª7«f¬˜­Í®°A±€²Á³µM¶—·ä¸4º†»Û¼3¾¿êÀIªÃÅtÆÜÇGɳÊ"Ì“ÍÏzÐðÑhÓâÔ]ÖÚ×YÙÙÚZÜÝÝaßçàmâõã~åç“èê«ë9íÇîUðåñuóõ–ö'ø¹ùJûÜünþ$Gj ‹ «Çáø #"'%&(+.û0Þ3¹6Œ9V<?ÍAzDG³I?L¿N3QšSôUBXZ³\Ö^ë`ñbçdÎf¥hlj#lÉm^oápTrµsu@vkwƒx‰y|z\{)|â|‰}~œ~a¦×õÿõצaœ~~‰}â|)|\{|z‰yƒxkw@vuµsTráp^oÉm#llj¥hÎfçdñbë`Ö^³\ZBXôUšS3Q¿N?L³IGzDÍA?V<Œ9¹6Þ3û0.+&('%#" øáÇ«‹ j G$Üü¹ù–öuóUð9íêçõãçàÝÝÙÚÚ×âÔðÑÏ"ÌGÉtƪÃêÀ3¾†»ä¸M¶Á³A±Í®f¬ ª¾§¥M£*¡Ÿ›2™[—”•Ý“7’¢¬KŒýŠÀ‰•ˆ}‡w†„…¤„׃ƒw‚ädø€Ÿ€Z€)€ €€ €)€Z€Ÿ€ø€däw‚ƒ×ƒ¤„„…w†}‡•ˆÀ‰ýŠKŒ¬¢7’Ý“”•[—2™›Ÿ*¡M£¥¾§ ªf¬Í®A±Á³M¶ä¸†»3¾êÀªÃtÆGÉ"ÌÏðÑâÔÚ×ÙÚÝÝçàõãçê9íUðuó–ö¹ùÜüG‹ Çø'%+û0¹6V<ÍAG?L3QôUZÖ^ñbÎfljÉmápµs@vƒx|z)|‰}œ~a×ÿ×aœ~‰})||zƒx@vµsápÉmljÎfñbÖ^ZôU3Q?LGÍAV<¹6û0+'%øÇ‹ G¹ùuó9íççàÙÚâÔÏGɪÃ3¾ä¸Á³Í® ª¥*¡2™”•7’KŒÀ‰}‡„…׃w‚dŸ€)€€)€Ÿ€dw‚׃„…}‡À‰KŒ7’”•2™*¡¥ ªÍ®Á³ä¸3¾ªÃGÉÏâÔÙÚçàç9íuó¹ù‹ ø'%û0V<G3QZñbljáp@v|z‰}aÿa‰}|z@vápljñbZ3QGV<û0'%ø‹ uóçÙÚϪÃä¸Í®¥”•À‰„…w‚Ÿ€€Ÿ€w‚„…À‰”•¥Í®ä¸ªÃÏÙÚçuóøû0GZlj@v‰}ÿ‰}@vljZGû0øçÏ严”•À‰w‚€w‚À‰”•¥ä¸Ïçû0Z@vÿ@vZû0Ï¥À‰€À‰¥ÏZÿZ¥€¥ÿ€ýàa…sÉf|p\h oi"ndizm‹iõl—i†l“i#l„iÊkmiwkPi*k/iàj i™jähTj»hjhÐidhi7hQi hiÚgÕh«g˜h{g\hJg!hgågçf«gµfpgƒf6gPfüffÂfêe‰f·ePfƒefPeÞee¥eèdle´d4e€dûdKdÃdd‹dãcSd®cdycãcDc«ccscÛb;c¦bcqbÌbG@GG GÒFÓF›FœFeFfF/F0FùEùEÂEÃEŒEŒEVEVE E EêDéD³D³D}D|DGDFDDDÚCÙC¤C£CnClC8C6CCÿBËBÉB•B“B_B\B(B&BòAïA¼A¹A†AƒAOALAAAã@ß@­@©@v@s@@@<@ @@Ô?Ï??™?g?c?1?,?û>ö>Ä>¿>Ž>‰>X>S>">>ë=æ=µ=¯==y=I=C== =Ü<Ö<¦<Ÿ///Þ.Ñ.¨.›.r.d.;....ø-Ï-Á-™-‹-b-T-,--ö,è,¿,±,‰,{,S,E,,,æ+Ø+°+¡+z+k+C+5+ +þ*×*È*¡*’*j*[*4*%*þ)ï)Ç)¸)‘)‚)[)K)%))î(ß(¸(¨(‚(r(K(<(((ß'Ï'©'™'r'b'<',''õ&Ï&¿&™&‰&c&R&-&&ö%æ%À%¯%Š%y%S%C%% %ç$Ö$±$ $z$i$D$3$$ü#×#Æ#¡##k#Y#5###þ"í"È"¶"’"€"["J"%""ï!Ý!¸!¦!‚!p!L!:!!!ß Í © — s ` < *  ôнš‡cQ-÷äÀ­ŠwTA çÔ±ž{gD1ûØÄ¡ŽkX5!ÿëÈ´’~\H%ïÛ¹¥ƒnL8àË©•s_=(òмš…dO-÷âÁ¬ŠuT? èÒ±œ{fE/ùØÃ¢ŒkV5 ÿéɳ’|\F&ïÙ¹£ƒmM6àʪ“s]='ðкšƒdM.÷àÁª‹tT=èѲš{dE.÷ØÁ¢‹lT5ÿ è É ± “ { \ D &  ð Ø ¹ ¡ ƒ k M 5  þ à È ª ’ t [ = %  ï Ñ ¸ š ‚ d L .  ÷ ß Á ¨ ‹ r U <   èϲ™{bE,öÙ¿¢‰lS6ÿæÉ°“y\C& ðÖº ƒiM3ýàÆªtZ=#íÑ·›€dJ.øÝÁ§‹qU:èͲ—|aE*ôÙ¾¢‡lQ6åÿÊÿ¯ÿ”ÿyÿ^ÿBÿ'ÿ ÿñþÖþ»þŸþ„þiþNþ3þþüýâýÆý«ýýuýYý?ý#ýýìüÒü¶üœü€üeüIü/üüùûÝûÃû¦ûŒûpûVû:û ûûéúÍú³ú—ú}ú`úFú*úúóùÚù½ù¤ù‡ùmùPù7ùùùäøÊø­ø”øwø^øAø'ø øñ÷Ô÷»÷ž÷…÷g÷N÷1÷÷ûöâöÄö«öŽöuöXö?ö!ö öëõÒõ´õœõ~õfõHõ/õõùôÛôÃô¥ôŒônôVô8ô ôôêóËó³ó•ó}ó_óGó(óóòòÚò¼ò¤ò…òmòOò7òòòâñËñ¬ñ”ñuñ^ñ?ñ(ñ ññðÒð»ðœð…ðfðNð/ððùïâïÃï¬ïŒïuïVï?ï ï ïéîÒî³îœî}îfîFî0îîùíÙíÃí£íímíVí6í ííêìÊì³ì“ì}ì]ìGì'ììðëÚëºë¤ë„ënëMë7ëëëàêËêªê•êtê^ê=ê(êêòéÑé»éšé…édéOé.éé÷èâèÁè¬è‹èvèTè?èè èèçÓç±çœç{çfçDç0ççùæØæÃæ¡æækæWæ5æ æþåêåÈå´å’å}å[åGå%ååïäÛä¸ä¤ä‚änäLä8äääßãËã¨ã•ãrã_ã<ã(ããòâÏâ¼â™â…âbâOâ,ââöáâá¿á¬á‰áváSá@áá áæàÓà¯ààyàfàCà0à àúßÖßÄß ßßißWß3ß!ßýÞêÞÆÞ´ÞÞ~ÞZÞHÞ#ÞÞíÝÛݶݥ݀ÝnÝJÝ8ÝÝÝÝÜËܧܕÜpÜ_Ü:Ü)ÜÜòÛÍÛ¼Û—Û†Û`ÛOÛ*ÛÛôÚãÚ½Ú­Ú‡ÚvÚQÚ@ÚÚ ÚäÙÓÙ®ÙÙwÙgÙAÙ1Ù ÙúØÔØÄ؞؎ØgØWØ1Ø!Øû×ë×Ä׵׎×~×X×H×!××ëÖÛÖµÖ¥Ö~ÖoÖHÖ9ÖÖÖÛÕÌÕ¥Õ–ÕnÕ_Õ8Õ)ÕÕóÔËÔ½Ô•Ô†Ô_ÔPÔ(ÔÔòÓãÓ»Ó­Ó…ÓwÓOÓAÓÓ ÓâÒÔÒ¬ÒžÒuÒgÒ?Ò1ÒÒûÑÒÑÅќюÑeÑXÑ/Ñ"ÑùÐëÐÂеЌÐÐVÐIÐÐÐéÏÜϲϦÏ|ÏpÏFÏ9ÏÏÏÙÎÍΣΖÎlÎ`Î6Î*ÎÿÍôÍÉͽ͓͇Í\ÍQÍ&ÍÍðÌä̹̮̃ÌxÌMÌAÌÌ ÌàËÕ˩˟ËsËhË=Ë2ËËüÊÐÊÅÊšÊÊcÊYÊ-Ê#ÊöÉìÉÀɶɊɀÉSÉJÉÉÉæÈÝȰȧÈzÈpÈCÈ:È ÈÈ×ÇÎÇ Ç—ÇjÇaÇ3Ç+ÇýÆõÆÇÆ¾ÆÆˆÆZÆRÆ$ÆÆíÅåŷůŀÅyÅJÅBÅÅ ÅÝÄÖħĠÄpÄiÄ:Ä3ÄÄýÃÍÃÇ×ÃÃaÃZÃ*Ã$ÃôÂî½·‡ÂÂQÂKÂÂÂäÁÞÁ­Á¨ÁwÁrÁAÁ<Á ÁÁÔÀÏÀÀ™ÀgÀcÀ1À,Àú¿ö¿Ä¿À¿¿Š¿W¿S¿!¿¿ê¾ç¾´¾±¾}¾z¾G¾D¾¾¾Ú½Ø½¤½¡½m½k½7½5½½ÿ¼Ê¼È¼”¼’¼]¼\¼'¼&¼ñ»ï»º»¹»„»ƒ»M»M»»»àºàºªºªºtºtº=º>ºººÐ¹Ñ¹š¹›¹d¹e¹-¹.¹÷¸ø¸À¸Â¸Š¸Œ¸S¸U¸¸¸ç·é·°·³·z·}·C·F· ··Ö¶Ú¶ ¶¤¶j¶n¶3¶7¶ýµ¶ÆµËµµ•µYµ^µ#µ(µì´ò´¶´¼´€´†´I´O´´´Ü³ã³¦³­³o³w³9³A³³ ³Ì²Ô²•²ž²_²h²)²2²ò±û±¼±Å±…±±O±Y±±#±â°í°«°¶°u°€°>°J°°°Ñ¯Þ¯›¯¨¯d¯q¯.¯;¯÷®¯Á®Ï®Š®™®T®c®®-®ç­ö­°­À­z­Š­C­T­ ­­Ö¬è¬ ¬²¬i¬|¬3¬E¬ü«¬Æ«Ù««£«X«m«"«7«ëª«µªËª~ª•ªHª_ªª)ªÚ©ò©¤©¼©m©†©7©P©©©É¨ä¨“¨®¨\¨x¨&¨B¨ï§ ¨¸§Ö§‚§ §K§j§§4§Þ¦þ¦§¦È¦p¦’¦:¦\¦¦&¦Ì¥ð¥–¥º¥_¥„¥(¥N¥ñ¤¥»¤ã¤„¤­¤M¤w¤¤A¤à£ ¤©£Õ£r£Ÿ£;£j££4£Î¢þ¢—¢È¢`¢“¢)¢]¢ò¡'¢»¡ñ¡„¡¼¡M¡†¡¡P¡ß ¡¨ å q ¯ : z  D ÌŸ •ŸÙŸ^Ÿ¤Ÿ&ŸnŸïž9Ÿ¸žŸžÎžIž™žždžÚ/ž£ùkÄ4üœZÅœ%œðœUœ¼œœ‡œå›Rœ­›œu›é›=›µ››€›ÌšL›”š›[šäš"š°šê™}š°™Išw™š>™ã™™°™Ê˜}™˜K™U˜™˜ç˜ß—¶˜¤—…˜h—U˜+—&˜í–÷—¯–É—p–œ—0–p—ï•E—¬•—g•õ– •Ñ–Ö”°–‰”“–6”|–Ý“m–z“i– “u–†’œ–Þ‘ò–÷¤—„7™{Œ ž€áªa3s\fôo¹gKn5h-mThOlEh”khîjágUj›gÆiNg=iûf¹h£f8hIf»gìe@geÇf,eOfÉdÙefdcedïdœc{d7cdÐb•cib#cb²bšaAb1aÐaÉ`_a``ï`÷_`_`$_Ÿ_º^0_P^Á^æ]R^|]ã]]t]§\]<\–\Ñ[(\g[¹[üZK[‘ZÝZ&ZoZ»YZOY’YäX$YyX¶X XIX¢WÛW7WmWËVÿV`V‘VôU$VˆU¶UUHU±TÛTETmTÙSTnS’SS%S–R·R*RJR¾QÝQRQoQæPQzP”PP'P¢OºO6OMOÊNßN^NrNòMN†M˜MM*M®L½LBLPLÖKãKjKvKþJ K‘J›J%J.J¹IÁIMITIáHçHtHzHH HœG G0G3GÃFÆFWFYFëEìEEEEE¦D¥D:D8DÍCËCaC^CõBñBˆB„BBB°AªACA=A×@Ð@k@c@þ?ö?’?‰?&??¹>¯>M>B>á=Õ=t=h==ü<›<ý ýÑüœüdü0ü÷ûÃû‹ûWûûêú±ú}úDúúØù¤ùkù8ùþøËø‘ø_ø%øò÷¸÷†÷K÷÷Þö­öqö@ööÓõ˜õgõ+õúô¾ôŽôRô!ôåóµóxóHó óÜòŸòoò2òòÅñ–ñXñ*ñìð½ððPððäï¥ïwï9ï ïÌîžî_î2îòíÅí†íYííìì¬ì€ì?ììÒë§ëfë:ëùêÎêŒêaêêôé³éˆéFééÙè¯èlèBèèÖç“çiç&çýæ¹ææMæ$æàå·åsåKååÞä™ärä-ääÀã™ãSã,ãæâÀâzâSâ âæá ázá3á áÆà¡àZà4àíßÈ߀ß[ßßïÞ§Þ‚Þ:ÞÞÍÝ©Ý`Ý=ÝóÜÐ܇ÜdÜÜ÷Û­Û‹Û@ÛÛÓÚ²ÚgÚEÚúÙÙÙÙlÙ ÙٳؓØGØ'ØÚ׺×m×N××áÖ“ÖuÖ'ÖÖºÕœÕMÕ/ÕàÔÃÔsÔVÔÔêÓšÓ}Ó-ÓÓÀÒ¤ÒSÒ8ÒçÑËÑzÑ_Ñ ÑòРІÐ3ÐÐÆÏ­ÏZÏAÏíÎÔ΀ÎhÎÎûͦÍÍ9Í"ÍÍ̶Ì`ÌIÌóË݈ËqËËˬʘÊ?Ê+ÊÓÉ¿ÉfÉRÉùÈæÈŒÈyÈÈ È²Ç¡ÇEÇ4ÇÙÆÈÆlÆ[ÆÿÅïŒŃÅ%ÅŸĪÄKÄ=ÄÞÃÑÃqÃeÃÃøÂ˜ÂŒÂ+¾Á³ÁQÁGÁäÀÚÀwÀnÀ ÀÀ¿•¿0¿)¿Ã¾½¾V¾P¾é½ä½|½x½½ ½¢¼Ÿ¼5¼3¼È»Æ»[»Z»îºîººººº§¹©¹:¹=¹Í¸Ð¸`¸d¸ó·ø·†·Œ···¬¶³¶?¶G¶ÒµÛµeµoµ÷´µŠ´–´´*´°³¾³C³R³Ö²æ²h²z²û±²Ž±¢±!±6±³°Ê°F°^°Ù¯ò¯l¯†¯þ®¯‘®®®#®B®¶­Ö­I­j­Û¬þ¬n¬’¬¬'¬“«»«%«O«¸ªãªJªxªÜ© ªo© ©©5©“¨É¨%¨^¨·§ó§J§‡§Ü¦§n¦±¦¦E¦‘¥Ú¥#¥o¥µ¤¥G¤™¤Ø£/¤j£Ä£û¢Y£Œ¢ï¢¢„¢®¡¢?¡°¡Ð F¡a Ü ñŸs Ÿ  Ÿ Ÿ¡ž7Ÿ0žÏž¿fžNÿÝœ—kœ0ø›Éœ…›dœ›þ›šš›'š7›±™Ôš9™sšÀ˜šE˜·™È—]™G—™Ã–²˜:–e˜«•˜•å—l”»—±“¬—Ó’Ë—µ‘G˜ ¤™ÍŒVž€«>arƒeåntfÎlƒfDk5fùiºeÑh#e¾g|d¹fÊc¼ecÇdQbÖcaébÆ`ÿaü_a0_1`c^M_”]i^Ä\‡]ó[¦\"[Æ[OZæZ|YZ©X(YÔWIXWkW+VŽVVU°UTÓT«S÷SÕRSÿQ>R)QaQRP…P{OªO¥NÎNÎMòM÷LM L;LHK`KqJ…JšIªIÂHÏHêGôGGG;F>FcEcE‹DˆD´C®CÜBÓBBùA,AAS@D@{?i?£>>Ë=´=ó<Ú<<·V¶f¶{µµ ´¸´Å³à³é² ³²2²2±[±V°…°{¯®¯Ÿ®×®Â­®æ¬+­ ¬U¬-««Pªªªr©Õ©•¨©·§,¨Ø¦W§ú¥„¦¥±¥:¤Þ¤Z£ ¤y¢<£—¡l¢³ ¡ÏŸÐ éž ž:Ÿsž*œ¯9›ðœDš6œG™„›B˜Ýš/—Fš–Ë™¼”}™2“Œ™‘}špžU€>e`JqÑcÄlécÔicpgùaLe¤`Jc5_]aµ]~_*\¨]˜ZÙ[ÿXZcWGXÃU„V TÂT{RSÕPDQ-O‡O…MËMÛKL0JVJ…HœHÙFãF-E+E€CsCÓA»A%@@w>M>É<–<;ß:k9)9¼7s7 6½5^44¯2Q2ÿ0œ0O/æ. -1-ð+|+@*Ç)((ß&]&/%¨$#ó"Î!>! ‰nÕ½  k\·«úNJ™™åè17|‡ È Ö  % _ t«Ã÷BaްÚ&ÿPþrýŸü¾ûîú ú=ùUøŒ÷¡öÛõíô*ô8óyò„ñÉðÏïïîgígì¶ë²êêþèUèIç¤æ•åôäàãCã+â’áwàâßÂÞ2Þ ÝÜXÛÑÚ£Ù!Ùï×p×9ÖÀÕ„ÔÔÏÒ`ÒѱÐdÏϯÍQÍùË¢ËCÊóÉÈDÈׯ•Æ!ÅæÄjÃ7óÁ‰Áü¿Û¿E¾-¾¼€¼ÕºÓº¹'¹d·{·ªµÐµð³%´5²{²y°Ó°¼®+¯þ¬…­>«à«|©=ª¹§¨ò¥§'¤h¥X¢Ö£‚ K¢£žË ¶œ\Ÿ´šž˜áœ,–œ<“/œ¶Ž›ŸÂ€d~´^»no`h×^Ýc\\Å_„Yì[V6X_S•T.PQóLwM¯IóIfFtFCùBÈ??t< <9–8È5$5p2²1/B.¼+Ò*a(c'%ô#©!† Mð¬’?5Ò×fy ú  ޼!^µKþ¢üßúDùr÷åõô‡òšð)ï.íËëÁénèTæåçâ³ázßWÞ ÜúÚØŸ×.ÕDÔ¾ÑéÐNÎÍÜÊ8ÊjÇáÆõÃŒÃÀ8À½è¼Œ¹š¹ ¶Q¶‰² ³ÿ®Ò¯k«¡¬Ê§©¤|¦; ¤£#œ)¡—‘ŸE‘L¡œ®|U[™i³Yó_¼TãWâN^P­HIJB÷AÌ;é:>5è3¥.ð,(þ%`!¶' ?] X ¯rŽüQù¨õ£òÁîõëÙçJåïà ÞÚû×Ó[ÑÌÂÊÅ4Ä ¾¶½ç¶S·¢¯±¨D«  M¦g–«¤Rƒ;y¦TA_UL´N°@¼?+4M1M'#D& ùÚòúê¼åæÜ³Ø³ÎÕËDÀP¿L±«³¿ Z«Å†:rG:J2™+co‘ñægÔðÍÆµ¸ÆËc. `áäÑ5œ+EÖº…vÂZ.k~_’h&amgýaÉf~b`fÕbfcâeAc¹eec™e‚cešcie­cWe¾cHeÌc;eÙc/eãc%eíceöceýc ede dedûddöddñddíd"déd&dæd)dãd,dàd/dÝd2dÚd5d×d7dÕd9dÓddÏd@dÍdAdËdCdÉdEdÈdFdÆdHdÅdIdÃdKdÂdLdÁdMd¿dNd¾dPd½dQd¼dRd»dSdºdTd¹dUd¸dUd·dVd·dWd¶dXdµdYd´dYd³dZd³d[d²d\d±d\d±d]d°d]d°d^d¯d_d®d_d®d`d­d`d­dad¬dad¬dbd«dbd«dcdªdcdªdcdªddd©ddd©ded¨ded¨ded¨dfd§dfd§dgd§dgd¦dgd¦dhd¦dhd¥dhd¥dhd¥did¤did¤did¤djd¤djd£djd£djd£dkd£dkd¢dkd¢dkd¢dld¢dld¡dld¡dld¡dld¡dmd¡dmd dmd dmd dmd dnd dndŸdndŸdndŸdndŸdndŸdodŸdodždodždodždodždodždpdždpddpddpddpddpddpddqddqddqdœdqdœdqdœdqdœdqdœdqdœdrdœdrdœdrd›drd›drd›drd›drd›drd›drd›drd›dsd›dsd›dsd›dsdšdsdšdsdšdsdšdsdšdsdšdsdšdsdšdsdšdtdšdtdšdtdšdtd™dtd™dtd™dtd™dtd™dtd™dtd™dtd™dtd™dtd™dtd™dtd™dud™dud™dud™dud™dud˜dud˜dud˜dud˜dud˜dud˜dud˜dud˜dud˜dud˜dud˜dud˜dud˜dud˜dud˜dud˜dvd˜dvd˜dvd˜dvd˜dvd˜dvd˜dvd˜dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dwd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd—dvd˜dvd˜dvd˜dvd˜dvd˜dvd˜dvd˜dvd˜dud˜dud˜dud˜dud˜dud˜dud˜dud˜dud˜dud˜dud˜dud˜dud˜dud˜dud˜dud˜dud™dud™dud™dud™dud™dtd™dtd™dtd™dtd™dtd™dtd™dtd™dtd™dtd™dtd™dtd™dtdšdtdšdtdšdtdšdsdšdsdšdsdšdsdšdsdšdsdšdsdšdsdšdsd›dsd›dsd›dsd›drd›drd›drd›drd›drd›drd›drd›drdœdrdœdrdœdqdœdqdœdqdœdqdœdqdœdqddqddqddpddpddpddpddpddpdždpdždodždodždodždodždodŸdodŸdndŸdndŸdndŸdndŸdnd dnd dmd dmd dmd dmd¡dmd¡dld¡dld¡dld¡dld¢dld¢dkd¢dkd¢dkd£dkd£djd£djd£djd¤djd¤did¤did¤did¥dhd¥dhd¥dhd¦dhd¦dgd¦dgd§dgd§dfd§dfd¨ded¨ded¨ded©ddd©dddªdcdªdcdªdcd«dbd«dbd¬dad¬dad­d`d­d`d®d_d®d_d¯d^d°d]d°d]d±d\d±d\d²d[d³dZd³dYd´dYdµdXd¶dWd·dVd·dUd¸dUd¹dTdºdSd»dRd¼dQd½dPd¾dNd¿dMdÁdLdÂdKdÃdIdÅdHdÆdFdÈdEdÉdCdËdAdÍd@dÏd>dÑd¥Ò”‚ n—Úž“˜ž7™‚ ™+é™îœš¿œGš›œgš~œšfœ—šSœ©šBœ¸š4œÅš'œÑšœÛšœäš œìšœóšü›úšö››ð››ë› ›æ››â››Þ››Ú››×››Ô› ›Ñ›#›Î›&›Ë›)›É›+›Ç›-›Ä›/›Â›1›À›3›¿›5›½›7›»›8›º›:›¸›;›·›=›µ›>›´›?›³›A›²›B›°›C›¯›D›®›E›­›F›¬›G›«›H›«›I›ª›I›©›J›¨›K›§›L›§›M›¦›M›¥›N›¤›O›¤›O›£›P›£›P›¢›Q›¡›R›¡›R› ›S› ›S›Ÿ›T›Ÿ›T›ž›U›ž›U››V››V››V›œ›W›œ›W›››X›››X›››X›š›Y›š›Y›™›Y›™›Z›™›Z›˜›Z›˜›[›˜›[›˜›[›—›\›—›\›—›\›–›\›–›]›–›]›–›]›•›]›•›^›•›^›•›^›”›^›”›_›”›_›”›_›”›_›“›_›“›`›“›`›“›`›“›`›’›`›’›a›’›a›’›a›’›a›’›a›‘›a›‘›b›‘›b›‘›b›‘›b›‘›b››b››c››c››c››c››c››c››c››c››d››d››d››d››d››d›Ž›d›Ž›d›Ž›e›Ž›e›Ž›e›Ž›e›Ž›e›Ž›e›Ž›e›Ž›e››e››e››e››f››f››f››f››f››f››f››f››f›Œ›f›Œ›f›Œ›f›Œ›g›Œ›g›Œ›g›Œ›g›Œ›g›Œ›g›Œ›g›Œ›g›Œ›g›Œ›g›Œ›g›Œ›g›‹›g›‹›g›‹›g›‹›g›‹›h›‹›h›‹›h›‹›h›‹›h›‹›h›‹›h›‹›h›‹›h›‹›h›‹›h›‹›h›‹›h›‹›h›‹›h›‹›h›Š›h›Š›h›Š›h›Š›h›Š›h›Š›h›Š›h›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›‰›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›i›Š›h›Š›h›Š›h›Š›h›Š›h›Š›h›Š›h›Š›h›‹›h›‹›h›‹›h›‹›h›‹›h›‹›h›‹›h›‹›h›‹›h›‹›h›‹›h›‹›h›‹›h›‹›h›‹›h›‹›g›‹›g›‹›g›‹›g›‹›g›Œ›g›Œ›g›Œ›g›Œ›g›Œ›g›Œ›g›Œ›g›Œ›g›Œ›g›Œ›g›Œ›g›Œ›f›Œ›f›Œ›f›Œ›f››f››f››f››f››f››f››f››f››e››e››e››e›Ž›e›Ž›e›Ž›e›Ž›e›Ž›e›Ž›e›Ž›e›Ž›d›Ž›d›Ž›d››d››d››d››d››d››c››c››c››c››c››c››c››c››b››b›‘›b›‘›b›‘›b›‘›b›‘›a›‘›a›’›a›’›a›’›a›’›a›’›`›’›`›“›`›“›`›“›`›“›_›“›_›”›_›”›_›”›_›”›^›”›^›•›^›•›^›•›]›•›]›–›]›–›]›–›\›–›\›—›\›—›\›—›[›˜›[›˜›[›˜›Z›˜›Z›™›Z›™›Y›™›Y›š›Y›š›X›››X›››X›››W›œ›W›œ›V››V››V››U›ž›U›ž›T›Ÿ›T›Ÿ›S› ›S› ›R›¡›R›¡›Q›¢›P›£›P›£›O›¤›O›¤›N›¥›M›¦›M›§›L›§›K›¨›J›©›I›ª›I›«›H›«›G›¬›F›­›E›®›D›¯›C›°›B›²›A›³›?›´›>›µ›=›·›;›¸›:›º›8›»›7›½›5›¿›3›À›1›Â›/›Ä›-›Ç›+›É›)›Ë›&›Î›#›Ñ› ›Ô››×››Ú››Þ››â››æ› ›ë››ð››ö›úšü›óšœìš œäšœÛšœÑš'œÅš4œ¸šBœ©šSœ—šfœš~œgš›œGš¿œšîœé™+ ™‚7™ž“˜Úžn—‚ Ò”>¥{‰…vÂZ.k~_’h&amgýaÉf~b`fÔbfcâe@cºeecšec€e™cje­cXe½cIeÌc;eØc0eãc&eìceõceücede dedüdd÷ddóddïd!dëd$dçd(däd+dád.dÞd0dÜd3dÙd5d×d8dÕd:dÒddÏd?dÍdAdËdCdÊdDdÈdFdÇdGdÆdHdÄdJdÃdKdÂdLdÁdMdÀdNd¿dOd¾dPd½dQd¼dRd»dSdºdSd¹dTd¹dUd¸dVd·dVd·dWd¶dXdµdXdµdYd´dYd´dZd³dZd³d[d²d[d²d\d±d\d±d]d°d]d°d^d¯d^d¯d^d¯d_d®d_d®d`d®d`d­d`d­d`d­dad¬dad¬dad¬dbd¬dbd«dbd«dbd«dcd«dcdªdcdªdcdªdcdªdddªddd©ddd©ddd©ddd©ded©ded©ded¨ded¨ded¨ded¨ded¨ded¨dfd¨dfd¨dfd§dfd§dfd§dfd§dfd§dfd§dfd§dfd§dfd§dfd§dfd§dfd§dgd§dgd§dgd§dgd§dgd§dgd§dgd§dgd§dgd§dgd§dgd§dgd§dgd§dgd§dgd§dfd§dfd§dfd§dfd§dfd§dfd§dfd§dfd§dfd§dfd§dfd§dfd¨dfd¨dfd¨ded¨ded¨ded¨ded¨ded¨ded©ded©ded©ddd©ddd©ddd©dddªdddªdcdªdcdªdcdªdcd«dcd«dbd«dbd«dbd¬dbd¬dad¬dad¬dad­d`d­d`d­d`d®d`d®d_d®d_d¯d^d¯d^d¯d^d°d]d°d]d±d\d±d\d²d[d²d[d³dZd³dZd´dYd´dYdµdXdµdXd¶dWd·dVd·dVd¸dUd¹dTd¹dSdºdSd»dRd¼dQd½dPd¾dOd¿dNdÀdMdÁdLdÂdKdÃdJdÄdHdÆdGdÇdFdÈdDdÊdCdËdAdÍd?dÏd>dÑd¥Ò”‚ n—Úž“˜ž7™‚ ™,è™îœšÀœFš›œfšœ€šgœ–šSœ¨šCœ·š4œÅš(œÐšœÚšœãš œëšœòšý›ùš÷›ÿšñ››ì› ›è› ›ã››ß››Ü››Ø››Õ››Ò›"›Ð›$›Í›'›Ë›)›È›+›Æ›.›Ä›/›Â›1›Á›3›¿›5›½›6›¼›8›º›9›¹›:›¸›<›¶›=›µ›>›´›?›³›@›²›A›±›B›°›C›¯›D›®›E›­›F›­›G›¬›G›«›H›ª›I›ª›I›©›J›¨›K›¨›K›§›L›§›L›¦›M›¦›M›¥›N›¥›N›¤›O›¤›O›£›P›£›P›¢›Q›¢›Q›¢›Q›¡›R›¡›R› ›R› ›S› ›S› ›S›Ÿ›T›Ÿ›T›Ÿ›T›ž›T›ž›U›ž›U›ž›U››U››V››V››V››V›œ›V›œ›W›œ›W›œ›W›œ›W›››W›››W›››X›››X›››X›››X›››X›››X›š›X›š›X›š›Y›š›Y›š›Y›š›Y›š›Y›š›Y›š›Y›š›Y›š›Y›š›Y›š›Y›š›Y›™›Y›™›Y›™›Y›™›Y›™›Y›™›Y›™›Y›™›Y›™›Y›™›Y›™›Y›™›Y›™›Y›™›Y›™›Y›š›Y›š›Y›š›Y›š›Y›š›Y›š›Y›š›Y›š›Y›š›Y›š›Y›š›Y›š›X›š›X›š›X›››X›››X›››X›››X›››X›››W›››W›››W›œ›W›œ›W›œ›W›œ›V›œ›V››V››V››V››U››U›ž›U›ž›U›ž›T›ž›T›Ÿ›T›Ÿ›T›Ÿ›S› ›S› ›S› ›R› ›R›¡›R›¡›Q›¢›Q›¢›Q›¢›P›£›P›£›O›¤›O›¤›N›¥›N›¥›M›¦›M›¦›L›§›L›§›K›¨›K›¨›J›©›I›ª›I›ª›H›«›G›¬›G›­›F›­›E›®›D›¯›C›°›B›±›A›²›@›³›?›´›>›µ›=›¶›<›¸›:›¹›9›º›8›¼›6›½›5›¿›3›Á›1›Â›/›Ä›.›Æ›+›È›)›Ë›'›Í›$›Ð›"›Ò››Õ››Ø››Ü››ß››ã› ›è› ›ì››ñ›ÿš÷›ùšý›òšœëš œãšœÚšœÐš(œÅš4œ·šCœ¨šSœ–šgœ€šœfš›œFšÀœšîœè™, ™‚7™ž“˜Úžn—‚ Ò”>¥{‰…vÂZ.k~_’h%angüaÊf}bafÓbfcäe?c»ecc›ec‚e—cleªcZe»cKeÉc>eÕc3eßc)eéc eñceøceÿc ede dedüddøddôddðddíd"dêd%dçd'dåd*dâd,dàd.dÞd0dÜd2dÚd4dÙd5d×d7dÖd8dÔd:dÓd;dÒddÏd?dÎd@dÍdAdÌdAdÌdBdËdCdÊdCdÊdDdÉdDdÉdEdÈdEdÈdEdÈdFdÇdFdÇdFdÇdFdÇdFdÇdGdÇdGdÇdGdÇdGdÇdGdÇdFdÇdFdÇdFdÇdFdÇdFdÈdEdÈdEdÈdEdÉdDdÉdDdÊdCdÊdCdËdBdÌdAdÌdAdÍd@dÎd?dÏd>dÐd=dÑdeÉcKe»cZeªcle—c‚ec›ecc»e?cäecfÓbaf}bÊfüang%a’h~_.kÂZ…v{‰>¥Ò”‚ n—Ûž’˜ž6™ƒŸ™-ç™ïœšÁœEšœešœ~šiœ”šVœ¦šEœµš7œÂš+œÍš!œ×šœàšœçšœîšœõšû›úšö›ÿšñ››í››è› ›å››á››Þ››Û››Ù››Ö››Ô› ›Ò›"›Ð›$›Î›&›Ì›'›Ë›)›É›*›È›,›Æ›-›Å›.›Ä›/›Ã›0›Â›1›Á›2›À›3›¿›4›¿›4›¾›5›½›6›½›6›¼›7›¼›7›»›8›»›8›»›8›º›9›º›9›º›9›º›9›º›9›¹›9›¹›9›¹›9›¹›9›¹›9›º›9›º›9›º›9›º›9›º›8›»›8›»›8›»›7›¼›7›¼›6›½›6›½›5›¾›4›¿›4›¿›3›À›2›Á›1›Â›0›Ã›/›Ä›.›Å›-›Æ›,›È›*›É›)›Ë›'›Ì›&›Î›$›Ð›"›Ò› ›Ô››Ö››Ù››Û››Þ››á››å› ›è››í››ñ›ÿšö›úšû›õšœîšœçšœàšœ×š!œÍš+œÂš7œµšEœ¦šVœ”šiœ~šœešœEšÁœšïœç™-Ÿ™ƒ6™ž’˜Ûžn—‚ Ò”>¥{‰…vÁZ0k|_”h#apgùaÍfybffÎbf cêe8cÂe[c£ewcŠeŽcve cee°cWe½cKeÈc@eÒc7eÚc0eác)eçc#eíceñceöceùceüceÿc ed ed ed ededededededed ed ed ed eÿceüceùceöceñceíc#eçc)eác0eÚc7eÒc@eÈcKe½cWe°cee cveŽcŠewc£e[cÂe8cêe cfÎbffybÍfùapg#a”h|_0kÁZ…v{‰?¥Ð”„ l—Ýž˜ž3™‡š™2â™õœšÈœ>š¥œ]š‰œvšrœŠš`œ›šPœ©šCœµš8œÀš.œÉš&œÐšœ×šœÝšœâšœæš œêšœíšœðšœóšÿ›õšý›öšü›÷šû›øšú›ùšú›ùšù›ùšú›ùšú›øšû›÷šü›öšý›õšÿ›óšœðšœíšœêš œæšœâšœÝšœ×šœÐš&œÉš.œÀš8œµšCœ©šPœ›š`œŠšrœvš‰œ]š¥œ>šÈœšõœâ™2š™‡3™ž˜Ýžl—„ Ð”?¥{‰‡v¾Z4kv_œha{gìaÜfibxfºb4fôbfcàeE>…>Å>?E?…?Å?@E@…@Å@AEA…AÅABEB…BÅBCFC†CÆCDFD†DÆDEFE†EÆEFFF†FÆFGFG†GÆGHFH†HÆHIFI†IÆIJFJ†JÆJKFK†KÆKLFL†LÆLMFM†MÆMNFN‡NÇNOGO‡OÇOPGP‡PÇPQGQ‡QÇQRGR‡RÇRSGS‡SÇSTGT‡TÇTUGU‡UÇUVGV‡VÇVWGW‡WÇWXGX‡XÇXYGY‡YÈYZHZˆZÈZ[H[ˆ[È[\H\ˆ\È\]H]ˆ]È]^H^ˆ^È^_H_ˆ_È_`H`ˆ`È`aHaˆaÈabHbˆbÈbcHcˆcÈcdHdˆdÈd eIe‰eÉe fIf‰fÉf gIg‰gÉg hIh‰hÉh iIi‰iÉi jIj‰jÉj kIk‰kÉk lIl‰lÉl mIm‰mÉm nIn‰nÉn oIo‰oÉo pJpŠpÊp qJqŠqÊq rJrŠrÊr sJsŠsÊs tJtŠtÊt uJuŠuÊu vJvŠvÊv wJwŠwÊw xJxŠxÊx yJyŠyÊy zJzŠzÊz {K{‹{Ë{ |K|‹|Ë| }K}‹}Ë} ~K~‹~Ë~ KŠÌþÌŠK Ë~‹~K~ ~Ë}‹}K} }Ë|‹|K| |Ë{‹{K{ {ÊzŠzJz zÊyŠyJy yÊxŠxJx xÊwŠwJw wÊvŠvJv vÊuŠuJu uÊtŠtJt tÊsŠsJs sÊrŠrJr rÊqŠqJq qÊpŠpJp pÉo‰oIo oÉn‰nIn nÉm‰mIm mÉl‰lIl lÉk‰kIk kÉj‰jIj jÉi‰iIi iÉh‰hIh hÉg‰gIg gÉf‰fIf fÉe‰eIe eÈdˆdHddÈcˆcHccÈbˆbHbbÈaˆaHaaÈ`ˆ`H``È_ˆ_H__È^ˆ^H^^È]ˆ]H]]È\ˆ\H\\È[ˆ[H[[ÈZˆZHZZÈY‡YGYYÇX‡XGXXÇW‡WGWWÇV‡VGVVÇU‡UGUUÇT‡TGTTÇS‡SGSSÇR‡RGRRÇQ‡QGQQÇP‡PGPPÇO‡OGOOÇN‡NFNNÆM†MFMMÆL†LFLLÆK†KFKKÆJ†JFJJÆI†IFIIÆH†HFHHÆG†GFGGÆF†FFFFÆE†EFEEÆD†DFDDÆC†CFCCÅB…BEBBÅA…AEAAÅ@…@E@@Å?…?E??Å>…>E>>Å=…=E==Å<…éþè¾è~è>èþç¾ç~ç>çþæ¾æ~æ>æþå¾å~å>åþä¾ä~ä>äþã¾ã~ã>ãþâ¾â~â>âþá¾á~á>áþà¾à~à>àþß¾ß~ß>ßþÞ¾Þ~Þ=ÞýݽÝ}Ý=ÝýܽÜ}Ü=ÜýÛ½Û}Û=ÛýÚ½Ú}Ú=ÚýÙ½Ù}Ù=ÙýؽØ}Ø=Øý×½×}×=×ýÖ½Ö}Ö=ÖýÕ½Õ}Õ=ÕýÔ½Ô}Ô=ÔýÓ½Ó}Ó=ÓüÒ¼Ò|Ò<ÒüѼÑ|Ñ<ÑüмÐ|Ð<ÐüϼÏ|Ï<ÏüμÎ|Î<ÎüͼÍ|Í<Íü̼Ì|Ì<Ìü˼Ë|Ë<ËüʼÊ|Ê<ÊüɼÉ|É<ÉüȼÈ|È<ÈüÇ»Ç{Ç;ÇûÆ»Æ{Æ;ÆûÅ»Å{Å;ÅûÄ»Ä{Ä;ÄûûÃ{Ã;Ãû»Â{Â;ÂûÁ»Á{Á;ÁûÀ»À{À;Àû¿»¿{¿;¿û¾»¾{¾;¾û½»½{½;½û¼º¼z¼:¼ú»º»z»:»úºººzº:ºú¹º¹z¹:¹ú¸º¸z¸:¸ú·º·z·:·ú¶º¶z¶:¶úµºµzµ:µú´º´z´:´ú³º³z³:³ú²º²z²:²ú±º±y±9±ù°¹°y°9°ù¯¹¯y¯9¯ù®¹®y®9®ù­¹­y­9­ù¬¹¬y¬9¬ù«¹«y«9«ùª¹ªyª9ªù©¹©y©9©ù¨¹¨y¨9¨ù§¹§y§9§ù¦¹¦y¦8¦ø¥¸¥x¥8¥ø¤¸¤x¤8¤ø£¸£x£8£ø¢¸¢x¢8¢ø¡¸¡x¡8¡ø ¸ x 8 øŸ¸ŸxŸ8Ÿøž¸žxž8žø¸x8øœ¸œxœ8œø›¸›x›8›÷š·šwš7š÷™·™w™7™÷˜·˜w˜7˜÷—·—w—7—÷–·–w–7–÷•·•w•7•÷”·”w”7”÷“·“w“7“÷’·’w’7’÷‘·‘w‘7‘÷·w7÷¶v6ö޶ŽvŽ6Žö¶v6öŒ¶ŒvŒ6Œö‹¶‹v‹6‹öжŠvŠ6Šö‰¶‰v‰6‰öˆ¶ˆvˆ6ˆö‡¶‡v‡6‡ö†¶†v†6†ö…¶…v…6…ö„µ„u„5„õƒµƒuƒ5ƒõ‚µ‚u‚5‚õµu5õ€µ€v€4€€4€v€µ€õ€5uµõ5‚u‚µ‚õ‚5ƒuƒµƒõƒ5„u„µ„ö„6…v…¶…ö…6†v†¶†ö†6‡v‡¶‡ö‡6ˆvˆ¶ˆöˆ6‰v‰¶‰ö‰6ŠvжŠöŠ6‹v‹¶‹ö‹6ŒvŒ¶ŒöŒ6v¶ö6Žv޶ŽöŽ6v¶÷7w·÷7‘w‘·‘÷‘7’w’·’÷’7“w“·“÷“7”w”·”÷”7•w•·•÷•7–w–·–÷–7—w—·—÷—7˜w˜·˜÷˜7™w™·™÷™7šwš·š÷š8›x›¸›ø›8œxœ¸œøœ8x¸ø8žxž¸žøž8ŸxŸ¸ŸøŸ8 x ¸ ø 8¡x¡¸¡ø¡8¢x¢¸¢ø¢8£x£¸£ø£8¤x¤¸¤ø¤8¥x¥¸¥ø¥8¦y¦¹¦ù¦9§y§¹§ù§9¨y¨¹¨ù¨9©y©¹©ù©9ªyª¹ªùª9«y«¹«ù«9¬y¬¹¬ù¬9­y­¹­ù­9®y®¹®ù®9¯y¯¹¯ù¯9°y°¹°ù°9±y±º±ú±:²z²º²ú²:³z³º³ú³:´z´º´ú´:µzµºµúµ:¶z¶º¶ú¶:·z·º·ú·:¸z¸º¸ú¸:¹z¹º¹ú¹:ºzºººúº:»z»º»ú»:¼z¼º¼û¼;½{½»½û½;¾{¾»¾û¾;¿{¿»¿û¿;À{À»ÀûÀ;Á{Á»ÁûÁ;Â{»ÂûÂ;Ã{ûÃûÃ;Ä{Ä»ÄûÄ;Å{Å»ÅûÅ;Æ{Æ»ÆûÆ;Ç{Ç»ÇüÇ<È|ȼÈüÈ<É|ɼÉüÉ<Ê|ʼÊüÊ<Ë|˼ËüË<Ì|̼ÌüÌ<Í|ͼÍüÍ<Î|μÎüÎ<Ï|ϼÏüÏ<Ð|мÐüÐ<Ñ|ѼÑüÑ<Ò|Ò¼ÒüÒ=Ó}Ó½ÓýÓ=Ô}Ô½ÔýÔ=Õ}Õ½ÕýÕ=Ö}Ö½ÖýÖ=×}×½×ý×=Ø}ؽØýØ=Ù}Ù½ÙýÙ=Ú}Ú½ÚýÚ=Û}Û½ÛýÛ=Ü}ܽÜýÜ=Ý}ݽÝýÝ=Þ~Þ¾ÞþÞ>ß~ß¾ßþß>à~à¾àþà>á~á¾áþá>â~â¾âþâ>ã~ã¾ãþã>ä~ä¾äþä>å~å¾åþå>æ~æ¾æþæ>ç~ç¾çþç>è~è¾èþè>é~é¿éÿé?êê¿êÿê?ëë¿ëÿë?ìì¿ìÿì?íí¿íÿí?îî¿îÿî?ïï¿ïÿï?ðð¿ðÿð?ññ¿ñÿñ?òò¿òÿò?óó¿óÿó?ôô¿ôõ@õ€õÀõö@ö€öÀö÷@÷€÷À÷ø@ø€øÀøù@ù€ùÀùú@ú€úÀúû@û€ûÀûü@ü€üÀüý@ý€ýÀýþ@þ€þÀþÿ@ÿ€ÿÀÿ€€€€€€€€€ € €   ‚‚‚‚‚‚‚‚‚‚ ‚ !‚!"ƒ"#ƒ#$ƒ$%ƒ%&ƒ&'ƒ'(ƒ()ƒ)*ƒ*+ƒ+,ƒ,-„-.„./„/0„01„12„23„34„45„56„67„78…89…9:…:;…;<…<=…=>…>?…?@…@A…AB…BC†CD†DE†EF†FG†GH†HI†IJ†JK†KL†LM†MN‡NO‡OP‡PQ‡QR‡RS‡ST‡TU‡UV‡VW‡WX‡XY‡YZˆZ[ˆ[\ˆ\]ˆ]^ˆ^_ˆ_`ˆ`aˆabˆbcˆcdˆd e‰e f‰f g‰g h‰h i‰i j‰j k‰k l‰l m‰m n‰n o‰o pŠp qŠq rŠr sŠs tŠt uŠu vŠv wŠw xŠx yŠy zŠz {‹{ |‹| }‹} ~‹~ ŽñŽ ‹~ ~‹} }‹| |‹{ {Šz zŠy yŠx xŠw wŠv vŠu uŠt tŠs sŠr rŠq qŠp p‰o o‰n n‰m m‰l l‰k k‰j j‰i i‰h h‰g g‰f f‰e eˆddˆccˆbbˆaaˆ``ˆ__ˆ^^ˆ]]ˆ\\ˆ[[ˆZZ‡YY‡XX‡WW‡VV‡UU‡TT‡SS‡RR‡QQ‡PP‡OO‡NN†MM†LL†KK†JJ†II†HH†GG†FF†EE†DD†CC…BB…AA…@@…??…>>…==…<<…;;…::…99…88„77„66„55„44„33„22„11„00„//„..„--ƒ,,ƒ++ƒ**ƒ))ƒ((ƒ''ƒ&&ƒ%%ƒ$$ƒ##ƒ""‚!!‚  ‚‚‚‚‚‚‚‚‚‚   € € €€€€€€€€€€ÿÿ€þþ€ýý€üü€ûû€úú€ùù€øø€÷÷€öö€õõôÿóóÿòòÿññÿððÿïïÿîîÿííÿììÿëëÿêêÿé~éþè~èþç~çþæ~æþå~åþä~äþã~ãþâ~âþá~áþà~àþß~ßþÞ~ÞýÝ}ÝýÜ}ÜýÛ}ÛýÚ}ÚýÙ}ÙýØ}Øý×}×ýÖ}ÖýÕ}ÕýÔ}ÔýÓ}ÓüÒ|ÒüÑ|ÑüÐ|ÐüÏ|ÏüÎ|ÎüÍ|ÍüÌ|ÌüË|ËüÊ|ÊüÉ|ÉüÈ|ÈüÇ{ÇûÆ{ÆûÅ{ÅûÄ{ÄûÃ{ÃûÂ{ÂûÁ{ÁûÀ{Àû¿{¿û¾{¾û½{½û¼z¼ú»z»úºzºú¹z¹ú¸z¸ú·z·ú¶z¶úµzµú´z´ú³z³ú²z²ú±y±ù°y°ù¯y¯ù®y®ù­y­ù¬y¬ù«y«ùªyªù©y©ù¨y¨ù§y§ù¦y¦ø¥x¥ø¤x¤ø£x£ø¢x¢ø¡x¡ø x øŸxŸøžxžøxøœxœø›x›÷šwš÷™w™÷˜w˜÷—w—÷–w–÷•w•÷”w”÷“w“÷’w’÷‘w‘÷w÷vöŽvŽövöŒvŒö‹v‹öŠvŠö‰v‰öˆvˆö‡v‡ö†v†ö…v…ö„u„öƒuƒõ‚u‚öuö€r€€r€ö€uöu‚õ‚uƒöƒu„ö„v…ö…v†ö†v‡ö‡vˆöˆv‰ö‰vŠöŠv‹ö‹vŒöŒvövŽöŽv÷w÷w‘÷‘w’÷’w“÷“w”÷”w•÷•w–÷–w—÷—w˜÷˜w™÷™wš÷šx›ø›xœøœxøxžøžxŸøŸx ø x¡ø¡x¢ø¢x£ø£x¤ø¤x¥ø¥y¦ù¦y§ù§y¨ù¨y©ù©yªùªy«ù«y¬ù¬y­ù­y®ù®y¯ù¯y°ù°y±ú±z²ú²z³ú³z´ú´zµúµz¶ú¶z·ú·z¸ú¸z¹ú¹zºúºz»ú»z¼û¼{½û½{¾û¾{¿û¿{ÀûÀ{ÁûÁ{ÂûÂ{ÃûÃ{ÄûÄ{ÅûÅ{ÆûÆ{ÇüÇ|ÈüÈ|ÉüÉ|ÊüÊ|ËüË|ÌüÌ|ÍüÍ|ÎüÎ|ÏüÏ|ÐüÐ|ÑüÑ|ÒüÒ}ÓýÓ}ÔýÔ}ÕýÕ}ÖýÖ}×ý×}ØýØ}ÙýÙ}ÚýÚ}ÛýÛ}ÜýÜ}ÝýÝ~ÞþÞ~ßþß~àþà~áþá~âþâ~ãþã~äþä~åþå~æþæ~çþç~èþè~éÿéêÿêëÿëìÿìíÿíîÿîïÿïðÿðñÿñòÿòóÿóôõ€õö€ö÷€÷ø€øù€ùú€úû€ûü€üý€ýþ€þÿ€ÿ    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd e f g h i j k l m n o p q r s t u v w x y z { | } ~× ~ } | { z y x w v u t s r q p o n m l k j i h g f edcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!   ÿþýüûúùø÷öõÿóÿòÿñÿðÿïÿîÿíÿìÿëÿêÿéþèþçþæþåþäþãþâþáþàþßþÞýÝýÜýÛýÚýÙýØý×ýÖýÕýÔýÓüÒüÑüÐüÏüÎüÍüÌüËüÊüÉüÈüÇûÆûÅûÄûÃûÂûÁûÀû¿û¾û½û¼ú»úºú¹ú¸ú·ú¶úµú´ú³ú²ú±ù°ù¯ù®ù­ù¬ù«ùªù©ù¨ù§ù¦ø¥ø¤ø£ø¢ø¡ø øŸøžøøœø›÷š÷™÷˜÷—÷–÷•÷”÷“÷’÷‘÷÷öŽööŒö‹öŠö‰öˆö‡õ†ö…õ„öƒô‚÷ï€)€ï€÷ô‚öƒõ„ö…õ†ö‡öˆö‰öŠö‹öŒööŽ÷÷÷‘÷’÷“÷”÷•÷–÷—÷˜÷™÷šø›øœøøžøŸø ø¡ø¢ø£ø¤ø¥ù¦ù§ù¨ù©ùªù«ù¬ù­ù®ù¯ù°ú±ú²ú³ú´úµú¶ú·ú¸ú¹úºú»û¼û½û¾û¿ûÀûÁûÂûÃûÄûÅûÆüÇüÈüÉüÊüËüÌüÍüÎüÏüÐüÑüÒýÓýÔýÕýÖý×ýØýÙýÚýÛýÜýÝþÞþßþàþáþâþãþäþåþæþçþèÿéÿêÿëÿìÿíÿîÿïÿðÿñÿòÿóõö÷øùúûüýþÿ   "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bd f h j l n p r t v x z|~£~| z x v t r p n l j h fdb`^\ZXVTRPNLJHFDB@><:86420.,*(&$"  þüúøöÿóÿñÿïÿíÿëÿéþçþåþãþáþßýÝýÛýÙý×ýÕýÓüÑüÏüÍüËüÉüÇûÅûÃûÁû¿û½ú»ú¹ú·úµú³ú±ù¯ù­ù«ù©ù§ø¥ø£ø¡øŸøø›÷™÷—÷•÷“ö‘÷ö÷‹õ‰÷‡ô…úƒé]€éúƒô…÷‡õ‰÷‹ö÷ö‘÷“÷•÷—÷™ø›øøŸø¡ø£ø¥ù§ù©ù«ù­ù¯ú±ú³úµú·ú¹ú»û½û¿ûÁûÃûÅüÇüÉüËüÍüÏüÑýÓýÕý×ýÙýÛýÝþßþáþãþåþçÿéÿëÿíÿïÿñÿóöøúüþ  $(,048<@DHLPTX\` dh lptx#|;#|xtp lh d`\XTPLHD@<840,($  üøÿóÿïÿëþçþãþßýÛý×ýÓüÏüËüÇûÃû¿ú»ú·ù³ú¯ù«ù§ø£ùŸ÷›ø—õ“ùò‹þ‡ÝƒÅ€Ýƒþ‡ò‹ùõ“ø—÷›ùŸø£ù§ù«ú¯ù³ú·ú»û¿ûÃüÇüËüÏýÓý×ýÛþßþãþçÿëÿïÿóøü (08@HP X`hùo;xl~;xùoh` XPH@80( øÿïþçþßü×ýÏûÇü¿ù·û¯ö§ýŸï—Ň”Ňï—ýŸö§û¯ù·ü¿ûÇýÏü×þßþçÿïø 0ý?Pç_ipÎ|ipç_Pý? 0 þïà÷ÏÀꯠ—2ƒ— ê¯À÷Ïàþï Ì?Á`—yÁ`Ì? êß4À?Ÿi†?Ÿ4Àêß­fX9“ü2e+À~N‚›ÈõRI1cƒÞßEhP‡ùªÂÜrÁ4­@K8·N„Ô ÐlÄà3?AF¾ïjTFP Ð[Z ñ_(‘S6­‰6™›2Ì/T\dßöØ/gb;I¤ÌP—ù»ãXò†ý³èqª¥ÿfR¤Å¶pr··&„è:à;ŸÇ1æ,Íqëï6ï¦]VQ¼¬œý£4ςӘImÀA.˜¼ç'çßWᇱŸh‚÷åÇ±ß ÷ÂÏň%„É0n}”ÎøiY}”ÿ@aciòærއµ+ä_0Ž@r.L[î|ÕòÿHi¶ä…ÔÓmMóÓæ%ñø^(ˆ‹?>a øÁ¹þš×R½‰ï!¾HƒÏåRØRSŠ,¿iDs”ë§\æ°ùܼˆ9¶IY<òÕ]û/–H30O=k|A}Ò~Ë•gœòÛ"è•L’ “1<>;zqËÖsuû ³¾Ü•³ŽiûîœóO‚<óï;8ÚÓµ)§%¶)ž! º¥ŽW顊¶|ê¯E܃twrnˆ#TP"Ã#|£9¡š\}]:Þý±ª\¥rñÇMq7o÷Y'_Q$—‚¾k4"Õ¶…Š\#“O¿”Ö VzY ÂÄ*רã6`éÌŠâ^Ñ5Cªßmwˆ‹¿Rn­ßaÞöœn¢éN6ëÀÐ$z4éi –¬dR0w¶!AY>ŸVÞ„ÃÈXX6††¶9sí;Ô:U…“M3 ¾l»kEZß ¯×p óʽq/¦Åî‘ë®Aã Ÿ 1žƒfxRe%¶™ÆtNx‹Þ Œo„Ðñð¸ç£Wì·Þ:´nCì¸ëzfÍOêLJÐ"¸/›ÜÛé ó¡©n‘‚ð.öýnØ®G´f°1-[A™m]=¨È^ÅŠGöÚô@Èf@NÐtã@¿¯9™ÒëQ10|m¡»á>@Æ‚ (Ê™ðèü/D*$pév…îEÅÚP,Íó7n;ò0søaÒ‡Ï׸æ®X›qfÁ4Ðý 8…»i’5¢"<±¥,ÎåÃ\ÎTŽ÷RŽãàØNoÙ®¬òQä!ßï&eÍjŠdI\½fí—” ßs˜¼cPgK¨‚~x™ï%þ`Ò †œ»×Ë{×Ïü qb&¹BpÄ*Õ –×Û :‰Îsa^-äŽ-p§È3üzïŠ Ò—1èª<—¡vZ+§ýh…ó d[Ñ KÅWƒxü#}\¬d÷éX=´NÉ&¥®àq{dÕzs›quÕÈP·ëÉýWOHæ‰pÉäè©oÍîuÛ“²ôW–rn± ¾ôºÒýh²wì":é(ç%„xu¶ƒ‘ÿÃ=|K6g i_g…O>¾—SŠaK÷Ê]&QSèÀ!‚—ðÑî½VßÇÞˆ¨¿çŒöì¬Ü»Ý©yùúÈž\ÃÕß" y‰Ï3éGï.¯‡ùV­Syô_Ônì`Ôñˆ0nµ4Ç0þ{´ûÏ¡Ë ZRmËnn’cØÁ7º„ó€;€´Î¤nÿUÌÙ¾eÙ2òºtïÇÇ`êãe5ø÷¯AæZ]}®vFPp{¦ æݾSùò Ó¯æî WƒbÏ•GúoŸxiõ,_îÞuRòç†ÓÖÁfxŒÙ:ñûÇt¥W3V‡> ¨@#‹v³váÓÉ“ð›Íù˜yk‘nt^jRAyDVó|Ûaÿ*×DëgÜRu$¾.öKWÂ9ºFÊ߯º¨ïPäù1Q^!˜Û÷ÿápäå1Ý ‘˜N«0ý¯Û¯öíHm[‹·0Sš¡« #ôG{"#™õQ»Ž¢$ø’$ù¼å—Èþæ‰ÐÃ+o2wMeÝ=v¯mÊ€‰Ϧžƒ­QÛ ¦RèZÎ3ŠÕ²aÕ— mñÙÑ/FÖ¼v2Ãt‹á•¼7¹ãF"-¸Âq×5—%xlrj{‚®,Õk­¤ò×ìV™(Ï! ¼âtƒãÉÈykYù‰ÄÃ’bÿK$clÐr}Ķëg?3›láÄKYQFâm5ÍMl£ÓÔ+­{ì˜ê½²ùäÄSyÇ”ÞàxðL¢{ÂéÇY¨›Î¼¯Øèóƒß›N­C·<Ü;¬2#¹0Yp,³§ˆûŽ™²+Êðãºõm‘ZùáN! Ú‹!4¥C×,®Á¸dÎz3&qÆ™Ü3o5 D‚"`b´:²³\³À–xz¶ET÷Ý~Ùy­œt|Mƒ÷©äí$Üy™¿Äý6ÀÆŸ©*À¿ܼ(òR~ÅÒ$çlj;mŒ¹Õ¤=‘ÑŒ›¸v›„°:õ±•úqï÷;$;.=‚§Q¶Ä¾¢]}G³Ú÷Ó ÎÎ;¾wÓ9Åc<{"ó2­~Bþ€wÊ1»K}YbÆMopceŽ=µ9x­/Ü׊?Ô…fK²(4ü­SkµTyOÞçU =sö]¿_íÖ} ²Îx À®Š0}<ºp[þ%zY× ¾ÓÃ{Ë”óhEäpÀ¯3{æ;º§Lv% L`·„üžIÛ÷’¥º¡ú]F†É’3S½úÍ? ”šâYǶŠ,ý›ƒ^%L³dôÈ?öe1ÔÛŽÐË%?A¤VPŸ.3”A}Fg¢úR™õªè5‚õ3ñ=à©pÙ°Jºy-ÇO'ѧå]Ö&,ù™hˆç=ý¶¼[4'*»>O}–“–,…@&TN!ÂÌ&QéÖs…÷Ì-LûI9ͦ^P¨/£¤ØB0-+scç™Ýya^t°³Z{!8C¸WáHâ2‰Ë4!49-î­Í‘¿ÜºúHfA4d6¹3Óly;Øøl"3è‘O;£„€}ˆ)º;²EA¥ V®?ºTÅ¿öï¦ÛîHÜÓ#g„ÃBSU2HÙÝ‡éµ Ä33ø oøØHRS/ðûÀýïdÚ˜°O^¬µ÷¼¥a‹Ô;$^î|L5Èø¼ÎM”%©ì( Hµ›L^5Õt®T×þPúºÁ!ô] Ú|âùƒ4°®­w“£(hmÑ‚SØìÊb ´™wÔTZÜ(«~]e[}®`®AÔÓ eX×í]Z&É\"xtIyòÇ ?cÒAý@0RÕÕæä|Ž,yš'4\Á¡•ø06Xn®0–ÄDU5,U´ú·Åx:¶®ÓMOEÒúz–UtüRö'ÙÍ‚¨iú)úê¢ÓêÇ“ëÞ‹<êNO&òs/l5‹& @m·°.Imã• $&Øö»‰^ý„ÀªÈ]½ã%•}&Ô¬ÝÙëáaÇê–þ´ÛÛÐñJƒ²±ÕÁ¸ãÙ`¦!9‚ÝÆ7qb#ã\€øäZóx«ë\QŸ‘TØëø_^_±Üä×™¨Ô7à™ÖsEžYhI³ö”;Õõðª€ï[‰Ibˆè0=ˆõ7?•ËÌþYPoÁÖ `½OaÂêeˆzÅf.Þ×Ù_0#g¿(…÷oÙ@“Ùµ(b]_ÕïHá‚¶"Ÿ‚Õ«£í>Êp¿ÏÛ\¿ÕMß3²ÔNþÙ=ê‘•†šÓ:õsVŸ»¶¦ú¾€;Vh%ûò°‰s̲1Þ}i K¼@i;1îÀ†ðíîî‘9ÿ¢¾=¾…Ôõ w S‡ÖzÚ¥0Žv*˜h5õ›HL~‹èBjämÜ:lHŠ¡ºd5 P³†Ñ’³×³D—áŸÎ”^…Dm½Á¾´œ|$•Ãù‰â›­‰ßÎÞÔëº'™íÒ¯t‰3¦´E‘ içh××ÔçŠDµ"Ki ÓúGmiªü³Ajâît3 ïáÎ_~¤í—I€@‹Ú‘o •¤Br€a-Qn4¢­êµºk£„æpwM4øŽªÜ¨8¢qIâ{¥ÚŒâô+P}´ˆÔÁ V-rYt"Ab«Ô@ oÎgЦVßSz’²–&þ -$ðÝ–Q‰(±¾öó¸r¯Pd#„8¡`‰M ‹/¡ÊÝ8Ö٪Ѓwç'ÚÆé:ˆão¤Ýlã!-Lݬv:éÍBIŠŒÏò nuDÈ)þÜh¨æÎÚVŠn¿ö]Á<{SgÓ[XY+á¸Ù©†:üŽ–¼7JD¶Qé½é íXa©à š÷€…ïÜS‰3G†‰ÑðvjÃ,زO`¨ï`2›!ôƒ–=d  ­[®žI¸çˆ—VÀ¡E)³e¡nÙƒ [œ—_\á9Ëõ¸ÔÞ>s.¦aIŽDÓ—Hñ•ñ,~cölÈ™þ¨÷Ð}-l™é Ùdâ½D¢æ|À+xðä̪<çüZ ýt½Åà½AaÑ5Y©4ÖºDª6Þî©À'ÂùQn÷½96:ü¹<–ƒ_þäoš ·lÓ@ó§a”E‹fuЇ]EÛk0@‘/šÇð|ÏøÚXeÆ&iy˜Ž‡<ÌVݯL/âª(ZB#Jp­²"d?áÝQ7E0RžâÊ® ‘Ó}•l–œrÈ“@oN¡÷ ê?ë…¦T°ø£ ©N;“,×­$¬áYº»ÈÊ.‡2ϪO—4„$IW„¥/c(·öMBtE³Æ`šE~iô¢ëÎd±7#AÞ¤w"½2´Î~ :C4|5!9"b»]Ÿjù ™ç.è•ÝĹ•Z`Dv#¡_‡J+â&°R–Rÿì'98YçØ%lÆõ/·qË @ª¤ñd¿&Z¸À’-ýÔž7J TýÅx_j}38¬à›“=ö™Üù\[ÿ°‚Cˆ賉nÞtƒ›Š¹=‘¥ùΟtȈ§ÅbG¥ÚVÐkTäÞƒ)}[%  YC»{Ž¢£˜÷ª<µ¼ov焾^õ€}$Íè#"­ðA*tÍý/þ#»°ú@–§=;øHìvE Š3Ž³Ù ½7ŸG¥>ø\M@-à^&Q*ÀºÞ”b>Ã`N7ït´ì©ºïuïdt÷ñé¼äüb0ROâã—Ò”HvÚç(3F\øbCJ‘Mé„á#ßW¡A4©”WR:®ÆZ*xMs¼eåÅYré7Ø1zü5"f>í·›ÍÞƒÔç¡?ûݪz0»’;§¶Ì‘ïµÂhŠ/"nŒ Çu¯òìIm¡Ã<9{åOKNÇS#©íÄäÏm’ŠeˆPž"É Sò²‹BbûkWšÆRþpß9c“<þHs Zn&ˆ¶5øzZ} A/YHjÉ™lš¤Äã®áz¤4yXFT8ÍâdÕ °e¬#Ž%ê¿õ7ÔŽ/+.4Ù£ÎüdÚÕ¥í-r?ÛÍûQ t? kònÛ™ô›O?z_GbüÝÉBÅÈ0É‹ðvç’fõÖïáû£`HêY"á¦r—ζ?~“j/(ºXðNx¬tUU•^®;“Ø^ÖÈ}5øyê6D~lû­Fh›P+(¼ßJ±zÈIFSGÇ}.jwŒsŒVj¡sØ„R\ ·ìÄ8{$‹œŸ5ÿ™pŸpÕ n¯k¹5¯Ù äD=ÔpŸðŠ‹Ô¶d<À;Þ[˜üd¥êJè¨Ø-ö{²îÀ æ•épÎõ*s‰¶b’§j-€t†u†É\ Tº õîc\ ËYÙaÏçö¼pàô|5V‡õ!¼9󳘔 »ú ‰²€&ÐÖÀÑÚ'*ò¦ËaÅ^¼öª©ï–´3¿•El¼¢‰<Ú~¦zû5§Ìé–âbXéöd1Ô®dýÒ¸8¥7j&Ç‚À¬k5*á=á9€B^ˆ«ÒãÃØ‚哺…4 ÓjЛ‹)F!ŒÛ†õζ*FàCH?ÓØÒƒcú òŒÇÁìR&S-ÃÝ꘶„>@«EöµKX{8qD:™U?]ªO/ò/–ÀZòÙ…ILŸo‰PzÙzÉ50Ý92ZŽìàTš‡ë¯“×ø1¯çꮇ «ö ¼d„ã‡1úgÏdâåÊ£ìÄÙ[køÆ© TÓ0QÔ*éä5"³â >±<˜w…~÷~J(ªÒ¦Ô\~8¯KbÍ.Kå„÷1(¢=—;-[Á3Á sO§§èD¦"qzlÇR¼Lw@#CW©¼W?ëdŽëinuRßÆÛ eàßnhÓÉn=ÿmšRC sµþlèÈ.?!Øz6Ϫ ”_ßp_þc+„Ö7›²ñK[±pÆ9<—žO¢Öp¿û•Bìèu°nöÍoÌÝ!Qþ1ú©|Î4¨Ià ±DÛ¸p"â2Œ>íŽ3Çr'˜R3MoíøhŽ |BF1»•…ÑÀU‡(B ú½íÍtÓ9€†^¶€þ¹:?p'­KžŸ^õ}p*ÉòöÖº÷òÑÌÒ¹m±|ª'A½Ërìyâãëê$$«TJvÓYe q 5‰´Íe"8 222­p‹âpÉ#ˆN\ãr·¯øRVø½¸‘ñ§È*mܘ®àÎÙ– †ºÝmï ‰°â›ð<ïCj.ò3µÞÕ¾¶óœ•'׎¼ ÿvjÎLb[T2*é{Sع3ÄË‹VJ±!-µ±<<m?®¨´RJ9ûÏNÝ¬ÝˆßØ©>G’#¯®N÷ÜÉ„2ŸŠÇäÜ&ˆ™3*Èåu·ýHƒ37ßòËŸ>0²Ð*#7 1ѵ1]ý5‰;ÓÚ,Uw Óp ©·SëøWtþ®Î§:²f"ßüžY1gKÕw|ùf¨Ÿ˜-Mi> ØsÈC!gt°¼îßDìx‹ëXýìG릀ª Μݣ‘SéõÓÊ©œ`¬óX­,âsFj¼pÁÍÆøoC$!7Ĭû¯§ê7 i“*Eé©IžT²ÿl»ž2˜ôNžâò€ q˨›ÿ\ì†ÄþŒŒ²%oeŠæÖa¶MNwuœ«L¿a¨ÕSe‰š[7Á2JQLÔÀ‚»a|Ï®+’pÚ*-ÚÖ³ú2Ãñ%NØ=|:"âq£=m÷#P„jJ.èê mA£xª¥ÀòÙ·qNªvÒlO«Ëëu‚òJ¨§•CÝ‘êKxÎå (Eý[{ØÉoÞ 2žÛ¥ŸŸ«±ÀQTq•ááT­óßûäxKÓ/µ/›­àü#½÷a33n›È B[‚õè àµcÓÇbÑt„Øào6Ô´~Ÿ$ž[O!.<^¹™œÝ²Ìÿö€³ïq‹{‹¨Ô†çˆ3àc»7Ø5¬-ðaX) fÑÞ\“j°.€r–:€ß!;ô¸z"tÀbdï#/Ø ù[ 0OȨ”lOŠwtwý-W½È}}_&ËE.®JV©ãhóœ‡>Ìmª 4ö¢Wçâ³|½ÖPðµ¥X°¦ÎVá)Fþ·wÁ•ш«v_ßÞ‹¨ä\%F{Ö7©Ó{ilOµá]lpœZRú‚ÖïסHWXB•Ä•Ú{|—01_d áo–›;RMøC.ÏáP¹™š™å+©aqÎ*àoÂQ‡›Ù\ž¦¥y’^­Èóö\Ÿîùž{I`¨„Ŧ‡ý½ÛŸºÞ>Ñ[€þ¢ €+}e„cT,aج˜¨ÐU¼'5åè žêX€kã$Ϲ­<ݤA6íÒœ„A“¯˜è Á〢‡í¥Š"ùÀ]á…`ñàIåÖ´ºXgêìÓ[]ãñÅØÀ¨I¤kQý}#*à Zòõ &N$Ü „DOX¸¦‡?LFíb=6y‡JnæÇˆ<9ü±ï¼–Co˜àKãF§·ÝÒâw ĬPfðMÒ*>MÿhEÜ`%p(ì¶”",‘Ë€ZÄËV£#:vƒ¦bòzžÓV’žo…™†§olâäà‘ÒµçÊt…2 ‘vš"ŠxïõHYª5Þ‹õÚ³r:Z(u‚¢%,–Ò^`cIÕ=£ àºíÞpC4{¾ ²Ö˜NYð¥ÀÁ­‰þq5àÍ›·Bù½L¤k?GË1òÓûFÍeù´LäÀýø´´#æâ@-€ß¾‹‡@—iY«#pýóñ,RdƒÒ¥‘Ôݨ,SžÜMâd†ãÀ«ëËäÖŽÇ;ó‰ûY ú¹ÕØgcµ„ðŽÝEäî >bS?w׫¬„Q鑱‚T· ÆQ3—Šø/_ªü­[€°Èå”ÛÈ\Фƒ‰UÌŽ4@Æ2kWÜÙ%H‘at€ó¯¢C 5>E¦º€¼2¦ò¸Lƒ‹u¬ 'p©´:ýàäÞ†ëáÃÝ¡Î!mœ®üšF¦ñ#\…0l2|2AÄ‘GµpŒ÷Ÿ'ÃríNIJX_zi‡éEV´#æÅtCÚÃI í%Å|^fƒ«;·ë±ð)Û]-½1G-É´k>ïØoÀgnÎkJ ržS×Î0{Ûj£"@D鶤rî ˜Rt5PzBž¨žîm_'ir늆øÂriÃŒ¶ó³Mz×ï[î:$ZÔ«œ,d˜í×ó ý92áÒ-ƒî†Æ+Àõ”ç­þW~fÐÅìºx/ͬrØêØXVëkO5b|È b#hªìÓÙIZ0›G+Âÿ~ÞLJsJs¿r8–.6 KXŒ~ÕÒE”p Ú¶ÃÒŒëÐ{Þ{N‚âP*à3½cL~«’¤?ï¼ÐV´W¸ïöè P"®DíÃö:zžï$Å·nÁçï°ÐØè¿î–:l:w^ÆØtüxSMoo' ¦¯Î÷%GóDµû"ïWM/R§ Þù&îó­X­cœ✩åÉVÉVÖNy—H^±" moá^˜ ©X?=ŠýY¨ØM±3ÂCâÈ!UÉñʵJ~ÞBDá ­Xý?5B»azÓ‘¥‚⹩û­å¥>ÏТxa´Ápv~]Åá©‚þ°jR9²T§¢6Ëú„„íôw¢,Ä~µŠßì eê’×ÍËL§ÞÏGDvŒðz×ñ«lHËrÃaésEr¨»ºê@$ÏÐÒ@+jŽx|%åy}Zùs„²/¹­·ÿSBp’.£YÞ7Bº1«‡¤Á‡¤Áÿÿ?n¥ßL~°âGw¦Õ3c‘½éDs¡Íú&S‚²â:dޏâ 6_ˆ±Ü3\ƒ¨Ëï ? j • À é  8 _ ‡ ° × ü  B g Œ ± Ô ö  > d ‹ ± Ó ó  4 Y  £ à á ÿ El‘´Òï/Qq«Èæ+Mm‹©Çå"@^z•®Çàú2Ol‰§Åã;Vo‰£½Øó)BZp‡ ºÕï6Lc|–¯ÇÞö $:OcwŒ¢»Ôí1EZp†žµÌâô+@Vl”¦¹Îâõ*>Qdu‡™­ÂÖè÷,@R`kw†˜¬¾Ïàñ+=LYfvˆš©·ÄÒáñ#1?MZgtƒ”¥´ÀËÖãó#0;HVes~†š¨¸ÉØåñý "+4>LZhu€‹–¢®¹ÂËÔÞë÷ ",7BMWamz†‘›¤®¹ÅÐÚâéðø   ) 2 9 @ I T ` k t y } ˆ “   ¬ µ º ¿ Å Í × á ê ñ ÷ ý ! !!!#!+!1!7!=!E!N!X!b!k!s!x!{!!ƒ!Š!’!›!¡!§!«!°!¶!¼!Ä!Í!Õ!Ü!á!æ!ê!ð!÷!ÿ!"""""!"("0"8"?"D"G"K"P"W"_"e"i"l"o"t"{"ƒ"‰"Œ"Œ""‘"™"£"¬"³"¶"¹"»"¿"Ã"È"Ì"Ð"Ô"Ù"à"æ"ì"ñ"õ"ù"ý"## ####&#,#/#0#/#0#3#8#?#F#J#M#O#Q#U#Z#`#g#m#q#r#q#p#o#q#v#{##‚#„#†#Š##—#œ#Ÿ#Ÿ#ž#Ÿ#£#©#°#´#·#¸#¹#º#»#½#¿#Â#Ç#Í#Ò#×#Ø#Ø#×#Ù#Ü#à#ã#ä#ã#á#ã#ç#í#ó#÷#ú#û#ý#ÿ#$$$$ $ $$$$$$$!$&$*$+$*$)$($*$,$.$/$0$0$2$4$9$>$C$G$I$J$K$K$J$K$M$P$R$R$P$L$K$N$V$_$f$h$d$^$Y$Y$]$c$h$i$g$e$d$e$h$k$m$n$n$n$o$p$q$q$p$p$p$q$t$x$}$$~${$y$y${$~$$‚$ƒ$„$†$ˆ$‰$ˆ$…$‚$$ƒ$‰$$”$•$“$$Œ$‰$ˆ$‰$‹$Œ$Ž$Ž$Ž$Ž$$$$‘$“$•$–$•$”$“$”$•$—$™$›$œ$›$™$—$–$—$˜$™$˜$–$”$”$•$—$˜$–$”$’$’$•$˜$š$™$–$’$$$’$”$”$’$$$’$—$$¡$¢$Ÿ$›$—$•$–$˜$™$™$˜$•$’$$$‘$–$›$ž$Ÿ$›$–$‘$$‘$•$—$—$”$‘$$$$$$Š$‰$‹$Ž$$‘$Ž$‹$‰$‰$‹$Œ$‰$†$„$ƒ$…$†$‡$†$„$‚$„$‡$ˆ$…$$x$t$u$y$}$$}$z$y${$}$$$}${$z$z$|$|$|${$z$z${${$w$r$m$k$k$m$p$r$s$r$o$l$h$c$^$[$[$_$e$i$j$f$`$[$X$X$[$^$_$^$[$X$U$U$U$V$W$V$S$P$M$L$M$N$N$K$F$C$A$B$D$E$E$C$@$>$<$<$:$8$4$2$0$0$/$/$.$-$/$0$2$1$-$*$'$'$)$+$+$)$$$!$$ $"$#$!$$$$$$$$$$$$$$$$ $ $ $$$$$$$$$$ü#ù#õ#ó#ò#ó#ö#÷#ø#ö#ñ#ë#æ#ä#ç#é#ë#é#ä#ß#Û#Û#ß#á#á#Ý#×#Ò#Ï#Ð#Ô#×#Ø#×#Ô#Ó#Ò#Ð#Ï#Í#Ë#É#È#Ç#Æ#Ã#¿#¹#¶#¶#·#·#¶#²#®#ª#ª#¬#®#®#¬#¨#¥#¤#¥#¦#¤#Ÿ#™#”#’#”#–#™#˜#•#’######‹#ˆ#‡#†#†#„#‚#~#{#x#w#u#u#w#y#{#z#w#r#l#i#j#m#q#r#o#j#f#e#f#f#d#a#\#Y#Y#Y#Y#W#R#M#J#I#J#I#F#B#=#;#<#>#@#?#=#<#<#<#;#9#5#1#-#-#.#/#-#*#&#$#%#&#'#&### ######## ### # ###þ"ú"ù"ú"ý"ÿ"ÿ"þ"ú"õ"ð"ì"ê"ê"é"è"æ"å"ã"ã"â"â"á"ß"Ü"Ø"Ô"Ñ"Ï"Î"Ï"Ï"Ï"Ï"Í"Ì"É"Æ"Â"À"¾"¾"¿"¿"¾"¼"¹"¶"³"±"¯"®"­"¬"ª"ª"«"­"­"¬"§" "˜"“""""’"“"’""Œ"‰"‡"†"…"ƒ""~"|"{"{"y"w"t"r"q"p"n"k"f"`"\"["]"^"]"Y"U"Q"Q"R"U"V"U"Q"N"L"M"N"M"J"F"A">">"?">"<"8"3"/"-"-"-"-"+")"'"%"#""" """""""""""" " " " " " """û!ø!ù!ü!þ!ý!ú!ô!ð!ì!ë!ë!ê!ç!ã!à!Þ!Þ!Ý!Û!Ù!Ö!Ô!Ó!Ô!Ô!Ó!Ñ!Î!Ê!È!Æ!Ã!¿!¼!¹!·!¶!·!·!¶!µ!³!±!®!«!©!¨!§!§!¦!¥!¢!!š!—!–!–!•!•!”!“!‘!!!‰!†!ƒ!ƒ!ƒ!ƒ!!}!z!w!w!x!y!x!t!n!i!g!h!i!i!g!b!_!^!_!`!_!Z!T!M!J!I!K!N!P!P!O!L!G!B!=!:!8!8!8!7!3!.!+!*!+!.!0!/!+!&!"! !!!!!!!!!!! ! !!! ! !!!!!!ý û ø ö ô ò ò ñ ñ ï ì è ä à ß ß ß Þ Ù Ó Î Ì Í Ñ Ó Ó Î Ç À ½ ½ ¿ À ¿ ¼ ¸ ¶ ´ ³ ° ­ ¨ ¥ ¥ ¨ ª « ¨ £ Ÿ œ œ › — “ Ž Œ ‰ † ƒ € ~ | { | } } | x s o m m n n k g a ] [ Z Y X V T S S R Q N K G D B A A B C C B @ > < ; 7 2 - ) ) * * &           ÿ  ýòñù  úéáç÷ÿößÍÐè  æÂµÌ÷ ø¼‰ŽÎ ) ç|@oï[ J °úÃWY ò t ²ÕÔ>"ç!… ŒóˆÖ¹&¡#~†C‚æ€y€*€€!€Ÿ€(hFò€·€À€ü€7H0+SidRJVoƒ†}tw†˜¡¢ ¥±ÀÉÊÈÊÕçø‚‚‚‚‚‚#‚)‚.‚6‚A‚M‚U‚W‚U‚R‚U‚_‚n‚}‚‡‚Œ‚‚“‚œ‚«‚¼‚̂ւڂڂ؂ׂق߂ç‚ï‚÷‚ÿ‚ ƒƒ"ƒ-ƒ6ƒ=ƒEƒMƒUƒ\ƒcƒiƒnƒsƒwƒzƒ|ƒƒ…ƒƒœƒªƒ³ƒ·ƒ¹ƒ¼ƒÃƒÏƒÜƒçƒíƒíƒìƒíƒòƒùƒ„ „„„,„6„=„@„A„F„O„\„i„p„q„s„{„„¢„³„¸„°„£„›„ „¯„Á„̄τ΄҄߄ó„……… …… ……(…4…;…?…D…K…T…\…a…f…m…y…ˆ…•……Ÿ…Ÿ…¡…©…¶…Ä…Ñ…Ø…Û…Þ…ã…ì…ö…ý…††††:†ˆ†‡¤‡dˆ1‰ý‰ÀŠy‹-ŒãŒ]ŽáŸ[‘’Ë’€“2”ã”–•K–—´—d˜™¼™iš›É›xœ%Ðzž$ŸÍŸt ¡½¡c¢ £µ£\¤ý¤™¥1¦Ê¦g§¨«¨N©í©ˆª «¶«N¬è¬„­®·®K¯Þ¯s° ±ž±0²¿²K³Ù³j´ÿ´’µ"¶¯¶<·Ê·W¸ß¸c¹å¹iºòº~»¼‹¼ ½Œ½¾™¾¿ž¿À•ÀÁ—Á’ ÆÃÄŒÄÅyÅäÅTÆÑÆ[ÇäÇ`ÈÌÈ3É¢ÉÊ˜Ê ËuËÝËNÌÉÌEÍ·ÍÎ}ÎçÎ^ÏÛÏOжÐÑÑñÑdÒËÒ'Ó€ÓæÓZÔÓÔAÕœÕñÕTÖÈÖ<× ×ò×AØØ Ù„ÙíÙ>Ú‡ÚáÚTÛÌÛ.ÜwܶÜÝuÝöÝeÞ¯ÞåÞ0ßßàzàÀàõà7ááâ“â×âýâ:ã¥ã#ääÕäÿä-å†å æˆæÈæßæçxçúçjè¯èÎèéè7éÄéNêŠêŒê©ê ë‘ëìSìkìqì²ìJíçí#î îîmî÷îvïÄïËï®ïØïð<ññPñ7ñ„ñòªòóóÎòÕò†óhô¸ôqô<ô~ôõ»õ:ö6ö¾õ›õeö‚÷â÷o÷÷$÷¿÷•øKùBùrøÿ÷åøgú÷úWúžù‘ù-úHûcü`üúúðùûDý<þHýêûjûüÕýýÿ!ýaúéû¬w¡=ýxùlùmy#µ$ÿÿ_Î=¡iÇ%ƒÜ6“ìE£W«ÿR¤úOœã1 ‡ Ü + z Ê  Z ¥ ë 1 ~ È  L — × ^¨å#f¡ÛbžÚS‹¾ð'aœØL³éQ~°åCr¥Õ1[ƒ±ã=g”Ãí7cŒ±Úÿ"In‘¹á#Kg£Èé5So’±Ìê +Ga|»Ñë *B^y‹¡Áß÷'9So†œ´ÇÙñ'=Rg€–©¿Õæô  . = N f w  ¦ ¸ Â Ò æ ô !!!.!:!I!]!o!z!!Ž!ž!©!³!À!Ñ!ß!è!ó!"""$"4"B"I"S"b"k"q""‹""”"§"µ"º"Á"Ê"Ò"Ü"é"ó"û"###)#0#0#5#B#L#P#W#c#o#r#p#s#}#ƒ#ˆ#“#ž#Ÿ#¡#¬#¶#¹#»#¾#Ä#Ï#Ø#Ø#Ú#â#ä#â#é#õ#û#þ#$$ $$$$#$+$*$)$-$0$1$6$@$H$K$K$L$Q$R$L$P$b$h$]$Z$e$i$e$f$l$o$o$q$q$p$r$z$${$z$$ƒ$…$‰$ˆ$‚$…$‘$•$$‰$Š$$$Ž$Ž$’$–$•$”$–$š$œ$™$—$™$˜$”$–$˜$”$“$™$™$’$‘$•$’$$™$¢$Ÿ$—$—$š$˜$’$$—$Ÿ$›$‘$’$˜$”$$$$Š$$‘$‹$Š$Œ$†$„$‡$†$ƒ$ˆ$…$x$v$~$}$z$~$${${$}${${${$r$k$n$s$r$l$c$[$`$j$f$[$Y$_$^$X$U$W$V$P$M$O$K$C$C$F$C$>$<$8$2$0$/$.$1$1$*$($,$)$!$!$#$$$$$$$$$ $$$$$$ù#ó#ô#ø#ö#ë#å#ê#é#ß#Ü#â#Ý#Ò#Ñ#Ø#×#Ó#Ñ#Î#Ê#È#Ä#º#¶#¸#³#«#¬#¯#©#¤#¦# #•#”#™#–#‘#‘#Ž#‰#‡#…##y#v#w#{#x#m#j#q#p#g#f#e#]#Y#Z#S#K#J#G#>#<#@#>#<#<#6#.#.#.#'#%#'#$###### # #ÿ"ù"ý"#û"ñ"ë"ê"ç"ä"ã"â"Ý"Õ"Ð"Ï"Ð"Î"Ê"Ã"¿"¿"¿"º"´"°"®"«"«"®"¨"š"""“""Š"‡"„""|"z"u"r"o"g"]"]"^"V"Q"U"V"O"M"N"G"?"?"="4".".","("$"!""""""" " " "ý!ù!þ!û!ñ!ì!ë!ä!ß!Þ!Ú!Õ!Ô!Ô!Ï!É!Ä!½!¸!·!·!´!¯!ª!¨!§!£!›!—!–!•!’!Ž!‡!ƒ!„!!x!x!y!p!h!i!h!`!_!`!V!K!K!P!P!I!?!9!9!5!,!+!0!-!$!!!!!! ! ! ! !!!ü ÷ ó ò ð ê â ß ß Ö Í Ð Ô Ê ¾ ¿ À º µ ² ª ¥ ª ª ¡ œ • Ž ‹ …  | } } u n n m d \ Z W T S P I C A C C ? < 5 + * )         ÷õ ñãþêÌ÷õ·ä œ¬, ­L4  ÅàÖ 5´§" £äï«FŠWO€€ê€aÌ€Û€Ea[Mz‚s¢¡¸ÊÇÝý‚ ‚‚+‚:‚Q‚V‚R‚e‚‚‚‚–‚²‚тڂׂۂê‚ú‚ƒ'ƒ9ƒHƒXƒeƒpƒxƒ}ƒˆƒ¢ƒµƒ¹ƒÇƒáƒíƒëƒôƒ„„0„>„B„T„l„q„„ª„µ„ž„¥„Ƅ΄քú„………-…<…F…W…b…q……ž…Ÿ…­…É…Ù…ß…ï…ÿ…††°†è‡|‰‹oŒâeãV’¿“"•‹–ò—L™¦šœ`´ž P¡œ¢î£2¥d¦œ§á¨!ªQ«€¬·­ç®°9±^²x³™´ÀµÛ¶ö·¹ º»0¼2½:¾E¿>À;Á<Â.Ã/Ä*ÅÆøÆ ÈéÈÄɺʒËoÌfÍ6ÎÏüÏÐÐÑÒ>ÓÔòÔ²ÕqÖX×ظءÙPÚüÚçÛ†ÜÝÞ¼ÞGß0àÍàKá>âàâOã?äàä<å+æÎæ"çè¸èôèæéŒê¸ê­ë\ìwìoí!îîïËï­ï©ð{ñ>ñ3òóÄòµó±ô?ô1õEö©õœö×÷ûöâ÷[ùKø)ùëúùUú~üµú_û/þÂû=ü5‹üüz‹üúf ý#ýÔýªþiÿ$׊;ò›>䃾Yñ{ ˜ ! ¤ + ° + ¢ # š yàRÈ1™ý[¾yÒ#€Ø-ƒÌi³ùD‹ÏI’ÒI†Àõ/aœÏü-g¾ïAiŒ´á 4Rx™ÀÛý<Yu‘²Ïâý1Edw‘¥»Îßô .ATj€…¦ÀÁÎÛïô   * 2 9 A S Z f q  ‡ Š Ÿ ¬ ¯ ³ · Ì Ã Ñ Ï Û Ü à è ð ï þ ü !!! !!!!!%!"!%!%!'!+!,!*!/!=!:!;!9!?!G!>!H!?!E!F!I!E!H!K!L!B!M!M!T!R!Z!P!Q!X!L!N!W!M!W!P!V!P!S!L!T!K!L!F!R!L!S!L!Q!J!R!Q!O!J!P!L!F!M!G!F!F!E!C!D!M!E!J!=!@!:!@!=!!9!Æ>È Ê Ì©Í›Ï+ÑÓ“Ô[ÖÖ×—ÙïÚ§Ü÷ݘßáàwâŸã8åSæÛçäènêcëÞìÅíCïð„ñ<ò²óWôÍõ^öÝ÷RøÚùúÁûÞû¥ýtýˆÿ×þœ•ÿ—œü{ümþ ÿ-mÍóAX~‚ ” ƒ ‚ Y 7á ^ ¾gš,¶3¾3­‰éR­ V¨ûIŒÔR†Èñ,X³á0R‚—ÂÍö)5Raƒ¥µÉÑæçüÿ  + $ = : K B U M j Y t c x j  p ƒ } ‘  € — „ ˜ ƒ • ƒ Ÿ † ¢ Š ¢ ‰ ¡ ‡ ¡ § ƒ £ „ £ ‡ £ ˆ « ‹ ¦ ƒ ¬ † ¯ „ ¨ „ © ‚ © ƒ ¬ … ¬ } ­ y ¦ z ± v ¯ u ³ x µ p µ n ² m ¶ k ¹ g ¼ c À [ à U Å X Ì N Ì C Ð : Û - è  ò  !ï!!½T!{°!í‘"9¤&‹™„$ƒÉ€‚ƒ£°ƒf‚„ ƒ„„²ƒñ„\„c…æ„Û…n…e†ÿ…Ö†‰†]‡‡ó‡‡b‹:‘<—…œ.¢§Q¬á°Ãµþ¹}¾]‡Æ#ÊÎQÑêÔú×NÛ#Þ9áÚã³æ)éÊëîƒðòÍôÔöÔø¾úvükþ¬ÿ<ýtý 1öm ÿ i5Gà¶Á÷xåØð×çš‘;)»–"ð~>Ãtõ¤ Æ? Ú_ ïp ù„  ”    ¦ ¯  ®  ¹  ¼ Æ õÍ ïÙ åÜ Øì Ìþ ¾ !ª !•:!vY!Qˆ!Ç!Á."3æ"Œ$¸+t뀈€[†Kn†ƒé†‘„™‡õ…8ˆ@Š˜ò ÷¬¯´ ¿Å€ÎÔÁÛeà"çëððôTùÊû©ýß ¿È¥Ý¼„º)Lÿ{ûÁ4 êV  f  t x  …  ‹ þ’ ñ¤ ä³ ÑË ±ì }!o¤噀R†ü‚G‡[…ìŒ+¡öµÄÅ Õ‡à÷ë)ôùüüý€± ¼c×*G^ß=‹ yÜ j!9b!Úå!#ìK(Ôþ€-‰ƒ¢tÅá"ôþ+¹¢lU!,{"A%$Fl+&ë€&§QÞÖþ³\ö%•}/µÛᜒú|½Ï+’ú+’ú+string too longH1÷HäB€1NäBinvalid string positionØ1(EäBbad allocation,2éBþKdbgdel.cpp_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)puts.cstring != NULLcsmà “ClientIgnoreCRTNormalFreeError: memory allocation: bad memory block type. Invalid allocation size: %Iu bytes. %sClient hook allocation failure. Client hook allocation failure at file %hs line %d. dbgheap.c_CrtCheckMemory()_pFirstBlock == pOldBlock_pLastBlock == pOldBlockfRealloc || (!fRealloc && pNewBlock == pOldBlock)pOldBlock->nLine == IGNORE_LINE && pOldBlock->lRequest == IGNORE_REQ_CrtIsValidHeapPointer(pUserData)The Block at 0x%p was allocated by aligned routines, use _aligned_realloc()Allocation too large or negative: %Iu bytes. Client hook re-allocation failure. Client hook re-allocation failure at file %hs line %d. _pFirstBlock == pHead_pLastBlock == pHeadpHead->nBlockUse == nBlockUsepHead->nLine == IGNORE_LINE && pHead->lRequest == IGNORE_REQDAMAGE: after %hs block (#%d) at 0x%p. DAMAGE: before %hs block (#%d) at 0x%p. Client hook free failure. The Block at 0x%p was allocated by aligned routines, use _aligned_free()%hs located at 0x%p is %Iu bytes long. %hs allocated at file %hs(%d). DAMAGE: on top of Free block at 0x%p. DAMAGED_heapchk fails with unknown return value! _heapchk fails with _HEAPBADPTR. _heapchk fails with _HEAPBADEND. _heapchk fails with _HEAPBADNODE. _heapchk fails with _HEAPBADBEGIN. Bad memory block found at 0x%p. _CrtMemCheckPoint: NULL state pointer. _CrtMemDifference: NULL state pointer. Object dump complete. crt block at 0x%p, subtype %x, %Iu bytes long. normal block at 0x%p, %Iu bytes long. client block at 0x%p, subtype %x, %Iu bytes long. {%ld} %hs(%d) : #File Error#(%d) : Dumping objects -> Data: <%s> %s %.2X Detected memory leaks! Total allocations: %Id bytes. Largest number used: %Id bytes. %Id bytes in %Id %hs Blocks. ("offset must be within size", 0)("alignment must be a power of 2",0)Damage before 0x%p which was allocated by aligned routine The block at 0x%p was not allocated by _aligned routines, use realloc()The block at 0x%p was not allocated by _aligned routines, use free()printf.cformat != NULLvfprintf.cstr != NULLfprintf.c_file.cvsprintf.csprintf.cÿÿÿÿ"u(u ...Microsoft Visual C++ Runtime Library(Press Retry to debug the application - JIT must be enabled)For information on how your program can cause an assertion failure, see the Visual C++ documentation on assertsExpression: Line: File: Program: Assertion failed!`2RMþKUnknown exception´2IþK3\CþK`3ÍEþK°3FÿÿÿÿþŒonexit.cUnknown Runtime Check Error A local variable was used before it was initialized Stack memory was corrupted A cast to a smaller data type has caused a loss of data. If this was intentional, you should mask the source of the cast with the appropriate bitmask. For example: char c = (i & 0xFF); Changing the code in this way will not affect the quality of the resulting optimized code. The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention. Run-Time Check Failure #%d - %sÿÿÿÿ’’ÿÿÿÿÇ’Ë’ Module: Line: Invalid pointer was assigned at File: ' was corrupted.Stack around the variable 'A variable is being used without being defined.' is being used without being defined.The variable 'IsDebuggerPresentKernel32.dllLocal variable used before initializationStack memory corruptionCast to smaller type causing loss of dataStack pointer corruptioni386\chkesp.cThe value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention. Assertion FailedErrorWarningdbgrpt.c%s(%d) : %s Assertion failed: _CrtDbgReport: String too long or IO ErrorSecond Chance Assertion Failed: File %s, Line %d wsprintfAuser32.dllMicrosoft Visual C++ Debug LibraryDebug %s! Program: %s%s%s%s%s%s%s%s%s%s%s (Press Retry to debug the application) Module: File: Line: For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts.szUserMessage != NULLÿÿÿÿ ®Ý­ê­ÿÿÿÿQ±°š°ÿÿÿÿWµ]µÿÿÿÿ~¶‰¶ÿÿÿÿ¼)¼ÿÿÿÿ©¼¶¼ÿÿÿÿ•½›½ÿÿÿÿE¾K¾_sftbuf.cflag == 0 || flag == 1("inconsistent IOB fields", stream->_ptr - stream->_base >= 0)_flsbuf.cð?À~PA€ÿÿGAIsProcessorFeaturePresentKERNEL32e+000CorExitProcessmscoree.dllisctype.c(unsigned)(c + 1) <= 256EEE50P (8PX700WP `h````ppxxxx(null)(null)output.cch != _T('\0')ioinit.cA buffer overrun has been detected which has corrupted the program's internal state. The program cannot safely continue execution and must now be terminated. Buffer overrun detected!A security error of unknown cause has been detected which has corrupted the program's internal state. The program cannot safely continue execution and must now be terminated. Unknown security failure detected!ÿÿÿÿ‹‘GetProcessWindowStationGetUserObjectInformationAGetLastActivePopupGetActiveWindowMessageBoxAsetvbuf.cstdenvp.cstdargv.ca_env.cÿÿÿÿ0>6>ÿÿÿÿÐ>Ö>runtime error TLOSS error SING error DOMAIN error R6029 - This application cannot run using the active version of the Microsoft .NET Runtime Please contact the application's support team for more information. R6028 - unable to initialize heap R6027 - not enough space for lowio initialization R6026 - not enough space for stdio initialization R6025 - pure virtual function call R6024 - not enough space for _onexit/atexit table R6019 - unable to open console device R6018 - unexpected heap error R6017 - unexpected multithread lock error R6016 - not enough space for thread data This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. R6009 - not enough space for environment R6008 - not enough space for arguments R6002 - floating point not loaded Runtime Error! Program: MSPDB71.DLLrPDBCloseDBICloseModCloseModQueryLinesDBIQueryModFromAddrPDBOpenDBIPDBOpenValidate3Module32NextModule32FirstGetModuleInformationEnumProcessModulesPSAPI.DLLCreateToolhelp32SnapshotImageNtHeaderIMAGEHLP.DLLKERNEL32.DLLEnvironmentDirectorySOFTWARE\Microsoft\VisualStudio\7.1\Setup\VSRegCloseKeyRegQueryValueExARegOpenKeyExAADVAPI32.DLLf:\vs70builds\3077\vc\crtbld\crt\src\sprintf.cf:\vs70builds\3077\vc\crtbld\crt\src\vsprintf.c_getbuf.c ((((( H„„„„„„„„„„‚‚‚‚‚‚ h(((( H„„„„„„„„„„‚‚‚‚‚‚ Ha_str.cÿÿÿÿllosfinfo.cfclose.c_freebuf.cstream != NULLa_map.cÿÿÿÿkˆqˆÿÿÿÿŠ"Šÿÿÿÿ:‹@‹1#QNAN1#INF1#IND1#SNANconvrtcp.cÿÿÿÿ"©(©RSDSýJZšŸJ“úFMX [c:\Dokumente und Einstellungen\ensonic\Eigene Dateien\Projects\bml\Debug\BuzzMachineLoader.pdbÄ^ÿÿÿÿà^ÿÿÿÿ_ÿÿÿÿ1ì0Ð0$1_41ì0Ð0`1à^l1,_ÿÿÿÿ˜1ì0Ð0´1,_Ä1T_ÿÿÿÿð1Ð0 2T_2Ð0D2Ä^L20cÿÿÿÿx2Ð0”20c 2LcÿÿÿÿÌ2Ð0è2Lcô2lcÿÿÿÿ 3Ì2Ð0<3lcL3”cÿÿÿÿx3”3”cœ3YFYFYFYFYFYFYFFFFFFFFÿÿÿÿàà “4;ÿÿÿÿÄ “\;ÿÿÿÿÿÿÿÿ²”; “„;¤;ÿÿÿÿ0Ä “Ü;ÿÿÿÿPÄ “<ÿÿÿÿpÄ “,<ÿÿÿÿÄÿÿÿÿøl< “T<|<Ä^ÿÿÿÿ WHà^ÿÿÿÿ( E_ÿÿÿÿ(ú@ô<Ô<´<$D=ÿÿÿÿÀÄ “<=ÿÿÿÿàÄ “d=ÿÿÿÿÅ “Œ=ÿÿÿÿ Å “´=ÿÿÿÿÿÿÿÿA((ü= > “Ü=>ÿÿÿÿPÅ “p>,_ÿÿÿÿ(ÑA˜>Ô<´<cF¸>ÿÿÿÿpÅ “à>T_ÿÿÿÿ ÄI?´<ßB(?z„)M Bè@\AÐAXG&B’IKE–JŒE²G^KoILDÒEÜJ_JpCÌKkHíC“HhAA£BîL.N—DéG/HHMH:L B6B?BXBpBxBŽB¨B¿BÜBýBC/CKCkCˆCC—CŸC¶CÇCåCóCDD5D=DEDMD BuzzMachineLoader.dllbm_attributes_changedbm_closebm_describe_global_valuebm_describe_track_valuebm_freebm_get_attribute_infobm_get_attribute_locationbm_get_attribute_valuebm_get_global_parameter_infobm_get_global_parameter_locationbm_get_global_parameter_valuebm_get_machine_infobm_get_track_parameter_infobm_get_track_parameter_locationbm_get_track_parameter_valuebm_initbm_newbm_openbm_set_attribute_valuebm_set_callbacksbm_set_global_parameter_valuebm_set_loggerbm_set_master_infobm_set_num_tracksbm_set_track_parameter_valuebm_stopbm_tickbm_workbm_work_m2sWC›EîBšAfMñIÖF+6?SY`gow}ƒˆ—¥«²¸ÀÅÎÓÜáçíóøý  '/4;AFLS[`flr)4=QW`hmrw~†Œ•𣵾ÃÉÏÕÚßåíòüËËcwC[}Ùt˜ Êý x.?AVexception@@.?AVlogic_error@std@@.?AVlength_error@std@@.?AVout_of_range@std@@.?AVbad_alloc@std@@ “u˜s˜¤FBDBDìIÿÿÿÿýÝͽLD@80 y yNæ@»Assertion failed: %s, file %s, line %d XTP.?AVbad_cast@@.?AVbad_typeid@@.?AV__non_rtti_object@@.?AVtype_info@@E@èÀ€\HøÄÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿœ”€ìIñDñDïFïFïFïFïFïFG.$ÿÿÿÿ€ À À–ÀÀŽÀÀÀ‘À’À“À Œ$#ð" ¼" "Ô!œ!t!@!!Ð  P $ `xHy8z(ü$ÿp#üÿÿ5 @ÿ€ÿÿÿ À&Â(        ! 5A CPR S WY l m pr € ‚ ƒ„ ‘)ž ¡¤ § ·Î×  ¤`‚y‚!¦ß¡¥Ÿàü@~€ü¨Á£Ú£ þ@þµÁ£Ú£ þAþ¶Ï¢ä¢å¢è¢[þ@~¡þQQÚ^Ú _ÚjÚ2ÓØÞàù1~þ @È@ú@@œ @PÃ@$ô@€–˜@ ¼¾@¿ÉŽ4@¡íÌÎÂÓN@ ðžµp+¨­Åi@Ð]ý%åŽOëƒ@q–וC)¯ž@ù¿ D킹@¿<Õ¦ÏÿIxÂÓ@oÆàŒé€ÉGº“¨A¼…kU'9÷pà|B¼ÝŽÞùûë~ªQC¡ævãÌò)/„&D(ªø®ãÅÄúDë§Ôó÷ëáJz•ÏEeÌÇ‘¦® ã£F e u†uvÉHMXBä§“9;5¸²íSM§å]=Å];‹ž’Zÿ]¦ð¡ ÀT¥Œ7aÑý‹Z‹Ø%]‰ùÛgª•øó'¿¢È]Ý€nLÉ›— ŠR`Ä%uÍÌÍÌÌÌÌÌÌÌû?q= ×£p= ×£ø?Zd;ßO—nƒõ?ÃÓ,eâX·Ññ?Ð#„GG¬Å§î?@¦¶il¯½7†ë?3=¼BzåÕ”¿Öç?ÂýýÎa„wÌ«ä?/L[áMľ”•æÉ?’ÄS;uD;š¯?Þgº”9E­±Ï”?$#Æâ¼º;1a‹z?aUYÁ~±S|»_?×î/¾’…ûD?$?¥é9¥'ê¨*?}¬¡ä¼d|FÐÝU>c{Ì#Twƒÿ‘=‘ú:zc%C1À¬GetCurrentThreadId;GetCurrentProcessIdÀGetSystemTimeAsFileTimeáSetConsoleCtrlHandleríFreeEnvironmentStringsAMGetEnvironmentStringsîFreeEnvironmentStringsW‡WideCharToMultiByteOGetEnvironmentStringsW`UnhandledExceptionFilter„DisableThreadLibraryCalls›GetProcessHeap.CloseHandle&IsBadCodePtrSetFilePointerkMultiByteToWideChar²GetStringTypeAµGetStringTypeW*SetStdHandle{VirtualQueryInterlockedExchangeüGetCPInfoõGetACP‹GetOEMCP:LCMapStringA;LCMapStringWyVirtualProtect»GetSystemInfolGetLocaleInfoA€0€Hp¡((4VS_VERSION_INFO½ïþ†StringFileInfob000004b0: CompanyNamebuzztard.orgp$FileDescriptionBuzzMach Dynamic Link Library (DLL)6 FileVersion1, 0, 0, 12 InternalNameBuzzMachFLegalCopyrightCopyright © 2004B OriginalFilenameBuzzMach.dllj%ProductName BuzzMach Dynamic Link Library (DLL): ProductVersion1, 0, 0, 1DVarFileInfo$Translation°P0h=o=u=~=Å=<>C>I>R>ö>1?8?>?G?u?|??Š?ý?`D0 001=1D2K2P2Y2f2m2r2{2ð2÷2ü23333'3˜3Ÿ3¥3®3»3Â3Ç3Ð3P4W4\4e4È4Ï4Õ4Þ4T5[5`5i5v5}5‚5‹5ô5û56 666"6+6œ6£6©6²6¿6Æ6Ë6Ô6L7S7Y7b7o7v7{7„7ø7ÿ788!8„8‹88™8¦8­8²8»8$9+90999F9M9R9[9Ä9Ë9Ð9Ù9H:O:U:^:k:r:w:€:;; ;;";);.;7;¤;«;°;¹;Æ;Í;Ò;Û;KG>L>U>b>i>n>w>è>ï>õ>þ> ??? ?œ?£?©?²?¿?Æ?Ë?Ô?p`H0O0U0^0k0r0w0€0ø0ÿ0111"1'101¬1³1¹1Â1Ï1Ö1Û1ä1X2_2e2n2{2‚2‡2233%3.3;3B3G3P3Ü3ã3è3ñ3þ34 44„4‹44™4¦4­4²4»4(5/555>5K5R5W5`5Ø5ß5å5î5û5666Œ6“6™6¢67777¤7«7±7º7Ç7Î7Ó7Ü7h8o8u8~8‹8’8—8 89 9&9/9<9C9H9Q9Ð9×9Ü9å9ò9ù9þ9:€:‡:Œ:•:¢:©:®:·:,;3;9;B;O;V;[;d;ä;ë;ñ;ú;<<<<˜<Ÿ<¥<®<»<Â<Ç<Ð>ˆ>>•>ž>«>²>·>À>I?P?V?_?l?s?x??€1÷1$202ˆ??•?ž?å?L\0c0i0r01Q1X1^1g1•1œ1¡1ª12$2*232D3K3P3Y3f3m3r3{3ð3÷3ü34444'4˜4Ÿ4¥4®4$5+50595F5M5R5[5Ä5Ë5Ð5Ù5æ5í5ò5û5l6s6y6‚66–6›6¤67#7)727?7F7K7T7È7Ï7Õ7Þ7ñ7T8[8`8i8v8}8‚8‹8ô8û89 999"9+9›9ª9°9¹9$:3:8:A:Ü:ã:é:ò:;!;&;/;°;·;¼;Å;Ò;Ù;Þ;ç;X<_o>u>~>‹>’>—> >?#?)?2???F?K?T?È?Ï?Õ?Þ?ë?ò?÷? 0ˆ00•0ž0«0²0·0À0L1S1X1a1n1u1z1ƒ1ô1û12 222"2+2˜2Ÿ2¥2®2»2Â2Ç2Ð2H3O3U3^3k3r3w3€3ü34 44r4²4º4Â4Ç4Ð4×4ß4å4ï4õ4û45 5¶5Â5É5Î5×5s66—66¦6Ê6Ñ6×6à67 77*7?7F7K7T7z77†77¸7¿7Ä7Í7ì7ó7ø78&8-828;8a8h8m8v8í8ô8ù89]:µ;¹;½;Á;Å;É;Í;Ñ;Õ;Ù;Ý;á;å;é;í;@=%>)>->1>5>9>=>A>ž?°¸000"00-1Ò1Ù1Þ1ç1w2~2„22ä2ë2ð2ù2E3L3Q3Z3˜4H5»5Â5Ç5Ð5P6W6\6e6÷6þ67 7‹7’7—7 7µ7°8¨9:G;N;T;];¯;¶;»;Ä;U<\*>/>8>ƒ>Š>>˜>y?€?…?Ž?·?¾?Ã?Ì?ç?î?ó?ü?ÀH 00002 222À5Ç5Ì5Õ57:>:C:L:“<š< <©a>Ä>É>0?5?˜??Р00x0}0ô0ù0T1Y1¼1Á1,212˜223 3d3i3Ä3É3(4-4 4¥45 5d5i5Ä5É5,616 6¥67 7|77è7í7X8]8Ì8Ñ889=9¸9½9<:A:¤:©:; ;x;};ì;ñ;X<]<Ô<ÙE>°>µ>?!??•?ø?ý?àph0m0Ø0Ý0H1M1É1Î1/2>2`2‚2 2Ð2÷2ü23313>3W3‚3Ž3,43494B4Ì4Ó4Ù4â4P5H6 6(7»7Â7È7Ñ7*81878@8i8p8v88@98::˜;ðHÖ1Ö3û34ë455þ5#6/6º6Ã6È67 777‡9Ž9”99»:Â:Ç:Ð:Ô;Û;à;é;Œ<±<½< è0 11È1V66x7== =)=Ä2é2õ2­:F>¶?ü? T%0Ô01\1–2Í2X3D4Ô56`6V7^8 <¦<¬<²<=/=O=†=Ÿ=¿=>,>¨>Ç>Ò>Û>à>å>ï>ü> ?H?l?è?0б0Å0Z1c162 3%33!4>4C4®4.5Ø6å6787D7”7Õ7>8X8a8Ô8Ý8ò8949=9D9[9d9k9„9î9%:):/:3:9:=:C:G:M:Q:W:[:…:‘:¾:å:H;`;g;o;t;x;|;¥;Ë;é;ð;ô;ø;ü;<<< >+?a?@O0W0`0p0|0’0ž0§0¬0µ0Á0â0ü011N1t1¾1Ã12 2_2g2m2v2|2‚2‰2Ž2”22­2¶2ø23393•55¦5¶5Â5Ø5ä5í5ò5û56*6D6a6f6’6Õ6Ú6ú67L7X7¡7­788A8P8Y8_8h8q8z8€8‰8Ž8”8œ8¢8Ç8ã869B9†99œ9¸9Ö9à9ì9: ::':/:D:6<>!>\>b>›>§>È> ??1?:???e?o?{?–?³?½?É?ã?ô?P¬'0x1€1‰1™1¥1»1Ç1Ð1å1ñ1C2O2Õ2á2P3\3¥3±374…4Š44¯4´4Ñ4Ö4ó4ø455H5­5¹5À5ë56B6u6•6Ø672767:7>78,8D8J8V8…8’899~9´9Ñ9Ø9é9ð9±:…;‘;½;Â;æ;$<·<Û<ç¾>Ã>ì>D?z?¥?Ç?`”0,0C0u0Ì0ø0ý0Ç12n2›203@3E3½3Ù3ý34v5‚5˜5º5Æ5Ü5o6f7ƒ7¨7Å7ï7û7838?8U89?:\:|:™:; ;!;9;I;=)=8=T==“= >>1>:>Ó>Ü>÷>?„?–?Ÿ?«?´?Â?Ë?Ù?ß?è?ö?p000D0M0}0–0¨01C1L1g1p1c2o2 33-36394E4Â4æ4ë465ú5666616J6O6\6n6ƒ6˜6Â6Ë6#7O7d7{899Ì9::O:‰:ž:;9;N;c;x;‘;u=~=¬=¸=¨?À?Ç?Ï?Ô?Ø?Ü?€ä0+0I0P0T0X0\0`0d0h0l0¶0¼0À0Ä0È0.191T1[1`1d1h1‰1³1å1ì1ð1ô1ø1ü1222R2X2\2`2d2Œ3 4Œ4l5¹5è5X6|6¸6(7L7ˆ7ø78L8¬9:):4:@:R:X:a:m:r:{:€: :¥:¯:ø:;;;!;';Ö;Û;<(<=<Ù<î<µ=¾=Ç=æ=>>4>E>‰>›>¡>Ì>Û>÷>?!?'?5?>?D?O?X?É?Ý?ã?ò?þ?ð020<0U01\1q1Æ1Ë12f2k2Á2)3|3ñ3:4B4J4š4¡4«4µ4¤5À5Ï5Ö5õ5,6i6q6y6‚6‘6æ6 7*737=7G7Ž7Ÿ788"8,8E8K8P8W8^8y8Ž8š8§829e9l9‡99¡9¿9Ä9Ë9::A:Z:j:³:¿:Ð:Ú:ê:ô:;5;A;z;‹;<2L>Z>b>h>|>‰>Ž>”>¬>¹>É>Î>Ô> ?1?=?y?ƒ?—?À?Ý? € 00]0c0s0‹00£0µ0Ä0ñ0ø0111€1†1–1œ1¾2Ì2Ø233V3œ3¸3Ä3ã3ý3 44)4D4T4`4{4‹4—4²4Â4Î4"5(5E5^5 88 8è:&=+=Q=Z=>>!>Ã>æ?ë?°|30<0H0P0k1t1æ2ë2&6+677³7Â7Ê78*8¤8­8Æ9è9ò9ý9: :(:.;;;G;V;d;|;;š;æ;ë;f >(>8>>¦>Ý>ï>??.?8?Q?[?˜?ÀlA0M0 112 2M2Y2Ï2Þ2¸6Á6Ü6'7-7;7E7¥7é7g8ê8k9::Æ:Í:Ú:OU>a>f>z>‘>>¦>¬>·>½>Æ>ì>v?˜?Æ?ä?Ðìþ011T1Z1_1t1{1•162B2q2Œ2“2å2 3[3b3ƒ3Š34H45 5ˆ55ž5é5ð5ÿ5Î6777#7]7y7€7Š7•7Ÿ7í7ö768;8A8R8X8r8y8¸8Ä8â8û899$959=9D9J9Q9”9¦9³9»9À9Û9è9í9¥:²:¹:¿:Ì:Ø:á:ê:ï:õ:ý:;;;#;(;6;N;e;Ç;Í;Û;å;ÿ;¥<­<Å<Ù<ê<==[=b=g=m=}=ƒ=‰==™=£=×=à=é=àˆ33363A3H3Q3Z3c3t3ƒ33 3«3´3Ë3Õ3Û3æ3í3ó3ü34 44&4/484I4O4W4`4è5ñ5@66‹6¸6ê6ö67]7Ë:Ö:Þ:Eð\F7R7[7u7€7ˆ7‘7™7¢7²7À7Ì7Ý7é7ò7þ78888'8-898B8Q8Z8`8Ê8Ô8Û8í8959ö91?:?R?ˆ?¨?î?õ?tZ0Õ0 191L1–1¢162=2L3S3g4n4,5÷5]6m7Ø7ö78== =$=(=,=0=4=8=<=@=D=H=L=a=e=i=m=q=¤=¨=¬=°=´=¸=¼=À=Ä=È=Ì=Ð=Ô=Ø=Ü=¤É3Þ3î3 440464z4†4›4«4µ4÷4&536=6s6¦6°6Ò6ý6 767U7_7\8„8Š8Ÿ8Í829E9c9u9{9„9™9:/:t:¶:É:I;P;B;>T>c>{>¸>¿>Ò>Ù>é>? ?o?Ã?Ô?õ? ¸0å0ñ033!3,383=3a3h3n3z333•3 3¨3´3 44*494=4A4E4I4ß4÷45ˆ55 5±5Â5!6*6:6C6S6g6m6~6›6Ê6Ù6ã6ç6ë6ï6ó6÷6‡7 7¨7µ7¾78"8(868@8E8K8Z8d8i8n8x8}8ƒ8‹8•8š8 8¨8²8·8½8Æ8å89(919@9M9f90€Ä1Í1t2‘2š244j4‹4‘4¡4ä455F5U5h5è5ö56 6666!6.686c6²6»6¤7Š9Ú9V;_;n;z;…;;¢;<<9<^<<<˜<«<ÿ< =B=æ=ë=>>†>‹>§>³>Ê?@L 00*0>0D0U0`0t0Ž0¥0¼0Ó0ê01 11>1Ç1ß1ç1ô1ý1K2X2u2~2‡22¦2Ú23383U3^3g3z3Ž3—3ž3È3Ñ34A4m4Ž4¤4»4•5¨5´5/6J6^6j6o6y6„6‰6“6›6 6ª6²6·6Á6È6Í6×6ß6ä6î6ö6û677¯7¶7Ï7Ö7þ7888?8S889?9I9V9c9k:œ:£:­:´:Â:Ç:Î:Ó:Û:â:ö:û:;;;;&;/;:;D;P;U;_;t;y;ƒ;Ž;“;;¨;°;¼;Õ;<<;4M4ƒ4ž4û455#505§6(;1;n;·;þ;<`d44T4W5·56·7Ï7ø7ÿ78 8888!8$:4:F:K:h:v:~:ˆ:”:Ÿ:©:²:Ì:Û:N;s;”;¾;:<|<›<•=©=Ô=ç=î=>Ÿ?¬?Ä?ö?pè0>0C0K0`0ù011G1U1c1v1†11Ù1ò122B2N2Z2m2~2ˆ2Ø2í2 333ž3­3ô3þ344˜4½4É4Ï4å455K5`5p5z5°5Ò5á56,6·6À6ƒ8“8­8³8Å8Ï8ð899992989f9v9…9‹9ª9•:›:¯:Í:â:ó: ;0;>;F;N;U;[;z<ƒ<'=B=Š=·=â=/>9>D>V>\>e>s>Ÿ>§>È>õ>??e?q?š?¦?®?¼?Â?Î?õ?€œ0õ0111'151>1‚1‰1¯1³1·1»1¿1$2-272A2h2ª2º2Á2‚3‰3¯3Ó3ä34\4k4„4¦4µ4Î4Ü415@5U5v5…5š5¨5•66µ6È6æ6ë677#7-797D7g7p7˜7¦78“8ì8f9‹9²9Ü9D:‰:¬:ö:b;¤;Ì;ù;\70Ú1¹2è23Ì3Ó3;4—4 5G5N5Ò5h6o6¬6g8ã8Ÿ;£;§;«;¯;³;·;»;¿;Ã;Ç;Ë;Ï;Ó;×;Û;<<"6D6J6P6V6\6b6h6n6t6z6€6†6Œ6’6˜6ž6¤6ª6°6¶6¼6Â6È6Î6Ô6Ú6à6æ6ì6ò6ø6þ67 7777"7(7.747:7@7F7L7R7X7^7d7j7p7v7|7‚7À$ï3 4!4?4\4y4¥4Ì4é4 5)5A5Y5y5Ð ´5ð ,2024282<2@2D2H2L2P2T2(€6„6ˆ6Œ66”6˜6œ6 6¤6¨6¬6°6´6¸6¼6À6Ä6È6Ì6Ð6Ô6Ø6Ü6à6ä6è6ì6ð6ô6ø6ü6777 77777 7$7(7,7074787<7h7l7p7t7x7|7€7„7ˆ7Œ77”7˜7œ7 7¤7¨7¬7°7´7¸7¼7À7Ä7È7Ì7Ð7Ô7Ø7Ü7à7ä7è7ì7ð7ô7ø7ü7888 88888 8$8à8ä8è8ì8ð8ô8ø8ü8999 99999 9$9(9,9094989<9@9D9H9L9P9T9X9\9`9d9h9l9p9t9x9|9€9„9ˆ9Œ99”9˜9œ9l8:<:D:Ä:È:Ð:€<„<ˆ<Œ<<”<˜<œ< <¤<¨<¬<°<´<¸<¼<À<Ä<È<Ì<Ð<Ô<Ø<Ü<à<ø<ü<=== ===== =$=(=,=0=4=8=<=@=$<4@4D4L4P4T4x4|4€4œ4 4¤4D?H?`À0Ä0È0è0ì0ð0ø0ü011 1111,101|4€4Œ44Ð9Ø9Ü9ð9ø9ü9 ::: :,:0:<:@:L:P:\:`:<>@>ô>ø>?? Ü;à;4<8<@>,>@>L>T>t>€>œ>°>¼>À>Ä>Ð>Ø>ä>ð> ? ?,?0?x>Ä>à>?,?T?”?˜?œ?¤?À?Ä?È?Ì?Ð?à?è?`t33 303L3l3”3°3Ä3È3Ì3Ð3Ô3à3ä3è3ì3444$40444<4@4D4H4L4P4X4p4t4<5D5L5T5\5d5l5t5|5„5Œ5”5œ5¤5¬5´5¼5Ä5Ì5ð50646bml-0.6.1/src/Makefile.am0000644042355400116100000000223211701126670012042 00000000000000## $Id: Makefile.am 3354 2011-05-10 11:55:23Z ensonic $ SUBDIRS = BuzzMachineLoader if USE_X86 DLLWRAPPER_LIB=$(top_builddir)/dllwrapper/wine/libloader.la else DLLWRAPPER_LIB= endif lib_LTLIBRARIES = libbml.la AM_CPPFLAGS = \ -I$(top_srcdir)/dllwrapper/wine \ -I$(top_srcdir)/src/BuzzMachineLoader \ -I$(top_srcdir)/src \ -DNATIVE_BML_DIR="\"$(pkglibdir)\"" AM_CFLAGS = $(PTHREAD_CFLAGS) $(BML_CFLAGS) $(ARCH_CFLAGS) libbmldir = $(includedir)/libbml libbml_HEADERS = bml.h ./BuzzMachineLoader/BuzzMachineLoader.h libbml_la_SOURCES = bml.c libbml_la_LIBADD = $(LIBM) $(PTHREAD_LIBS) $(BML_LIBS) $(DLLWRAPPER_LIB) libbml_la_LDFLAGS = \ -export-symbols-regex ^_?\(bml_\|bmlw_\|bmln_\).* \ -version-info @BML_VERSION_INFO@ noinst_PROGRAMS=bmltest_info bmltest_process bmltest_info_SOURCES= bmltest_info.c bmltest_info.h bmltest_info_LDADD = $(LIBM) $(PTHREAD_LIBS) $(BML_LIBS) libbml.la bmltest_process_SOURCES= bmltest_process.c bmltest_process.h bmltest_process_LDADD = $(LIBM) $(PTHREAD_LIBS) $(BML_LIBS) libbml.la if USE_X86 dlldir = $(libdir)/win32 dll_DATA = BuzzMachineLoader.dll endif # unconditionally dist the dll EXTRA_DIST = BuzzMachineLoader.dll bml-0.6.1/src/BuzzMachineLoader/0000755042355400116100000000000011701130243013424 500000000000000bml-0.6.1/src/BuzzMachineLoader/BuzzMachineCallbacksPre12.cpp0000644042355400116100000001644511576362476020744 00000000000000/* $Id: BuzzMachineCallbacksPre12.cpp 3124 2011-01-09 13:25:00Z ensonic $ * * Buzz Machine Loader * Copyright (C) 2006 Buzztard team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #define BUZZ_MACHINE_CALLBACKS_PRE12_CPP #define BUZZ_MACHINE_LOADER #ifdef WIN32 #include "stdafx.h" #include #else #include "windef.h" #endif #include #include "debug.h" #include "MachineInterface.h" #include "BuzzMachineCallbacksPre12.h" //#include "BuzzMDKHelper.h" #include "mdkimp.h" #include "BuzzMachineLoader.h" #include "OscTable.h" CWaveInfo const *BuzzMachineCallbacksPre12::GetWave(int const i) { static CWaveInfo wi={0,}; DBG1("(i=%d)\n",i); if(host_callbacks && *host_callbacks) { return (CWaveInfo *)(*host_callbacks)->GetWave(*host_callbacks,i); } return(&wi); } CWaveLevel const *BuzzMachineCallbacksPre12::GetWaveLevel(int const i, int const level) { DBG2("(i=%d,level=%d)\n",i,level); if(host_callbacks && *host_callbacks) { return (CWaveLevel *)(*host_callbacks)->GetWaveLevel(*host_callbacks,i,level); } return(&defaultWaveLevel); } CWaveLevel const *BuzzMachineCallbacksPre12::GetNearestWaveLevel(int const i, int const note) { DBG2("(i=%d,note=%d)\n",i,note); if((i==-1) && (note==-1)) { // the evil MDK hack that Buzz MDK machines rely upon if(!mdkHelper) { DBG("create the mdk helper\n"); //mdkHelper = new BuzzMDKHelper; mdkHelper = new CMDKImplementation; } DBG1("return the mdk helper, %p\n",mdkHelper); return((CWaveLevel *)mdkHelper); } if(host_callbacks && *host_callbacks) { return (CWaveLevel *)(*host_callbacks)->GetNearestWaveLevel(*host_callbacks,i,note); } return(&defaultWaveLevel); } int BuzzMachineCallbacksPre12::GetFreeWave() { DBG("()\n"); FIXME; return(0); } bool BuzzMachineCallbacksPre12::AllocateWave(int const i, int const size, char const *name) { DBG3("(i=%d,size=%d,name=\"%s\")\n",i,size,name); FIXME; return(FALSE); } /* GUI: * */ void BuzzMachineCallbacksPre12::MessageBox(char const *txt) { DBG1("(txt=\"%s\")\n",txt); if(txt) puts(txt); } /* Misc/Unknown: */ void BuzzMachineCallbacksPre12::Lock() { DBG("()\n"); FIXME; } void BuzzMachineCallbacksPre12::Unlock() { DBG("()\n"); FIXME; } void BuzzMachineCallbacksPre12::ScheduleEvent(int const time, dword const data) { DBG2("(time=%d,data=%d)\n",time,data); FIXME; } void BuzzMachineCallbacksPre12::MidiOut(int const dev, dword const data) { DBG2("(dev=%d,data=%d)\n",dev,data); FIXME; } /* common Oszillators */ short const *BuzzMachineCallbacksPre12::GetOscillatorTable(int const waveform) { DBG1("(waveform=%d)\n",waveform); return OscTable[waveform]; } /* Application State: */ int BuzzMachineCallbacksPre12::GetWritePos() { DBG("()\n"); FIXME; return(0); } int BuzzMachineCallbacksPre12::GetPlayPos() { DBG("()\n"); FIXME; return(0); } /* AuxBus: * */ float *BuzzMachineCallbacksPre12::GetAuxBuffer() { DBGO1(machine_info->Name,"()=%p\n",auxBuffer); return(auxBuffer); } void BuzzMachineCallbacksPre12::ClearAuxBuffer() { DBGO(machine_info->Name,"()\n"); for (unsigned int i=0; i<2*BMC_AUXBUFFER_SIZE; i++) { auxBuffer[i]=0.0f; } } /* Envelopes: */ int BuzzMachineCallbacksPre12::GetEnvSize(int const wave, int const env) { DBG2("(wave=%d,env=%d)\n",wave,env); /* incredibly odd - i dont understand this, but jeskola raverb requires this to run =) we do not keep the value though, it may haunt us later. both raverb and the host keep their own static copies of this value the value seems to be combined from getlocaltime, getsystemtime, gettimezoneinfo and more. from buzz.exe disassembly of GetEnvSize implementation: 00425028 69 C0 93 B1 39 3E imul eax,eax,3E39B193h 0042502E 05 3B 30 00 00 add eax,303Bh 00425033 25 FF FF FF 7F and eax,7FFFFFFFh 00425038 A3 F0 26 4D 00 mov dword ptr ds:[004D26F0h],eax */ if (wave<0) { return ((wave*0x3E39B193) + 0x303b ) & 0x7FFFFFFF; } FIXME; return(0); } bool BuzzMachineCallbacksPre12::GetEnvPoint(int const wave, int const env, int const i, word &x, word &y, int &flags) { DBG3("(wave=%d,env=%d,i=%d,&x,&y,&flags)\n",wave,env,i); FIXME; return(FALSE); } /* Pattern editing: */ void BuzzMachineCallbacksPre12::SetNumberOfTracks(int const n) { DBG1("(n=%d)\n",n); FIXME; } CPattern *BuzzMachineCallbacksPre12::CreatePattern(char const *name, int const length) { DBG2("(name=\"%s\",length=%d)\n",name,length); FIXME; return(NULL); } CPattern *BuzzMachineCallbacksPre12::GetPattern(int const index) { DBG1("(index=%d)\n",index); FIXME; return(NULL); } char const *BuzzMachineCallbacksPre12::GetPatternName(CPattern *ppat) { DBG1("(ppat=%p)\n",ppat); FIXME; return(NULL); } void BuzzMachineCallbacksPre12::RenamePattern(char const *oldname, char const *newname) { DBG2("(oldname=\"%s\",newname=\"%s\")\n",oldname,newname); FIXME; } void BuzzMachineCallbacksPre12::DeletePattern(CPattern *ppat) { DBG1("(ppat=%p)\n",ppat); FIXME; } int BuzzMachineCallbacksPre12::GetPatternData(CPattern *ppat, int const row, int const group, int const track, int const field) { DBG5("(ppat=%p,row=%d,group=%d,track=%d,field=%d)\n",ppat,row,group,track,field); FIXME; return(0); } void BuzzMachineCallbacksPre12::SetPatternData(CPattern *ppat, int const row, int const group, int const track, int const field, int const value) { DBG6("(ppat=%p,row=%d,group=%d,track=%d,field=%d,value=%d)\n",ppat,row,group,track,field,value); FIXME; } /* Sequence editing: */ CSequence *BuzzMachineCallbacksPre12::CreateSequence() { DBG("()\n"); FIXME; return(NULL); } void BuzzMachineCallbacksPre12::DeleteSequence(CSequence *pseq) { DBG1("(pseq=%p)\n",pseq); FIXME; } // special ppat values for GetSequenceData and SetSequenceData // empty = NULL // = (CPattern *)1 // = (CPattern *)2 // = (CPattern *)3 CPattern *BuzzMachineCallbacksPre12::GetSequenceData(int const row) { DBG1("(row=%d)\n",row); FIXME; return(NULL); } void BuzzMachineCallbacksPre12::SetSequenceData(int const row, CPattern *ppat) { DBG2("(row=%d,ppat=%p)\n",row,ppat); } bml-0.6.1/src/BuzzMachineLoader/debug.h0000644042355400116100000000574311576362476014645 00000000000000/* $Id: debug.h 1740 2008-04-16 06:19:17Z ensonic $ * * Buzz Machine Loader * Copyright (C) 2006 Buzztard team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ typedef void(*DebugLoggerFunc)(char *str); extern DebugLoggerFunc debug_log_func; #ifdef HAVE_CONFIG_H #include "config.h" #ifdef LOG #define _DEBUG #endif #endif #ifdef _DEBUG extern void DebugLogger(const char *file, unsigned int line, const char *func, const char *obj, const char *fmt,...); #define DBG(str) DebugLogger(__FILE__,__LINE__,__FUNCTION__,NULL,str) #define DBG1(str,p1) DebugLogger(__FILE__,__LINE__,__FUNCTION__,NULL,str,p1) #define DBG2(str,p1,p2) DebugLogger(__FILE__,__LINE__,__FUNCTION__,NULL,str,p1,p2) #define DBG3(str,p1,p2,p3) DebugLogger(__FILE__,__LINE__,__FUNCTION__,NULL,str,p1,p2,p3) #define DBG4(str,p1,p2,p3,p4) DebugLogger(__FILE__,__LINE__,__FUNCTION__,NULL,str,p1,p2,p3,p4) #define DBG5(str,p1,p2,p3,p4,p5) DebugLogger(__FILE__,__LINE__,__FUNCTION__,NULL,str,p1,p2,p3,p4,p5) #define DBG6(str,p1,p2,p3,p4,p5,p6) DebugLogger(__FILE__,__LINE__,__FUNCTION__,NULL,str,p1,p2,p3,p4,p5,p6) #define FIXME DebugLogger(__FILE__,__LINE__,__FUNCTION__,NULL,"!!! FIXME !!!\n") #define DBGO(obj,str) DebugLogger(__FILE__,__LINE__,__FUNCTION__,obj,str) #define DBGO1(obj,str,p1) DebugLogger(__FILE__,__LINE__,__FUNCTION__,obj,str,p1) #define DBGO2(obj,str,p1,p2) DebugLogger(__FILE__,__LINE__,__FUNCTION__,obj,str,p1,p2) #define DBGO3(obj,str,p1,p2,p3) DebugLogger(__FILE__,__LINE__,__FUNCTION__,obj,str,p1,p2,p3) #define DBGO4(obj,str,p1,p2,p3,p4) DebugLogger(__FILE__,__LINE__,__FUNCTION__,obj,str,p1,p2,p3,p4) #define DBGO5(obj,str,p1,p2,p3,p4,p5) DebugLogger(__FILE__,__LINE__,__FUNCTION__,obj,str,p1,p2,p3,p4,p5) #define DBGO6(obj,str,p1,p2,p3,p4,p5,p6) DebugLogger(__FILE__,__LINE__,__FUNCTION__,obj,str,p1,p2,p3,p4,p5,p6) #else #define DBG(str) #define DBG1(str,p1) #define DBG2(str,p1,p2) #define DBG3(str,p1,p2,p3) #define DBG4(str,p1,p2,p3,p4) #define DBG5(str,p1,p2,p3,p4,p5) #define DBG6(str,p1,p2,p3,p4,p5,p6) #define FIXME #define DBGO(obj,str) #define DBGO1(obj,str,p1) #define DBGO2(obj,str,p1,p2) #define DBGO3(obj,str,p1,p2,p3) #define DBGO4(obj,str,p1,p2,p3,p4) #define DBGO5(obj,str,p1,p2,p3,p4,p5) #define DBGO6(obj,str,p1,p2,p3,p4,p5,p6) #endif bml-0.6.1/src/BuzzMachineLoader/MachineDataImpl.h0000644042355400116100000000162411576362476016531 00000000000000#ifndef MACHINE_DATA_IMPL_H #define MACHINE_DATA_IMPL_H #ifdef WIN32 #include "stdafx.h" #include #else #include "windef.h" #endif #include #include "MachineInterface.h" class CMachineDataInputImpl : public CMachineDataInput { public: CMachineDataInputImpl(HANDLE hFile); CMachineDataInputImpl(BYTE * pbyBuffer, DWORD dwBufferLen); virtual ~CMachineDataInputImpl(); virtual void Read(void* pmem, int const n_size); private: const HANDLE m_hFile; const BYTE * m_pbyBuffer; DWORD m_dwBufferLen; }; class CMachineDataOutputImpl : public CMachineDataOutput { public: CMachineDataOutputImpl(HANDLE hFile); CMachineDataOutputImpl(void); DWORD GetCount() const; const BYTE * GetOutputBuffer() const; virtual ~CMachineDataOutputImpl(); private: HANDLE m_hFile; BYTE * m_pbyBuffer; DWORD m_dwBufferLen; }; #endif // BUZZ_MACHINE_DATA_H bml-0.6.1/src/BuzzMachineLoader/BuzzMachineLoader.h0000644042355400116100000000612611576362476017121 00000000000000/* $Id: BuzzMachineLoader.h 2457 2009-06-03 21:58:45Z ensonic $ * * Buzz Machine Loader * Copyright (C) 2006 Buzztard team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef BUZZ_MACHINE_LOADER_H #define BUZZ_MACHINE_LOADER_H #ifdef __cplusplus extern "C" { #endif typedef struct _CHostCallbacks CHostCallbacks; struct _CHostCallbacks { void *user_data; /* callbacks */ void const *(*GetWave)(CHostCallbacks *self, int const i); void const *(*GetWaveLevel)(CHostCallbacks *self, int const i, int const level); void const *(*GetNearestWaveLevel)(CHostCallbacks *self, int const i, int const note); /* add more */ }; #ifdef BUZZ_MACHINE_LOADER typedef CMachineInfo* (*GetInfoPtr)(); typedef CMachineInterface *(*CreateMachinePtr)(); class BuzzMachine; // machine library handle class BuzzMachineHandle { public: // library handle void *h; char *lib_name; // machine info CMachineInfo *machine_info; int mdk_num_channels; // functions CreateMachinePtr CreateMachine; // dummy machine instance, so that we can call DescribeValue BuzzMachine *bm; }; // machine instance handle class BuzzMachine { public: /* FIXME: what about adding a 4 byte cookie here * which bm_new() could set and * a macro BM_IS_BM(bm) could check */ // library handle BuzzMachineHandle *bmh; // callback instance CMICallbacks *callbacks; // classes CMachineInfo *machine_info; CMachineInterface *machine_iface; CMachine *machine; CMDKImplementation *mdkHelper; CHostCallbacks *host_callbacks; //callbacks->machine_ex; //CMachineInterfaceEx *machine_ex; }; #else typedef void BuzzMachineHandle; typedef void BuzzMachine; #endif typedef enum { BM_PROP_TYPE=0, BM_PROP_VERSION, BM_PROP_FLAGS, BM_PROP_MIN_TRACKS, BM_PROP_MAX_TRACKS, BM_PROP_NUM_GLOBAL_PARAMS, BM_PROP_NUM_TRACK_PARAMS, BM_PROP_NUM_ATTRIBUTES, BM_PROP_NAME, BM_PROP_SHORT_NAME, BM_PROP_AUTHOR, BM_PROP_COMMANDS, BM_PROP_DLL_NAME, BM_PROP_NUM_INPUT_CHANNELS, BM_PROP_NUM_OUTPUT_CHANNELS } BuzzMachineProperty; typedef enum { BM_PARA_TYPE=0, BM_PARA_NAME, BM_PARA_DESCRIPTION, BM_PARA_MIN_VALUE, BM_PARA_MAX_VALUE, BM_PARA_NO_VALUE, BM_PARA_FLAGS, BM_PARA_DEF_VALUE } BuzzMachineParameter; typedef enum { BM_ATTR_NAME=0, BM_ATTR_MIN_VALUE, BM_ATTR_MAX_VALUE, BM_ATTR_DEF_VALUE } BuzzMachineAttribute; #ifdef __cplusplus } #endif #endif // BUZZ_MACHINE_LOADER_H bml-0.6.1/src/BuzzMachineLoader/BuzzMachineCallbacks.cpp0000644042355400116100000002415511576362477020130 00000000000000/* $Id: BuzzMachineCallbacks.cpp 3124 2011-01-09 13:25:00Z ensonic $ * * Buzz Machine Loader * Copyright (C) 2006 Buzztard team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #define BUZZ_MACHINE_CALLBACKS_CPP #define BUZZ_MACHINE_LOADER #ifdef WIN32 #include "stdafx.h" #include #else #include "windef.h" #endif #include #include "debug.h" #include "MachineInterface.h" #include "BuzzMachineCallbacks.h" //#include "BuzzMDKHelper.h" #include "mdkimp.h" #include "BuzzMachineLoader.h" #include "CMachine.h" #include "OscTable.h" CWaveInfo const *BuzzMachineCallbacks::GetWave(int const i) { static CWaveInfo wi={0,}; DBG1("(i=%d)\n",i); if(host_callbacks && *host_callbacks) { return (CWaveInfo *)(*host_callbacks)->GetWave(*host_callbacks,i); } return(&wi); } CWaveLevel const *BuzzMachineCallbacks::GetWaveLevel(int const i, int const level) { DBG2("(i=%d,level=%d)\n",i,level); if(host_callbacks && *host_callbacks) { return (CWaveLevel *)(*host_callbacks)->GetWaveLevel(*host_callbacks,i,level); } return(&defaultWaveLevel); } CWaveLevel const *BuzzMachineCallbacks::GetNearestWaveLevel(int const i, int const note) { DBG2("(i=%d,note=%d)\n",i,note); if((i==-1) && (note==-1)) { // the evil MDK hack that Buzz MDK machines rely upon if(!mdkHelper) { DBG("create the mdk helper\n"); //mdkHelper = new BuzzMDKHelper; mdkHelper = new CMDKImplementation; } DBG1("return the mdk helper, %p\n",mdkHelper); return((CWaveLevel *)mdkHelper); } if(host_callbacks && *host_callbacks) { return (CWaveLevel *)(*host_callbacks)->GetNearestWaveLevel(*host_callbacks,i,note); } return(&defaultWaveLevel); } int BuzzMachineCallbacks::GetFreeWave() { DBG("()\n"); FIXME; return(0); } bool BuzzMachineCallbacks::AllocateWave(int const i, int const size, char const *name) { DBG3("(i=%d,size=%d,name=\"%s\")\n",i,size,name); FIXME; return(FALSE); } //-- since buzz 1.2 char const *BuzzMachineCallbacks::GetWaveName(int const i) { DBG1("(i=%d)\n",i); FIXME; return(NULL); } // i >= 1, NULL name to clear void BuzzMachineCallbacks::SetInternalWaveName(CMachine *pmac, int const i, char const *name) { DBG3("(pmac=%p,i=%d,name=\"%s\")\n",pmac,i,name); } /* GUI: * */ void BuzzMachineCallbacks::MessageBox(char const *txt) { DBG1("(txt=\"%s\")\n",txt); if(txt) puts(txt); } /* Misc/Unknown: */ void BuzzMachineCallbacks::Lock() { DBG("()\n"); FIXME; // used by : Rebirth MIDI.dll } void BuzzMachineCallbacks::Unlock() { DBG("()\n"); FIXME; // used by : Rebirth MIDI.dll } void BuzzMachineCallbacks::ScheduleEvent(int const time, dword const data) { DBG2("(time=%d,data=%d)\n",time,data); FIXME; } void BuzzMachineCallbacks::MidiOut(int const dev, dword const data) { DBG2("(dev=%d,data=%d)\n",dev,data); FIXME; } /* common Oszillators */ short const *BuzzMachineCallbacks::GetOscillatorTable(int const waveform) { DBG1("(waveform=%d)\n",waveform); return OscTable[waveform]; } /* Application State: */ int BuzzMachineCallbacks::GetWritePos() { DBG("()\n"); FIXME; return(0); } int BuzzMachineCallbacks::GetPlayPos() { DBG("()\n"); FIXME; return(0); } //-- since buzz 1.2 // only call this in Init()! CMachine *BuzzMachineCallbacks::GetThisMachine() { DBG("()\n"); return(machine); } // returns pointer to the sequence if there is a pattern playing CSequence *BuzzMachineCallbacks::GetPlayingSequence(CMachine *pmac) { DBG1("(pmac=%p)\n",pmac); FIXME; return(NULL); } // gets ptr to raw pattern data for row of a track of a currently playing pattern (or something like that) void *BuzzMachineCallbacks::GetPlayingRow(CSequence *pseq, int group, int track) { DBG3("(pseq=%p,group=%d,track=%d)\n",pseq,group,track); FIXME; return(NULL); } int BuzzMachineCallbacks::GetStateFlags() { DBG("()\n"); FIXME; return(0); } /* AuxBus: */ float *BuzzMachineCallbacks::GetAuxBuffer() { DBGO1(machine_info->Name,"()=%p\n",auxBuffer); return(auxBuffer); } void BuzzMachineCallbacks::ClearAuxBuffer() { DBGO(machine_info->Name,"()\n"); for (unsigned int i=0; i<2*BMC_AUXBUFFER_SIZE; i++) { auxBuffer[i]=0.0f; } } /* Envelopes: */ int BuzzMachineCallbacks::GetEnvSize(int const wave, int const env) { DBG2("(wave=%d,env=%d)\n",wave,env); FIXME; return(0); } bool BuzzMachineCallbacks::GetEnvPoint(int const wave, int const env, int const i, word &x, word &y, int &flags) { DBG3("(wave=%d,env=%d,i=%d,&x,&y,&flags)\n",wave,env,i); FIXME; return(FALSE); } /* Pattern editing: */ void BuzzMachineCallbacks::SetNumberOfTracks(int const n) { DBG1("(n=%d)\n",n); FIXME; } CPattern *BuzzMachineCallbacks::CreatePattern(char const *name, int const length) { DBG2("(name=\"%s\",length=%d)\n",name,length); FIXME; return(NULL); } CPattern *BuzzMachineCallbacks::GetPattern(int const index) { DBG1("(index=%d)\n",index); FIXME; return(NULL); } char const *BuzzMachineCallbacks::GetPatternName(CPattern *ppat) { DBG1("(ppat=%p)\n",ppat); FIXME; return(NULL); } void BuzzMachineCallbacks::RenamePattern(char const *oldname, char const *newname) { DBG2("(oldname=\"%s\",newname=\"%s\")\n",oldname,newname); FIXME; } void BuzzMachineCallbacks::DeletePattern(CPattern *ppat) { DBG1("(ppat=%p)\n",ppat); FIXME; } int BuzzMachineCallbacks::GetPatternData(CPattern *ppat, int const row, int const group, int const track, int const field) { DBG5("(ppat=%p,row=%d,group=%d,track=%d,field=%d)\n",ppat,row,group,track,field); FIXME; return(0); } void BuzzMachineCallbacks::SetPatternData(CPattern *ppat, int const row, int const group, int const track, int const field, int const value) { DBG6("(ppat=%p,row=%d,group=%d,track=%d,field=%d,value=%d)\n",ppat,row,group,track,field,value); FIXME; } /* Sequence editing: */ CSequence *BuzzMachineCallbacks::CreateSequence() { DBG("()\n"); FIXME; return(NULL); } void BuzzMachineCallbacks::DeleteSequence(CSequence *pseq) { DBG1("(pseq=%p)\n",pseq); FIXME; } // special ppat values for GetSequenceData and SetSequenceData // empty = NULL // = (CPattern *)1 // = (CPattern *)2 // = (CPattern *)3 CPattern *BuzzMachineCallbacks::GetSequenceData(int const row) { DBG1("(row=%d)\n",row); FIXME; return(NULL); } void BuzzMachineCallbacks::SetSequenceData(int const row, CPattern *ppat) { DBG2("(row=%d,ppat=%p)\n",row,ppat); } //-- buzz v1.2 (MI_VERSION 15) additions start here --- void BuzzMachineCallbacks::SetMachineInterfaceEx(CMachineInterfaceEx *pex) { DBG1("(pex=%p)\n",pex); machine_ex=pex; } // set value of parameter // group 1=global, 2=track void BuzzMachineCallbacks::ControlChange__obsolete__(int group, int track, int param, int value) { DBG4("(group=%d,track=%d,param=%d,value=%d)\n",group,track,param,value); FIXME; } // set value of parameter (group & 16 == don't record) void BuzzMachineCallbacks::ControlChange(CMachine *pmac, int group, int track, int param, int value) { DBG5("(pmac=%p,group=%d,track=%d,param=%d,value=%d)\n",pmac,group,track,param,value); FIXME; } // direct calls to audiodriver, used by WaveInput and WaveOutput // shouldn't be used for anything else int BuzzMachineCallbacks::ADGetnumChannels(bool input) { DBG1("(input=%d)\n",input); FIXME; return(0); } void BuzzMachineCallbacks::ADWrite(int channel, float *psamples, int numsamples) { DBG3("(channel=%d,psamples=%p,numsamples=%d)\n",channel,psamples,numsamples); FIXME; } void BuzzMachineCallbacks::ADRead(int channel, float *psamples, int numsamples) { DBG3("(channel=%d,psamples=%p,numsamples=%d)\n",channel,psamples,numsamples); FIXME; } // if n=1 Work(), n=2 WorkMonoToStereo() void BuzzMachineCallbacks::SetnumOutputChannels(CMachine *pmac, int n) { DBG2("(pmac=%p,n=%d)\n",pmac,n); FIXME; // used by : ld vocoder xp.dll // would this need to use mdk? } void BuzzMachineCallbacks::SetEventHandler(CMachine *pmac, BEventType et, EVENT_HANDLER_PTR p, void *param) { DBG4("(pmac=%p,et=%d,p=%p,param=%p)\n",pmac,et,p,param); FIXME; } /* Machines: */ // *pout will get one name per Write() void BuzzMachineCallbacks::GetMachineNames(CMachineDataOutput *pout) { DBG1("(pout=%p)\n",pout); FIXME; } CMachine *BuzzMachineCallbacks::GetMachine(char const *name) { DBG1("(name=\"%s\")\n",name); FIXME; return(NULL); } CMachineInfo const *BuzzMachineCallbacks::GetMachineInfo(CMachine *pmac) { DBG1("(pmac=%p)\n",pmac); //FIXME; return(pmac->machine_info); } char const *BuzzMachineCallbacks::GetMachineName(CMachine *pmac) { DBG1("(pmac=%p)\n",pmac); FIXME; return(NULL); } bool BuzzMachineCallbacks::GetInput(int index, float *psamples, int numsamples, bool stereo, float *extrabuffer) { DBG5("(index=%d,psamples=%p,numsamples=%d,stereo=%d,extrabuffer=%p)\n",index,psamples,numsamples,stereo,extrabuffer); FIXME; return(FALSE); } bml-0.6.1/src/BuzzMachineLoader/BuzzMachineVirtualCallbacks.cpp0000644042355400116100000002241311576362477021472 00000000000000/* $Id: BuzzMachineVirtualCallbacks.cpp 1740 2008-04-16 06:19:17Z ensonic $ * * Buzz Machine Loader * Copyright (C) 2006 Buzztard team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifdef WIN32 #include "stdafx.h" #include #else #include "windef.h" #endif #include "stdio.h" #include "MachineInterface.h" /* WaveTable: * we could pass the data from the linux side to the windows side, * so that it can emulate the buzz API */ CWaveInfo const *CMICallbacks::GetWave(int const i) { printf("CMICallbacks::%s(i=%d)\n",__FUNCTION__,i); return(NULL); } CWaveLevel const *CMICallbacks::GetWaveLevel(int const i, int const level) { printf("CMICallbacks::%s(i=%d,level=%d)\n",__FUNCTION__,i,level); return(NULL); } CWaveLevel const *CMICallbacks::GetNearestWaveLevel(int const i, int const note) { printf("CMICallbacks::%s(i=%d,note=%d)\n",__FUNCTION__,i,note); return(NULL); } int CMICallbacks::GetFreeWave() { printf("CMICallbacks::%s()\n",__FUNCTION__); return(0); } bool CMICallbacks::AllocateWave(int const i, int const size, char const *name) { printf("CMICallbacks::%s(i=%d,size=%d,name=\"%s\")\n",__FUNCTION__,i,size,name); return(FALSE); } //-- since buzz 1.2 char const *CMICallbacks::GetWaveName(int const i) { printf("CMICallbacks::%s(i=%d)\n",__FUNCTION__,i); return(NULL); } // i >= 1, NULL name to clear void CMICallbacks::SetInternalWaveName(CMachine *pmac, int const i, char const *name) { printf("CMICallbacks::%s(pmac=%p,i=%d,name=\"%s\")\n",__FUNCTION__,pmac,i,name); } /* GUI: * */ void CMICallbacks::MessageBox(char const *txt) { printf("CMICallbacks::%s(txt=\"%s\")\n",__FUNCTION__,txt); if(txt) puts(txt); } /* Misc/Unknown: */ void CMICallbacks::Lock() { printf("CMICallbacks::%s()\n",__FUNCTION__); } void CMICallbacks::Unlock() { printf("CMICallbacks::%s()\n",__FUNCTION__); } void CMICallbacks::ScheduleEvent(int const time, dword const data) { printf("CMICallbacks::%s(time=%d,data=%ld)\n",__FUNCTION__,time,data); } void CMICallbacks::MidiOut(int const dev, dword const data) { printf("CMICallbacks::%s(dev=%d,data=%ld)\n",__FUNCTION__,dev,data); } short const *CMICallbacks::GetOscillatorTable(int const waveform) { printf("CMICallbacks::%s(waveform=%d)\n",__FUNCTION__,waveform); return(NULL); } /* Application State: */ int CMICallbacks::GetWritePos() { printf("CMICallbacks::%s()\n",__FUNCTION__); return(0); } int CMICallbacks::GetPlayPos() { printf("CMICallbacks::%s()\n",__FUNCTION__); return(0); } //-- since buzz 1.2 // only call this in Init()! CMachine *CMICallbacks::GetThisMachine() { printf("CMICallbacks::%s()\n",__FUNCTION__); return(NULL); } // returns pointer to the sequence if there is a pattern playing CSequence *CMICallbacks::GetPlayingSequence(CMachine *pmac) { printf("CMICallbacks::%s(pmac=%p)\n",__FUNCTION__,pmac); return(NULL); } // gets ptr to raw pattern data for row of a track of a currently playing pattern (or something like that) void *CMICallbacks::GetPlayingRow(CSequence *pseq, int group, int track) { printf("CMICallbacks::%s(pseq=%p,group=%d,track=%d)\n",__FUNCTION__,pseq,group,track); return(NULL); } int CMICallbacks::GetStateFlags() { printf("CMICallbacks::%s()\n",__FUNCTION__); return(0); } /* AuxBus: * */ float *CMICallbacks::GetAuxBuffer() { printf("CMICallbacks::%s()\n",__FUNCTION__); return(NULL); } void CMICallbacks::ClearAuxBuffer() { printf("CMICallbacks::%s()\n",__FUNCTION__); } /* Envelopes: */ int CMICallbacks::GetEnvSize(int const wave, int const env) { printf("CMICallbacks::%s(wave=%d,env=%d)\n",__FUNCTION__,wave,env); return(0); } bool CMICallbacks::GetEnvPoint(int const wave, int const env, int const i, word &x, word &y, int &flags) { printf("CMICallbacks::%s(wave=%d,env=%d,i=%d,&x,&y,&flags)\n",__FUNCTION__,wave,env,i); return(FALSE); } /* Pattern editing: */ void CMICallbacks::SetNumberOfTracks(int const n) { printf("CMICallbacks::%s(n=%d)\n",__FUNCTION__,n); } CPattern *CMICallbacks::CreatePattern(char const *name, int const length) { printf("CMICallbacks::%s(name=\"%s\",length=%d)\n",__FUNCTION__,name,length); return(NULL); } CPattern *CMICallbacks::GetPattern(int const index) { printf("CMICallbacks::%s(index=%d)\n",__FUNCTION__,index); return(NULL); } char const *CMICallbacks::GetPatternName(CPattern *ppat) { printf("CMICallbacks::%s(ppat=%p)\n",__FUNCTION__,ppat); return(NULL); } void CMICallbacks::RenamePattern(char const *oldname, char const *newname) { printf("CMICallbacks::%s(oldname=\"%s\",newname=\"%s\")\n",__FUNCTION__,oldname,newname); } void CMICallbacks::DeletePattern(CPattern *ppat) { printf("CMICallbacks::%s(ppat=%p)\n",__FUNCTION__,ppat); } int CMICallbacks::GetPatternData(CPattern *ppat, int const row, int const group, int const track, int const field) { printf("CMICallbacks::%s(ppat=%p,row=%d,group=%d,track=%d,field=%d)\n",__FUNCTION__,ppat,row,group,track,field); return(0); } void CMICallbacks::SetPatternData(CPattern *ppat, int const row, int const group, int const track, int const field, int const value) { printf("CMICallbacks::%s(ppat=%p,row=%d,group=%d,track=%d,field=%d,value=%d)\n",__FUNCTION__,ppat,row,group,track,field,value); } /* Sequence editing: */ CSequence *CMICallbacks::CreateSequence() { printf("CMICallbacks::%s()\n",__FUNCTION__); return(NULL); } void CMICallbacks::DeleteSequence(CSequence *pseq) { printf("CMICallbacks::%s(pseq=%p)\n",__FUNCTION__,pseq); } // special ppat values for GetSequenceData and SetSequenceData // empty = NULL // = (CPattern *)1 // = (CPattern *)2 // = (CPattern *)3 CPattern *CMICallbacks::GetSequenceData(int const row) { printf("CMICallbacks::%s(row=%d)\n",__FUNCTION__,row); return(NULL); } void CMICallbacks::SetSequenceData(int const row, CPattern *ppat) { printf("CMICallbacks::%s(row=%d,ppat=%p)\n",__FUNCTION__,row,ppat); } //-- buzz v1.2 (MI_VERSION 15) additions start here --- void CMICallbacks::SetMachineInterfaceEx(CMachineInterfaceEx *pex) { printf("CMICallbacks::%s(pex=%p)\n",__FUNCTION__,pex); // @todo where to store that ? } // set value of parameter // group 1=global, 2=track void CMICallbacks::ControlChange__obsolete__(int group, int track, int param, int value) { printf("CMICallbacks::%s(group=%d,track=%d,param=%d,value=%d)\n",__FUNCTION__,group,track,param,value); } // set value of parameter (group & 16 == don't record) void CMICallbacks::ControlChange(CMachine *pmac, int group, int track, int param, int value) { printf("CMICallbacks::%s(pmac=%p,group=%d,track=%d,param=%d,value=%d)\n",__FUNCTION__,pmac,group,track,param,value); } // direct calls to audiodriver, used by WaveInput and WaveOutput // shouldn't be used for anything else int CMICallbacks::ADGetnumChannels(bool input) { printf("CMICallbacks::%s(input=%d)\n",__FUNCTION__,input); return(0); } void CMICallbacks::ADWrite(int channel, float *psamples, int numsamples) { printf("CMICallbacks::%s(channel=%d,psamples=%p,numsamples=%d)\n",__FUNCTION__,channel,psamples,numsamples); } void CMICallbacks::ADRead(int channel, float *psamples, int numsamples) { printf("CMICallbacks::%s(channel=%d,psamples=%p,numsamples=%d)\n",__FUNCTION__,channel,psamples,numsamples); } // if n=1 Work(), n=2 WorkMonoToStereo() void CMICallbacks::SetnumOutputChannels(CMachine *pmac, int n) { printf("CMICallbacks::%s(pmac=%p,n=%d)\n",__FUNCTION__,pmac,n); } void CMICallbacks::SetEventHandler(CMachine *pmac, BEventType et, EVENT_HANDLER_PTR p, void *param) { printf("CMICallbacks::%s(pmac=%p,et=%d,p=?,param=%p)\n",__FUNCTION__,pmac,et,/*p,*/param); } /* Machines: */ // *pout will get one name per Write() void CMICallbacks::GetMachineNames(CMachineDataOutput *pout) { printf("CMICallbacks::%s(pout=%p)\n",__FUNCTION__,pout); } CMachine *CMICallbacks::GetMachine(char const *name) { printf("CMICallbacks::%s(name=\"%s\")\n",__FUNCTION__,name); return(NULL); } CMachineInfo const *CMICallbacks::GetMachineInfo(CMachine *pmac) { printf("CMICallbacks::%s(pmac=%p)\n",__FUNCTION__,pmac); return(NULL); } char const *CMICallbacks::GetMachineName(CMachine *pmac) { printf("CMICallbacks::%s(pmac=%p)\n",__FUNCTION__,pmac); return(NULL); } bool CMICallbacks::GetInput(int index, float *psamples, int numsamples, bool stereo, float *extrabuffer) { printf("CMICallbacks::%s(index=%d,psamples=%p,numsamples=%d,stereo=%d,extrabuffer=%p)\n",__FUNCTION__,index,psamples,numsamples,stereo,extrabuffer); return(FALSE); } bml-0.6.1/src/BuzzMachineLoader/CMachine.h0000644042355400116100000000432511576362476015221 00000000000000/* $Id$ * * Buzz Machine Loader * Copyright (C) 2003-2007 Anders Ervik * Copyright (C) 2008 Buzztard team * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "MachineInterface.h" class CMachine { // Jeskola Buzz compatible CMachine header. // Some machines look up these by reading directly from zzub::metaplugin memory. char _placeholder[12]; char* _internal_name; // 0x14: polac's VST reads this string, set to 0 char _placeholder2[52]; void* _internal_machine; // pointer to CMachine*, scanned for by some plugins void* _internal_machine_ex; // 0x50: same as above, but is not scanned for char _placeholder3[20]; char* _internal_globalState; // 0x68: copy of machines global state char* _internal_trackState; // 0x6C: copy of machines track state char _placeholder4[120]; int _internal_seqCommand; // 0xE8: used by mooter, 0 = --, 1 = mute, 2 = thru char _placeholder6[17]; bool hardMuted; // 0xFD: true when muted by user, used by mooter // End of Buzz compatible header public: CMachineInterface *machine_interface; CMachineInfo *machine_info; public: CMachine() { machine_interface=NULL; machine_info=NULL; } CMachine(CMachineInterface *_machine_interface,CMachineInfo *_machine_info) { machine_interface=_machine_interface; machine_info=_machine_info; } }; bml-0.6.1/src/BuzzMachineLoader/mdkimp.h0000644042355400116100000000276711576362477015044 00000000000000#ifndef __MDK_IMP_H #define __MDK_IMP_H #include #include #include "MachineInterface.h" #include "mdk.h" #define MDK_VERSION 2 class CInput { public: CInput(char const *n, bool st) : Name(n), Stereo(st) {} public: std::string Name; bool Stereo; }; typedef std::list InputList; class CMDKImplementation { friend class CMDKMachineInterface; friend class CMDKMachineInterfaceEx; public: // hmm, we need to call mdkHelper->Init(pcmdii); instead but that crashes /* CMDKImplementation() { HaveInput=0; numChannels=1; MachineWantsChannels=1; } */ virtual ~CMDKImplementation(); virtual void AddInput(char const *macname, bool stereo); virtual void DeleteInput(char const *macname); virtual void RenameInput(char const *macoldname, char const *macnewname); virtual void SetInputChannels(char const *macname, bool stereo); virtual void Input(float *psamples, int numsamples, float amp); virtual bool Work(float *psamples, int numsamples, int const mode); virtual bool WorkMonoToStereo(float *pin, float *pout, int numsamples, int const mode); virtual void Init(CMachineDataInput * const pi); virtual void Save(CMachineDataOutput * const po); virtual void SetOutputMode(bool stereo); protected: void SetMode(); public: CMDKMachineInterface *pmi; InputList Inputs; InputList::iterator InputIterator; int HaveInput; int numChannels; int MachineWantsChannels; CMachine *ThisMachine; float Buffer[2*MAX_BUFFER_LENGTH]; }; #endif bml-0.6.1/src/BuzzMachineLoader/Makefile.in0000644042355400116100000007531411701127005015425 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/BuzzMachineLoader DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_pthread.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(pkglibdir)" LTLIBRARIES = $(pkglib_LTLIBRARIES) am__DEPENDENCIES_1 = libbuzzmachineloader_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libbuzzmachineloader_la_OBJECTS = \ libbuzzmachineloader_la-BuzzMachineCallbacks.lo \ libbuzzmachineloader_la-BuzzMachineCallbacksPre12.lo \ libbuzzmachineloader_la-BuzzMachineLoader.lo \ libbuzzmachineloader_la-BuzzMachineVirtualCallbacks.lo \ libbuzzmachineloader_la-MachineDataImpl.lo \ libbuzzmachineloader_la-OscTable.lo \ libbuzzmachineloader_la-mdkimp.lo \ libbuzzmachineloader_la-debug.lo libbuzzmachineloader_la_OBJECTS = \ $(am_libbuzzmachineloader_la_OBJECTS) AM_V_lt = $(am__v_lt_$(V)) am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) am__v_lt_0 = --silent libbuzzmachineloader_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ $(libbuzzmachineloader_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(libbuzzmachineloader_la_CXXFLAGS) \ $(CXXFLAGS) $(libbuzzmachineloader_la_LDFLAGS) $(LDFLAGS) -o \ $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_$(V)) am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY)) am__v_CXX_0 = @echo " CXX " $@; AM_V_at = $(am__v_at_$(V)) am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) am__v_at_0 = @ CXXLD = $(CXX) CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CXXLD = $(am__v_CXXLD_$(V)) am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY)) am__v_CXXLD_0 = @echo " CXXLD " $@; AM_V_GEN = $(am__v_GEN_$(V)) am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libbuzzmachineloader_la_SOURCES) DIST_SOURCES = $(libbuzzmachineloader_la_SOURCES) HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ARCH_CCASFLAGS = @ARCH_CCASFLAGS@ ARCH_CFLAGS = @ARCH_CFLAGS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BML_CFLAGS = @BML_CFLAGS@ BML_CXXFLAGS = @BML_CXXFLAGS@ BML_LIBS = @BML_LIBS@ BML_MAJOR_VERSION = @BML_MAJOR_VERSION@ BML_MICRO_VERSION = @BML_MICRO_VERSION@ BML_MINOR_VERSION = @BML_MINOR_VERSION@ BML_VERSION = @BML_VERSION@ BML_VERSION_INFO = @BML_VERSION_INFO@ BML_VERSION_NUMBER = @BML_VERSION_NUMBER@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBM = @LIBM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ locv_path = @locv_path@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ pkglib_LTLIBRARIES = libbuzzmachineloader.la libbuzzmachineloader_la_SOURCES = \ BuzzMachineCallbacks.cpp \ BuzzMachineCallbacksPre12.cpp \ BuzzMachineLoader.cpp \ BuzzMachineVirtualCallbacks.cpp \ MachineDataImpl.cpp \ OscTable.cpp \ mdkimp.cpp \ debug.cpp noinst_HEADERS = \ BuzzMachine.h \ BuzzMachineCallbacks.h \ BuzzMachineCallbacksPre12.h \ BuzzMachineLoader.h \ CMachine.h \ MachineDataImpl.h \ MachineInterface.h \ OscTable.h \ mdk.h \ mdkimp.h \ bw.h \ debug.h \ dsplib.h \ resample.h libbuzzmachineloader_la_CXXFLAGS = $(PTHREAD_CFLAGS) $(BML_CXXFLAGS) libbuzzmachineloader_la_LIBADD = $(LIBM) $(PTHREAD_LIBS) $(BML_LIBS) -lstdc++ libbuzzmachineloader_la_LDFLAGS = -module -avoid-version libbuzzmachineloader_la_LIBTOOLFLAGS = --tag=disable-static AM_CPPFLAGS = -I$(top_srcdir)/dllwrapper/wine all: all-am .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/BuzzMachineLoader/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/BuzzMachineLoader/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \ } uninstall-pkglibLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \ done clean-pkglibLTLIBRARIES: -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES) @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libbuzzmachineloader.la: $(libbuzzmachineloader_la_OBJECTS) $(libbuzzmachineloader_la_DEPENDENCIES) $(AM_V_CXXLD)$(libbuzzmachineloader_la_LINK) -rpath $(pkglibdir) $(libbuzzmachineloader_la_OBJECTS) $(libbuzzmachineloader_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbuzzmachineloader_la-BuzzMachineCallbacks.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbuzzmachineloader_la-BuzzMachineCallbacksPre12.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbuzzmachineloader_la-BuzzMachineLoader.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbuzzmachineloader_la-BuzzMachineVirtualCallbacks.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbuzzmachineloader_la-MachineDataImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbuzzmachineloader_la-OscTable.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbuzzmachineloader_la-debug.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libbuzzmachineloader_la-mdkimp.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< libbuzzmachineloader_la-BuzzMachineCallbacks.lo: BuzzMachineCallbacks.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libbuzzmachineloader_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbuzzmachineloader_la_CXXFLAGS) $(CXXFLAGS) -MT libbuzzmachineloader_la-BuzzMachineCallbacks.lo -MD -MP -MF $(DEPDIR)/libbuzzmachineloader_la-BuzzMachineCallbacks.Tpo -c -o libbuzzmachineloader_la-BuzzMachineCallbacks.lo `test -f 'BuzzMachineCallbacks.cpp' || echo '$(srcdir)/'`BuzzMachineCallbacks.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbuzzmachineloader_la-BuzzMachineCallbacks.Tpo $(DEPDIR)/libbuzzmachineloader_la-BuzzMachineCallbacks.Plo @am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='BuzzMachineCallbacks.cpp' object='libbuzzmachineloader_la-BuzzMachineCallbacks.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libbuzzmachineloader_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbuzzmachineloader_la_CXXFLAGS) $(CXXFLAGS) -c -o libbuzzmachineloader_la-BuzzMachineCallbacks.lo `test -f 'BuzzMachineCallbacks.cpp' || echo '$(srcdir)/'`BuzzMachineCallbacks.cpp libbuzzmachineloader_la-BuzzMachineCallbacksPre12.lo: BuzzMachineCallbacksPre12.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libbuzzmachineloader_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbuzzmachineloader_la_CXXFLAGS) $(CXXFLAGS) -MT libbuzzmachineloader_la-BuzzMachineCallbacksPre12.lo -MD -MP -MF $(DEPDIR)/libbuzzmachineloader_la-BuzzMachineCallbacksPre12.Tpo -c -o libbuzzmachineloader_la-BuzzMachineCallbacksPre12.lo `test -f 'BuzzMachineCallbacksPre12.cpp' || echo '$(srcdir)/'`BuzzMachineCallbacksPre12.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbuzzmachineloader_la-BuzzMachineCallbacksPre12.Tpo $(DEPDIR)/libbuzzmachineloader_la-BuzzMachineCallbacksPre12.Plo @am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='BuzzMachineCallbacksPre12.cpp' object='libbuzzmachineloader_la-BuzzMachineCallbacksPre12.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libbuzzmachineloader_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbuzzmachineloader_la_CXXFLAGS) $(CXXFLAGS) -c -o libbuzzmachineloader_la-BuzzMachineCallbacksPre12.lo `test -f 'BuzzMachineCallbacksPre12.cpp' || echo '$(srcdir)/'`BuzzMachineCallbacksPre12.cpp libbuzzmachineloader_la-BuzzMachineLoader.lo: BuzzMachineLoader.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libbuzzmachineloader_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbuzzmachineloader_la_CXXFLAGS) $(CXXFLAGS) -MT libbuzzmachineloader_la-BuzzMachineLoader.lo -MD -MP -MF $(DEPDIR)/libbuzzmachineloader_la-BuzzMachineLoader.Tpo -c -o libbuzzmachineloader_la-BuzzMachineLoader.lo `test -f 'BuzzMachineLoader.cpp' || echo '$(srcdir)/'`BuzzMachineLoader.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbuzzmachineloader_la-BuzzMachineLoader.Tpo $(DEPDIR)/libbuzzmachineloader_la-BuzzMachineLoader.Plo @am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='BuzzMachineLoader.cpp' object='libbuzzmachineloader_la-BuzzMachineLoader.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libbuzzmachineloader_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbuzzmachineloader_la_CXXFLAGS) $(CXXFLAGS) -c -o libbuzzmachineloader_la-BuzzMachineLoader.lo `test -f 'BuzzMachineLoader.cpp' || echo '$(srcdir)/'`BuzzMachineLoader.cpp libbuzzmachineloader_la-BuzzMachineVirtualCallbacks.lo: BuzzMachineVirtualCallbacks.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libbuzzmachineloader_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbuzzmachineloader_la_CXXFLAGS) $(CXXFLAGS) -MT libbuzzmachineloader_la-BuzzMachineVirtualCallbacks.lo -MD -MP -MF $(DEPDIR)/libbuzzmachineloader_la-BuzzMachineVirtualCallbacks.Tpo -c -o libbuzzmachineloader_la-BuzzMachineVirtualCallbacks.lo `test -f 'BuzzMachineVirtualCallbacks.cpp' || echo '$(srcdir)/'`BuzzMachineVirtualCallbacks.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbuzzmachineloader_la-BuzzMachineVirtualCallbacks.Tpo $(DEPDIR)/libbuzzmachineloader_la-BuzzMachineVirtualCallbacks.Plo @am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='BuzzMachineVirtualCallbacks.cpp' object='libbuzzmachineloader_la-BuzzMachineVirtualCallbacks.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libbuzzmachineloader_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbuzzmachineloader_la_CXXFLAGS) $(CXXFLAGS) -c -o libbuzzmachineloader_la-BuzzMachineVirtualCallbacks.lo `test -f 'BuzzMachineVirtualCallbacks.cpp' || echo '$(srcdir)/'`BuzzMachineVirtualCallbacks.cpp libbuzzmachineloader_la-MachineDataImpl.lo: MachineDataImpl.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libbuzzmachineloader_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbuzzmachineloader_la_CXXFLAGS) $(CXXFLAGS) -MT libbuzzmachineloader_la-MachineDataImpl.lo -MD -MP -MF $(DEPDIR)/libbuzzmachineloader_la-MachineDataImpl.Tpo -c -o libbuzzmachineloader_la-MachineDataImpl.lo `test -f 'MachineDataImpl.cpp' || echo '$(srcdir)/'`MachineDataImpl.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbuzzmachineloader_la-MachineDataImpl.Tpo $(DEPDIR)/libbuzzmachineloader_la-MachineDataImpl.Plo @am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='MachineDataImpl.cpp' object='libbuzzmachineloader_la-MachineDataImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libbuzzmachineloader_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbuzzmachineloader_la_CXXFLAGS) $(CXXFLAGS) -c -o libbuzzmachineloader_la-MachineDataImpl.lo `test -f 'MachineDataImpl.cpp' || echo '$(srcdir)/'`MachineDataImpl.cpp libbuzzmachineloader_la-OscTable.lo: OscTable.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libbuzzmachineloader_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbuzzmachineloader_la_CXXFLAGS) $(CXXFLAGS) -MT libbuzzmachineloader_la-OscTable.lo -MD -MP -MF $(DEPDIR)/libbuzzmachineloader_la-OscTable.Tpo -c -o libbuzzmachineloader_la-OscTable.lo `test -f 'OscTable.cpp' || echo '$(srcdir)/'`OscTable.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbuzzmachineloader_la-OscTable.Tpo $(DEPDIR)/libbuzzmachineloader_la-OscTable.Plo @am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='OscTable.cpp' object='libbuzzmachineloader_la-OscTable.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libbuzzmachineloader_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbuzzmachineloader_la_CXXFLAGS) $(CXXFLAGS) -c -o libbuzzmachineloader_la-OscTable.lo `test -f 'OscTable.cpp' || echo '$(srcdir)/'`OscTable.cpp libbuzzmachineloader_la-mdkimp.lo: mdkimp.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libbuzzmachineloader_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbuzzmachineloader_la_CXXFLAGS) $(CXXFLAGS) -MT libbuzzmachineloader_la-mdkimp.lo -MD -MP -MF $(DEPDIR)/libbuzzmachineloader_la-mdkimp.Tpo -c -o libbuzzmachineloader_la-mdkimp.lo `test -f 'mdkimp.cpp' || echo '$(srcdir)/'`mdkimp.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbuzzmachineloader_la-mdkimp.Tpo $(DEPDIR)/libbuzzmachineloader_la-mdkimp.Plo @am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='mdkimp.cpp' object='libbuzzmachineloader_la-mdkimp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libbuzzmachineloader_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbuzzmachineloader_la_CXXFLAGS) $(CXXFLAGS) -c -o libbuzzmachineloader_la-mdkimp.lo `test -f 'mdkimp.cpp' || echo '$(srcdir)/'`mdkimp.cpp libbuzzmachineloader_la-debug.lo: debug.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libbuzzmachineloader_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbuzzmachineloader_la_CXXFLAGS) $(CXXFLAGS) -MT libbuzzmachineloader_la-debug.lo -MD -MP -MF $(DEPDIR)/libbuzzmachineloader_la-debug.Tpo -c -o libbuzzmachineloader_la-debug.lo `test -f 'debug.cpp' || echo '$(srcdir)/'`debug.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libbuzzmachineloader_la-debug.Tpo $(DEPDIR)/libbuzzmachineloader_la-debug.Plo @am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='debug.cpp' object='libbuzzmachineloader_la-debug.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libbuzzmachineloader_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libbuzzmachineloader_la_CXXFLAGS) $(CXXFLAGS) -c -o libbuzzmachineloader_la-debug.lo `test -f 'debug.cpp' || echo '$(srcdir)/'`debug.cpp mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(pkglibdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-pkglibLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-pkglibLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-pkglibLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-pkglibLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-pkglibLTLIBRARIES \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-pkglibLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: bml-0.6.1/src/BuzzMachineLoader/MachineDataImpl.cpp0000644042355400116100000000402711576362477017065 00000000000000#include "MachineInterface.h" #include "MachineDataImpl.h" #include "debug.h" // virtual 'null' base implementation of CMachineDataInput and CMachineDataOutput void CMachineDataInput::Read(void * pmem, const int n_size) { // clear ... DBG2("(pbuf=%p,numbytes=%d) : no buffer\n",pmem,n_size); memset(pmem, 0, n_size); } void CMachineDataOutput::Write(void * pmem, const int n_size) { // do nothing ... DBG2("(pbuf=%p,numbytes=%d) : no buffer\n",pmem,n_size); } // Implementation of Read/Write classes for internal machine data load/save operations CMachineDataInputImpl::CMachineDataInputImpl(HANDLE hFile) : m_hFile(hFile), m_pbyBuffer(NULL), m_dwBufferLen(0) {}; CMachineDataInputImpl::CMachineDataInputImpl(BYTE * pbyBuffer, DWORD dwBufferLen) : m_hFile(NULL), m_pbyBuffer(pbyBuffer), m_dwBufferLen(dwBufferLen) {}; CMachineDataInputImpl::~CMachineDataInputImpl() { // } void CMachineDataInputImpl::Read(void* pmem, const int n_size) { if (m_pbyBuffer) { if (m_dwBufferLen >= (DWORD)n_size) { memcpy(pmem, m_pbyBuffer, n_size); m_pbyBuffer += n_size; m_dwBufferLen -= n_size; } else { DBG2("(pbuf=%p,numbytes=%d) : out of buffer\n",pmem,n_size); memcpy(pmem, m_pbyBuffer, m_dwBufferLen); m_pbyBuffer += m_dwBufferLen; m_dwBufferLen = 0; } } else if (m_hFile) { // clear ... DBG2("(pbuf=%p,numbytes=%d) : no file\n",pmem,n_size); memset(pmem, 0, n_size); } else { // clear ... DBG2("(pbuf=%p,numbytes=%d) : no buffer\n",pmem,n_size); memset(pmem, 0, n_size); } } CMachineDataOutputImpl::CMachineDataOutputImpl(HANDLE hFile) : m_hFile(hFile), m_pbyBuffer(NULL), m_dwBufferLen(0) {}; CMachineDataOutputImpl::CMachineDataOutputImpl(void) : m_hFile(NULL), m_pbyBuffer(NULL), m_dwBufferLen(0) {}; DWORD CMachineDataOutputImpl::GetCount() const { return m_dwBufferLen; } const BYTE * CMachineDataOutputImpl::GetOutputBuffer() const { return m_pbyBuffer; } CMachineDataOutputImpl::~CMachineDataOutputImpl() { /// } bml-0.6.1/src/BuzzMachineLoader/BuzzMachine.h0000644042355400116100000000270111576362477015766 00000000000000/* $Id: BuzzMachine.h 1740 2008-04-16 06:19:17Z ensonic $ * * Buzz Machine Loader * Copyright (C) 2006 Buzztard team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef BUZZ_MACHINE_H #define BUZZ_MACHINE_H #ifdef __cplusplus extern "C" { #endif // our high level instance handle #ifdef BUZZ_MACHINE_LOADER class BuzzMachineCallbacks; // @idea what about deriving this from CMICallbacks class BuzzMachine { public: // library handle HMODULE h; // callback instance BuzzMachineCallbacks *callbacks; // classes CMachineInfo *machine_info; CMachineInterface *machine; //callbacks->machine_ex; //CMachineInterfaceEx *machine_ex; }; #else typedef void BuzzMachine; #endif #ifdef __cplusplus } #endif #endif // BUZZ_MACHINE_H bml-0.6.1/src/BuzzMachineLoader/MachineInterface.h0000644042355400116100000004000511576362476016732 00000000000000// Copyright (C) 1997-2000 Oskari Tammelin (ot@iki.fi) // This header file may be used to write _freeware_ DLL "machines" for Buzz // Using it for anything else is not allowed without a permission from the author #ifndef __MACHINE_INTERFACE_H #define __MACHINE_INTERFACE_H #include #include #include #define MI_VERSION 15 typedef unsigned char byte; typedef unsigned short word; typedef unsigned long dword; double const PI = 3.14159265358979323846; // max number of samples in work() #define MAX_BUFFER_LENGTH 256 // in number of samples // machine types #define MT_MASTER 0 #define MT_GENERATOR 1 #define MT_EFFECT 2 // special parameter values #define NOTE_NO 0 #define NOTE_OFF 255 #define NOTE_MIN 1 // C-0 #define NOTE_MAX ((16 * 9) + 12) // B-9 #define SWITCH_OFF 0 #define SWITCH_ON 1 #define SWITCH_NO 255 #define WAVE_MIN 1 #define WAVE_MAX 200 #define WAVE_NO 0 // CMachineParameter flags #define MPF_WAVE 1 // refers to a wavetable slot #define MPF_STATE 2 // is continuously changing (not used for notes and triggers) #define MPF_TICK_ON_EDIT 4 // causes the host to send you a Tick() message immediatly after the user enters a value in the pattern or machine editor // CMachineInfo flags #define MIF_MONO_TO_STEREO (1<<0) #define MIF_PLAYS_WAVES (1<<1) #define MIF_USES_LIB_INTERFACE (1<<2) #define MIF_USES_INSTRUMENTS (1<<3) #define MIF_DOES_INPUT_MIXING (1<<4) #define MIF_NO_OUTPUT (1<<5) // used for effect machines that don't actually use any outputs (WaveOutput, AuxSend etc.) #define MIF_CONTROL_MACHINE (1<<6) // used to control other (non MIF_CONTROL_MACHINE) machines #define MIF_INTERNAL_AUX (1<<7) // uses internal aux bus (jeskola mixer and jeskola mixer aux) // work modes #define WM_NOIO 0 #define WM_READ 1 #define WM_WRITE 2 #define WM_READWRITE 3 // state flags #define SF_PLAYING 1 #define SF_RECORDING 2 enum BEventType { DoubleClickMachine, // return true to ignore default handler (open parameter dialog), no parameters gDeleteMachine // data = CMachine *, param = ThisMac }; class CMachineInterface; typedef bool (CMachineInterface::*EVENT_HANDLER_PTR)(void *); enum CMPType { pt_note, // byte pt_switch, // byte pt_byte, // byte pt_word // word }; class CMachineParameter { public: CMPType Type; // pt_byte char const *Name; // Short name: "Cutoff" char const *Description;// Longer description: "Cutoff Frequency (0-7f)" int MinValue; // 0 int MaxValue; // 127 int NoValue; // 255 int Flags; int DefValue; // default value for params that have MPF_STATE flag set }; class CMachineAttribute { public: char const *Name; int MinValue; int MaxValue; int DefValue; }; class CMasterInfo { public: int BeatsPerMin; // [16..500] int TicksPerBeat; // [1..32] int SamplesPerSec; // usually 44100, but machines should support any rate from 11050 to 96000 int SamplesPerTick; // (int)((60 * SPS) / (BPM * TPB)) int PosInTick; // [0..SamplesPerTick-1] float TicksPerSec; // (float)SPS / (float)SPT }; // CWaveInfo flags #define WF_LOOP 1 #define WF_STEREO 8 #define WF_BIDIR_LOOP 16 class CWaveInfo { public: int Flags; float Volume; }; class CWaveLevel { public: int numSamples; short *pSamples; int RootNote; int SamplesPerSec; int LoopStart; int LoopEnd; }; // oscillator waveforms (used with GetOscillatorTable function) #define OWF_SINE 0 #define OWF_SAWTOOTH 1 #define OWF_PULSE 2 // square #define OWF_TRIANGLE 3 #define OWF_NOISE 4 #define OWF_303_SAWTOOTH 5 // each oscillator table contains one full cycle of a bandlimited waveform at 11 levels // level 0 = 2048 samples // level 1 = 1024 samples // level 2 = 512 samples // ... // level 9 = 8 samples // level 10 = 4 samples // level 11 = 2 samples // // the waves are normalized to 16bit signed integers // // GetOscillatorTable retusns pointer to a table // GetOscTblOffset returns offset in the table for a specified level inline int GetOscTblOffset(int const level) { assert(level >= 0 && level <= 10); return (2048+1024+512+256+128+64+32+16+8+4) & ~((2048+1024+512+256+128+64+32+16+8+4) >> level); } class CPattern; class CSequence; class CMachineInterfaceEx; class CMachine; class CMachineDataOutput; class CMachineInfo; class CMICallbacks { public: // virtual ~CMICallbacks() {} virtual CWaveInfo const *GetWave(int const i); virtual CWaveLevel const *GetWaveLevel(int const i, int const level); virtual void MessageBox(char const *txt); virtual void Lock(); virtual void Unlock(); virtual int GetWritePos(); virtual int GetPlayPos(); virtual float *GetAuxBuffer(); virtual void ClearAuxBuffer(); virtual int GetFreeWave(); virtual bool AllocateWave(int const i, int const size, char const *name); virtual void ScheduleEvent(int const time, dword const data); virtual void MidiOut(int const dev, dword const data); virtual short const *GetOscillatorTable(int const waveform); // envelopes virtual int GetEnvSize(int const wave, int const env); virtual bool GetEnvPoint(int const wave, int const env, int const i, word &x, word &y, int &flags); virtual CWaveLevel const *GetNearestWaveLevel(int const i, int const note); // pattern editing virtual void SetNumberOfTracks(int const n); virtual CPattern *CreatePattern(char const *name, int const length); virtual CPattern *GetPattern(int const index); virtual char const *GetPatternName(CPattern *ppat); virtual void RenamePattern(char const *oldname, char const *newname); virtual void DeletePattern(CPattern *ppat); virtual int GetPatternData(CPattern *ppat, int const row, int const group, int const track, int const field); virtual void SetPatternData(CPattern *ppat, int const row, int const group, int const track, int const field, int const value); // sequence editing virtual CSequence *CreateSequence(); virtual void DeleteSequence(CSequence *pseq); // special ppat values for GetSequenceData and SetSequenceData // empty = NULL // = (CPattern *)1 // = (CPattern *)2 // = (CPattern *)3 virtual CPattern *GetSequenceData(int const row); virtual void SetSequenceData(int const row, CPattern *ppat); // buzz v1.2 (MI_VERSION 15) additions start here virtual void SetMachineInterfaceEx(CMachineInterfaceEx *pex); // group 1=global, 2=track virtual void ControlChange__obsolete__(int group, int track, int param, int value); // set value of parameter // direct calls to audiodriver, used by WaveInput and WaveOutput // shouldn't be used for anything else virtual int ADGetnumChannels(bool input); virtual void ADWrite(int channel, float *psamples, int numsamples); virtual void ADRead(int channel, float *psamples, int numsamples); virtual CMachine *GetThisMachine(); // only call this in Init()! virtual void ControlChange(CMachine *pmac, int group, int track, int param, int value); // set value of parameter (group & 16 == don't record) // returns pointer to the sequence if there is a pattern playing virtual CSequence *GetPlayingSequence(CMachine *pmac); // gets ptr to raw pattern data for row of a track of a currently playing pattern (or something like that) virtual void *GetPlayingRow(CSequence *pseq, int group, int track); virtual int GetStateFlags(); virtual void SetnumOutputChannels(CMachine *pmac, int n); // if n=1 Work(), n=2 WorkMonoToStereo() virtual void SetEventHandler(CMachine *pmac, BEventType et, EVENT_HANDLER_PTR p, void *param); virtual char const *GetWaveName(int const i); virtual void SetInternalWaveName(CMachine *pmac, int const i, char const *name); // i >= 1, NULL name to clear virtual void GetMachineNames(CMachineDataOutput *pout); // *pout will get one name per Write() virtual CMachine *GetMachine(char const *name); virtual CMachineInfo const *GetMachineInfo(CMachine *pmac); virtual char const *GetMachineName(CMachine *pmac); virtual bool GetInput(int index, float *psamples, int numsamples, bool stereo, float *extrabuffer); }; class CLibInterface { public: // virtual ~CLibInterface() {} virtual void GetInstrumentList(CMachineDataOutput *pout) {} // make some space to vtable so this interface can be extended later virtual void Dummy1() {} virtual void Dummy2() {} virtual void Dummy3() {} virtual void Dummy4() {} virtual void Dummy5() {} virtual void Dummy6() {} virtual void Dummy7() {} virtual void Dummy8() {} virtual void Dummy9() {} virtual void Dummy10() {} virtual void Dummy11() {} virtual void Dummy12() {} virtual void Dummy13() {} virtual void Dummy14() {} virtual void Dummy15() {} virtual void Dummy16() {} virtual void Dummy17() {} virtual void Dummy18() {} virtual void Dummy19() {} virtual void Dummy20() {} virtual void Dummy21() {} virtual void Dummy22() {} virtual void Dummy23() {} virtual void Dummy24() {} virtual void Dummy25() {} virtual void Dummy26() {} virtual void Dummy27() {} virtual void Dummy28() {} virtual void Dummy29() {} virtual void Dummy30() {} virtual void Dummy31() {} virtual void Dummy32() {} }; class CMachineInfo { public: int Type; // MT_GENERATOR or MT_EFFECT, int Version; // MI_VERSION // v1.2: high word = internal machine version // higher version wins if two copies of machine found int Flags; int minTracks; // [0..256] must be >= 1 if numTrackParameters > 0 int maxTracks; // [minTracks..256] int numGlobalParameters; int numTrackParameters; CMachineParameter const **Parameters; int numAttributes; CMachineAttribute const **Attributes; char const *Name; // "Jeskola Reverb" char const *ShortName; // "Reverb" char const *Author; // "Oskari Tammelin" char const *Commands; // "Command1\nCommand2\nCommand3..." CLibInterface *pLI; // ignored if MIF_USES_LIB_INTERFACE is not set }; class CMachineDataInput { public: // virtual ~CMachineDataInput() {} virtual void Read(void *pbuf, int const numbytes); void Read(int &d) { Read(&d, sizeof(int)); } void Read(dword &d) { Read(&d, sizeof(dword)); } void Read(short &d) { Read(&d, sizeof(short)); } void Read(word &d) { Read(&d, sizeof(word)); } void Read(char &d) { Read(&d, sizeof(char)); } void Read(byte &d) { Read(&d, sizeof(byte)); } void Read(float &d) { Read(&d, sizeof(float)); } void Read(double &d) { Read(&d, sizeof(double)); } void Read(bool &d) { Read(&d, sizeof(bool)); } }; class CMachineDataOutput { public: // virtual ~CMachineDataOutput() {} virtual void Write(void *pbuf, int const numbytes); void Write(int d) { Write(&d, sizeof(int)); } void Write(dword d) { Write(&d, sizeof(dword)); } void Write(short d) { Write(&d, sizeof(short)); } void Write(word d) { Write(&d, sizeof(word)); } void Write(char d) { Write(&d, sizeof(char)); } void Write(byte d) { Write(&d, sizeof(byte)); } void Write(float d) { Write(&d, sizeof(float)); } void Write(double d) { Write(&d, sizeof(double)); } void Write(bool d) { Write(&d, sizeof(bool)); } void Write(char const *str) { Write((void *)str, (int)(strlen(str)+1)); } }; // envelope info flags #define EIF_SUSTAIN 1 #define EIF_LOOP 2 class CEnvelopeInfo { public: char const *Name; int Flags; }; class CMachineInterface { public: virtual ~CMachineInterface() {} virtual void Init(CMachineDataInput * const pi) {} virtual void Tick() {} virtual bool Work(float *psamples, int numsamples, int const mode) { return false; } virtual bool WorkMonoToStereo(float *pin, float *pout, int numsamples, int const mode) { return false; } virtual void Stop() {} virtual void Save(CMachineDataOutput * const po) {} virtual void AttributesChanged() {} virtual void Command(int const i) {} virtual void SetNumTracks(int const n) {} virtual void MuteTrack(int const i) {} virtual bool IsTrackMuted(int const i) const { return false; } virtual void MidiNote(int const channel, int const value, int const velocity) {} virtual void Event(dword const data) {} virtual char const *DescribeValue(int const param, int const value) { return NULL; } virtual CEnvelopeInfo const **GetEnvelopeInfos() { return NULL; } virtual bool PlayWave(int const wave, int const note, float const volume) { return false; } virtual void StopWave() {} virtual int GetWaveEnvPlayPos(int const env) { return -1; } public: // initialize these members in the constructor void *GlobalVals; void *TrackVals; int *AttrVals; // these members are initialized by the // engine right after it calls CreateMachine() // don't touch them in the constructor CMasterInfo *pMasterInfo; CMICallbacks *pCB; }; // buzz v1.2 extended machine interface class CMachineInterfaceEx { public: // virtual ~CMachineInterfaceEx() {} virtual char const *DescribeParam(int const param) { return NULL; } // use this to dynamically change name of parameter virtual bool SetInstrument(char const *name) { return false; } virtual void GetSubMenu(int const i, CMachineDataOutput *pout) {} virtual void AddInput(char const *macname, bool stereo) {} // called when input is added to a machine virtual void DeleteInput(char const *macename) {} virtual void RenameInput(char const *macoldname, char const *macnewname) {} virtual void Input(float *psamples, int numsamples, float amp) {} // if MIX_DOES_INPUT_MIXING virtual void MidiControlChange(int const ctrl, int const channel, int const value) {} virtual void SetInputChannels(char const *macname, bool stereo) {} virtual bool HandleInput(int index, int amp, int pan) { return false; } // make some space to vtable so this interface can be extended later virtual void Dummy1() {} virtual void Dummy2() {} virtual void Dummy3() {} virtual void Dummy4() {} virtual void Dummy5() {} virtual void Dummy6() {} virtual void Dummy7() {} virtual void Dummy8() {} virtual void Dummy9() {} virtual void Dummy10() {} virtual void Dummy11() {} virtual void Dummy12() {} virtual void Dummy13() {} virtual void Dummy14() {} virtual void Dummy15() {} virtual void Dummy16() {} virtual void Dummy17() {} virtual void Dummy18() {} virtual void Dummy19() {} virtual void Dummy20() {} virtual void Dummy21() {} virtual void Dummy22() {} virtual void Dummy23() {} virtual void Dummy24() {} virtual void Dummy25() {} virtual void Dummy26() {} virtual void Dummy27() {} virtual void Dummy28() {} virtual void Dummy29() {} virtual void Dummy30() {} virtual void Dummy31() {} virtual void Dummy32() {} }; class CMILock { public: CMILock(CMICallbacks *p) { pCB = p; pCB->Lock(); } ~CMILock() { pCB->Unlock(); } private: CMICallbacks *pCB; }; #define MACHINE_LOCK CMILock __machinelock(pCB); #ifdef STATIC_BUILD typedef CMachineInfo const *(__cdecl *GET_INFO)(); typedef CMachineInterface *(__cdecl *CREATE_MACHINE)(); extern void RegisterMachine(CMachineInfo const *pmi, GET_INFO gi, CREATE_MACHINE cm); #define DLL_EXPORTS(INIT_FUNC) \ static CMachineInfo const * __cdecl GetInfo() { return &MacInfo; } \ static CMachineInterface * __cdecl CreateMachine() { return new mi; } \ void INIT_FUNC() { RegisterMachine(&MacInfo, GetInfo, CreateMachine); } \ #define DLL_EXPORTS_NS(NS, INIT_FUNC) /* namespaced version */ \ static CMachineInfo const * __cdecl GetInfo() { return &NS::MacInfo; } \ static CMachineInterface * __cdecl CreateMachine() { return new NS::mi; } \ void INIT_FUNC() { RegisterMachine(&NS::MacInfo, GetInfo, CreateMachine); } \ #else #define DLL_EXPORTS extern "C" { \ __declspec(dllexport) CMachineInfo const * __cdecl GetInfo() \ { \ return &MacInfo; \ } \ __declspec(dllexport) CMachineInterface * __cdecl CreateMachine() \ { \ return new mi; \ } \ } #endif #endif bml-0.6.1/src/BuzzMachineLoader/bw.h0000644042355400116100000000102611576362477014156 00000000000000#ifndef __BUZZ_DSPLIB_BW_H #define __BUZZ_DSPLIB_BW_H class CBWState { public: float a[5]; // coefficients float i[2]; // past inputs float o[2]; // past outputs float ri[2]; // past right inputs (for stereo mode) float ro[2]; // past right outputs int IdleCount; }; // work modes #define WM_NOIO 0 #define WM_READ 1 #define WM_WRITE 2 #define WM_READWRITE 3 #define BW_SETTLE_TIME 256 #endif bml-0.6.1/src/BuzzMachineLoader/OscTable.cpp0000644042355400116100000061560111576362477015607 00000000000000/* $Id: OscTable.cpp 1740 2008-04-16 06:19:17Z ensonic $ * * Buzz Machine Loader * Copyright (C) 2006 Buzztard team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ extern "C" const short OscTable[6][4096] = { //Osc 0 Level 0 { 0 , 100 , 201 , 301 , 402 , 502 , 603 , 703 , 804 , 904 , 1005 , 1105 , 1206 , 1306 , 1406 , 1507 , 1607 , 1708 , 1808 , 1908 , 2009 , 2109 , 2209 , 2310 , 2410 , 2510 , 2610 , 2711 , 2811 , 2911 , 3011 , 3111 , 3211 , 3311 , 3411 , 3511 , 3611 , 3711 , 3811 , 3911 , 4011 , 4110 , 4210 , 4310 , 4409 , 4509 , 4608 , 4708 , 4807 , 4907 , 5006 , 5106 , 5205 , 5304 , 5403 , 5502 , 5601 , 5700 , 5799 , 5898 , 5997 , 6096 , 6195 , 6293 , 6392 , 6491 , 6589 , 6688 , 6786 , 6884 , 6982 , 7081 , 7179 , 7277 , 7375 , 7473 , 7571 , 7668 , 7766 , 7864 , 7961 , 8059 , 8156 , 8253 , 8351 , 8448 , 8545 , 8642 , 8739 , 8836 , 8932 , 9029 , 9126 , 9222 , 9319 , 9415 , 9511 , 9607 , 9703 , 9799 , 9895 , 9991 , 10087 , 10182 , 10278 , 10373 , 10469 , 10564 , 10659 , 10754 , 10849 , 10944 , 11038 , 11133 , 11227 , 11322 , 11416 , 11510 , 11604 , 11698 , 11792 , 11886 , 11980 , 12073 , 12166 , 12260 , 12353 , 12446 , 12539 , 12632 , 12724 , 12817 , 12909 , 13002 , 13094 , 13186 , 13278 , 13370 , 13462 , 13553 , 13645 , 13736 , 13827 , 13918 , 14009 , 14100 , 14191 , 14281 , 14372 , 14462 , 14552 , 14642 , 14732 , 14822 , 14911 , 15001 , 15090 , 15179 , 15268 , 15357 , 15446 , 15534 , 15623 , 15711 , 15799 , 15887 , 15975 , 16063 , 16150 , 16238 , 16325 , 16412 , 16499 , 16586 , 16672 , 16759 , 16845 , 16931 , 17017 , 17103 , 17189 , 17274 , 17360 , 17445 , 17530 , 17615 , 17699 , 17784 , 17868 , 17952 , 18036 , 18120 , 18204 , 18287 , 18371 , 18454 , 18537 , 18620 , 18702 , 18785 , 18867 , 18949 , 19031 , 19113 , 19194 , 19276 , 19357 , 19438 , 19519 , 19599 , 19680 , 19760 , 19840 , 19920 , 20000 , 20079 , 20159 , 20238 , 20317 , 20396 , 20474 , 20553 , 20631 , 20709 , 20787 , 20864 , 20942 , 21019 , 21096 , 21173 , 21249 , 21326 , 21402 , 21478 , 21554 , 21629 , 21705 , 21780 , 21855 , 21930 , 22004 , 22079 , 22153 , 22227 , 22301 , 22374 , 22448 , 22521 , 22594 , 22666 , 22739 , 22811 , 22883 , 22955 , 23027 , 23098 , 23169 , 23240 , 23311 , 23382 , 23452 , 23522 , 23592 , 23661 , 23731 , 23800 , 23869 , 23938 , 24006 , 24075 , 24143 , 24211 , 24278 , 24346 , 24413 , 24480 , 24546 , 24613 , 24679 , 24745 , 24811 , 24877 , 24942 , 25007 , 25072 , 25136 , 25201 , 25265 , 25329 , 25392 , 25456 , 25519 , 25582 , 25645 , 25707 , 25769 , 25831 , 25893 , 25954 , 26016 , 26077 , 26137 , 26198 , 26258 , 26318 , 26378 , 26437 , 26497 , 26556 , 26615 , 26673 , 26731 , 26789 , 26847 , 26905 , 26962 , 27019 , 27076 , 27132 , 27188 , 27244 , 27300 , 27355 , 27411 , 27466 , 27520 , 27575 , 27629 , 27683 , 27736 , 27790 , 27843 , 27896 , 27948 , 28001 , 28053 , 28105 , 28156 , 28208 , 28259 , 28309 , 28360 , 28410 , 28460 , 28510 , 28559 , 28608 , 28657 , 28706 , 28754 , 28802 , 28850 , 28897 , 28945 , 28992 , 29038 , 29085 , 29131 , 29177 , 29222 , 29268 , 29313 , 29358 , 29402 , 29446 , 29490 , 29534 , 29577 , 29621 , 29663 , 29706 , 29748 , 29790 , 29832 , 29873 , 29915 , 29955 , 29996 , 30036 , 30076 , 30116 , 30156 , 30195 , 30234 , 30272 , 30311 , 30349 , 30386 , 30424 , 30461 , 30498 , 30535 , 30571 , 30607 , 30643 , 30678 , 30713 , 30748 , 30783 , 30817 , 30851 , 30885 , 30918 , 30951 , 30984 , 31017 , 31049 , 31081 , 31113 , 31144 , 31175 , 31206 , 31236 , 31267 , 31297 , 31326 , 31356 , 31385 , 31413 , 31442 , 31470 , 31498 , 31525 , 31553 , 31580 , 31606 , 31633 , 31659 , 31684 , 31710 , 31735 , 31760 , 31785 , 31809 , 31833 , 31856 , 31880 , 31903 , 31926 , 31948 , 31970 , 31992 , 32014 , 32035 , 32056 , 32077 , 32097 , 32117 , 32137 , 32156 , 32176 , 32194 , 32213 , 32231 , 32249 , 32267 , 32284 , 32301 , 32318 , 32334 , 32350 , 32366 , 32382 , 32397 , 32412 , 32426 , 32441 , 32455 , 32468 , 32482 , 32495 , 32508 , 32520 , 32532 , 32544 , 32556 , 32567 , 32578 , 32588 , 32599 , 32609 , 32618 , 32628 , 32637 , 32646 , 32654 , 32662 , 32670 , 32678 , 32685 , 32692 , 32699 , 32705 , 32711 , 32717 , 32722 , 32727 , 32732 , 32736 , 32740 , 32744 , 32748 , 32751 , 32754 , 32757 , 32759 , 32761 , 32763 , 32764 , 32765 , 32766 , 32766 , 32767 , 32766 , 32766 , 32765 , 32764 , 32763 , 32761 , 32759 , 32757 , 32754 , 32751 , 32748 , 32744 , 32740 , 32736 , 32732 , 32727 , 32722 , 32717 , 32711 , 32705 , 32699 , 32692 , 32685 , 32678 , 32670 , 32662 , 32654 , 32646 , 32637 , 32628 , 32618 , 32609 , 32599 , 32588 , 32578 , 32567 , 32556 , 32544 , 32532 , 32520 , 32508 , 32495 , 32482 , 32468 , 32455 , 32441 , 32426 , 32412 , 32397 , 32382 , 32366 , 32350 , 32334 , 32318 , 32301 , 32284 , 32267 , 32249 , 32231 , 32213 , 32194 , 32176 , 32156 , 32137 , 32117 , 32097 , 32077 , 32056 , 32035 , 32014 , 31992 , 31970 , 31948 , 31926 , 31903 , 31880 , 31856 , 31833 , 31809 , 31785 , 31760 , 31735 , 31710 , 31684 , 31659 , 31633 , 31606 , 31580 , 31553 , 31525 , 31498 , 31470 , 31442 , 31413 , 31385 , 31356 , 31326 , 31297 , 31267 , 31236 , 31206 , 31175 , 31144 , 31113 , 31081 , 31049 , 31017 , 30984 , 30951 , 30918 , 30885 , 30851 , 30817 , 30783 , 30748 , 30713 , 30678 , 30643 , 30607 , 30571 , 30535 , 30498 , 30461 , 30424 , 30386 , 30349 , 30311 , 30272 , 30234 , 30195 , 30156 , 30116 , 30076 , 30036 , 29996 , 29955 , 29915 , 29873 , 29832 , 29790 , 29748 , 29706 , 29663 , 29621 , 29577 , 29534 , 29490 , 29446 , 29402 , 29358 , 29313 , 29268 , 29222 , 29177 , 29131 , 29085 , 29038 , 28992 , 28945 , 28897 , 28850 , 28802 , 28754 , 28706 , 28657 , 28608 , 28559 , 28510 , 28460 , 28410 , 28360 , 28309 , 28259 , 28208 , 28156 , 28105 , 28053 , 28001 , 27948 , 27896 , 27843 , 27790 , 27736 , 27683 , 27629 , 27575 , 27520 , 27466 , 27411 , 27355 , 27300 , 27244 , 27188 , 27132 , 27076 , 27019 , 26962 , 26905 , 26847 , 26789 , 26731 , 26673 , 26615 , 26556 , 26497 , 26437 , 26378 , 26318 , 26258 , 26198 , 26137 , 26077 , 26016 , 25954 , 25893 , 25831 , 25769 , 25707 , 25645 , 25582 , 25519 , 25456 , 25392 , 25329 , 25265 , 25201 , 25136 , 25072 , 25007 , 24942 , 24877 , 24811 , 24745 , 24679 , 24613 , 24546 , 24480 , 24413 , 24346 , 24278 , 24211 , 24143 , 24075 , 24006 , 23938 , 23869 , 23800 , 23731 , 23661 , 23592 , 23522 , 23452 , 23382 , 23311 , 23240 , 23169 , 23098 , 23027 , 22955 , 22883 , 22811 , 22739 , 22666 , 22594 , 22521 , 22448 , 22374 , 22301 , 22227 , 22153 , 22079 , 22004 , 21930 , 21855 , 21780 , 21705 , 21629 , 21554 , 21478 , 21402 , 21326 , 21249 , 21173 , 21096 , 21019 , 20942 , 20864 , 20787 , 20709 , 20631 , 20553 , 20474 , 20396 , 20317 , 20238 , 20159 , 20079 , 20000 , 19920 , 19840 , 19760 , 19680 , 19599 , 19519 , 19438 , 19357 , 19276 , 19194 , 19113 , 19031 , 18949 , 18867 , 18785 , 18702 , 18620 , 18537 , 18454 , 18371 , 18287 , 18204 , 18120 , 18036 , 17952 , 17868 , 17784 , 17699 , 17615 , 17530 , 17445 , 17360 , 17274 , 17189 , 17103 , 17017 , 16931 , 16845 , 16759 , 16672 , 16586 , 16499 , 16412 , 16325 , 16238 , 16150 , 16063 , 15975 , 15887 , 15799 , 15711 , 15623 , 15534 , 15446 , 15357 , 15268 , 15179 , 15090 , 15001 , 14911 , 14822 , 14732 , 14642 , 14552 , 14462 , 14372 , 14281 , 14191 , 14100 , 14009 , 13918 , 13827 , 13736 , 13645 , 13553 , 13462 , 13370 , 13278 , 13186 , 13094 , 13002 , 12909 , 12817 , 12724 , 12632 , 12539 , 12446 , 12353 , 12260 , 12166 , 12073 , 11980 , 11886 , 11792 , 11698 , 11604 , 11510 , 11416 , 11322 , 11227 , 11133 , 11038 , 10944 , 10849 , 10754 , 10659 , 10564 , 10469 , 10373 , 10278 , 10182 , 10087 , 9991 , 9895 , 9799 , 9703 , 9607 , 9511 , 9415 , 9319 , 9222 , 9126 , 9029 , 8932 , 8836 , 8739 , 8642 , 8545 , 8448 , 8351 , 8253 , 8156 , 8059 , 7961 , 7864 , 7766 , 7668 , 7571 , 7473 , 7375 , 7277 , 7179 , 7081 , 6982 , 6884 , 6786 , 6688 , 6589 , 6491 , 6392 , 6293 , 6195 , 6096 , 5997 , 5898 , 5799 , 5700 , 5601 , 5502 , 5403 , 5304 , 5205 , 5106 , 5006 , 4907 , 4807 , 4708 , 4608 , 4509 , 4409 , 4310 , 4210 , 4110 , 4011 , 3911 , 3811 , 3711 , 3611 , 3511 , 3411 , 3311 , 3211 , 3111 , 3011 , 2911 , 2811 , 2711 , 2610 , 2510 , 2410 , 2310 , 2209 , 2109 , 2009 , 1908 , 1808 , 1708 , 1607 , 1507 , 1406 , 1306 , 1206 , 1105 , 1005 , 904 , 804 , 703 , 603 , 502 , 402 , 301 , 201 , 100 , 0 , -100 , -201 , -301 , -402 , -502 , -603 , -703 , -804 , -904 , -1005 , -1105 , -1206 , -1306 , -1406 , -1507 , -1607 , -1708 , -1808 , -1908 , -2009 , -2109 , -2209 , -2310 , -2410 , -2510 , -2610 , -2711 , -2811 , -2911 , -3011 , -3111 , -3211 , -3311 , -3411 , -3511 , -3611 , -3711 , -3811 , -3911 , -4011 , -4110 , -4210 , -4310 , -4409 , -4509 , -4608 , -4708 , -4807 , -4907 , -5006 , -5106 , -5205 , -5304 , -5403 , -5502 , -5601 , -5700 , -5799 , -5898 , -5997 , -6096 , -6195 , -6293 , -6392 , -6491 , -6589 , -6688 , -6786 , -6884 , -6982 , -7081 , -7179 , -7277 , -7375 , -7473 , -7571 , -7668 , -7766 , -7864 , -7961 , -8059 , -8156 , -8253 , -8351 , -8448 , -8545 , -8642 , -8739 , -8836 , -8932 , -9029 , -9126 , -9222 , -9319 , -9415 , -9511 , -9607 , -9703 , -9799 , -9895 , -9991 , -10087, -10182, -10278, -10373, -10469, -10564, -10659, -10754, -10849, -10944, -11038, -11133, -11227, -11322, -11416, -11510, -11604, -11698, -11792, -11886, -11980, -12073, -12166, -12260, -12353, -12446, -12539, -12632, -12724, -12817, -12909, -13002, -13094, -13186, -13278, -13370, -13462, -13553, -13645, -13736, -13827, -13918, -14009, -14100, -14191, -14281, -14372, -14462, -14552, -14642, -14732, -14822, -14911, -15001, -15090, -15179, -15268, -15357, -15446, -15534, -15623, -15711, -15799, -15887, -15975, -16063, -16150, -16238, -16325, -16412, -16499, -16586, -16672, -16759, -16845, -16931, -17017, -17103, -17189, -17274, -17360, -17445, -17530, -17615, -17699, -17784, -17868, -17952, -18036, -18120, -18204, -18287, -18371, -18454, -18537, -18620, -18702, -18785, -18867, -18949, -19031, -19113, -19194, -19276, -19357, -19438, -19519, -19599, -19680, -19760, -19840, -19920, -20000, -20079, -20159, -20238, -20317, -20396, -20474, -20553, -20631, -20709, -20787, -20864, -20942, -21019, -21096, -21173, -21249, -21326, -21402, -21478, -21554, -21629, -21705, -21780, -21855, -21930, -22004, -22079, -22153, -22227, -22301, -22374, -22448, -22521, -22594, -22666, -22739, -22811, -22883, -22955, -23027, -23098, -23169, -23240, -23311, -23382, -23452, -23522, -23592, -23661, -23731, -23800, -23869, -23938, -24006, -24075, -24143, -24211, -24278, -24346, -24413, -24480, -24546, -24613, -24679, -24745, -24811, -24877, -24942, -25007, -25072, -25136, -25201, -25265, -25329, -25392, -25456, -25519, -25582, -25645, -25707, -25769, -25831, -25893, -25954, -26016, -26077, -26137, -26198, -26258, -26318, -26378, -26437, -26497, -26556, -26615, -26673, -26731, -26789, -26847, -26905, -26962, -27019, -27076, -27132, -27188, -27244, -27300, -27355, -27411, -27466, -27520, -27575, -27629, -27683, -27736, -27790, -27843, -27896, -27948, -28001, -28053, -28105, -28156, -28208, -28259, -28309, -28360, -28410, -28460, -28510, -28559, -28608, -28657, -28706, -28754, -28802, -28850, -28897, -28945, -28992, -29038, -29085, -29131, -29177, -29222, -29268, -29313, -29358, -29402, -29446, -29490, -29534, -29577, -29621, -29663, -29706, -29748, -29790, -29832, -29873, -29915, -29955, -29996, -30036, -30076, -30116, -30156, -30195, -30234, -30272, -30311, -30349, -30386, -30424, -30461, -30498, -30535, -30571, -30607, -30643, -30678, -30713, -30748, -30783, -30817, -30851, -30885, -30918, -30951, -30984, -31017, -31049, -31081, -31113, -31144, -31175, -31206, -31236, -31267, -31297, -31326, -31356, -31385, -31413, -31442, -31470, -31498, -31525, -31553, -31580, -31606, -31633, -31659, -31684, -31710, -31735, -31760, -31785, -31809, -31833, -31856, -31880, -31903, -31926, -31948, -31970, -31992, -32014, -32035, -32056, -32077, -32097, -32117, -32137, -32156, -32176, -32194, -32213, -32231, -32249, -32267, -32284, -32301, -32318, -32334, -32350, -32366, -32382, -32397, -32412, -32426, -32441, -32455, -32468, -32482, -32495, -32508, -32520, -32532, -32544, -32556, -32567, -32578, -32588, -32599, -32609, -32618, -32628, -32637, -32646, -32654, -32662, -32670, -32678, -32685, -32692, -32699, -32705, -32711, -32717, -32722, -32727, -32732, -32736, -32740, -32744, -32748, -32751, -32754, -32757, -32759, -32761, -32763, -32764, -32765, -32766, -32766, -32767, -32766, -32766, -32765, -32764, -32763, -32761, -32759, -32757, -32754, -32751, -32748, -32744, -32740, -32736, -32732, -32727, -32722, -32717, -32711, -32705, -32699, -32692, -32685, -32678, -32670, -32662, -32654, -32646, -32637, -32628, -32618, -32609, -32599, -32588, -32578, -32567, -32556, -32544, -32532, -32520, -32508, -32495, -32482, -32468, -32455, -32441, -32426, -32412, -32397, -32382, -32366, -32350, -32334, -32318, -32301, -32284, -32267, -32249, -32231, -32213, -32194, -32176, -32156, -32137, -32117, -32097, -32077, -32056, -32035, -32014, -31992, -31970, -31948, -31926, -31903, -31880, -31856, -31833, -31809, -31785, -31760, -31735, -31710, -31684, -31659, -31633, -31606, -31580, -31553, -31525, -31498, -31470, -31442, -31413, -31385, -31356, -31326, -31297, -31267, -31236, -31206, -31175, -31144, -31113, -31081, -31049, -31017, -30984, -30951, -30918, -30885, -30851, -30817, -30783, -30748, -30713, -30678, -30643, -30607, -30571, -30535, -30498, -30461, -30424, -30386, -30349, -30311, -30272, -30234, -30195, -30156, -30116, -30076, -30036, -29996, -29955, -29915, -29873, -29832, -29790, -29748, -29706, -29663, -29621, -29577, -29534, -29490, -29446, -29402, -29358, -29313, -29268, -29222, -29177, -29131, -29085, -29038, -28992, -28945, -28897, -28850, -28802, -28754, -28706, -28657, -28608, -28559, -28510, -28460, -28410, -28360, -28309, -28259, -28208, -28156, -28105, -28053, -28001, -27948, -27896, -27843, -27790, -27736, -27683, -27629, -27575, -27520, -27466, -27411, -27355, -27300, -27244, -27188, -27132, -27076, -27019, -26962, -26905, -26847, -26789, -26731, -26673, -26615, -26556, -26497, -26437, -26378, -26318, -26258, -26198, -26137, -26077, -26016, -25954, -25893, -25831, -25769, -25707, -25645, -25582, -25519, -25456, -25392, -25329, -25265, -25201, -25136, -25072, -25007, -24942, -24877, -24811, -24745, -24679, -24613, -24546, -24480, -24413, -24346, -24278, -24211, -24143, -24075, -24006, -23938, -23869, -23800, -23731, -23661, -23592, -23522, -23452, -23382, -23311, -23240, -23169, -23098, -23027, -22955, -22883, -22811, -22739, -22666, -22594, -22521, -22448, -22374, -22301, -22227, -22153, -22079, -22004, -21930, -21855, -21780, -21705, -21629, -21554, -21478, -21402, -21326, -21249, -21173, -21096, -21019, -20942, -20864, -20787, -20709, -20631, -20553, -20474, -20396, -20317, -20238, -20159, -20079, -20000, -19920, -19840, -19760, -19680, -19599, -19519, -19438, -19357, -19276, -19194, -19113, -19031, -18949, -18867, -18785, -18702, -18620, -18537, -18454, -18371, -18287, -18204, -18120, -18036, -17952, -17868, -17784, -17699, -17615, -17530, -17445, -17360, -17274, -17189, -17103, -17017, -16931, -16845, -16759, -16672, -16586, -16499, -16412, -16325, -16238, -16150, -16063, -15975, -15887, -15799, -15711, -15623, -15534, -15446, -15357, -15268, -15179, -15090, -15001, -14911, -14822, -14732, -14642, -14552, -14462, -14372, -14281, -14191, -14100, -14009, -13918, -13827, -13736, -13645, -13553, -13462, -13370, -13278, -13186, -13094, -13002, -12909, -12817, -12724, -12632, -12539, -12446, -12353, -12260, -12166, -12073, -11980, -11886, -11792, -11698, -11604, -11510, -11416, -11322, -11227, -11133, -11038, -10944, -10849, -10754, -10659, -10564, -10469, -10373, -10278, -10182, -10087, -9991 , -9895 , -9799 , -9703 , -9607 , -9511 , -9415 , -9319 , -9222 , -9126 , -9029 , -8932 , -8836 , -8739 , -8642 , -8545 , -8448 , -8351 , -8253 , -8156 , -8059 , -7961 , -7864 , -7766 , -7668 , -7571 , -7473 , -7375 , -7277 , -7179 , -7081 , -6982 , -6884 , -6786 , -6688 , -6589 , -6491 , -6392 , -6293 , -6195 , -6096 , -5997 , -5898 , -5799 , -5700 , -5601 , -5502 , -5403 , -5304 , -5205 , -5106 , -5006 , -4907 , -4807 , -4708 , -4608 , -4509 , -4409 , -4310 , -4210 , -4110 , -4011 , -3911 , -3811 , -3711 , -3611 , -3511 , -3411 , -3311 , -3211 , -3111 , -3011 , -2911 , -2811 , -2711 , -2610 , -2510 , -2410 , -2310 , -2209 , -2109 , -2009 , -1908 , -1808 , -1708 , -1607 , -1507 , -1406 , -1306 , -1206 , -1105 , -1005 , -904 , -804 , -703 , -603 , -502 , -402 , -301 , -201 , -100 , //Osc 0 Level 1 0 , 201 , 402 , 603 , 804 , 1005 , 1206 , 1406 , 1607 , 1808 , 2009 , 2209 , 2410 , 2610 , 2811 , 3011 , 3211 , 3411 , 3611 , 3811 , 4011 , 4210 , 4409 , 4608 , 4807 , 5006 , 5205 , 5403 , 5601 , 5799 , 5997 , 6195 , 6392 , 6589 , 6786 , 6982 , 7179 , 7375 , 7571 , 7766 , 7961 , 8156 , 8351 , 8545 , 8739 , 8932 , 9126 , 9319 , 9511 , 9703 , 9895 , 10087 , 10278 , 10469 , 10659 , 10849 , 11038 , 11227 , 11416 , 11604 , 11792 , 11980 , 12166 , 12353 , 12539 , 12724 , 12909 , 13094 , 13278 , 13462 , 13645 , 13827 , 14009 , 14191 , 14372 , 14552 , 14732 , 14911 , 15090 , 15268 , 15446 , 15623 , 15799 , 15975 , 16150 , 16325 , 16499 , 16672 , 16845 , 17017 , 17189 , 17360 , 17530 , 17699 , 17868 , 18036 , 18204 , 18371 , 18537 , 18702 , 18867 , 19031 , 19194 , 19357 , 19519 , 19680 , 19840 , 20000 , 20159 , 20317 , 20474 , 20631 , 20787 , 20942 , 21096 , 21249 , 21402 , 21554 , 21705 , 21855 , 22004 , 22153 , 22301 , 22448 , 22594 , 22739 , 22883 , 23027 , 23169 , 23311 , 23452 , 23592 , 23731 , 23869 , 24006 , 24143 , 24278 , 24413 , 24546 , 24679 , 24811 , 24942 , 25072 , 25201 , 25329 , 25456 , 25582 , 25707 , 25831 , 25954 , 26077 , 26198 , 26318 , 26437 , 26556 , 26673 , 26789 , 26905 , 27019 , 27132 , 27244 , 27355 , 27466 , 27575 , 27683 , 27790 , 27896 , 28001 , 28105 , 28208 , 28309 , 28410 , 28510 , 28608 , 28706 , 28802 , 28897 , 28992 , 29085 , 29177 , 29268 , 29358 , 29446 , 29534 , 29621 , 29706 , 29790 , 29873 , 29955 , 30036 , 30116 , 30195 , 30272 , 30349 , 30424 , 30498 , 30571 , 30643 , 30713 , 30783 , 30851 , 30918 , 30984 , 31049 , 31113 , 31175 , 31236 , 31297 , 31356 , 31413 , 31470 , 31525 , 31580 , 31633 , 31684 , 31735 , 31785 , 31833 , 31880 , 31926 , 31970 , 32014 , 32056 , 32097 , 32137 , 32176 , 32213 , 32249 , 32284 , 32318 , 32350 , 32382 , 32412 , 32441 , 32468 , 32495 , 32520 , 32544 , 32567 , 32588 , 32609 , 32628 , 32646 , 32662 , 32678 , 32692 , 32705 , 32717 , 32727 , 32736 , 32744 , 32751 , 32757 , 32761 , 32764 , 32766 , 32767 , 32766 , 32764 , 32761 , 32757 , 32751 , 32744 , 32736 , 32727 , 32717 , 32705 , 32692 , 32678 , 32662 , 32646 , 32628 , 32609 , 32588 , 32567 , 32544 , 32520 , 32495 , 32468 , 32441 , 32412 , 32382 , 32350 , 32318 , 32284 , 32249 , 32213 , 32176 , 32137 , 32097 , 32056 , 32014 , 31970 , 31926 , 31880 , 31833 , 31785 , 31735 , 31684 , 31633 , 31580 , 31525 , 31470 , 31413 , 31356 , 31297 , 31236 , 31175 , 31113 , 31049 , 30984 , 30918 , 30851 , 30783 , 30713 , 30643 , 30571 , 30498 , 30424 , 30349 , 30272 , 30195 , 30116 , 30036 , 29955 , 29873 , 29790 , 29706 , 29621 , 29534 , 29446 , 29358 , 29268 , 29177 , 29085 , 28992 , 28897 , 28802 , 28706 , 28608 , 28510 , 28410 , 28309 , 28208 , 28105 , 28001 , 27896 , 27790 , 27683 , 27575 , 27466 , 27355 , 27244 , 27132 , 27019 , 26905 , 26789 , 26673 , 26556 , 26437 , 26318 , 26198 , 26077 , 25954 , 25831 , 25707 , 25582 , 25456 , 25329 , 25201 , 25072 , 24942 , 24811 , 24679 , 24546 , 24413 , 24278 , 24143 , 24006 , 23869 , 23731 , 23592 , 23452 , 23311 , 23169 , 23027 , 22883 , 22739 , 22594 , 22448 , 22301 , 22153 , 22004 , 21855 , 21705 , 21554 , 21402 , 21249 , 21096 , 20942 , 20787 , 20631 , 20474 , 20317 , 20159 , 20000 , 19840 , 19680 , 19519 , 19357 , 19194 , 19031 , 18867 , 18702 , 18537 , 18371 , 18204 , 18036 , 17868 , 17699 , 17530 , 17360 , 17189 , 17017 , 16845 , 16672 , 16499 , 16325 , 16150 , 15975 , 15799 , 15623 , 15446 , 15268 , 15090 , 14911 , 14732 , 14552 , 14372 , 14191 , 14009 , 13827 , 13645 , 13462 , 13278 , 13094 , 12909 , 12724 , 12539 , 12353 , 12166 , 11980 , 11792 , 11604 , 11416 , 11227 , 11038 , 10849 , 10659 , 10469 , 10278 , 10087 , 9895 , 9703 , 9511 , 9319 , 9126 , 8932 , 8739 , 8545 , 8351 , 8156 , 7961 , 7766 , 7571 , 7375 , 7179 , 6982 , 6786 , 6589 , 6392 , 6195 , 5997 , 5799 , 5601 , 5403 , 5205 , 5006 , 4807 , 4608 , 4409 , 4210 , 4011 , 3811 , 3611 , 3411 , 3211 , 3011 , 2811 , 2610 , 2410 , 2209 , 2009 , 1808 , 1607 , 1406 , 1206 , 1005 , 804 , 603 , 402 , 201 , 0 , -201 , -402 , -603 , -804 , -1005 , -1206 , -1406 , -1607 , -1808 , -2009 , -2209 , -2410 , -2610 , -2811 , -3011 , -3211 , -3411 , -3611 , -3811 , -4011 , -4210 , -4409 , -4608 , -4807 , -5006 , -5205 , -5403 , -5601 , -5799 , -5997 , -6195 , -6392 , -6589 , -6786 , -6982 , -7179 , -7375 , -7571 , -7766 , -7961 , -8156 , -8351 , -8545 , -8739 , -8932 , -9126 , -9319 , -9511 , -9703 , -9895 , -10087, -10278, -10469, -10659, -10849, -11038, -11227, -11416, -11604, -11792, -11980, -12166, -12353, -12539, -12724, -12909, -13094, -13278, -13462, -13645, -13827, -14009, -14191, -14372, -14552, -14732, -14911, -15090, -15268, -15446, -15623, -15799, -15975, -16150, -16325, -16499, -16672, -16845, -17017, -17189, -17360, -17530, -17699, -17868, -18036, -18204, -18371, -18537, -18702, -18867, -19031, -19194, -19357, -19519, -19680, -19840, -20000, -20159, -20317, -20474, -20631, -20787, -20942, -21096, -21249, -21402, -21554, -21705, -21855, -22004, -22153, -22301, -22448, -22594, -22739, -22883, -23027, -23169, -23311, -23452, -23592, -23731, -23869, -24006, -24143, -24278, -24413, -24546, -24679, -24811, -24942, -25072, -25201, -25329, -25456, -25582, -25707, -25831, -25954, -26077, -26198, -26318, -26437, -26556, -26673, -26789, -26905, -27019, -27132, -27244, -27355, -27466, -27575, -27683, -27790, -27896, -28001, -28105, -28208, -28309, -28410, -28510, -28608, -28706, -28802, -28897, -28992, -29085, -29177, -29268, -29358, -29446, -29534, -29621, -29706, -29790, -29873, -29955, -30036, -30116, -30195, -30272, -30349, -30424, -30498, -30571, -30643, -30713, -30783, -30851, -30918, -30984, -31049, -31113, -31175, -31236, -31297, -31356, -31413, -31470, -31525, -31580, -31633, -31684, -31735, -31785, -31833, -31880, -31926, -31970, -32014, -32056, -32097, -32137, -32176, -32213, -32249, -32284, -32318, -32350, -32382, -32412, -32441, -32468, -32495, -32520, -32544, -32567, -32588, -32609, -32628, -32646, -32662, -32678, -32692, -32705, -32717, -32727, -32736, -32744, -32751, -32757, -32761, -32764, -32766, -32767, -32766, -32764, -32761, -32757, -32751, -32744, -32736, -32727, -32717, -32705, -32692, -32678, -32662, -32646, -32628, -32609, -32588, -32567, -32544, -32520, -32495, -32468, -32441, -32412, -32382, -32350, -32318, -32284, -32249, -32213, -32176, -32137, -32097, -32056, -32014, -31970, -31926, -31880, -31833, -31785, -31735, -31684, -31633, -31580, -31525, -31470, -31413, -31356, -31297, -31236, -31175, -31113, -31049, -30984, -30918, -30851, -30783, -30713, -30643, -30571, -30498, -30424, -30349, -30272, -30195, -30116, -30036, -29955, -29873, -29790, -29706, -29621, -29534, -29446, -29358, -29268, -29177, -29085, -28992, -28897, -28802, -28706, -28608, -28510, -28410, -28309, -28208, -28105, -28001, -27896, -27790, -27683, -27575, -27466, -27355, -27244, -27132, -27019, -26905, -26789, -26673, -26556, -26437, -26318, -26198, -26077, -25954, -25831, -25707, -25582, -25456, -25329, -25201, -25072, -24942, -24811, -24679, -24546, -24413, -24278, -24143, -24006, -23869, -23731, -23592, -23452, -23311, -23169, -23027, -22883, -22739, -22594, -22448, -22301, -22153, -22004, -21855, -21705, -21554, -21402, -21249, -21096, -20942, -20787, -20631, -20474, -20317, -20159, -20000, -19840, -19680, -19519, -19357, -19194, -19031, -18867, -18702, -18537, -18371, -18204, -18036, -17868, -17699, -17530, -17360, -17189, -17017, -16845, -16672, -16499, -16325, -16150, -15975, -15799, -15623, -15446, -15268, -15090, -14911, -14732, -14552, -14372, -14191, -14009, -13827, -13645, -13462, -13278, -13094, -12909, -12724, -12539, -12353, -12166, -11980, -11792, -11604, -11416, -11227, -11038, -10849, -10659, -10469, -10278, -10087, -9895 , -9703 , -9511 , -9319 , -9126 , -8932 , -8739 , -8545 , -8351 , -8156 , -7961 , -7766 , -7571 , -7375 , -7179 , -6982 , -6786 , -6589 , -6392 , -6195 , -5997 , -5799 , -5601 , -5403 , -5205 , -5006 , -4807 , -4608 , -4409 , -4210 , -4011 , -3811 , -3611 , -3411 , -3211 , -3011 , -2811 , -2610 , -2410 , -2209 , -2009 , -1808 , -1607 , -1406 , -1206 , -1005 , -804 , -603 , -402 , -201 , //Osc 0 Level 2 0 , 402 , 804 , 1206 , 1607 , 2009 , 2410 , 2811 , 3211 , 3611 , 4011 , 4409 , 4807 , 5205 , 5601 , 5997 , 6392 , 6786 , 7179 , 7571 , 7961 , 8351 , 8739 , 9126 , 9511 , 9895 , 10278 , 10659 , 11038 , 11416 , 11792 , 12166 , 12539 , 12909 , 13278 , 13645 , 14009 , 14372 , 14732 , 15090 , 15446 , 15799 , 16150 , 16499 , 16845 , 17189 , 17530 , 17868 , 18204 , 18537 , 18867 , 19194 , 19519 , 19840 , 20159 , 20474 , 20787 , 21096 , 21402 , 21705 , 22004 , 22301 , 22594 , 22883 , 23169 , 23452 , 23731 , 24006 , 24278 , 24546 , 24811 , 25072 , 25329 , 25582 , 25831 , 26077 , 26318 , 26556 , 26789 , 27019 , 27244 , 27466 , 27683 , 27896 , 28105 , 28309 , 28510 , 28706 , 28897 , 29085 , 29268 , 29446 , 29621 , 29790 , 29955 , 30116 , 30272 , 30424 , 30571 , 30713 , 30851 , 30984 , 31113 , 31236 , 31356 , 31470 , 31580 , 31684 , 31785 , 31880 , 31970 , 32056 , 32137 , 32213 , 32284 , 32350 , 32412 , 32468 , 32520 , 32567 , 32609 , 32646 , 32678 , 32705 , 32727 , 32744 , 32757 , 32764 , 32767 , 32764 , 32757 , 32744 , 32727 , 32705 , 32678 , 32646 , 32609 , 32567 , 32520 , 32468 , 32412 , 32350 , 32284 , 32213 , 32137 , 32056 , 31970 , 31880 , 31785 , 31684 , 31580 , 31470 , 31356 , 31236 , 31113 , 30984 , 30851 , 30713 , 30571 , 30424 , 30272 , 30116 , 29955 , 29790 , 29621 , 29446 , 29268 , 29085 , 28897 , 28706 , 28510 , 28309 , 28105 , 27896 , 27683 , 27466 , 27244 , 27019 , 26789 , 26556 , 26318 , 26077 , 25831 , 25582 , 25329 , 25072 , 24811 , 24546 , 24278 , 24006 , 23731 , 23452 , 23169 , 22883 , 22594 , 22301 , 22004 , 21705 , 21402 , 21096 , 20787 , 20474 , 20159 , 19840 , 19519 , 19194 , 18867 , 18537 , 18204 , 17868 , 17530 , 17189 , 16845 , 16499 , 16150 , 15799 , 15446 , 15090 , 14732 , 14372 , 14009 , 13645 , 13278 , 12909 , 12539 , 12166 , 11792 , 11416 , 11038 , 10659 , 10278 , 9895 , 9511 , 9126 , 8739 , 8351 , 7961 , 7571 , 7179 , 6786 , 6392 , 5997 , 5601 , 5205 , 4807 , 4409 , 4011 , 3611 , 3211 , 2811 , 2410 , 2009 , 1607 , 1206 , 804 , 402 , 0 , -402 , -804 , -1206 , -1607 , -2009 , -2410 , -2811 , -3211 , -3611 , -4011 , -4409 , -4807 , -5205 , -5601 , -5997 , -6392 , -6786 , -7179 , -7571 , -7961 , -8351 , -8739 , -9126 , -9511 , -9895 , -10278, -10659, -11038, -11416, -11792, -12166, -12539, -12909, -13278, -13645, -14009, -14372, -14732, -15090, -15446, -15799, -16150, -16499, -16845, -17189, -17530, -17868, -18204, -18537, -18867, -19194, -19519, -19840, -20159, -20474, -20787, -21096, -21402, -21705, -22004, -22301, -22594, -22883, -23169, -23452, -23731, -24006, -24278, -24546, -24811, -25072, -25329, -25582, -25831, -26077, -26318, -26556, -26789, -27019, -27244, -27466, -27683, -27896, -28105, -28309, -28510, -28706, -28897, -29085, -29268, -29446, -29621, -29790, -29955, -30116, -30272, -30424, -30571, -30713, -30851, -30984, -31113, -31236, -31356, -31470, -31580, -31684, -31785, -31880, -31970, -32056, -32137, -32213, -32284, -32350, -32412, -32468, -32520, -32567, -32609, -32646, -32678, -32705, -32727, -32744, -32757, -32764, -32767, -32764, -32757, -32744, -32727, -32705, -32678, -32646, -32609, -32567, -32520, -32468, -32412, -32350, -32284, -32213, -32137, -32056, -31970, -31880, -31785, -31684, -31580, -31470, -31356, -31236, -31113, -30984, -30851, -30713, -30571, -30424, -30272, -30116, -29955, -29790, -29621, -29446, -29268, -29085, -28897, -28706, -28510, -28309, -28105, -27896, -27683, -27466, -27244, -27019, -26789, -26556, -26318, -26077, -25831, -25582, -25329, -25072, -24811, -24546, -24278, -24006, -23731, -23452, -23169, -22883, -22594, -22301, -22004, -21705, -21402, -21096, -20787, -20474, -20159, -19840, -19519, -19194, -18867, -18537, -18204, -17868, -17530, -17189, -16845, -16499, -16150, -15799, -15446, -15090, -14732, -14372, -14009, -13645, -13278, -12909, -12539, -12166, -11792, -11416, -11038, -10659, -10278, -9895 , -9511 , -9126 , -8739 , -8351 , -7961 , -7571 , -7179 , -6786 , -6392 , -5997 , -5601 , -5205 , -4807 , -4409 , -4011 , -3611 , -3211 , -2811 , -2410 , -2009 , -1607 , -1206 , -804 , -402 , //Osc 0 Level 3 0 , 804 , 1607 , 2410 , 3211 , 4011 , 4807 , 5601 , 6392 , 7179 , 7961 , 8739 , 9511 , 10278 , 11038 , 11792 , 12539 , 13278 , 14009 , 14732 , 15446 , 16150 , 16845 , 17530 , 18204 , 18867 , 19519 , 20159 , 20787 , 21402 , 22004 , 22594 , 23169 , 23731 , 24278 , 24811 , 25329 , 25831 , 26318 , 26789 , 27244 , 27683 , 28105 , 28510 , 28897 , 29268 , 29621 , 29955 , 30272 , 30571 , 30851 , 31113 , 31356 , 31580 , 31785 , 31970 , 32137 , 32284 , 32412 , 32520 , 32609 , 32678 , 32727 , 32757 , 32767 , 32757 , 32727 , 32678 , 32609 , 32520 , 32412 , 32284 , 32137 , 31970 , 31785 , 31580 , 31356 , 31113 , 30851 , 30571 , 30272 , 29955 , 29621 , 29268 , 28897 , 28510 , 28105 , 27683 , 27244 , 26789 , 26318 , 25831 , 25329 , 24811 , 24278 , 23731 , 23169 , 22594 , 22004 , 21402 , 20787 , 20159 , 19519 , 18867 , 18204 , 17530 , 16845 , 16150 , 15446 , 14732 , 14009 , 13278 , 12539 , 11792 , 11038 , 10278 , 9511 , 8739 , 7961 , 7179 , 6392 , 5601 , 4807 , 4011 , 3211 , 2410 , 1607 , 804 , 0 , -804 , -1607 , -2410 , -3211 , -4011 , -4807 , -5601 , -6392 , -7179 , -7961 , -8739 , -9511 , -10278, -11038, -11792, -12539, -13278, -14009, -14732, -15446, -16150, -16845, -17530, -18204, -18867, -19519, -20159, -20787, -21402, -22004, -22594, -23169, -23731, -24278, -24811, -25329, -25831, -26318, -26789, -27244, -27683, -28105, -28510, -28897, -29268, -29621, -29955, -30272, -30571, -30851, -31113, -31356, -31580, -31785, -31970, -32137, -32284, -32412, -32520, -32609, -32678, -32727, -32757, -32767, -32757, -32727, -32678, -32609, -32520, -32412, -32284, -32137, -31970, -31785, -31580, -31356, -31113, -30851, -30571, -30272, -29955, -29621, -29268, -28897, -28510, -28105, -27683, -27244, -26789, -26318, -25831, -25329, -24811, -24278, -23731, -23169, -22594, -22004, -21402, -20787, -20159, -19519, -18867, -18204, -17530, -16845, -16150, -15446, -14732, -14009, -13278, -12539, -11792, -11038, -10278, -9511 , -8739 , -7961 , -7179 , -6392 , -5601 , -4807 , -4011 , -3211 , -2410 , -1607 , -804 , //Osc 0 Level 4 0 , 1607 , 3211 , 4807 , 6392 , 7961 , 9511 , 11038 , 12539 , 14009 , 15446 , 16845 , 18204 , 19519 , 20787 , 22004 , 23169 , 24278 , 25329 , 26318 , 27244 , 28105 , 28897 , 29621 , 30272 , 30851 , 31356 , 31785 , 32137 , 32412 , 32609 , 32727 , 32767 , 32727 , 32609 , 32412 , 32137 , 31785 , 31356 , 30851 , 30272 , 29621 , 28897 , 28105 , 27244 , 26318 , 25329 , 24278 , 23169 , 22004 , 20787 , 19519 , 18204 , 16845 , 15446 , 14009 , 12539 , 11038 , 9511 , 7961 , 6392 , 4807 , 3211 , 1607 , 0 , -1607 , -3211 , -4807 , -6392 , -7961 , -9511 , -11038, -12539, -14009, -15446, -16845, -18204, -19519, -20787, -22004, -23169, -24278, -25329, -26318, -27244, -28105, -28897, -29621, -30272, -30851, -31356, -31785, -32137, -32412, -32609, -32727, -32767, -32727, -32609, -32412, -32137, -31785, -31356, -30851, -30272, -29621, -28897, -28105, -27244, -26318, -25329, -24278, -23169, -22004, -20787, -19519, -18204, -16845, -15446, -14009, -12539, -11038, -9511 , -7961 , -6392 , -4807 , -3211 , -1607 , //Osc 0 Level 5 0 , 3211 , 6392 , 9511 , 12539 , 15446 , 18204 , 20787 , 23169 , 25329 , 27244 , 28897 , 30272 , 31356 , 32137 , 32609 , 32767 , 32609 , 32137 , 31356 , 30272 , 28897 , 27244 , 25329 , 23169 , 20787 , 18204 , 15446 , 12539 , 9511 , 6392 , 3211 , 0 , -3211 , -6392 , -9511 , -12539, -15446, -18204, -20787, -23169, -25329, -27244, -28897, -30272, -31356, -32137, -32609, -32767, -32609, -32137, -31356, -30272, -28897, -27244, -25329, -23169, -20787, -18204, -15446, -12539, -9511 , -6392 , -3211 , //Osc 0 Level 6 0 , 6392 , 12539 , 18204 , 23169 , 27244 , 30272 , 32137 , 32767 , 32137 , 30272 , 27244 , 23169 , 18204 , 12539 , 6392 , 0 , -6392 , -12539, -18204, -23169, -27244, -30272, -32137, -32767, -32137, -30272, -27244, -23169, -18204, -12539, -6392 , //Osc 0 Level 7 0 , 12539 , 23169 , 30272 , 32767 , 30272 , 23169 , 12539 , 0 , -12539, -23169, -30272, -32767, -30272, -23169, -12539, //Osc 0 Level 8 0 , 23169 , 32767 , 23169 , 0 , -23169, -32767, -23169, //Osc 0 Level 9 0 , 32767 , 0 , -32767, //Osc 0 Level 10 0 , 0 , //Osc 0 Level 11 0 , 0 , }, //Osc 1 Level 0 { 0 , 32765 , 25056 , 29573 , 26313 , 28796 , 26716 , 28425 , 26894 , 28194 , 26980 , 28026 , 27019 , 27893 , 27031 , 27782 , 27027 , 27683 , 27012 , 27594 , 26989 , 27511 , 26960 , 27434 , 26927 , 27360 , 26891 , 27289 , 26852 , 27220 , 26811 , 27153 , 26768 , 27088 , 26724 , 27024 , 26679 , 26961 , 26633 , 26899 , 26586 , 26837 , 26539 , 26776 , 26491 , 26716 , 26442 , 26657 , 26393 , 26597 , 26343 , 26539 , 26293 , 26480 , 26243 , 26422 , 26192 , 26364 , 26141 , 26306 , 26090 , 26249 , 26039 , 26192 , 25987 , 26134 , 25936 , 26078 , 25884 , 26021 , 25832 , 25964 , 25780 , 25908 , 25728 , 25851 , 25675 , 25795 , 25623 , 25739 , 25571 , 25683 , 25518 , 25627 , 25465 , 25571 , 25412 , 25515 , 25360 , 25459 , 25307 , 25403 , 25254 , 25348 , 25201 , 25292 , 25148 , 25237 , 25095 , 25181 , 25041 , 25126 , 24988 , 25070 , 24935 , 25015 , 24882 , 24959 , 24828 , 24904 , 24775 , 24849 , 24722 , 24794 , 24668 , 24738 , 24615 , 24683 , 24561 , 24628 , 24508 , 24573 , 24454 , 24518 , 24401 , 24463 , 24347 , 24408 , 24293 , 24353 , 24240 , 24298 , 24186 , 24243 , 24132 , 24188 , 24079 , 24133 , 24025 , 24078 , 23971 , 24023 , 23917 , 23968 , 23864 , 23913 , 23810 , 23858 , 23756 , 23804 , 23702 , 23749 , 23649 , 23694 , 23595 , 23639 , 23541 , 23584 , 23487 , 23530 , 23433 , 23475 , 23379 , 23420 , 23325 , 23365 , 23271 , 23311 , 23218 , 23256 , 23164 , 23201 , 23110 , 23146 , 23056 , 23092 , 23002 , 23037 , 22948 , 22982 , 22894 , 22928 , 22840 , 22873 , 22786 , 22818 , 22732 , 22764 , 22678 , 22709 , 22624 , 22654 , 22570 , 22600 , 22516 , 22545 , 22462 , 22490 , 22408 , 22436 , 22354 , 22381 , 22300 , 22327 , 22246 , 22272 , 22192 , 22217 , 22138 , 22163 , 22084 , 22108 , 22030 , 22054 , 21975 , 21999 , 21921 , 21944 , 21867 , 21890 , 21813 , 21835 , 21759 , 21781 , 21705 , 21726 , 21651 , 21672 , 21597 , 21617 , 21543 , 21562 , 21489 , 21508 , 21435 , 21453 , 21380 , 21399 , 21326 , 21344 , 21272 , 21290 , 21218 , 21235 , 21164 , 21181 , 21110 , 21126 , 21056 , 21072 , 21002 , 21017 , 20947 , 20963 , 20893 , 20908 , 20839 , 20854 , 20785 , 20799 , 20731 , 20745 , 20677 , 20690 , 20623 , 20636 , 20568 , 20581 , 20514 , 20527 , 20460 , 20472 , 20406 , 20418 , 20352 , 20363 , 20298 , 20309 , 20243 , 20254 , 20189 , 20200 , 20135 , 20145 , 20081 , 20091 , 20027 , 20036 , 19973 , 19982 , 19918 , 19927 , 19864 , 19873 , 19810 , 19819 , 19756 , 19764 , 19702 , 19710 , 19647 , 19655 , 19593 , 19601 , 19539 , 19546 , 19485 , 19492 , 19431 , 19437 , 19377 , 19383 , 19322 , 19328 , 19268 , 19274 , 19214 , 19220 , 19160 , 19165 , 19106 , 19111 , 19051 , 19056 , 18997 , 19002 , 18943 , 18947 , 18889 , 18893 , 18834 , 18838 , 18780 , 18784 , 18726 , 18730 , 18672 , 18675 , 18618 , 18621 , 18563 , 18566 , 18509 , 18512 , 18455 , 18457 , 18401 , 18403 , 18347 , 18349 , 18292 , 18294 , 18238 , 18240 , 18184 , 18185 , 18130 , 18131 , 18075 , 18076 , 18021 , 18022 , 17967 , 17968 , 17913 , 17913 , 17858 , 17859 , 17804 , 17804 , 17750 , 17750 , 17696 , 17696 , 17642 , 17641 , 17587 , 17587 , 17533 , 17532 , 17479 , 17478 , 17425 , 17423 , 17370 , 17369 , 17316 , 17315 , 17262 , 17260 , 17208 , 17206 , 17153 , 17151 , 17099 , 17097 , 17045 , 17043 , 16991 , 16988 , 16936 , 16934 , 16882 , 16879 , 16828 , 16825 , 16774 , 16771 , 16719 , 16716 , 16665 , 16662 , 16611 , 16607 , 16557 , 16553 , 16502 , 16499 , 16448 , 16444 , 16394 , 16390 , 16340 , 16335 , 16285 , 16281 , 16231 , 16227 , 16177 , 16172 , 16123 , 16118 , 16068 , 16063 , 16014 , 16009 , 15960 , 15955 , 15906 , 15900 , 15851 , 15846 , 15797 , 15791 , 15743 , 15737 , 15689 , 15683 , 15634 , 15628 , 15580 , 15574 , 15526 , 15519 , 15472 , 15465 , 15417 , 15411 , 15363 , 15356 , 15309 , 15302 , 15255 , 15248 , 15200 , 15193 , 15146 , 15139 , 15092 , 15084 , 15038 , 15030 , 14983 , 14976 , 14929 , 14921 , 14875 , 14867 , 14820 , 14812 , 14766 , 14758 , 14712 , 14704 , 14658 , 14649 , 14603 , 14595 , 14549 , 14541 , 14495 , 14486 , 14441 , 14432 , 14386 , 14377 , 14332 , 14323 , 14278 , 14269 , 14224 , 14214 , 14169 , 14160 , 14115 , 14106 , 14061 , 14051 , 14006 , 13997 , 13952 , 13942 , 13898 , 13888 , 13844 , 13834 , 13789 , 13779 , 13735 , 13725 , 13681 , 13670 , 13627 , 13616 , 13572 , 13562 , 13518 , 13507 , 13464 , 13453 , 13409 , 13399 , 13355 , 13344 , 13301 , 13290 , 13247 , 13235 , 13192 , 13181 , 13138 , 13127 , 13084 , 13072 , 13030 , 13018 , 12975 , 12964 , 12921 , 12909 , 12867 , 12855 , 12812 , 12801 , 12758 , 12746 , 12704 , 12692 , 12650 , 12637 , 12595 , 12583 , 12541 , 12529 , 12487 , 12474 , 12432 , 12420 , 12378 , 12366 , 12324 , 12311 , 12270 , 12257 , 12215 , 12202 , 12161 , 12148 , 12107 , 12094 , 12053 , 12039 , 11998 , 11985 , 11944 , 11931 , 11890 , 11876 , 11835 , 11822 , 11781 , 11768 , 11727 , 11713 , 11673 , 11659 , 11618 , 11604 , 11564 , 11550 , 11510 , 11496 , 11455 , 11441 , 11401 , 11387 , 11347 , 11333 , 11293 , 11278 , 11238 , 11224 , 11184 , 11169 , 11130 , 11115 , 11075 , 11061 , 11021 , 11006 , 10967 , 10952 , 10913 , 10898 , 10858 , 10843 , 10804 , 10789 , 10750 , 10735 , 10695 , 10680 , 10641 , 10626 , 10587 , 10571 , 10533 , 10517 , 10478 , 10463 , 10424 , 10408 , 10370 , 10354 , 10315 , 10300 , 10261 , 10245 , 10207 , 10191 , 10153 , 10137 , 10098 , 10082 , 10044 , 10028 , 9990 , 9973 , 9935 , 9919 , 9881 , 9865 , 9827 , 9810 , 9773 , 9756 , 9718 , 9702 , 9664 , 9647 , 9610 , 9593 , 9555 , 9539 , 9501 , 9484 , 9447 , 9430 , 9393 , 9376 , 9338 , 9321 , 9284 , 9267 , 9230 , 9212 , 9175 , 9158 , 9121 , 9104 , 9067 , 9049 , 9013 , 8995 , 8958 , 8941 , 8904 , 8886 , 8850 , 8832 , 8795 , 8778 , 8741 , 8723 , 8687 , 8669 , 8632 , 8614 , 8578 , 8560 , 8524 , 8506 , 8470 , 8451 , 8415 , 8397 , 8361 , 8343 , 8307 , 8288 , 8252 , 8234 , 8198 , 8180 , 8144 , 8125 , 8090 , 8071 , 8035 , 8017 , 7981 , 7962 , 7927 , 7908 , 7872 , 7853 , 7818 , 7799 , 7764 , 7745 , 7710 , 7690 , 7655 , 7636 , 7601 , 7582 , 7547 , 7527 , 7492 , 7473 , 7438 , 7419 , 7384 , 7364 , 7329 , 7310 , 7275 , 7256 , 7221 , 7201 , 7167 , 7147 , 7112 , 7092 , 7058 , 7038 , 7004 , 6984 , 6949 , 6929 , 6895 , 6875 , 6841 , 6821 , 6787 , 6766 , 6732 , 6712 , 6678 , 6658 , 6624 , 6603 , 6569 , 6549 , 6515 , 6495 , 6461 , 6440 , 6407 , 6386 , 6352 , 6332 , 6298 , 6277 , 6244 , 6223 , 6189 , 6168 , 6135 , 6114 , 6081 , 6060 , 6026 , 6005 , 5972 , 5951 , 5918 , 5897 , 5864 , 5842 , 5809 , 5788 , 5755 , 5734 , 5701 , 5679 , 5646 , 5625 , 5592 , 5571 , 5538 , 5516 , 5483 , 5462 , 5429 , 5408 , 5375 , 5353 , 5321 , 5299 , 5266 , 5244 , 5212 , 5190 , 5158 , 5136 , 5103 , 5081 , 5049 , 5027 , 4995 , 4973 , 4941 , 4918 , 4886 , 4864 , 4832 , 4810 , 4778 , 4755 , 4723 , 4701 , 4669 , 4647 , 4615 , 4592 , 4560 , 4538 , 4506 , 4483 , 4452 , 4429 , 4398 , 4375 , 4343 , 4320 , 4289 , 4266 , 4235 , 4212 , 4180 , 4157 , 4126 , 4103 , 4072 , 4049 , 4018 , 3994 , 3963 , 3940 , 3909 , 3886 , 3855 , 3831 , 3800 , 3777 , 3746 , 3723 , 3692 , 3668 , 3637 , 3614 , 3583 , 3560 , 3529 , 3505 , 3475 , 3451 , 3420 , 3396 , 3366 , 3342 , 3312 , 3288 , 3257 , 3233 , 3203 , 3179 , 3149 , 3125 , 3094 , 3070 , 3040 , 3016 , 2986 , 2962 , 2932 , 2907 , 2877 , 2853 , 2823 , 2799 , 2769 , 2744 , 2714 , 2690 , 2660 , 2636 , 2606 , 2581 , 2551 , 2527 , 2497 , 2472 , 2443 , 2418 , 2389 , 2364 , 2334 , 2309 , 2280 , 2255 , 2226 , 2201 , 2171 , 2146 , 2117 , 2092 , 2063 , 2038 , 2009 , 1983 , 1954 , 1929 , 1900 , 1875 , 1846 , 1820 , 1791 , 1766 , 1737 , 1712 , 1683 , 1657 , 1628 , 1603 , 1574 , 1549 , 1520 , 1494 , 1466 , 1440 , 1411 , 1385 , 1357 , 1331 , 1303 , 1277 , 1248 , 1222 , 1194 , 1168 , 1140 , 1114 , 1085 , 1059 , 1031 , 1005 , 977 , 951 , 923 , 896 , 868 , 842 , 814 , 788 , 760 , 733 , 705 , 679 , 651 , 625 , 597 , 570 , 542 , 516 , 488 , 461 , 434 , 407 , 380 , 353 , 325 , 298 , 271 , 244 , 217 , 190 , 162 , 135 , 108 , 81 , 54 , 27 , 0 , -27 , -54 , -81 , -108 , -135 , -162 , -190 , -217 , -244 , -271 , -298 , -325 , -353 , -380 , -407 , -434 , -461 , -488 , -516 , -542 , -570 , -597 , -625 , -651 , -679 , -705 , -733 , -760 , -788 , -814 , -842 , -868 , -896 , -923 , -951 , -977 , -1005 , -1031 , -1059 , -1085 , -1114 , -1140 , -1168 , -1194 , -1222 , -1248 , -1277 , -1303 , -1331 , -1357 , -1385 , -1411 , -1440 , -1466 , -1494 , -1520 , -1549 , -1574 , -1603 , -1628 , -1657 , -1683 , -1712 , -1737 , -1766 , -1791 , -1820 , -1846 , -1875 , -1900 , -1929 , -1954 , -1983 , -2009 , -2038 , -2063 , -2092 , -2117 , -2146 , -2171 , -2201 , -2226 , -2255 , -2280 , -2309 , -2334 , -2364 , -2389 , -2418 , -2443 , -2472 , -2497 , -2527 , -2551 , -2581 , -2606 , -2636 , -2660 , -2690 , -2714 , -2744 , -2769 , -2799 , -2823 , -2853 , -2877 , -2907 , -2932 , -2962 , -2986 , -3016 , -3040 , -3070 , -3094 , -3125 , -3149 , -3179 , -3203 , -3233 , -3257 , -3288 , -3312 , -3342 , -3366 , -3396 , -3420 , -3451 , -3475 , -3505 , -3529 , -3560 , -3583 , -3614 , -3637 , -3668 , -3692 , -3723 , -3746 , -3777 , -3800 , -3831 , -3855 , -3886 , -3909 , -3940 , -3963 , -3994 , -4018 , -4049 , -4072 , -4103 , -4126 , -4157 , -4180 , -4212 , -4235 , -4266 , -4289 , -4320 , -4343 , -4375 , -4398 , -4429 , -4452 , -4483 , -4506 , -4538 , -4560 , -4592 , -4615 , -4647 , -4669 , -4701 , -4723 , -4755 , -4778 , -4810 , -4832 , -4864 , -4886 , -4918 , -4941 , -4973 , -4995 , -5027 , -5049 , -5081 , -5103 , -5136 , -5158 , -5190 , -5212 , -5244 , -5266 , -5299 , -5321 , -5353 , -5375 , -5408 , -5429 , -5462 , -5483 , -5516 , -5538 , -5571 , -5592 , -5625 , -5646 , -5679 , -5701 , -5734 , -5755 , -5788 , -5809 , -5842 , -5864 , -5897 , -5918 , -5951 , -5972 , -6005 , -6026 , -6060 , -6081 , -6114 , -6135 , -6168 , -6189 , -6223 , -6244 , -6277 , -6298 , -6332 , -6352 , -6386 , -6407 , -6440 , -6461 , -6495 , -6515 , -6549 , -6569 , -6603 , -6624 , -6658 , -6678 , -6712 , -6732 , -6766 , -6787 , -6821 , -6841 , -6875 , -6895 , -6929 , -6949 , -6984 , -7004 , -7038 , -7058 , -7092 , -7112 , -7147 , -7167 , -7201 , -7221 , -7256 , -7275 , -7310 , -7329 , -7364 , -7384 , -7419 , -7438 , -7473 , -7492 , -7527 , -7547 , -7582 , -7601 , -7636 , -7655 , -7690 , -7710 , -7745 , -7764 , -7799 , -7818 , -7853 , -7872 , -7908 , -7927 , -7962 , -7981 , -8017 , -8035 , -8071 , -8090 , -8125 , -8144 , -8180 , -8198 , -8234 , -8252 , -8288 , -8307 , -8343 , -8361 , -8397 , -8415 , -8451 , -8470 , -8506 , -8524 , -8560 , -8578 , -8614 , -8632 , -8669 , -8687 , -8723 , -8741 , -8778 , -8795 , -8832 , -8850 , -8886 , -8904 , -8941 , -8958 , -8995 , -9013 , -9049 , -9067 , -9104 , -9121 , -9158 , -9175 , -9212 , -9230 , -9267 , -9284 , -9321 , -9338 , -9376 , -9393 , -9430 , -9447 , -9484 , -9501 , -9539 , -9555 , -9593 , -9610 , -9647 , -9664 , -9702 , -9718 , -9756 , -9773 , -9810 , -9827 , -9865 , -9881 , -9919 , -9935 , -9973 , -9990 , -10028, -10044, -10082, -10098, -10137, -10153, -10191, -10207, -10245, -10261, -10300, -10315, -10354, -10370, -10408, -10424, -10463, -10478, -10517, -10533, -10571, -10587, -10626, -10641, -10680, -10695, -10735, -10750, -10789, -10804, -10843, -10858, -10898, -10913, -10952, -10967, -11006, -11021, -11061, -11075, -11115, -11130, -11169, -11184, -11224, -11238, -11278, -11293, -11333, -11347, -11387, -11401, -11441, -11455, -11496, -11510, -11550, -11564, -11604, -11618, -11659, -11673, -11713, -11727, -11768, -11781, -11822, -11835, -11876, -11890, -11931, -11944, -11985, -11998, -12039, -12053, -12094, -12107, -12148, -12161, -12202, -12215, -12257, -12270, -12311, -12324, -12366, -12378, -12420, -12432, -12474, -12487, -12529, -12541, -12583, -12595, -12637, -12650, -12692, -12704, -12746, -12758, -12801, -12812, -12855, -12867, -12909, -12921, -12964, -12975, -13018, -13030, -13072, -13084, -13127, -13138, -13181, -13192, -13235, -13247, -13290, -13301, -13344, -13355, -13399, -13409, -13453, -13464, -13507, -13518, -13562, -13572, -13616, -13627, -13670, -13681, -13725, -13735, -13779, -13789, -13834, -13844, -13888, -13898, -13942, -13952, -13997, -14006, -14051, -14061, -14106, -14115, -14160, -14169, -14214, -14224, -14269, -14278, -14323, -14332, -14377, -14386, -14432, -14441, -14486, -14495, -14541, -14549, -14595, -14603, -14649, -14658, -14704, -14712, -14758, -14766, -14812, -14820, -14867, -14875, -14921, -14929, -14976, -14983, -15030, -15038, -15084, -15092, -15139, -15146, -15193, -15200, -15248, -15255, -15302, -15309, -15356, -15363, -15411, -15417, -15465, -15472, -15519, -15526, -15574, -15580, -15628, -15634, -15683, -15689, -15737, -15743, -15791, -15797, -15846, -15851, -15900, -15906, -15955, -15960, -16009, -16014, -16063, -16068, -16118, -16123, -16172, -16177, -16227, -16231, -16281, -16285, -16335, -16340, -16390, -16394, -16444, -16448, -16499, -16502, -16553, -16557, -16607, -16611, -16662, -16665, -16716, -16719, -16771, -16774, -16825, -16828, -16879, -16882, -16934, -16936, -16988, -16991, -17043, -17045, -17097, -17099, -17151, -17153, -17206, -17208, -17260, -17262, -17315, -17316, -17369, -17370, -17423, -17425, -17478, -17479, -17532, -17533, -17587, -17587, -17641, -17642, -17696, -17696, -17750, -17750, -17804, -17804, -17859, -17858, -17913, -17913, -17968, -17967, -18022, -18021, -18076, -18075, -18131, -18130, -18185, -18184, -18240, -18238, -18294, -18292, -18349, -18347, -18403, -18401, -18457, -18455, -18512, -18509, -18566, -18563, -18621, -18618, -18675, -18672, -18730, -18726, -18784, -18780, -18838, -18834, -18893, -18889, -18947, -18943, -19002, -18997, -19056, -19051, -19111, -19106, -19165, -19160, -19220, -19214, -19274, -19268, -19328, -19322, -19383, -19377, -19437, -19431, -19492, -19485, -19546, -19539, -19601, -19593, -19655, -19647, -19710, -19702, -19764, -19756, -19819, -19810, -19873, -19864, -19927, -19918, -19982, -19973, -20036, -20027, -20091, -20081, -20145, -20135, -20200, -20189, -20254, -20243, -20309, -20298, -20363, -20352, -20418, -20406, -20472, -20460, -20527, -20514, -20581, -20568, -20636, -20623, -20690, -20677, -20745, -20731, -20799, -20785, -20854, -20839, -20908, -20893, -20963, -20947, -21017, -21002, -21072, -21056, -21126, -21110, -21181, -21164, -21235, -21218, -21290, -21272, -21344, -21326, -21399, -21380, -21453, -21435, -21508, -21489, -21562, -21543, -21617, -21597, -21672, -21651, -21726, -21705, -21781, -21759, -21835, -21813, -21890, -21867, -21944, -21921, -21999, -21975, -22054, -22030, -22108, -22084, -22163, -22138, -22217, -22192, -22272, -22246, -22327, -22300, -22381, -22354, -22436, -22408, -22490, -22462, -22545, -22516, -22600, -22570, -22654, -22624, -22709, -22678, -22764, -22732, -22818, -22786, -22873, -22840, -22928, -22894, -22982, -22948, -23037, -23002, -23092, -23056, -23146, -23110, -23201, -23164, -23256, -23218, -23311, -23271, -23365, -23325, -23420, -23379, -23475, -23433, -23530, -23487, -23584, -23541, -23639, -23595, -23694, -23649, -23749, -23702, -23804, -23756, -23858, -23810, -23913, -23864, -23968, -23917, -24023, -23971, -24078, -24025, -24133, -24079, -24188, -24132, -24243, -24186, -24298, -24240, -24353, -24293, -24408, -24347, -24463, -24401, -24518, -24454, -24573, -24508, -24628, -24561, -24683, -24615, -24738, -24668, -24794, -24722, -24849, -24775, -24904, -24828, -24959, -24882, -25015, -24935, -25070, -24988, -25126, -25041, -25181, -25095, -25237, -25148, -25292, -25201, -25348, -25254, -25403, -25307, -25459, -25360, -25515, -25412, -25571, -25465, -25627, -25518, -25683, -25571, -25739, -25623, -25795, -25675, -25851, -25728, -25908, -25780, -25964, -25832, -26021, -25884, -26078, -25936, -26134, -25987, -26192, -26039, -26249, -26090, -26306, -26141, -26364, -26192, -26422, -26243, -26480, -26293, -26539, -26343, -26597, -26393, -26657, -26442, -26716, -26491, -26776, -26539, -26837, -26586, -26899, -26633, -26961, -26679, -27024, -26724, -27088, -26768, -27153, -26811, -27220, -26852, -27289, -26891, -27360, -26927, -27434, -26960, -27511, -26989, -27594, -27012, -27683, -27027, -27782, -27031, -27893, -27019, -28026, -26980, -28194, -26894, -28425, -26716, -28796, -26313, -29573, -25056, -32765, //Osc 1 Level 1 0 , 32737 , 25002 , 29491 , 26204 , 28660 , 26553 , 28235 , 26677 , 27949 , 26708 , 27727 , 26693 , 27540 , 26651 , 27374 , 26593 , 27221 , 26523 , 27078 , 26446 , 26941 , 26363 , 26809 , 26275 , 26680 , 26185 , 26555 , 26092 , 26432 , 25997 , 26311 , 25900 , 26191 , 25801 , 26073 , 25702 , 25955 , 25602 , 25839 , 25500 , 25723 , 25399 , 25608 , 25296 , 25493 , 25193 , 25379 , 25089 , 25266 , 24986 , 25153 , 24881 , 25040 , 24777 , 24927 , 24672 , 24815 , 24567 , 24703 , 24461 , 24591 , 24356 , 24479 , 24250 , 24368 , 24144 , 24257 , 24038 , 24146 , 23932 , 24035 , 23825 , 23924 , 23719 , 23813 , 23612 , 23702 , 23505 , 23592 , 23399 , 23481 , 23292 , 23371 , 23185 , 23261 , 23078 , 23151 , 22971 , 23040 , 22863 , 22930 , 22756 , 22820 , 22649 , 22710 , 22541 , 22601 , 22434 , 22491 , 22327 , 22381 , 22219 , 22271 , 22112 , 22161 , 22004 , 22052 , 21896 , 21942 , 21789 , 21832 , 21681 , 21723 , 21573 , 21613 , 21465 , 21504 , 21358 , 21394 , 21250 , 21285 , 21142 , 21175 , 21034 , 21066 , 20926 , 20957 , 20818 , 20847 , 20710 , 20738 , 20602 , 20628 , 20494 , 20519 , 20386 , 20410 , 20278 , 20301 , 20170 , 20191 , 20062 , 20082 , 19954 , 19973 , 19846 , 19864 , 19738 , 19754 , 19630 , 19645 , 19522 , 19536 , 19414 , 19427 , 19306 , 19318 , 19198 , 19209 , 19089 , 19099 , 18981 , 18990 , 18873 , 18881 , 18765 , 18772 , 18657 , 18663 , 18548 , 18554 , 18440 , 18445 , 18332 , 18336 , 18224 , 18227 , 18115 , 18118 , 18007 , 18009 , 17899 , 17900 , 17791 , 17791 , 17682 , 17682 , 17574 , 17573 , 17466 , 17464 , 17357 , 17355 , 17249 , 17246 , 17141 , 17137 , 17032 , 17028 , 16924 , 16919 , 16816 , 16810 , 16707 , 16701 , 16599 , 16592 , 16491 , 16483 , 16382 , 16374 , 16274 , 16265 , 16166 , 16156 , 16057 , 16047 , 15949 , 15938 , 15841 , 15829 , 15732 , 15720 , 15624 , 15612 , 15515 , 15503 , 15407 , 15394 , 15299 , 15285 , 15190 , 15176 , 15082 , 15067 , 14973 , 14958 , 14865 , 14849 , 14757 , 14740 , 14648 , 14631 , 14540 , 14523 , 14431 , 14414 , 14323 , 14305 , 14215 , 14196 , 14106 , 14087 , 13998 , 13978 , 13889 , 13869 , 13781 , 13761 , 13672 , 13652 , 13564 , 13543 , 13455 , 13434 , 13347 , 13325 , 13239 , 13216 , 13130 , 13107 , 13022 , 12999 , 12913 , 12890 , 12805 , 12781 , 12696 , 12672 , 12588 , 12563 , 12479 , 12454 , 12371 , 12346 , 12262 , 12237 , 12154 , 12128 , 12046 , 12019 , 11937 , 11910 , 11829 , 11801 , 11720 , 11693 , 11612 , 11584 , 11503 , 11475 , 11395 , 11366 , 11286 , 11257 , 11178 , 11149 , 11069 , 11040 , 10961 , 10931 , 10852 , 10822 , 10744 , 10713 , 10635 , 10605 , 10527 , 10496 , 10418 , 10387 , 10310 , 10278 , 10201 , 10169 , 10093 , 10061 , 9984 , 9952 , 9876 , 9843 , 9767 , 9734 , 9659 , 9625 , 9550 , 9517 , 9442 , 9408 , 9333 , 9299 , 9225 , 9190 , 9116 , 9081 , 9008 , 8973 , 8899 , 8864 , 8791 , 8755 , 8682 , 8646 , 8574 , 8537 , 8465 , 8429 , 8357 , 8320 , 8248 , 8211 , 8140 , 8102 , 8031 , 7994 , 7923 , 7885 , 7814 , 7776 , 7706 , 7667 , 7597 , 7558 , 7488 , 7450 , 7380 , 7341 , 7271 , 7232 , 7163 , 7123 , 7054 , 7015 , 6946 , 6906 , 6837 , 6797 , 6729 , 6688 , 6620 , 6579 , 6512 , 6471 , 6403 , 6362 , 6295 , 6253 , 6186 , 6144 , 6078 , 6036 , 5969 , 5927 , 5861 , 5818 , 5752 , 5709 , 5644 , 5601 , 5535 , 5492 , 5426 , 5383 , 5318 , 5274 , 5209 , 5166 , 5101 , 5057 , 4992 , 4948 , 4884 , 4839 , 4775 , 4730 , 4667 , 4622 , 4558 , 4513 , 4450 , 4404 , 4341 , 4295 , 4233 , 4187 , 4124 , 4078 , 4016 , 3969 , 3907 , 3860 , 3798 , 3752 , 3690 , 3643 , 3581 , 3534 , 3473 , 3425 , 3364 , 3317 , 3256 , 3208 , 3147 , 3099 , 3039 , 2990 , 2930 , 2882 , 2822 , 2773 , 2713 , 2664 , 2605 , 2555 , 2496 , 2447 , 2387 , 2338 , 2279 , 2229 , 2170 , 2120 , 2062 , 2011 , 1953 , 1903 , 1845 , 1794 , 1736 , 1685 , 1628 , 1576 , 1519 , 1468 , 1411 , 1359 , 1302 , 1250 , 1193 , 1141 , 1085 , 1033 , 976 , 924 , 868 , 815 , 759 , 706 , 651 , 598 , 542 , 489 , 434 , 380 , 325 , 271 , 217 , 163 , 108 , 54 , 0 , -54 , -108 , -163 , -217 , -271 , -325 , -380 , -434 , -489 , -542 , -598 , -651 , -706 , -759 , -815 , -868 , -924 , -976 , -1033 , -1085 , -1141 , -1193 , -1250 , -1302 , -1359 , -1411 , -1468 , -1519 , -1576 , -1628 , -1685 , -1736 , -1794 , -1845 , -1903 , -1953 , -2011 , -2062 , -2120 , -2170 , -2229 , -2279 , -2338 , -2387 , -2447 , -2496 , -2555 , -2605 , -2664 , -2713 , -2773 , -2822 , -2882 , -2930 , -2990 , -3039 , -3099 , -3147 , -3208 , -3256 , -3317 , -3364 , -3425 , -3473 , -3534 , -3581 , -3643 , -3690 , -3752 , -3798 , -3860 , -3907 , -3969 , -4016 , -4078 , -4124 , -4187 , -4233 , -4295 , -4341 , -4404 , -4450 , -4513 , -4558 , -4622 , -4667 , -4730 , -4775 , -4839 , -4884 , -4948 , -4992 , -5057 , -5101 , -5166 , -5209 , -5274 , -5318 , -5383 , -5426 , -5492 , -5535 , -5601 , -5644 , -5709 , -5752 , -5818 , -5861 , -5927 , -5969 , -6036 , -6078 , -6144 , -6186 , -6253 , -6295 , -6362 , -6403 , -6471 , -6512 , -6579 , -6620 , -6688 , -6729 , -6797 , -6837 , -6906 , -6946 , -7015 , -7054 , -7123 , -7163 , -7232 , -7271 , -7341 , -7380 , -7450 , -7488 , -7558 , -7597 , -7667 , -7706 , -7776 , -7814 , -7885 , -7923 , -7994 , -8031 , -8102 , -8140 , -8211 , -8248 , -8320 , -8357 , -8429 , -8465 , -8537 , -8574 , -8646 , -8682 , -8755 , -8791 , -8864 , -8899 , -8973 , -9008 , -9081 , -9116 , -9190 , -9225 , -9299 , -9333 , -9408 , -9442 , -9517 , -9550 , -9625 , -9659 , -9734 , -9767 , -9843 , -9876 , -9952 , -9984 , -10061, -10093, -10169, -10201, -10278, -10310, -10387, -10418, -10496, -10527, -10605, -10635, -10713, -10744, -10822, -10852, -10931, -10961, -11040, -11069, -11149, -11178, -11257, -11286, -11366, -11395, -11475, -11503, -11584, -11612, -11693, -11720, -11801, -11829, -11910, -11937, -12019, -12046, -12128, -12154, -12237, -12262, -12346, -12371, -12454, -12479, -12563, -12588, -12672, -12696, -12781, -12805, -12890, -12913, -12999, -13022, -13107, -13130, -13216, -13239, -13325, -13347, -13434, -13455, -13543, -13564, -13652, -13672, -13761, -13781, -13869, -13889, -13978, -13998, -14087, -14106, -14196, -14215, -14305, -14323, -14414, -14431, -14523, -14540, -14631, -14648, -14740, -14757, -14849, -14865, -14958, -14973, -15067, -15082, -15176, -15190, -15285, -15299, -15394, -15407, -15503, -15515, -15612, -15624, -15720, -15732, -15829, -15841, -15938, -15949, -16047, -16057, -16156, -16166, -16265, -16274, -16374, -16382, -16483, -16491, -16592, -16599, -16701, -16707, -16810, -16816, -16919, -16924, -17028, -17032, -17137, -17141, -17246, -17249, -17355, -17357, -17464, -17466, -17573, -17574, -17682, -17682, -17791, -17791, -17900, -17899, -18009, -18007, -18118, -18115, -18227, -18224, -18336, -18332, -18445, -18440, -18554, -18548, -18663, -18657, -18772, -18765, -18881, -18873, -18990, -18981, -19099, -19089, -19209, -19198, -19318, -19306, -19427, -19414, -19536, -19522, -19645, -19630, -19754, -19738, -19864, -19846, -19973, -19954, -20082, -20062, -20191, -20170, -20301, -20278, -20410, -20386, -20519, -20494, -20628, -20602, -20738, -20710, -20847, -20818, -20957, -20926, -21066, -21034, -21175, -21142, -21285, -21250, -21394, -21358, -21504, -21465, -21613, -21573, -21723, -21681, -21832, -21789, -21942, -21896, -22052, -22004, -22161, -22112, -22271, -22219, -22381, -22327, -22491, -22434, -22601, -22541, -22710, -22649, -22820, -22756, -22930, -22863, -23040, -22971, -23151, -23078, -23261, -23185, -23371, -23292, -23481, -23399, -23592, -23505, -23702, -23612, -23813, -23719, -23924, -23825, -24035, -23932, -24146, -24038, -24257, -24144, -24368, -24250, -24479, -24356, -24591, -24461, -24703, -24567, -24815, -24672, -24927, -24777, -25040, -24881, -25153, -24986, -25266, -25089, -25379, -25193, -25493, -25296, -25608, -25399, -25723, -25500, -25839, -25602, -25955, -25702, -26073, -25801, -26191, -25900, -26311, -25997, -26432, -26092, -26555, -26185, -26680, -26275, -26809, -26363, -26941, -26446, -27078, -26523, -27221, -26593, -27374, -26651, -27540, -26693, -27727, -26708, -27949, -26677, -28235, -26553, -28660, -26204, -29491, -25002, -32737, //Osc 1 Level 2 0 , 32683 , 24894 , 29328 , 25987 , 28389 , 26228 , 27854 , 26243 , 27460 , 26165 , 27129 , 26042 , 26833 , 25891 , 26558 , 25724 , 26297 , 25546 , 26044 , 25360 , 25799 , 25169 , 25558 , 24973 , 25321 , 24774 , 25087 , 24572 , 24855 , 24368 , 24625 , 24163 , 24397 , 23956 , 24169 , 23748 , 23943 , 23539 , 23718 , 23330 , 23494 , 23119 , 23270 , 22908 , 23046 , 22697 , 22824 , 22484 , 22601 , 22272 , 22379 , 22059 , 22158 , 21846 , 21936 , 21633 , 21715 , 21419 , 21495 , 21205 , 21274 , 20991 , 21054 , 20777 , 20833 , 20562 , 20613 , 20347 , 20394 , 20133 , 20174 , 19918 , 19954 , 19703 , 19735 , 19488 , 19515 , 19272 , 19296 , 19057 , 19077 , 18842 , 18858 , 18626 , 18639 , 18410 , 18420 , 18195 , 18201 , 17979 , 17982 , 17763 , 17763 , 17547 , 17544 , 17332 , 17326 , 17116 , 17107 , 16900 , 16889 , 16684 , 16670 , 16467 , 16452 , 16251 , 16233 , 16035 , 16015 , 15819 , 15796 , 15603 , 15578 , 15387 , 15360 , 15170 , 15141 , 14954 , 14923 , 14738 , 14705 , 14521 , 14487 , 14305 , 14268 , 14088 , 14050 , 13872 , 13832 , 13656 , 13614 , 13439 , 13396 , 13223 , 13178 , 13006 , 12960 , 12789 , 12742 , 12573 , 12524 , 12356 , 12306 , 12140 , 12088 , 11923 , 11870 , 11707 , 11652 , 11490 , 11434 , 11273 , 11216 , 11057 , 10998 , 10840 , 10780 , 10623 , 10562 , 10407 , 10344 , 10190 , 10126 , 9973 , 9908 , 9757 , 9690 , 9540 , 9472 , 9323 , 9255 , 9106 , 9037 , 8890 , 8819 , 8673 , 8601 , 8456 , 8383 , 8239 , 8165 , 8023 , 7947 , 7806 , 7730 , 7589 , 7512 , 7372 , 7294 , 7155 , 7076 , 6939 , 6858 , 6722 , 6641 , 6505 , 6423 , 6288 , 6205 , 6071 , 5987 , 5855 , 5770 , 5638 , 5552 , 5421 , 5334 , 5204 , 5116 , 4987 , 4898 , 4770 , 4681 , 4554 , 4463 , 4337 , 4245 , 4120 , 4027 , 3903 , 3810 , 3686 , 3592 , 3469 , 3374 , 3253 , 3157 , 3036 , 2939 , 2819 , 2721 , 2602 , 2503 , 2385 , 2286 , 2168 , 2068 , 1951 , 1850 , 1734 , 1632 , 1518 , 1415 , 1301 , 1197 , 1084 , 979 , 867 , 762 , 650 , 544 , 433 , 326 , 216 , 108 , 0 , -108 , -216 , -326 , -433 , -544 , -650 , -762 , -867 , -979 , -1084 , -1197 , -1301 , -1415 , -1518 , -1632 , -1734 , -1850 , -1951 , -2068 , -2168 , -2286 , -2385 , -2503 , -2602 , -2721 , -2819 , -2939 , -3036 , -3157 , -3253 , -3374 , -3469 , -3592 , -3686 , -3810 , -3903 , -4027 , -4120 , -4245 , -4337 , -4463 , -4554 , -4681 , -4770 , -4898 , -4987 , -5116 , -5204 , -5334 , -5421 , -5552 , -5638 , -5770 , -5855 , -5987 , -6071 , -6205 , -6288 , -6423 , -6505 , -6641 , -6722 , -6858 , -6939 , -7076 , -7155 , -7294 , -7372 , -7512 , -7589 , -7730 , -7806 , -7947 , -8023 , -8165 , -8239 , -8383 , -8456 , -8601 , -8673 , -8819 , -8890 , -9037 , -9106 , -9255 , -9323 , -9472 , -9540 , -9690 , -9757 , -9908 , -9973 , -10126, -10190, -10344, -10407, -10562, -10623, -10780, -10840, -10998, -11057, -11216, -11273, -11434, -11490, -11652, -11707, -11870, -11923, -12088, -12140, -12306, -12356, -12524, -12573, -12742, -12789, -12960, -13006, -13178, -13223, -13396, -13439, -13614, -13656, -13832, -13872, -14050, -14088, -14268, -14305, -14487, -14521, -14705, -14738, -14923, -14954, -15141, -15170, -15360, -15387, -15578, -15603, -15796, -15819, -16015, -16035, -16233, -16251, -16452, -16467, -16670, -16684, -16889, -16900, -17107, -17116, -17326, -17332, -17544, -17547, -17763, -17763, -17982, -17979, -18201, -18195, -18420, -18410, -18639, -18626, -18858, -18842, -19077, -19057, -19296, -19272, -19515, -19488, -19735, -19703, -19954, -19918, -20174, -20133, -20394, -20347, -20613, -20562, -20833, -20777, -21054, -20991, -21274, -21205, -21495, -21419, -21715, -21633, -21936, -21846, -22158, -22059, -22379, -22272, -22601, -22484, -22824, -22697, -23046, -22908, -23270, -23119, -23494, -23330, -23718, -23539, -23943, -23748, -24169, -23956, -24397, -24163, -24625, -24368, -24855, -24572, -25087, -24774, -25321, -24973, -25558, -25169, -25799, -25360, -26044, -25546, -26297, -25724, -26558, -25891, -26833, -26042, -27129, -26165, -27460, -26243, -27854, -26228, -28389, -25987, -29328, -24894, -32683, //Osc 1 Level 3 0 , 32574 , 24677 , 29002 , 25553 , 27844 , 25577 , 27092 , 25375 , 26480 , 25081 , 25932 , 24740 , 25418 , 24373 , 24925 , 23989 , 24446 , 23594 , 23976 , 23192 , 23513 , 22783 , 23054 , 22371 , 22599 , 21955 , 22148 , 21536 , 21698 , 21115 , 21250 , 20693 , 20804 , 20269 , 20359 , 19845 , 19915 , 19419 , 19472 , 18992 , 19030 , 18565 , 18588 , 18137 , 18147 , 17709 , 17707 , 17280 , 17267 , 16851 , 16827 , 16421 , 16388 , 15991 , 15949 , 15561 , 15510 , 15130 , 15071 , 14699 , 14633 , 14268 , 14195 , 13837 , 13757 , 13406 , 13319 , 12975 , 12881 , 12543 , 12444 , 12111 , 12006 , 11680 , 11569 , 11248 , 11132 , 10816 , 10695 , 10384 , 10257 , 9951 , 9821 , 9519 , 9384 , 9087 , 8947 , 8654 , 8510 , 8222 , 8073 , 7790 , 7637 , 7357 , 7200 , 6924 , 6763 , 6492 , 6327 , 6059 , 5890 , 5626 , 5454 , 5194 , 5017 , 4761 , 4581 , 4328 , 4145 , 3895 , 3708 , 3463 , 3272 , 3030 , 2835 , 2597 , 2399 , 2164 , 1963 , 1731 , 1527 , 1298 , 1090 , 865 , 654 , 432 , 218 , 0 , -218 , -432 , -654 , -865 , -1090 , -1298 , -1527 , -1731 , -1963 , -2164 , -2399 , -2597 , -2835 , -3030 , -3272 , -3463 , -3708 , -3895 , -4145 , -4328 , -4581 , -4761 , -5017 , -5194 , -5454 , -5626 , -5890 , -6059 , -6327 , -6492 , -6763 , -6924 , -7200 , -7357 , -7637 , -7790 , -8073 , -8222 , -8510 , -8654 , -8947 , -9087 , -9384 , -9519 , -9821 , -9951 , -10257, -10384, -10695, -10816, -11132, -11248, -11569, -11680, -12006, -12111, -12444, -12543, -12881, -12975, -13319, -13406, -13757, -13837, -14195, -14268, -14633, -14699, -15071, -15130, -15510, -15561, -15949, -15991, -16388, -16421, -16827, -16851, -17267, -17280, -17707, -17709, -18147, -18137, -18588, -18565, -19030, -18992, -19472, -19419, -19915, -19845, -20359, -20269, -20804, -20693, -21250, -21115, -21698, -21536, -22148, -21955, -22599, -22371, -23054, -22783, -23513, -23192, -23976, -23594, -24446, -23989, -24925, -24373, -25418, -24740, -25932, -25081, -26480, -25375, -27092, -25577, -27844, -25553, -29002, -24677, -32574, //Osc 1 Level 4 0 , 32356 , 24244 , 28347 , 24687 , 26753 , 24279 , 25565 , 23644 , 24517 , 22916 , 23532 , 22143 , 22582 , 21343 , 21653 , 20526 , 20737 , 19699 , 19831 , 18863 , 18931 , 18022 , 18036 , 17176 , 17145 , 16328 , 16257 , 15476 , 15371 , 14623 , 14486 , 13768 , 13604 , 12912 , 12722 , 12055 , 11842 , 11196 , 10962 , 10337 , 10083 , 9478 , 9204 , 8617 , 8326 , 7757 , 7449 , 6896 , 6572 , 6034 , 5695 , 5173 , 4818 , 4311 , 3942 , 3449 , 3066 , 2587 , 2190 , 1724 , 1313 , 862 , 437 , 0 , -437 , -862 , -1313 , -1724 , -2190 , -2587 , -3066 , -3449 , -3942 , -4311 , -4818 , -5173 , -5695 , -6034 , -6572 , -6896 , -7449 , -7757 , -8326 , -8617 , -9204 , -9478 , -10083, -10337, -10962, -11196, -11842, -12055, -12722, -12912, -13604, -13768, -14486, -14623, -15371, -15476, -16257, -16328, -17145, -17176, -18036, -18022, -18931, -18863, -19831, -19699, -20737, -20526, -21653, -21343, -22582, -22143, -23532, -22916, -24517, -23644, -25565, -24279, -26753, -24687, -28347, -24244, -32356, //Osc 1 Level 5 0 , 31918 , 23381 , 27033 , 22963 , 24563 , 21692 , 22499 , 20194 , 20574 , 18605 , 18713 , 16970 , 16887 , 15308 , 15081 , 13630 , 13288 , 11941 , 11504 , 10245 , 9726 , 8544 , 7953 , 6838 , 6183 , 5131 , 4415 , 3421 , 2648 , 1711 , 882 , 0 , -882 , -1711 , -2648 , -3421 , -4415 , -5131 , -6183 , -6838 , -7953 , -8544 , -9726 , -10245, -11504, -11941, -13288, -13630, -15081, -15308, -16887, -16970, -18713, -18605, -20574, -20194, -22499, -21692, -24563, -22963, -27033, -23381, -31918, //Osc 1 Level 6 0 , 31035 , 21670 , 24385 , 19541 , 20148 , 16560 , 16316 , 13355 , 12621 , 10061 , 8986 , 6724 , 5382 , 3366 , 1792 , 0 , -1792 , -3366 , -5382 , -6724 , -8986 , -10061, -12621, -13355, -16316, -16560, -20148, -19541, -24385, -21670, -31035, //Osc 1 Level 7 0 , 29242 , 18303 , 19002 , 12816 , 11161 , 6499 , 3695 , 0 , -3695 , -6499 , -11161, -12816, -19002, -18303, -29242, //Osc 1 Level 8 0 , 25547 , 11804 , 7840 , 0 , -7840 , -11804, -25547, //Osc 1 Level 9 0 , 17707 , 0 , -17706, //Osc 1 Level 10 0 , 0 , //Osc 1 Level 11 0 , 0 , }, //Osc 2 Level 0 { 0 , 30341 , 23234 , 27438 , 24446 , 26770 , 24870 , 26477 , 25085 , 26313 , 25214 , 26208 , 25301 , 26135 , 25362 , 26082 , 25409 , 26041 , 25445 , 26009 , 25474 , 25983 , 25498 , 25961 , 25517 , 25943 , 25534 , 25928 , 25548 , 25915 , 25561 , 25903 , 25571 , 25893 , 25581 , 25884 , 25590 , 25876 , 25597 , 25869 , 25604 , 25862 , 25610 , 25856 , 25616 , 25851 , 25621 , 25846 , 25626 , 25841 , 25630 , 25837 , 25634 , 25833 , 25638 , 25830 , 25641 , 25827 , 25644 , 25824 , 25647 , 25821 , 25650 , 25818 , 25653 , 25815 , 25655 , 25813 , 25657 , 25811 , 25660 , 25809 , 25662 , 25807 , 25664 , 25805 , 25665 , 25803 , 25667 , 25801 , 25669 , 25800 , 25670 , 25798 , 25672 , 25797 , 25673 , 25795 , 25675 , 25794 , 25676 , 25793 , 25677 , 25791 , 25678 , 25790 , 25680 , 25789 , 25681 , 25788 , 25682 , 25787 , 25683 , 25786 , 25684 , 25785 , 25685 , 25784 , 25685 , 25783 , 25686 , 25783 , 25687 , 25782 , 25688 , 25781 , 25689 , 25780 , 25689 , 25779 , 25690 , 25779 , 25691 , 25778 , 25692 , 25777 , 25692 , 25777 , 25693 , 25776 , 25693 , 25776 , 25694 , 25775 , 25695 , 25774 , 25695 , 25774 , 25696 , 25773 , 25696 , 25773 , 25697 , 25772 , 25697 , 25772 , 25698 , 25771 , 25698 , 25771 , 25699 , 25770 , 25699 , 25770 , 25699 , 25770 , 25700 , 25769 , 25700 , 25769 , 25701 , 25768 , 25701 , 25768 , 25701 , 25768 , 25702 , 25767 , 25702 , 25767 , 25703 , 25767 , 25703 , 25766 , 25703 , 25766 , 25704 , 25766 , 25704 , 25765 , 25704 , 25765 , 25704 , 25765 , 25705 , 25764 , 25705 , 25764 , 25705 , 25764 , 25706 , 25764 , 25706 , 25763 , 25706 , 25763 , 25706 , 25763 , 25707 , 25763 , 25707 , 25762 , 25707 , 25762 , 25707 , 25762 , 25708 , 25762 , 25708 , 25761 , 25708 , 25761 , 25708 , 25761 , 25708 , 25761 , 25709 , 25761 , 25709 , 25760 , 25709 , 25760 , 25709 , 25760 , 25709 , 25760 , 25710 , 25760 , 25710 , 25759 , 25710 , 25759 , 25710 , 25759 , 25710 , 25759 , 25710 , 25759 , 25711 , 25759 , 25711 , 25758 , 25711 , 25758 , 25711 , 25758 , 25711 , 25758 , 25711 , 25758 , 25712 , 25758 , 25712 , 25757 , 25712 , 25757 , 25712 , 25757 , 25712 , 25757 , 25712 , 25757 , 25712 , 25757 , 25713 , 25757 , 25713 , 25757 , 25713 , 25756 , 25713 , 25756 , 25713 , 25756 , 25713 , 25756 , 25713 , 25756 , 25713 , 25756 , 25714 , 25756 , 25714 , 25756 , 25714 , 25755 , 25714 , 25755 , 25714 , 25755 , 25714 , 25755 , 25714 , 25755 , 25714 , 25755 , 25714 , 25755 , 25714 , 25755 , 25715 , 25755 , 25715 , 25755 , 25715 , 25755 , 25715 , 25754 , 25715 , 25754 , 25715 , 25754 , 25715 , 25754 , 25715 , 25754 , 25715 , 25754 , 25715 , 25754 , 25715 , 25754 , 25715 , 25754 , 25716 , 25754 , 25716 , 25754 , 25716 , 25754 , 25716 , 25753 , 25716 , 25753 , 25716 , 25753 , 25716 , 25753 , 25716 , 25753 , 25716 , 25753 , 25716 , 25753 , 25716 , 25753 , 25716 , 25753 , 25716 , 25753 , 25716 , 25753 , 25716 , 25753 , 25717 , 25753 , 25717 , 25753 , 25717 , 25753 , 25717 , 25753 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25718 , 25752 , 25718 , 25752 , 25718 , 25752 , 25718 , 25752 , 25718 , 25752 , 25718 , 25752 , 25718 , 25752 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25719 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25751 , 25718 , 25752 , 25718 , 25752 , 25718 , 25752 , 25718 , 25752 , 25718 , 25752 , 25718 , 25752 , 25718 , 25752 , 25718 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25752 , 25717 , 25753 , 25717 , 25753 , 25717 , 25753 , 25717 , 25753 , 25717 , 25753 , 25716 , 25753 , 25716 , 25753 , 25716 , 25753 , 25716 , 25753 , 25716 , 25753 , 25716 , 25753 , 25716 , 25753 , 25716 , 25753 , 25716 , 25753 , 25716 , 25753 , 25716 , 25753 , 25716 , 25754 , 25716 , 25754 , 25716 , 25754 , 25716 , 25754 , 25715 , 25754 , 25715 , 25754 , 25715 , 25754 , 25715 , 25754 , 25715 , 25754 , 25715 , 25754 , 25715 , 25754 , 25715 , 25754 , 25715 , 25755 , 25715 , 25755 , 25715 , 25755 , 25715 , 25755 , 25714 , 25755 , 25714 , 25755 , 25714 , 25755 , 25714 , 25755 , 25714 , 25755 , 25714 , 25755 , 25714 , 25755 , 25714 , 25756 , 25714 , 25756 , 25714 , 25756 , 25713 , 25756 , 25713 , 25756 , 25713 , 25756 , 25713 , 25756 , 25713 , 25756 , 25713 , 25757 , 25713 , 25757 , 25713 , 25757 , 25712 , 25757 , 25712 , 25757 , 25712 , 25757 , 25712 , 25757 , 25712 , 25757 , 25712 , 25758 , 25712 , 25758 , 25711 , 25758 , 25711 , 25758 , 25711 , 25758 , 25711 , 25758 , 25711 , 25759 , 25711 , 25759 , 25710 , 25759 , 25710 , 25759 , 25710 , 25759 , 25710 , 25759 , 25710 , 25760 , 25710 , 25760 , 25709 , 25760 , 25709 , 25760 , 25709 , 25760 , 25709 , 25761 , 25709 , 25761 , 25708 , 25761 , 25708 , 25761 , 25708 , 25761 , 25708 , 25762 , 25708 , 25762 , 25707 , 25762 , 25707 , 25762 , 25707 , 25763 , 25707 , 25763 , 25706 , 25763 , 25706 , 25763 , 25706 , 25764 , 25706 , 25764 , 25705 , 25764 , 25705 , 25764 , 25705 , 25765 , 25704 , 25765 , 25704 , 25765 , 25704 , 25766 , 25704 , 25766 , 25703 , 25766 , 25703 , 25767 , 25703 , 25767 , 25702 , 25767 , 25702 , 25768 , 25701 , 25768 , 25701 , 25768 , 25701 , 25769 , 25700 , 25769 , 25700 , 25770 , 25699 , 25770 , 25699 , 25770 , 25699 , 25771 , 25698 , 25771 , 25698 , 25772 , 25697 , 25772 , 25697 , 25773 , 25696 , 25773 , 25696 , 25774 , 25695 , 25774 , 25695 , 25775 , 25694 , 25776 , 25693 , 25776 , 25693 , 25777 , 25692 , 25777 , 25692 , 25778 , 25691 , 25779 , 25690 , 25779 , 25689 , 25780 , 25689 , 25781 , 25688 , 25782 , 25687 , 25783 , 25686 , 25783 , 25685 , 25784 , 25685 , 25785 , 25684 , 25786 , 25683 , 25787 , 25682 , 25788 , 25681 , 25789 , 25680 , 25790 , 25678 , 25791 , 25677 , 25793 , 25676 , 25794 , 25675 , 25795 , 25673 , 25797 , 25672 , 25798 , 25670 , 25800 , 25669 , 25801 , 25667 , 25803 , 25665 , 25805 , 25664 , 25807 , 25662 , 25809 , 25660 , 25811 , 25657 , 25813 , 25655 , 25815 , 25653 , 25818 , 25650 , 25821 , 25647 , 25824 , 25644 , 25827 , 25641 , 25830 , 25638 , 25833 , 25634 , 25837 , 25630 , 25841 , 25626 , 25846 , 25621 , 25851 , 25616 , 25856 , 25610 , 25862 , 25604 , 25869 , 25597 , 25876 , 25590 , 25884 , 25581 , 25893 , 25571 , 25903 , 25561 , 25915 , 25548 , 25928 , 25534 , 25943 , 25517 , 25961 , 25498 , 25983 , 25474 , 26009 , 25445 , 26041 , 25409 , 26082 , 25362 , 26135 , 25301 , 26208 , 25214 , 26313 , 25085 , 26477 , 24870 , 26770 , 24446 , 27438 , 23234 , 30341 , 0 , -30341, -23234, -27438, -24446, -26770, -24870, -26477, -25085, -26313, -25214, -26208, -25301, -26135, -25362, -26082, -25409, -26041, -25445, -26009, -25474, -25983, -25498, -25961, -25517, -25943, -25534, -25928, -25548, -25915, -25561, -25903, -25571, -25893, -25581, -25884, -25590, -25876, -25597, -25869, -25604, -25862, -25610, -25856, -25616, -25851, -25621, -25846, -25626, -25841, -25630, -25837, -25634, -25833, -25638, -25830, -25641, -25827, -25644, -25824, -25647, -25821, -25650, -25818, -25653, -25815, -25655, -25813, -25657, -25811, -25660, -25809, -25662, -25807, -25664, -25805, -25665, -25803, -25667, -25801, -25669, -25800, -25670, -25798, -25672, -25797, -25673, -25795, -25675, -25794, -25676, -25793, -25677, -25791, -25678, -25790, -25680, -25789, -25681, -25788, -25682, -25787, -25683, -25786, -25684, -25785, -25685, -25784, -25685, -25783, -25686, -25783, -25687, -25782, -25688, -25781, -25689, -25780, -25689, -25779, -25690, -25779, -25691, -25778, -25692, -25777, -25692, -25777, -25693, -25776, -25693, -25776, -25694, -25775, -25695, -25774, -25695, -25774, -25696, -25773, -25696, -25773, -25697, -25772, -25697, -25772, -25698, -25771, -25698, -25771, -25699, -25770, -25699, -25770, -25699, -25770, -25700, -25769, -25700, -25769, -25701, -25768, -25701, -25768, -25701, -25768, -25702, -25767, -25702, -25767, -25703, -25767, -25703, -25766, -25703, -25766, -25704, -25766, -25704, -25765, -25704, -25765, -25704, -25765, -25705, -25764, -25705, -25764, -25705, -25764, -25706, -25764, -25706, -25763, -25706, -25763, -25706, -25763, -25707, -25763, -25707, -25762, -25707, -25762, -25707, -25762, -25708, -25762, -25708, -25761, -25708, -25761, -25708, -25761, -25708, -25761, -25709, -25761, -25709, -25760, -25709, -25760, -25709, -25760, -25709, -25760, -25710, -25760, -25710, -25759, -25710, -25759, -25710, -25759, -25710, -25759, -25710, -25759, -25711, -25759, -25711, -25758, -25711, -25758, -25711, -25758, -25711, -25758, -25711, -25758, -25712, -25758, -25712, -25757, -25712, -25757, -25712, -25757, -25712, -25757, -25712, -25757, -25712, -25757, -25713, -25757, -25713, -25757, -25713, -25756, -25713, -25756, -25713, -25756, -25713, -25756, -25713, -25756, -25713, -25756, -25714, -25756, -25714, -25756, -25714, -25755, -25714, -25755, -25714, -25755, -25714, -25755, -25714, -25755, -25714, -25755, -25714, -25755, -25714, -25755, -25715, -25755, -25715, -25755, -25715, -25755, -25715, -25754, -25715, -25754, -25715, -25754, -25715, -25754, -25715, -25754, -25715, -25754, -25715, -25754, -25715, -25754, -25715, -25754, -25716, -25754, -25716, -25754, -25716, -25754, -25716, -25753, -25716, -25753, -25716, -25753, -25716, -25753, -25716, -25753, -25716, -25753, -25716, -25753, -25716, -25753, -25716, -25753, -25716, -25753, -25716, -25753, -25716, -25753, -25717, -25753, -25717, -25753, -25717, -25753, -25717, -25753, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25718, -25752, -25718, -25752, -25718, -25752, -25718, -25752, -25718, -25752, -25718, -25752, -25718, -25752, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25719, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25751, -25718, -25752, -25718, -25752, -25718, -25752, -25718, -25752, -25718, -25752, -25718, -25752, -25718, -25752, -25718, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25752, -25717, -25753, -25717, -25753, -25717, -25753, -25717, -25753, -25717, -25753, -25716, -25753, -25716, -25753, -25716, -25753, -25716, -25753, -25716, -25753, -25716, -25753, -25716, -25753, -25716, -25753, -25716, -25753, -25716, -25753, -25716, -25753, -25716, -25754, -25716, -25754, -25716, -25754, -25716, -25754, -25715, -25754, -25715, -25754, -25715, -25754, -25715, -25754, -25715, -25754, -25715, -25754, -25715, -25754, -25715, -25754, -25715, -25755, -25715, -25755, -25715, -25755, -25715, -25755, -25714, -25755, -25714, -25755, -25714, -25755, -25714, -25755, -25714, -25755, -25714, -25755, -25714, -25755, -25714, -25756, -25714, -25756, -25714, -25756, -25713, -25756, -25713, -25756, -25713, -25756, -25713, -25756, -25713, -25756, -25713, -25757, -25713, -25757, -25713, -25757, -25712, -25757, -25712, -25757, -25712, -25757, -25712, -25757, -25712, -25757, -25712, -25758, -25712, -25758, -25711, -25758, -25711, -25758, -25711, -25758, -25711, -25758, -25711, -25759, -25711, -25759, -25710, -25759, -25710, -25759, -25710, -25759, -25710, -25759, -25710, -25760, -25710, -25760, -25709, -25760, -25709, -25760, -25709, -25760, -25709, -25761, -25709, -25761, -25708, -25761, -25708, -25761, -25708, -25761, -25708, -25762, -25708, -25762, -25707, -25762, -25707, -25762, -25707, -25763, -25707, -25763, -25706, -25763, -25706, -25763, -25706, -25764, -25706, -25764, -25705, -25764, -25705, -25764, -25705, -25765, -25704, -25765, -25704, -25765, -25704, -25766, -25704, -25766, -25703, -25766, -25703, -25767, -25703, -25767, -25702, -25767, -25702, -25768, -25701, -25768, -25701, -25768, -25701, -25769, -25700, -25769, -25700, -25770, -25699, -25770, -25699, -25770, -25699, -25771, -25698, -25771, -25698, -25772, -25697, -25772, -25697, -25773, -25696, -25773, -25696, -25774, -25695, -25774, -25695, -25775, -25694, -25776, -25693, -25776, -25693, -25777, -25692, -25777, -25692, -25778, -25691, -25779, -25690, -25779, -25689, -25780, -25689, -25781, -25688, -25782, -25687, -25783, -25686, -25783, -25685, -25784, -25685, -25785, -25684, -25786, -25683, -25787, -25682, -25788, -25681, -25789, -25680, -25790, -25678, -25791, -25677, -25793, -25676, -25794, -25675, -25795, -25673, -25797, -25672, -25798, -25670, -25800, -25669, -25801, -25667, -25803, -25665, -25805, -25664, -25807, -25662, -25809, -25660, -25811, -25657, -25813, -25655, -25815, -25653, -25818, -25650, -25821, -25647, -25824, -25644, -25827, -25641, -25830, -25638, -25833, -25634, -25837, -25630, -25841, -25626, -25846, -25621, -25851, -25616, -25856, -25610, -25862, -25604, -25869, -25597, -25876, -25590, -25884, -25581, -25893, -25571, -25903, -25561, -25915, -25548, -25928, -25534, -25943, -25517, -25961, -25498, -25983, -25474, -26009, -25445, -26041, -25409, -26082, -25362, -26135, -25301, -26208, -25214, -26313, -25085, -26477, -24870, -26770, -24446, -27438, -23234, -30341, //Osc 2 Level 1 0 , 30341 , 23234 , 27438 , 24446 , 26770 , 24870 , 26477 , 25085 , 26313 , 25214 , 26208 , 25300 , 26136 , 25362 , 26082 , 25408 , 26042 , 25445 , 26010 , 25473 , 25984 , 25497 , 25962 , 25517 , 25944 , 25533 , 25929 , 25548 , 25915 , 25560 , 25904 , 25571 , 25894 , 25580 , 25885 , 25589 , 25877 , 25596 , 25870 , 25603 , 25863 , 25609 , 25857 , 25615 , 25852 , 25620 , 25847 , 25624 , 25843 , 25629 , 25839 , 25633 , 25835 , 25636 , 25831 , 25640 , 25828 , 25643 , 25825 , 25646 , 25822 , 25648 , 25820 , 25651 , 25817 , 25653 , 25815 , 25656 , 25813 , 25658 , 25810 , 25660 , 25809 , 25662 , 25807 , 25663 , 25805 , 25665 , 25803 , 25667 , 25802 , 25668 , 25800 , 25670 , 25799 , 25671 , 25798 , 25672 , 25796 , 25674 , 25795 , 25675 , 25794 , 25676 , 25793 , 25677 , 25792 , 25678 , 25791 , 25679 , 25790 , 25680 , 25789 , 25681 , 25788 , 25682 , 25787 , 25683 , 25786 , 25683 , 25785 , 25684 , 25785 , 25685 , 25784 , 25686 , 25783 , 25686 , 25783 , 25687 , 25782 , 25688 , 25781 , 25688 , 25781 , 25689 , 25780 , 25689 , 25780 , 25690 , 25779 , 25690 , 25779 , 25691 , 25778 , 25691 , 25778 , 25692 , 25777 , 25692 , 25777 , 25693 , 25776 , 25693 , 25776 , 25694 , 25775 , 25694 , 25775 , 25694 , 25775 , 25695 , 25774 , 25695 , 25774 , 25696 , 25774 , 25696 , 25773 , 25696 , 25773 , 25696 , 25773 , 25697 , 25772 , 25697 , 25772 , 25697 , 25772 , 25698 , 25772 , 25698 , 25771 , 25698 , 25771 , 25698 , 25771 , 25699 , 25771 , 25699 , 25770 , 25699 , 25770 , 25699 , 25770 , 25699 , 25770 , 25700 , 25770 , 25700 , 25769 , 25700 , 25769 , 25700 , 25769 , 25700 , 25769 , 25701 , 25769 , 25701 , 25769 , 25701 , 25768 , 25701 , 25768 , 25701 , 25768 , 25701 , 25768 , 25701 , 25768 , 25701 , 25768 , 25702 , 25768 , 25702 , 25768 , 25702 , 25767 , 25702 , 25767 , 25702 , 25767 , 25702 , 25767 , 25702 , 25767 , 25702 , 25767 , 25702 , 25767 , 25702 , 25767 , 25702 , 25767 , 25702 , 25767 , 25702 , 25767 , 25702 , 25767 , 25703 , 25767 , 25703 , 25767 , 25703 , 25767 , 25703 , 25767 , 25703 , 25767 , 25703 , 25767 , 25703 , 25767 , 25703 , 25767 , 25703 , 25767 , 25703 , 25767 , 25703 , 25767 , 25703 , 25767 , 25703 , 25767 , 25703 , 25767 , 25703 , 25767 , 25702 , 25767 , 25702 , 25767 , 25702 , 25767 , 25702 , 25767 , 25702 , 25767 , 25702 , 25767 , 25702 , 25767 , 25702 , 25767 , 25702 , 25767 , 25702 , 25767 , 25702 , 25767 , 25702 , 25768 , 25702 , 25768 , 25702 , 25768 , 25701 , 25768 , 25701 , 25768 , 25701 , 25768 , 25701 , 25768 , 25701 , 25768 , 25701 , 25769 , 25701 , 25769 , 25701 , 25769 , 25700 , 25769 , 25700 , 25769 , 25700 , 25769 , 25700 , 25770 , 25700 , 25770 , 25699 , 25770 , 25699 , 25770 , 25699 , 25770 , 25699 , 25771 , 25699 , 25771 , 25698 , 25771 , 25698 , 25771 , 25698 , 25772 , 25698 , 25772 , 25697 , 25772 , 25697 , 25772 , 25697 , 25773 , 25696 , 25773 , 25696 , 25773 , 25696 , 25774 , 25696 , 25774 , 25695 , 25774 , 25695 , 25775 , 25694 , 25775 , 25694 , 25775 , 25694 , 25776 , 25693 , 25776 , 25693 , 25777 , 25692 , 25777 , 25692 , 25778 , 25691 , 25778 , 25691 , 25779 , 25690 , 25779 , 25690 , 25780 , 25689 , 25780 , 25689 , 25781 , 25688 , 25781 , 25688 , 25782 , 25687 , 25783 , 25686 , 25783 , 25686 , 25784 , 25685 , 25785 , 25684 , 25785 , 25683 , 25786 , 25683 , 25787 , 25682 , 25788 , 25681 , 25789 , 25680 , 25790 , 25679 , 25791 , 25678 , 25792 , 25677 , 25793 , 25676 , 25794 , 25675 , 25795 , 25674 , 25796 , 25672 , 25798 , 25671 , 25799 , 25670 , 25800 , 25668 , 25802 , 25667 , 25803 , 25665 , 25805 , 25663 , 25807 , 25662 , 25809 , 25660 , 25810 , 25658 , 25813 , 25656 , 25815 , 25653 , 25817 , 25651 , 25820 , 25648 , 25822 , 25646 , 25825 , 25643 , 25828 , 25640 , 25831 , 25636 , 25835 , 25633 , 25839 , 25629 , 25843 , 25624 , 25847 , 25620 , 25852 , 25615 , 25857 , 25609 , 25863 , 25603 , 25870 , 25596 , 25877 , 25589 , 25885 , 25580 , 25894 , 25571 , 25904 , 25560 , 25915 , 25548 , 25929 , 25533 , 25944 , 25517 , 25962 , 25497 , 25984 , 25473 , 26010 , 25445 , 26042 , 25408 , 26082 , 25362 , 26136 , 25300 , 26208 , 25214 , 26313 , 25085 , 26477 , 24870 , 26770 , 24446 , 27438 , 23234 , 30341 , 0 , -30341, -23234, -27438, -24446, -26770, -24870, -26477, -25085, -26313, -25214, -26208, -25300, -26136, -25362, -26082, -25408, -26042, -25445, -26010, -25473, -25984, -25497, -25962, -25517, -25944, -25533, -25929, -25548, -25915, -25560, -25904, -25571, -25894, -25580, -25885, -25589, -25877, -25596, -25870, -25603, -25863, -25609, -25857, -25615, -25852, -25620, -25847, -25624, -25843, -25629, -25839, -25633, -25835, -25636, -25831, -25640, -25828, -25643, -25825, -25646, -25822, -25648, -25820, -25651, -25817, -25653, -25815, -25656, -25813, -25658, -25810, -25660, -25809, -25662, -25807, -25663, -25805, -25665, -25803, -25667, -25802, -25668, -25800, -25670, -25799, -25671, -25798, -25672, -25796, -25674, -25795, -25675, -25794, -25676, -25793, -25677, -25792, -25678, -25791, -25679, -25790, -25680, -25789, -25681, -25788, -25682, -25787, -25683, -25786, -25683, -25785, -25684, -25785, -25685, -25784, -25686, -25783, -25686, -25783, -25687, -25782, -25688, -25781, -25688, -25781, -25689, -25780, -25689, -25780, -25690, -25779, -25690, -25779, -25691, -25778, -25691, -25778, -25692, -25777, -25692, -25777, -25693, -25776, -25693, -25776, -25694, -25775, -25694, -25775, -25694, -25775, -25695, -25774, -25695, -25774, -25696, -25774, -25696, -25773, -25696, -25773, -25696, -25773, -25697, -25772, -25697, -25772, -25697, -25772, -25698, -25772, -25698, -25771, -25698, -25771, -25698, -25771, -25699, -25771, -25699, -25770, -25699, -25770, -25699, -25770, -25699, -25770, -25700, -25770, -25700, -25769, -25700, -25769, -25700, -25769, -25700, -25769, -25701, -25769, -25701, -25769, -25701, -25768, -25701, -25768, -25701, -25768, -25701, -25768, -25701, -25768, -25701, -25768, -25702, -25768, -25702, -25768, -25702, -25767, -25702, -25767, -25702, -25767, -25702, -25767, -25702, -25767, -25702, -25767, -25702, -25767, -25702, -25767, -25702, -25767, -25702, -25767, -25702, -25767, -25702, -25767, -25703, -25767, -25703, -25767, -25703, -25767, -25703, -25767, -25703, -25767, -25703, -25767, -25703, -25767, -25703, -25767, -25703, -25767, -25703, -25767, -25703, -25767, -25703, -25767, -25703, -25767, -25703, -25767, -25703, -25767, -25702, -25767, -25702, -25767, -25702, -25767, -25702, -25767, -25702, -25767, -25702, -25767, -25702, -25767, -25702, -25767, -25702, -25767, -25702, -25767, -25702, -25767, -25702, -25768, -25702, -25768, -25702, -25768, -25701, -25768, -25701, -25768, -25701, -25768, -25701, -25768, -25701, -25768, -25701, -25769, -25701, -25769, -25701, -25769, -25700, -25769, -25700, -25769, -25700, -25769, -25700, -25770, -25700, -25770, -25699, -25770, -25699, -25770, -25699, -25770, -25699, -25771, -25699, -25771, -25698, -25771, -25698, -25771, -25698, -25772, -25698, -25772, -25697, -25772, -25697, -25772, -25697, -25773, -25696, -25773, -25696, -25773, -25696, -25774, -25696, -25774, -25695, -25774, -25695, -25775, -25694, -25775, -25694, -25775, -25694, -25776, -25693, -25776, -25693, -25777, -25692, -25777, -25692, -25778, -25691, -25778, -25691, -25779, -25690, -25779, -25690, -25780, -25689, -25780, -25689, -25781, -25688, -25781, -25688, -25782, -25687, -25783, -25686, -25783, -25686, -25784, -25685, -25785, -25684, -25785, -25683, -25786, -25683, -25787, -25682, -25788, -25681, -25789, -25680, -25790, -25679, -25791, -25678, -25792, -25677, -25793, -25676, -25794, -25675, -25795, -25674, -25796, -25672, -25798, -25671, -25799, -25670, -25800, -25668, -25802, -25667, -25803, -25665, -25805, -25663, -25807, -25662, -25809, -25660, -25810, -25658, -25813, -25656, -25815, -25653, -25817, -25651, -25820, -25648, -25822, -25646, -25825, -25643, -25828, -25640, -25831, -25636, -25835, -25633, -25839, -25629, -25843, -25624, -25847, -25620, -25852, -25615, -25857, -25609, -25863, -25603, -25870, -25596, -25877, -25589, -25885, -25580, -25894, -25571, -25904, -25560, -25915, -25548, -25929, -25533, -25944, -25517, -25962, -25497, -25984, -25473, -26010, -25445, -26042, -25408, -26082, -25362, -26136, -25300, -26208, -25214, -26313, -25085, -26477, -24870, -26770, -24446, -27438, -23234, -30341, //Osc 2 Level 2 0 , 30341 , 23234 , 27438 , 24446 , 26770 , 24869 , 26478 , 25084 , 26314 , 25213 , 26209 , 25299 , 26137 , 25361 , 26084 , 25407 , 26043 , 25443 , 26011 , 25471 , 25986 , 25495 , 25964 , 25514 , 25946 , 25531 , 25931 , 25545 , 25918 , 25557 , 25907 , 25567 , 25897 , 25577 , 25888 , 25585 , 25881 , 25592 , 25874 , 25599 , 25867 , 25605 , 25862 , 25610 , 25857 , 25615 , 25852 , 25619 , 25848 , 25624 , 25844 , 25627 , 25840 , 25631 , 25837 , 25634 , 25834 , 25637 , 25831 , 25639 , 25829 , 25642 , 25826 , 25644 , 25824 , 25646 , 25822 , 25648 , 25820 , 25650 , 25818 , 25652 , 25817 , 25653 , 25815 , 25655 , 25814 , 25656 , 25812 , 25658 , 25811 , 25659 , 25810 , 25660 , 25809 , 25661 , 25808 , 25662 , 25807 , 25663 , 25806 , 25664 , 25805 , 25665 , 25804 , 25665 , 25804 , 25666 , 25803 , 25667 , 25802 , 25667 , 25802 , 25668 , 25801 , 25668 , 25801 , 25669 , 25800 , 25669 , 25800 , 25669 , 25800 , 25670 , 25799 , 25670 , 25799 , 25670 , 25799 , 25670 , 25799 , 25670 , 25799 , 25671 , 25799 , 25671 , 25799 , 25671 , 25799 , 25671 , 25799 , 25671 , 25799 , 25670 , 25799 , 25670 , 25799 , 25670 , 25799 , 25670 , 25799 , 25670 , 25800 , 25669 , 25800 , 25669 , 25800 , 25669 , 25801 , 25668 , 25801 , 25668 , 25802 , 25667 , 25802 , 25667 , 25803 , 25666 , 25804 , 25665 , 25804 , 25665 , 25805 , 25664 , 25806 , 25663 , 25807 , 25662 , 25808 , 25661 , 25809 , 25660 , 25810 , 25659 , 25811 , 25658 , 25812 , 25656 , 25814 , 25655 , 25815 , 25653 , 25817 , 25652 , 25818 , 25650 , 25820 , 25648 , 25822 , 25646 , 25824 , 25644 , 25826 , 25642 , 25829 , 25639 , 25831 , 25637 , 25834 , 25634 , 25837 , 25631 , 25840 , 25627 , 25844 , 25624 , 25848 , 25619 , 25852 , 25615 , 25857 , 25610 , 25862 , 25605 , 25867 , 25599 , 25874 , 25592 , 25881 , 25585 , 25888 , 25577 , 25897 , 25567 , 25907 , 25557 , 25918 , 25545 , 25931 , 25531 , 25946 , 25514 , 25964 , 25495 , 25986 , 25471 , 26011 , 25443 , 26043 , 25407 , 26084 , 25361 , 26137 , 25299 , 26209 , 25213 , 26314 , 25084 , 26478 , 24869 , 26770 , 24446 , 27438 , 23234 , 30341 , 0 , -30341, -23234, -27438, -24446, -26770, -24869, -26478, -25084, -26314, -25213, -26209, -25299, -26137, -25361, -26084, -25407, -26043, -25443, -26011, -25471, -25986, -25495, -25964, -25514, -25946, -25531, -25931, -25545, -25918, -25557, -25907, -25567, -25897, -25577, -25888, -25585, -25881, -25592, -25874, -25599, -25867, -25605, -25862, -25610, -25857, -25615, -25852, -25619, -25848, -25624, -25844, -25627, -25840, -25631, -25837, -25634, -25834, -25637, -25831, -25639, -25829, -25642, -25826, -25644, -25824, -25646, -25822, -25648, -25820, -25650, -25818, -25652, -25817, -25653, -25815, -25655, -25814, -25656, -25812, -25658, -25811, -25659, -25810, -25660, -25809, -25661, -25808, -25662, -25807, -25663, -25806, -25664, -25805, -25665, -25804, -25665, -25804, -25666, -25803, -25667, -25802, -25667, -25802, -25668, -25801, -25668, -25801, -25669, -25800, -25669, -25800, -25669, -25800, -25670, -25799, -25670, -25799, -25670, -25799, -25670, -25799, -25670, -25799, -25671, -25799, -25671, -25799, -25671, -25799, -25671, -25799, -25671, -25799, -25670, -25799, -25670, -25799, -25670, -25799, -25670, -25799, -25670, -25800, -25669, -25800, -25669, -25800, -25669, -25801, -25668, -25801, -25668, -25802, -25667, -25802, -25667, -25803, -25666, -25804, -25665, -25804, -25665, -25805, -25664, -25806, -25663, -25807, -25662, -25808, -25661, -25809, -25660, -25810, -25659, -25811, -25658, -25812, -25656, -25814, -25655, -25815, -25653, -25817, -25652, -25818, -25650, -25820, -25648, -25822, -25646, -25824, -25644, -25826, -25642, -25829, -25639, -25831, -25637, -25834, -25634, -25837, -25631, -25840, -25627, -25844, -25624, -25848, -25619, -25852, -25615, -25857, -25610, -25862, -25605, -25867, -25599, -25874, -25592, -25881, -25585, -25888, -25577, -25897, -25567, -25907, -25557, -25918, -25545, -25931, -25531, -25946, -25514, -25964, -25495, -25986, -25471, -26011, -25443, -26043, -25407, -26084, -25361, -26137, -25299, -26209, -25213, -26314, -25084, -26478, -24869, -26770, -24446, -27438, -23234, -30341, //Osc 2 Level 3 0 , 30341 , 23233 , 27440 , 24444 , 26772 , 24867 , 26480 , 25081 , 26317 , 25209 , 26214 , 25294 , 26142 , 25355 , 26090 , 25400 , 26050 , 25435 , 26019 , 25463 , 25994 , 25486 , 25974 , 25504 , 25957 , 25520 , 25943 , 25533 , 25931 , 25544 , 25920 , 25554 , 25911 , 25562 , 25904 , 25569 , 25897 , 25575 , 25891 , 25581 , 25886 , 25585 , 25882 , 25590 , 25878 , 25593 , 25875 , 25596 , 25872 , 25599 , 25869 , 25601 , 25867 , 25603 , 25866 , 25604 , 25865 , 25605 , 25864 , 25606 , 25863 , 25606 , 25863 , 25607 , 25863 , 25606 , 25863 , 25606 , 25864 , 25605 , 25865 , 25604 , 25866 , 25603 , 25867 , 25601 , 25869 , 25599 , 25872 , 25596 , 25875 , 25593 , 25878 , 25590 , 25882 , 25585 , 25886 , 25581 , 25891 , 25575 , 25897 , 25569 , 25904 , 25562 , 25911 , 25554 , 25920 , 25544 , 25931 , 25533 , 25943 , 25520 , 25957 , 25504 , 25974 , 25486 , 25994 , 25463 , 26019 , 25435 , 26050 , 25400 , 26090 , 25355 , 26142 , 25294 , 26214 , 25209 , 26317 , 25081 , 26480 , 24867 , 26772 , 24444 , 27440 , 23233 , 30341 , 0 , -30341, -23233, -27440, -24444, -26772, -24867, -26480, -25081, -26317, -25209, -26214, -25294, -26142, -25355, -26090, -25400, -26050, -25435, -26019, -25463, -25994, -25486, -25974, -25504, -25957, -25520, -25943, -25533, -25931, -25544, -25920, -25554, -25911, -25562, -25904, -25569, -25897, -25575, -25891, -25581, -25886, -25585, -25882, -25590, -25878, -25593, -25875, -25596, -25872, -25599, -25869, -25601, -25867, -25603, -25866, -25604, -25865, -25605, -25864, -25606, -25863, -25606, -25863, -25607, -25863, -25606, -25863, -25606, -25864, -25605, -25865, -25604, -25866, -25603, -25867, -25601, -25869, -25599, -25872, -25596, -25875, -25593, -25878, -25590, -25882, -25585, -25886, -25581, -25891, -25575, -25897, -25569, -25904, -25562, -25911, -25554, -25920, -25544, -25931, -25533, -25943, -25520, -25957, -25504, -25974, -25486, -25994, -25463, -26019, -25435, -26050, -25400, -26090, -25355, -26142, -25294, -26214, -25209, -26317, -25081, -26480, -24867, -26772, -24444, -27440, -23233, -30341, //Osc 2 Level 4 0 , 30343 , 23230 , 27444 , 24438 , 26780 , 24858 , 26491 , 25068 , 26332 , 25193 , 26232 , 25274 , 26164 , 25332 , 26116 , 25373 , 26080 , 25404 , 26053 , 25427 , 26033 , 25444 , 26018 , 25458 , 26006 , 25467 , 25998 , 25474 , 25993 , 25477 , 25991 , 25479 , 25991 , 25477 , 25993 , 25474 , 25998 , 25467 , 26006 , 25458 , 26018 , 25444 , 26033 , 25427 , 26053 , 25404 , 26080 , 25373 , 26116 , 25332 , 26164 , 25274 , 26232 , 25193 , 26332 , 25068 , 26491 , 24858 , 26780 , 24438 , 27444 , 23230 , 30343 , 0 , -30343, -23230, -27444, -24438, -26780, -24858, -26491, -25068, -26332, -25193, -26232, -25274, -26164, -25332, -26116, -25373, -26080, -25404, -26053, -25427, -26033, -25444, -26018, -25458, -26006, -25467, -25998, -25474, -25993, -25477, -25991, -25479, -25991, -25477, -25993, -25474, -25998, -25467, -26006, -25458, -26018, -25444, -26033, -25427, -26053, -25404, -26080, -25373, -26116, -25332, -26164, -25274, -26232, -25193, -26332, -25068, -26491, -24858, -26780, -24438, -27444, -23230, -30343, //Osc 2 Level 5 0 , 30349 , 23217 , 27463 , 24412 , 26813 , 24818 , 26539 , 25013 , 26395 , 25120 , 26314 , 25181 , 26269 , 25213 , 26249 , 25223 , 26249 , 25213 , 26269 , 25181 , 26314 , 25120 , 26395 , 25013 , 26539 , 24818 , 26813 , 24412 , 27463 , 23217 , 30349 , 0 , -30349, -23217, -27463, -24412, -26813, -24818, -26539, -25013, -26395, -25120, -26314, -25181, -26269, -25213, -26249, -25223, -26249, -25213, -26269, -25181, -26314, -25120, -26395, -25013, -26539, -24818, -26813, -24412, -27463, -23217, -30349, //Osc 2 Level 6 0 , 30374 , 23166 , 27542 , 24302 , 26957 , 24632 , 26774 , 24715 , 26774 , 24632 , 26957 , 24302 , 27542 , 23166 , 30374 , 0 , -30374, -23166, -27542, -24302, -26957, -24632, -26774, -24715, -26774, -24632, -26957, -24302, -27542, -23166, -30374, //Osc 2 Level 7 0 , 30476 , 22949 , 27909 , 23717 , 27909 , 22949 , 30476 , 0 , -30476, -22949, -27909, -23717, -27909, -22949, -30476, //Osc 2 Level 8 0 , 30893 , 21844 , 30893 , 0 , -30893, -21844, -30893, //Osc 2 Level 9 0 , 32767 , 0 , -32767, //Osc 2 Level 10 0 , 0 , //Osc 2 Level 11 0 , 0 , }, //Osc 3 Level 0 { 0 , 64 , 128 , 192 , 256 , 320 , 384 , 448 , 512 , 576 , 640 , 704 , 768 , 832 , 896 , 960 , 1024 , 1088 , 1152 , 1216 , 1280 , 1344 , 1408 , 1472 , 1536 , 1600 , 1664 , 1728 , 1792 , 1856 , 1920 , 1984 , 2048 , 2112 , 2176 , 2240 , 2304 , 2368 , 2432 , 2496 , 2560 , 2624 , 2688 , 2752 , 2816 , 2881 , 2945 , 3009 , 3073 , 3137 , 3201 , 3265 , 3329 , 3393 , 3457 , 3521 , 3585 , 3649 , 3713 , 3777 , 3841 , 3905 , 3969 , 4033 , 4097 , 4161 , 4225 , 4289 , 4353 , 4417 , 4481 , 4545 , 4609 , 4673 , 4737 , 4801 , 4865 , 4929 , 4993 , 5057 , 5121 , 5185 , 5249 , 5313 , 5377 , 5441 , 5505 , 5569 , 5633 , 5697 , 5762 , 5826 , 5890 , 5954 , 6018 , 6082 , 6146 , 6210 , 6274 , 6338 , 6402 , 6466 , 6530 , 6594 , 6658 , 6722 , 6786 , 6850 , 6914 , 6978 , 7042 , 7106 , 7170 , 7234 , 7298 , 7362 , 7426 , 7490 , 7554 , 7618 , 7682 , 7746 , 7810 , 7874 , 7938 , 8002 , 8066 , 8130 , 8194 , 8258 , 8322 , 8386 , 8450 , 8514 , 8578 , 8643 , 8707 , 8771 , 8835 , 8899 , 8963 , 9027 , 9091 , 9155 , 9219 , 9283 , 9347 , 9411 , 9475 , 9539 , 9603 , 9667 , 9731 , 9795 , 9859 , 9923 , 9987 , 10051 , 10115 , 10179 , 10243 , 10307 , 10371 , 10435 , 10499 , 10563 , 10627 , 10691 , 10755 , 10819 , 10883 , 10947 , 11011 , 11075 , 11139 , 11203 , 11267 , 11331 , 11395 , 11459 , 11524 , 11588 , 11652 , 11716 , 11780 , 11844 , 11908 , 11972 , 12036 , 12100 , 12164 , 12228 , 12292 , 12356 , 12420 , 12484 , 12548 , 12612 , 12676 , 12740 , 12804 , 12868 , 12932 , 12996 , 13060 , 13124 , 13188 , 13252 , 13316 , 13380 , 13444 , 13508 , 13572 , 13636 , 13700 , 13764 , 13828 , 13892 , 13956 , 14020 , 14084 , 14148 , 14212 , 14276 , 14340 , 14405 , 14469 , 14533 , 14597 , 14661 , 14725 , 14789 , 14853 , 14917 , 14981 , 15045 , 15109 , 15173 , 15237 , 15301 , 15365 , 15429 , 15493 , 15557 , 15621 , 15685 , 15749 , 15813 , 15877 , 15941 , 16005 , 16069 , 16133 , 16197 , 16261 , 16325 , 16389 , 16453 , 16517 , 16581 , 16645 , 16709 , 16773 , 16837 , 16901 , 16965 , 17029 , 17093 , 17157 , 17222 , 17286 , 17350 , 17414 , 17478 , 17542 , 17606 , 17670 , 17734 , 17798 , 17862 , 17926 , 17990 , 18054 , 18118 , 18182 , 18246 , 18310 , 18374 , 18438 , 18502 , 18566 , 18630 , 18694 , 18758 , 18822 , 18886 , 18950 , 19014 , 19078 , 19142 , 19206 , 19270 , 19334 , 19398 , 19462 , 19526 , 19590 , 19654 , 19718 , 19782 , 19846 , 19910 , 19974 , 20038 , 20103 , 20167 , 20231 , 20295 , 20359 , 20423 , 20487 , 20551 , 20615 , 20679 , 20743 , 20807 , 20871 , 20935 , 20999 , 21063 , 21127 , 21191 , 21255 , 21319 , 21383 , 21447 , 21511 , 21575 , 21639 , 21703 , 21767 , 21831 , 21895 , 21959 , 22023 , 22087 , 22151 , 22215 , 22279 , 22343 , 22407 , 22471 , 22535 , 22599 , 22663 , 22727 , 22791 , 22855 , 22919 , 22984 , 23048 , 23112 , 23176 , 23240 , 23304 , 23368 , 23432 , 23496 , 23560 , 23624 , 23688 , 23752 , 23816 , 23880 , 23944 , 24008 , 24072 , 24136 , 24200 , 24264 , 24328 , 24392 , 24456 , 24520 , 24584 , 24648 , 24712 , 24776 , 24840 , 24904 , 24968 , 25032 , 25096 , 25160 , 25224 , 25288 , 25352 , 25416 , 25480 , 25544 , 25608 , 25672 , 25736 , 25800 , 25865 , 25929 , 25993 , 26057 , 26121 , 26185 , 26249 , 26313 , 26377 , 26441 , 26505 , 26569 , 26633 , 26697 , 26761 , 26825 , 26889 , 26953 , 27017 , 27081 , 27145 , 27209 , 27273 , 27337 , 27401 , 27465 , 27529 , 27593 , 27657 , 27721 , 27785 , 27849 , 27913 , 27977 , 28041 , 28105 , 28169 , 28233 , 28297 , 28361 , 28425 , 28489 , 28553 , 28617 , 28681 , 28746 , 28810 , 28874 , 28938 , 29002 , 29066 , 29130 , 29194 , 29258 , 29322 , 29386 , 29450 , 29514 , 29578 , 29642 , 29706 , 29770 , 29834 , 29898 , 29962 , 30026 , 30090 , 30154 , 30218 , 30282 , 30346 , 30410 , 30474 , 30538 , 30602 , 30666 , 30730 , 30794 , 30858 , 30922 , 30986 , 31050 , 31114 , 31178 , 31242 , 31306 , 31370 , 31434 , 31498 , 31563 , 31627 , 31691 , 31755 , 31819 , 31883 , 31947 , 32011 , 32075 , 32139 , 32203 , 32267 , 32331 , 32395 , 32459 , 32523 , 32587 , 32650 , 32716 , 32766 , 32716 , 32650 , 32587 , 32523 , 32459 , 32395 , 32331 , 32267 , 32203 , 32139 , 32075 , 32011 , 31947 , 31883 , 31819 , 31755 , 31691 , 31627 , 31563 , 31498 , 31434 , 31370 , 31306 , 31242 , 31178 , 31114 , 31050 , 30986 , 30922 , 30858 , 30794 , 30730 , 30666 , 30602 , 30538 , 30474 , 30410 , 30346 , 30282 , 30218 , 30154 , 30090 , 30026 , 29962 , 29898 , 29834 , 29770 , 29706 , 29642 , 29578 , 29514 , 29450 , 29386 , 29322 , 29258 , 29194 , 29130 , 29066 , 29002 , 28938 , 28874 , 28810 , 28746 , 28681 , 28617 , 28553 , 28489 , 28425 , 28361 , 28297 , 28233 , 28169 , 28105 , 28041 , 27977 , 27913 , 27849 , 27785 , 27721 , 27657 , 27593 , 27529 , 27465 , 27401 , 27337 , 27273 , 27209 , 27145 , 27081 , 27017 , 26953 , 26889 , 26825 , 26761 , 26697 , 26633 , 26569 , 26505 , 26441 , 26377 , 26313 , 26249 , 26185 , 26121 , 26057 , 25993 , 25929 , 25865 , 25800 , 25736 , 25672 , 25608 , 25544 , 25480 , 25416 , 25352 , 25288 , 25224 , 25160 , 25096 , 25032 , 24968 , 24904 , 24840 , 24776 , 24712 , 24648 , 24584 , 24520 , 24456 , 24392 , 24328 , 24264 , 24200 , 24136 , 24072 , 24008 , 23944 , 23880 , 23816 , 23752 , 23688 , 23624 , 23560 , 23496 , 23432 , 23368 , 23304 , 23240 , 23176 , 23112 , 23048 , 22984 , 22919 , 22855 , 22791 , 22727 , 22663 , 22599 , 22535 , 22471 , 22407 , 22343 , 22279 , 22215 , 22151 , 22087 , 22023 , 21959 , 21895 , 21831 , 21767 , 21703 , 21639 , 21575 , 21511 , 21447 , 21383 , 21319 , 21255 , 21191 , 21127 , 21063 , 20999 , 20935 , 20871 , 20807 , 20743 , 20679 , 20615 , 20551 , 20487 , 20423 , 20359 , 20295 , 20231 , 20167 , 20103 , 20038 , 19974 , 19910 , 19846 , 19782 , 19718 , 19654 , 19590 , 19526 , 19462 , 19398 , 19334 , 19270 , 19206 , 19142 , 19078 , 19014 , 18950 , 18886 , 18822 , 18758 , 18694 , 18630 , 18566 , 18502 , 18438 , 18374 , 18310 , 18246 , 18182 , 18118 , 18054 , 17990 , 17926 , 17862 , 17798 , 17734 , 17670 , 17606 , 17542 , 17478 , 17414 , 17350 , 17286 , 17222 , 17157 , 17093 , 17029 , 16965 , 16901 , 16837 , 16773 , 16709 , 16645 , 16581 , 16517 , 16453 , 16389 , 16325 , 16261 , 16197 , 16133 , 16069 , 16005 , 15941 , 15877 , 15813 , 15749 , 15685 , 15621 , 15557 , 15493 , 15429 , 15365 , 15301 , 15237 , 15173 , 15109 , 15045 , 14981 , 14917 , 14853 , 14789 , 14725 , 14661 , 14597 , 14533 , 14469 , 14405 , 14340 , 14276 , 14212 , 14148 , 14084 , 14020 , 13956 , 13892 , 13828 , 13764 , 13700 , 13636 , 13572 , 13508 , 13444 , 13380 , 13316 , 13252 , 13188 , 13124 , 13060 , 12996 , 12932 , 12868 , 12804 , 12740 , 12676 , 12612 , 12548 , 12484 , 12420 , 12356 , 12292 , 12228 , 12164 , 12100 , 12036 , 11972 , 11908 , 11844 , 11780 , 11716 , 11652 , 11588 , 11524 , 11459 , 11395 , 11331 , 11267 , 11203 , 11139 , 11075 , 11011 , 10947 , 10883 , 10819 , 10755 , 10691 , 10627 , 10563 , 10499 , 10435 , 10371 , 10307 , 10243 , 10179 , 10115 , 10051 , 9987 , 9923 , 9859 , 9795 , 9731 , 9667 , 9603 , 9539 , 9475 , 9411 , 9347 , 9283 , 9219 , 9155 , 9091 , 9027 , 8963 , 8899 , 8835 , 8771 , 8707 , 8643 , 8578 , 8514 , 8450 , 8386 , 8322 , 8258 , 8194 , 8130 , 8066 , 8002 , 7938 , 7874 , 7810 , 7746 , 7682 , 7618 , 7554 , 7490 , 7426 , 7362 , 7298 , 7234 , 7170 , 7106 , 7042 , 6978 , 6914 , 6850 , 6786 , 6722 , 6658 , 6594 , 6530 , 6466 , 6402 , 6338 , 6274 , 6210 , 6146 , 6082 , 6018 , 5954 , 5890 , 5826 , 5762 , 5697 , 5633 , 5569 , 5505 , 5441 , 5377 , 5313 , 5249 , 5185 , 5121 , 5057 , 4993 , 4929 , 4865 , 4801 , 4737 , 4673 , 4609 , 4545 , 4481 , 4417 , 4353 , 4289 , 4225 , 4161 , 4097 , 4033 , 3969 , 3905 , 3841 , 3777 , 3713 , 3649 , 3585 , 3521 , 3457 , 3393 , 3329 , 3265 , 3201 , 3137 , 3073 , 3009 , 2945 , 2881 , 2816 , 2752 , 2688 , 2624 , 2560 , 2496 , 2432 , 2368 , 2304 , 2240 , 2176 , 2112 , 2048 , 1984 , 1920 , 1856 , 1792 , 1728 , 1664 , 1600 , 1536 , 1472 , 1408 , 1344 , 1280 , 1216 , 1152 , 1088 , 1024 , 960 , 896 , 832 , 768 , 704 , 640 , 576 , 512 , 448 , 384 , 320 , 256 , 192 , 128 , 64 , 0 , -64 , -128 , -192 , -256 , -320 , -384 , -448 , -512 , -576 , -640 , -704 , -768 , -832 , -896 , -960 , -1024 , -1088 , -1152 , -1216 , -1280 , -1344 , -1408 , -1472 , -1536 , -1600 , -1664 , -1728 , -1792 , -1856 , -1920 , -1984 , -2048 , -2112 , -2176 , -2240 , -2304 , -2368 , -2432 , -2496 , -2560 , -2624 , -2688 , -2752 , -2816 , -2881 , -2945 , -3009 , -3073 , -3137 , -3201 , -3265 , -3329 , -3393 , -3457 , -3521 , -3585 , -3649 , -3713 , -3777 , -3841 , -3905 , -3969 , -4033 , -4097 , -4161 , -4225 , -4289 , -4353 , -4417 , -4481 , -4545 , -4609 , -4673 , -4737 , -4801 , -4865 , -4929 , -4993 , -5057 , -5121 , -5185 , -5249 , -5313 , -5377 , -5441 , -5505 , -5569 , -5633 , -5697 , -5762 , -5826 , -5890 , -5954 , -6018 , -6082 , -6146 , -6210 , -6274 , -6338 , -6402 , -6466 , -6530 , -6594 , -6658 , -6722 , -6786 , -6850 , -6914 , -6978 , -7042 , -7106 , -7170 , -7234 , -7298 , -7362 , -7426 , -7490 , -7554 , -7618 , -7682 , -7746 , -7810 , -7874 , -7938 , -8002 , -8066 , -8130 , -8194 , -8258 , -8322 , -8386 , -8450 , -8514 , -8578 , -8643 , -8707 , -8771 , -8835 , -8899 , -8963 , -9027 , -9091 , -9155 , -9219 , -9283 , -9347 , -9411 , -9475 , -9539 , -9603 , -9667 , -9731 , -9795 , -9859 , -9923 , -9987 , -10051, -10115, -10179, -10243, -10307, -10371, -10435, -10499, -10563, -10627, -10691, -10755, -10819, -10883, -10947, -11011, -11075, -11139, -11203, -11267, -11331, -11395, -11459, -11524, -11588, -11652, -11716, -11780, -11844, -11908, -11972, -12036, -12100, -12164, -12228, -12292, -12356, -12420, -12484, -12548, -12612, -12676, -12740, -12804, -12868, -12932, -12996, -13060, -13124, -13188, -13252, -13316, -13380, -13444, -13508, -13572, -13636, -13700, -13764, -13828, -13892, -13956, -14020, -14084, -14148, -14212, -14276, -14340, -14405, -14469, -14533, -14597, -14661, -14725, -14789, -14853, -14917, -14981, -15045, -15109, -15173, -15237, -15301, -15365, -15429, -15493, -15557, -15621, -15685, -15749, -15813, -15877, -15941, -16005, -16069, -16133, -16197, -16261, -16325, -16389, -16453, -16517, -16581, -16645, -16709, -16773, -16837, -16901, -16965, -17029, -17093, -17157, -17222, -17286, -17350, -17414, -17478, -17542, -17606, -17670, -17734, -17798, -17862, -17926, -17990, -18054, -18118, -18182, -18246, -18310, -18374, -18438, -18502, -18566, -18630, -18694, -18758, -18822, -18886, -18950, -19014, -19078, -19142, -19206, -19270, -19334, -19398, -19462, -19526, -19590, -19654, -19718, -19782, -19846, -19910, -19974, -20038, -20103, -20167, -20231, -20295, -20359, -20423, -20487, -20551, -20615, -20679, -20743, -20807, -20871, -20935, -20999, -21063, -21127, -21191, -21255, -21319, -21383, -21447, -21511, -21575, -21639, -21703, -21767, -21831, -21895, -21959, -22023, -22087, -22151, -22215, -22279, -22343, -22407, -22471, -22535, -22599, -22663, -22727, -22791, -22855, -22919, -22984, -23048, -23112, -23176, -23240, -23304, -23368, -23432, -23496, -23560, -23624, -23688, -23752, -23816, -23880, -23944, -24008, -24072, -24136, -24200, -24264, -24328, -24392, -24456, -24520, -24584, -24648, -24712, -24776, -24840, -24904, -24968, -25032, -25096, -25160, -25224, -25288, -25352, -25416, -25480, -25544, -25608, -25672, -25736, -25800, -25865, -25929, -25993, -26057, -26121, -26185, -26249, -26313, -26377, -26441, -26505, -26569, -26633, -26697, -26761, -26825, -26889, -26953, -27017, -27081, -27145, -27209, -27273, -27337, -27401, -27465, -27529, -27593, -27657, -27721, -27785, -27849, -27913, -27977, -28041, -28105, -28169, -28233, -28297, -28361, -28425, -28489, -28553, -28617, -28681, -28746, -28810, -28874, -28938, -29002, -29066, -29130, -29194, -29258, -29322, -29386, -29450, -29514, -29578, -29642, -29706, -29770, -29834, -29898, -29962, -30026, -30090, -30154, -30218, -30282, -30346, -30410, -30474, -30538, -30602, -30666, -30730, -30794, -30858, -30922, -30986, -31050, -31114, -31178, -31242, -31306, -31370, -31434, -31498, -31563, -31627, -31691, -31755, -31819, -31883, -31947, -32011, -32075, -32139, -32203, -32267, -32331, -32395, -32459, -32523, -32587, -32650, -32716, -32766, -32716, -32650, -32587, -32523, -32459, -32395, -32331, -32267, -32203, -32139, -32075, -32011, -31947, -31883, -31819, -31755, -31691, -31627, -31563, -31498, -31434, -31370, -31306, -31242, -31178, -31114, -31050, -30986, -30922, -30858, -30794, -30730, -30666, -30602, -30538, -30474, -30410, -30346, -30282, -30218, -30154, -30090, -30026, -29962, -29898, -29834, -29770, -29706, -29642, -29578, -29514, -29450, -29386, -29322, -29258, -29194, -29130, -29066, -29002, -28938, -28874, -28810, -28746, -28681, -28617, -28553, -28489, -28425, -28361, -28297, -28233, -28169, -28105, -28041, -27977, -27913, -27849, -27785, -27721, -27657, -27593, -27529, -27465, -27401, -27337, -27273, -27209, -27145, -27081, -27017, -26953, -26889, -26825, -26761, -26697, -26633, -26569, -26505, -26441, -26377, -26313, -26249, -26185, -26121, -26057, -25993, -25929, -25865, -25800, -25736, -25672, -25608, -25544, -25480, -25416, -25352, -25288, -25224, -25160, -25096, -25032, -24968, -24904, -24840, -24776, -24712, -24648, -24584, -24520, -24456, -24392, -24328, -24264, -24200, -24136, -24072, -24008, -23944, -23880, -23816, -23752, -23688, -23624, -23560, -23496, -23432, -23368, -23304, -23240, -23176, -23112, -23048, -22984, -22919, -22855, -22791, -22727, -22663, -22599, -22535, -22471, -22407, -22343, -22279, -22215, -22151, -22087, -22023, -21959, -21895, -21831, -21767, -21703, -21639, -21575, -21511, -21447, -21383, -21319, -21255, -21191, -21127, -21063, -20999, -20935, -20871, -20807, -20743, -20679, -20615, -20551, -20487, -20423, -20359, -20295, -20231, -20167, -20103, -20038, -19974, -19910, -19846, -19782, -19718, -19654, -19590, -19526, -19462, -19398, -19334, -19270, -19206, -19142, -19078, -19014, -18950, -18886, -18822, -18758, -18694, -18630, -18566, -18502, -18438, -18374, -18310, -18246, -18182, -18118, -18054, -17990, -17926, -17862, -17798, -17734, -17670, -17606, -17542, -17478, -17414, -17350, -17286, -17222, -17157, -17093, -17029, -16965, -16901, -16837, -16773, -16709, -16645, -16581, -16517, -16453, -16389, -16325, -16261, -16197, -16133, -16069, -16005, -15941, -15877, -15813, -15749, -15685, -15621, -15557, -15493, -15429, -15365, -15301, -15237, -15173, -15109, -15045, -14981, -14917, -14853, -14789, -14725, -14661, -14597, -14533, -14469, -14405, -14340, -14276, -14212, -14148, -14084, -14020, -13956, -13892, -13828, -13764, -13700, -13636, -13572, -13508, -13444, -13380, -13316, -13252, -13188, -13124, -13060, -12996, -12932, -12868, -12804, -12740, -12676, -12612, -12548, -12484, -12420, -12356, -12292, -12228, -12164, -12100, -12036, -11972, -11908, -11844, -11780, -11716, -11652, -11588, -11524, -11459, -11395, -11331, -11267, -11203, -11139, -11075, -11011, -10947, -10883, -10819, -10755, -10691, -10627, -10563, -10499, -10435, -10371, -10307, -10243, -10179, -10115, -10051, -9987 , -9923 , -9859 , -9795 , -9731 , -9667 , -9603 , -9539 , -9475 , -9411 , -9347 , -9283 , -9219 , -9155 , -9091 , -9027 , -8963 , -8899 , -8835 , -8771 , -8707 , -8643 , -8578 , -8514 , -8450 , -8386 , -8322 , -8258 , -8194 , -8130 , -8066 , -8002 , -7938 , -7874 , -7810 , -7746 , -7682 , -7618 , -7554 , -7490 , -7426 , -7362 , -7298 , -7234 , -7170 , -7106 , -7042 , -6978 , -6914 , -6850 , -6786 , -6722 , -6658 , -6594 , -6530 , -6466 , -6402 , -6338 , -6274 , -6210 , -6146 , -6082 , -6018 , -5954 , -5890 , -5826 , -5762 , -5697 , -5633 , -5569 , -5505 , -5441 , -5377 , -5313 , -5249 , -5185 , -5121 , -5057 , -4993 , -4929 , -4865 , -4801 , -4737 , -4673 , -4609 , -4545 , -4481 , -4417 , -4353 , -4289 , -4225 , -4161 , -4097 , -4033 , -3969 , -3905 , -3841 , -3777 , -3713 , -3649 , -3585 , -3521 , -3457 , -3393 , -3329 , -3265 , -3201 , -3137 , -3073 , -3009 , -2945 , -2881 , -2816 , -2752 , -2688 , -2624 , -2560 , -2496 , -2432 , -2368 , -2304 , -2240 , -2176 , -2112 , -2048 , -1984 , -1920 , -1856 , -1792 , -1728 , -1664 , -1600 , -1536 , -1472 , -1408 , -1344 , -1280 , -1216 , -1152 , -1088 , -1024 , -960 , -896 , -832 , -768 , -704 , -640 , -576 , -512 , -448 , -384 , -320 , -256 , -192 , -128 , -64 , //Osc 3 Level 1 0 , 128 , 256 , 384 , 512 , 640 , 768 , 896 , 1024 , 1152 , 1280 , 1408 , 1536 , 1664 , 1792 , 1920 , 2048 , 2176 , 2304 , 2432 , 2560 , 2688 , 2816 , 2945 , 3073 , 3201 , 3329 , 3457 , 3585 , 3713 , 3841 , 3969 , 4097 , 4225 , 4353 , 4481 , 4609 , 4737 , 4865 , 4993 , 5121 , 5249 , 5377 , 5505 , 5633 , 5762 , 5890 , 6018 , 6146 , 6274 , 6402 , 6530 , 6658 , 6786 , 6914 , 7042 , 7170 , 7298 , 7426 , 7554 , 7682 , 7810 , 7938 , 8066 , 8194 , 8322 , 8450 , 8578 , 8707 , 8835 , 8963 , 9091 , 9219 , 9347 , 9475 , 9603 , 9731 , 9859 , 9987 , 10115 , 10243 , 10371 , 10499 , 10627 , 10755 , 10883 , 11011 , 11139 , 11267 , 11395 , 11524 , 11652 , 11780 , 11908 , 12036 , 12164 , 12292 , 12420 , 12548 , 12676 , 12804 , 12932 , 13060 , 13188 , 13316 , 13444 , 13572 , 13700 , 13828 , 13956 , 14084 , 14212 , 14340 , 14469 , 14597 , 14725 , 14853 , 14981 , 15109 , 15237 , 15365 , 15493 , 15621 , 15749 , 15877 , 16005 , 16133 , 16261 , 16389 , 16517 , 16645 , 16773 , 16901 , 17029 , 17157 , 17286 , 17414 , 17542 , 17670 , 17798 , 17926 , 18054 , 18182 , 18310 , 18438 , 18566 , 18694 , 18822 , 18950 , 19078 , 19206 , 19334 , 19462 , 19590 , 19718 , 19846 , 19974 , 20103 , 20231 , 20359 , 20487 , 20615 , 20743 , 20871 , 20999 , 21127 , 21255 , 21383 , 21511 , 21639 , 21767 , 21895 , 22023 , 22151 , 22279 , 22407 , 22535 , 22663 , 22791 , 22919 , 23048 , 23176 , 23304 , 23432 , 23560 , 23688 , 23816 , 23944 , 24072 , 24200 , 24328 , 24456 , 24584 , 24712 , 24840 , 24968 , 25096 , 25224 , 25352 , 25480 , 25608 , 25736 , 25865 , 25993 , 26121 , 26249 , 26377 , 26505 , 26633 , 26761 , 26889 , 27017 , 27145 , 27273 , 27401 , 27529 , 27657 , 27785 , 27913 , 28041 , 28169 , 28297 , 28425 , 28553 , 28681 , 28810 , 28938 , 29066 , 29194 , 29322 , 29450 , 29578 , 29706 , 29834 , 29962 , 30090 , 30218 , 30346 , 30474 , 30602 , 30730 , 30858 , 30986 , 31114 , 31242 , 31370 , 31498 , 31627 , 31754 , 31883 , 32011 , 32139 , 32266 , 32395 , 32522 , 32654 , 32753 , 32654 , 32522 , 32395 , 32266 , 32139 , 32011 , 31883 , 31754 , 31627 , 31498 , 31370 , 31242 , 31114 , 30986 , 30858 , 30730 , 30602 , 30474 , 30346 , 30218 , 30090 , 29962 , 29834 , 29706 , 29578 , 29450 , 29322 , 29194 , 29066 , 28938 , 28810 , 28681 , 28553 , 28425 , 28297 , 28169 , 28041 , 27913 , 27785 , 27657 , 27529 , 27401 , 27273 , 27145 , 27017 , 26889 , 26761 , 26633 , 26505 , 26377 , 26249 , 26121 , 25993 , 25865 , 25736 , 25608 , 25480 , 25352 , 25224 , 25096 , 24968 , 24840 , 24712 , 24584 , 24456 , 24328 , 24200 , 24072 , 23944 , 23816 , 23688 , 23560 , 23432 , 23304 , 23176 , 23048 , 22919 , 22791 , 22663 , 22535 , 22407 , 22279 , 22151 , 22023 , 21895 , 21767 , 21639 , 21511 , 21383 , 21255 , 21127 , 20999 , 20871 , 20743 , 20615 , 20487 , 20359 , 20231 , 20103 , 19974 , 19846 , 19718 , 19590 , 19462 , 19334 , 19206 , 19078 , 18950 , 18822 , 18694 , 18566 , 18438 , 18310 , 18182 , 18054 , 17926 , 17798 , 17670 , 17542 , 17414 , 17286 , 17157 , 17029 , 16901 , 16773 , 16645 , 16517 , 16389 , 16261 , 16133 , 16005 , 15877 , 15749 , 15621 , 15493 , 15365 , 15237 , 15109 , 14981 , 14853 , 14725 , 14597 , 14469 , 14340 , 14212 , 14084 , 13956 , 13828 , 13700 , 13572 , 13444 , 13316 , 13188 , 13060 , 12932 , 12804 , 12676 , 12548 , 12420 , 12292 , 12164 , 12036 , 11908 , 11780 , 11652 , 11524 , 11395 , 11267 , 11139 , 11011 , 10883 , 10755 , 10627 , 10499 , 10371 , 10243 , 10115 , 9987 , 9859 , 9731 , 9603 , 9475 , 9347 , 9219 , 9091 , 8963 , 8835 , 8707 , 8578 , 8450 , 8322 , 8194 , 8066 , 7938 , 7810 , 7682 , 7554 , 7426 , 7298 , 7170 , 7042 , 6914 , 6786 , 6658 , 6530 , 6402 , 6274 , 6146 , 6018 , 5890 , 5762 , 5633 , 5505 , 5377 , 5249 , 5121 , 4993 , 4865 , 4737 , 4609 , 4481 , 4353 , 4225 , 4097 , 3969 , 3841 , 3713 , 3585 , 3457 , 3329 , 3201 , 3073 , 2945 , 2816 , 2688 , 2560 , 2432 , 2304 , 2176 , 2048 , 1920 , 1792 , 1664 , 1536 , 1408 , 1280 , 1152 , 1024 , 896 , 768 , 640 , 512 , 384 , 256 , 128 , 0 , -128 , -256 , -384 , -512 , -640 , -768 , -896 , -1024 , -1152 , -1280 , -1408 , -1536 , -1664 , -1792 , -1920 , -2048 , -2176 , -2304 , -2432 , -2560 , -2688 , -2816 , -2945 , -3073 , -3201 , -3329 , -3457 , -3585 , -3713 , -3841 , -3969 , -4097 , -4225 , -4353 , -4481 , -4609 , -4737 , -4865 , -4993 , -5121 , -5249 , -5377 , -5505 , -5633 , -5762 , -5890 , -6018 , -6146 , -6274 , -6402 , -6530 , -6658 , -6786 , -6914 , -7042 , -7170 , -7298 , -7426 , -7554 , -7682 , -7810 , -7938 , -8066 , -8194 , -8322 , -8450 , -8578 , -8707 , -8835 , -8963 , -9091 , -9219 , -9347 , -9475 , -9603 , -9731 , -9859 , -9987 , -10115, -10243, -10371, -10499, -10627, -10755, -10883, -11011, -11139, -11267, -11395, -11524, -11652, -11780, -11908, -12036, -12164, -12292, -12420, -12548, -12676, -12804, -12932, -13060, -13188, -13316, -13444, -13572, -13700, -13828, -13956, -14084, -14212, -14340, -14469, -14597, -14725, -14853, -14981, -15109, -15237, -15365, -15493, -15621, -15749, -15877, -16005, -16133, -16261, -16389, -16517, -16645, -16773, -16901, -17029, -17157, -17286, -17414, -17542, -17670, -17798, -17926, -18054, -18182, -18310, -18438, -18566, -18694, -18822, -18950, -19078, -19206, -19334, -19462, -19590, -19718, -19846, -19974, -20103, -20231, -20359, -20487, -20615, -20743, -20871, -20999, -21127, -21255, -21383, -21511, -21639, -21767, -21895, -22023, -22151, -22279, -22407, -22535, -22663, -22791, -22919, -23048, -23176, -23304, -23432, -23560, -23688, -23816, -23944, -24072, -24200, -24328, -24456, -24584, -24712, -24840, -24968, -25096, -25224, -25352, -25480, -25608, -25736, -25865, -25993, -26121, -26249, -26377, -26505, -26633, -26761, -26889, -27017, -27145, -27273, -27401, -27529, -27657, -27785, -27913, -28041, -28169, -28297, -28425, -28553, -28681, -28810, -28938, -29066, -29194, -29322, -29450, -29578, -29706, -29834, -29962, -30090, -30218, -30346, -30474, -30602, -30730, -30858, -30986, -31114, -31242, -31370, -31498, -31627, -31754, -31883, -32011, -32139, -32266, -32395, -32522, -32654, -32753, -32654, -32522, -32395, -32266, -32139, -32011, -31883, -31754, -31627, -31498, -31370, -31242, -31114, -30986, -30858, -30730, -30602, -30474, -30346, -30218, -30090, -29962, -29834, -29706, -29578, -29450, -29322, -29194, -29066, -28938, -28810, -28681, -28553, -28425, -28297, -28169, -28041, -27913, -27785, -27657, -27529, -27401, -27273, -27145, -27017, -26889, -26761, -26633, -26505, -26377, -26249, -26121, -25993, -25865, -25736, -25608, -25480, -25352, -25224, -25096, -24968, -24840, -24712, -24584, -24456, -24328, -24200, -24072, -23944, -23816, -23688, -23560, -23432, -23304, -23176, -23048, -22919, -22791, -22663, -22535, -22407, -22279, -22151, -22023, -21895, -21767, -21639, -21511, -21383, -21255, -21127, -20999, -20871, -20743, -20615, -20487, -20359, -20231, -20103, -19974, -19846, -19718, -19590, -19462, -19334, -19206, -19078, -18950, -18822, -18694, -18566, -18438, -18310, -18182, -18054, -17926, -17798, -17670, -17542, -17414, -17286, -17157, -17029, -16901, -16773, -16645, -16517, -16389, -16261, -16133, -16005, -15877, -15749, -15621, -15493, -15365, -15237, -15109, -14981, -14853, -14725, -14597, -14469, -14340, -14212, -14084, -13956, -13828, -13700, -13572, -13444, -13316, -13188, -13060, -12932, -12804, -12676, -12548, -12420, -12292, -12164, -12036, -11908, -11780, -11652, -11524, -11395, -11267, -11139, -11011, -10883, -10755, -10627, -10499, -10371, -10243, -10115, -9987 , -9859 , -9731 , -9603 , -9475 , -9347 , -9219 , -9091 , -8963 , -8835 , -8707 , -8578 , -8450 , -8322 , -8194 , -8066 , -7938 , -7810 , -7682 , -7554 , -7426 , -7298 , -7170 , -7042 , -6914 , -6786 , -6658 , -6530 , -6402 , -6274 , -6146 , -6018 , -5890 , -5762 , -5633 , -5505 , -5377 , -5249 , -5121 , -4993 , -4865 , -4737 , -4609 , -4481 , -4353 , -4225 , -4097 , -3969 , -3841 , -3713 , -3585 , -3457 , -3329 , -3201 , -3073 , -2945 , -2816 , -2688 , -2560 , -2432 , -2304 , -2176 , -2048 , -1920 , -1792 , -1664 , -1536 , -1408 , -1280 , -1152 , -1024 , -896 , -768 , -640 , -512 , -384 , -256 , -128 , //Osc 3 Level 2 0 , 256 , 512 , 768 , 1024 , 1280 , 1536 , 1792 , 2048 , 2304 , 2560 , 2816 , 3073 , 3329 , 3585 , 3841 , 4097 , 4353 , 4609 , 4865 , 5121 , 5377 , 5633 , 5890 , 6146 , 6402 , 6658 , 6914 , 7170 , 7426 , 7682 , 7938 , 8194 , 8450 , 8707 , 8963 , 9219 , 9475 , 9731 , 9987 , 10243 , 10499 , 10755 , 11011 , 11267 , 11524 , 11780 , 12036 , 12292 , 12548 , 12804 , 13060 , 13316 , 13572 , 13828 , 14084 , 14340 , 14597 , 14853 , 15109 , 15365 , 15621 , 15877 , 16133 , 16389 , 16645 , 16901 , 17157 , 17414 , 17670 , 17926 , 18182 , 18438 , 18694 , 18950 , 19206 , 19462 , 19718 , 19974 , 20231 , 20487 , 20743 , 20999 , 21255 , 21511 , 21767 , 22023 , 22279 , 22535 , 22791 , 23048 , 23304 , 23560 , 23816 , 24072 , 24328 , 24584 , 24840 , 25096 , 25352 , 25608 , 25865 , 26121 , 26377 , 26633 , 26889 , 27145 , 27401 , 27657 , 27913 , 28169 , 28425 , 28681 , 28938 , 29194 , 29450 , 29706 , 29962 , 30218 , 30474 , 30730 , 30987 , 31242 , 31499 , 31754 , 32012 , 32265 , 32529 , 32727 , 32529 , 32265 , 32012 , 31754 , 31499 , 31242 , 30987 , 30730 , 30474 , 30218 , 29962 , 29706 , 29450 , 29194 , 28938 , 28681 , 28425 , 28169 , 27913 , 27657 , 27401 , 27145 , 26889 , 26633 , 26377 , 26121 , 25865 , 25608 , 25352 , 25096 , 24840 , 24584 , 24328 , 24072 , 23816 , 23560 , 23304 , 23048 , 22791 , 22535 , 22279 , 22023 , 21767 , 21511 , 21255 , 20999 , 20743 , 20487 , 20231 , 19974 , 19718 , 19462 , 19206 , 18950 , 18694 , 18438 , 18182 , 17926 , 17670 , 17414 , 17157 , 16901 , 16645 , 16389 , 16133 , 15877 , 15621 , 15365 , 15109 , 14853 , 14597 , 14340 , 14084 , 13828 , 13572 , 13316 , 13060 , 12804 , 12548 , 12292 , 12036 , 11780 , 11524 , 11267 , 11011 , 10755 , 10499 , 10243 , 9987 , 9731 , 9475 , 9219 , 8963 , 8707 , 8450 , 8194 , 7938 , 7682 , 7426 , 7170 , 6914 , 6658 , 6402 , 6146 , 5890 , 5633 , 5377 , 5121 , 4865 , 4609 , 4353 , 4097 , 3841 , 3585 , 3329 , 3073 , 2816 , 2560 , 2304 , 2048 , 1792 , 1536 , 1280 , 1024 , 768 , 512 , 256 , 0 , -256 , -512 , -768 , -1024 , -1280 , -1536 , -1792 , -2048 , -2304 , -2560 , -2816 , -3073 , -3329 , -3585 , -3841 , -4097 , -4353 , -4609 , -4865 , -5121 , -5377 , -5633 , -5890 , -6146 , -6402 , -6658 , -6914 , -7170 , -7426 , -7682 , -7938 , -8194 , -8450 , -8707 , -8963 , -9219 , -9475 , -9731 , -9987 , -10243, -10499, -10755, -11011, -11267, -11524, -11780, -12036, -12292, -12548, -12804, -13060, -13316, -13572, -13828, -14084, -14340, -14597, -14853, -15109, -15365, -15621, -15877, -16133, -16389, -16645, -16901, -17157, -17414, -17670, -17926, -18182, -18438, -18694, -18950, -19206, -19462, -19718, -19974, -20231, -20487, -20743, -20999, -21255, -21511, -21767, -22023, -22279, -22535, -22791, -23048, -23304, -23560, -23816, -24072, -24328, -24584, -24840, -25096, -25352, -25608, -25865, -26121, -26377, -26633, -26889, -27145, -27401, -27657, -27913, -28169, -28425, -28681, -28938, -29194, -29450, -29706, -29962, -30218, -30474, -30730, -30987, -31242, -31499, -31754, -32012, -32265, -32529, -32727, -32529, -32265, -32012, -31754, -31499, -31242, -30987, -30730, -30474, -30218, -29962, -29706, -29450, -29194, -28938, -28681, -28425, -28169, -27913, -27657, -27401, -27145, -26889, -26633, -26377, -26121, -25865, -25608, -25352, -25096, -24840, -24584, -24328, -24072, -23816, -23560, -23304, -23048, -22791, -22535, -22279, -22023, -21767, -21511, -21255, -20999, -20743, -20487, -20231, -19974, -19718, -19462, -19206, -18950, -18694, -18438, -18182, -17926, -17670, -17414, -17157, -16901, -16645, -16389, -16133, -15877, -15621, -15365, -15109, -14853, -14597, -14340, -14084, -13828, -13572, -13316, -13060, -12804, -12548, -12292, -12036, -11780, -11524, -11267, -11011, -10755, -10499, -10243, -9987 , -9731 , -9475 , -9219 , -8963 , -8707 , -8450 , -8194 , -7938 , -7682 , -7426 , -7170 , -6914 , -6658 , -6402 , -6146 , -5890 , -5633 , -5377 , -5121 , -4865 , -4609 , -4353 , -4097 , -3841 , -3585 , -3329 , -3073 , -2816 , -2560 , -2304 , -2048 , -1792 , -1536 , -1280 , -1024 , -768 , -512 , -256 , //Osc 3 Level 3 0 , 512 , 1024 , 1536 , 2048 , 2560 , 3073 , 3585 , 4097 , 4609 , 5121 , 5633 , 6146 , 6658 , 7170 , 7682 , 8194 , 8707 , 9219 , 9731 , 10243 , 10755 , 11267 , 11780 , 12292 , 12804 , 13316 , 13828 , 14340 , 14853 , 15365 , 15877 , 16389 , 16901 , 17414 , 17926 , 18438 , 18950 , 19462 , 19974 , 20487 , 20999 , 21511 , 22023 , 22535 , 23048 , 23560 , 24072 , 24584 , 25096 , 25608 , 26121 , 26633 , 27145 , 27657 , 28170 , 28681 , 29194 , 29705 , 30219 , 30729 , 31244 , 31750 , 32279 , 32675 , 32279 , 31750 , 31244 , 30729 , 30219 , 29705 , 29194 , 28681 , 28170 , 27657 , 27145 , 26633 , 26121 , 25608 , 25096 , 24584 , 24072 , 23560 , 23048 , 22535 , 22023 , 21511 , 20999 , 20487 , 19974 , 19462 , 18950 , 18438 , 17926 , 17414 , 16901 , 16389 , 15877 , 15365 , 14853 , 14340 , 13828 , 13316 , 12804 , 12292 , 11780 , 11267 , 10755 , 10243 , 9731 , 9219 , 8707 , 8194 , 7682 , 7170 , 6658 , 6146 , 5633 , 5121 , 4609 , 4097 , 3585 , 3073 , 2560 , 2048 , 1536 , 1024 , 512 , 0 , -512 , -1024 , -1536 , -2048 , -2560 , -3073 , -3585 , -4097 , -4609 , -5121 , -5633 , -6146 , -6658 , -7170 , -7682 , -8194 , -8707 , -9219 , -9731 , -10243, -10755, -11267, -11780, -12292, -12804, -13316, -13828, -14340, -14853, -15365, -15877, -16389, -16901, -17414, -17926, -18438, -18950, -19462, -19974, -20487, -20999, -21511, -22023, -22535, -23048, -23560, -24072, -24584, -25096, -25608, -26121, -26633, -27145, -27657, -28170, -28681, -29194, -29705, -30219, -30729, -31244, -31750, -32279, -32675, -32279, -31750, -31244, -30729, -30219, -29705, -29194, -28681, -28170, -27657, -27145, -26633, -26121, -25608, -25096, -24584, -24072, -23560, -23048, -22535, -22023, -21511, -20999, -20487, -19974, -19462, -18950, -18438, -17926, -17414, -16901, -16389, -15877, -15365, -14853, -14340, -13828, -13316, -12804, -12292, -11780, -11267, -10755, -10243, -9731 , -9219 , -8707 , -8194 , -7682 , -7170 , -6658 , -6146 , -5633 , -5121 , -4609 , -4097 , -3585 , -3073 , -2560 , -2048 , -1536 , -1024 , -512 , //Osc 3 Level 4 0 , 1024 , 2048 , 3073 , 4097 , 5121 , 6146 , 7170 , 8194 , 9219 , 10243 , 11267 , 12292 , 13316 , 14340 , 15365 , 16389 , 17414 , 18438 , 19463 , 20486 , 21511 , 22535 , 23560 , 24583 , 25609 , 26632 , 27659 , 28679 , 29710 , 30722 , 31779 , 32571 , 31779 , 30722 , 29710 , 28679 , 27659 , 26632 , 25609 , 24583 , 23560 , 22535 , 21511 , 20486 , 19463 , 18438 , 17414 , 16389 , 15365 , 14340 , 13316 , 12292 , 11267 , 10243 , 9219 , 8194 , 7170 , 6146 , 5121 , 4097 , 3073 , 2048 , 1024 , 0 , -1024 , -2048 , -3073 , -4097 , -5121 , -6146 , -7170 , -8194 , -9219 , -10243, -11267, -12292, -13316, -14340, -15365, -16389, -17414, -18438, -19463, -20486, -21511, -22535, -23560, -24583, -25609, -26632, -27659, -28679, -29710, -30722, -31779, -32571, -31779, -30722, -29710, -28679, -27659, -26632, -25609, -24583, -23560, -22535, -21511, -20486, -19463, -18438, -17414, -16389, -15365, -14340, -13316, -12292, -11267, -10243, -9219 , -8194 , -7170 , -6146 , -5121 , -4097 , -3073 , -2048 , -1024 , //Osc 3 Level 5 0 , 2048 , 4097 , 6146 , 8194 , 10244 , 12291 , 14341 , 16388 , 18439 , 20485 , 22538 , 24579 , 26641 , 28665 , 30779 , 32364 , 30779 , 28665 , 26641 , 24579 , 22538 , 20485 , 18439 , 16388 , 14341 , 12291 , 10244 , 8194 , 6146 , 4097 , 2048 , 0 , -2048 , -4097 , -6146 , -8194 , -10244, -12291, -14341, -16388, -18439, -20485, -22538, -24579, -26641, -28665, -30779, -32364, -30779, -28665, -26641, -24579, -22538, -20485, -18439, -16388, -14341, -12291, -10244, -8194 , -6146 , -4097 , -2048 , //Osc 3 Level 6 0 , 4098 , 8192 , 12297 , 16381 , 20502 , 24551 , 28777 , 31950 , 28777 , 24551 , 20502 , 16381 , 12297 , 8192 , 4098 , 0 , -4098 , -8192 , -12297, -16381, -20502, -24551, -28777, -31950, -28777, -24551, -20502, -16381, -12297, -8192 , -4098 , //Osc 3 Level 7 0 , 8214 , 16332 , 24769 , 31127 , 24769 , 16332 , 8214 , 0 , -8214 , -16332, -24769, -31127, -24769, -16332, -8214 , //Osc 3 Level 8 0 , 16700 , 29522 , 16700 , 0 , -16700, -29522, -16700, //Osc 3 Level 9 0 , 26570 , 0 , -26570, //Osc 3 Level 10 0 , 0 , //Osc 3 Level 11 0 , 0 , }, //Osc 4 Level 0 { -25049, -30331, 11797 , 32285 , -2156 , 28100 , -32487, 15921 , 26285 , 14680 , -877 , 25906 , 1323 , 2240 , 32278 , -32178, -14181, 21237 , 12617 , -31901, 6878 , 17887 , 20584 , -1657 , -15702, 29404 , 13505 , -21119, 7176 , 19264 , -18632, -31666, -24364, 27856 , -7996 , 13213 , 16703 , -16826, 27375 , 18004 , 3152 , 23504 , 4186 , -3831 , 10335 , 21393 , -21194, 13961 , -25703, 12830 , 12236 , 23636 , 25727 , -8445 , -9994 , 12062 , 25191 , 18747 , -13148, -26800, -29191, -7237 , -3496 , -634 , 435 , 29160 , -23126, -241 , 21094 , -23524, -18747, 29296 , -18505, -31706, 15080 , 15328 , 1183 , 12743 , 11494 , 29133 , -4117 , -4298 , 23974 , 20822 , -21316, -612 , 13475 , -32049, -11513, 18840 , -16275, 11841 , -26601, -6212 , 5927 , -8217 , 22279 , -7922 , -30969, 15537 , -5816 , 20360 , -26918, -31035, 20257 , -13671, 22141 , -3591 , 10281 , -23646, 32612 , 18523 , -1073 , 29306 , 25879 , 24233 , 20947 , -3606 , 13744 , -10023, 6859 , -21455, -30114, 16018 , 26783 , -2174 , -14363, -8271 , -2291 , -15743, -12516, -30523, -31707, 12489 , 32110 , 1940 , -1842 , 1897 , 32089 , -108 , 24896 , 26979 , -6414 , -29070, -19065, -7125 , 12383 , 16526 , 29190 , 19502 , -4517 , -10884, -14 , 26952 , -6986 , -11131, 28115 , -3251 , -6445 , -3803 , -2042 , 24193 , -30680, 16267 , 24894 , -2016 , 7361 , -18149, -25858, 21207 , -30275, -28433, -16863, -31928, -6705 , -10158, 21330 , 11402 , 27071 , 29508 , -5228 , 23719 , -20250, -8967 , -30532, 14621 , 18870 , 15449 , -10766, -1187 , -27089, 18561 , 12339 , 15695 , 31851 , 32065 , 32466 , -27189, 26387 , 8092 , -9230 , 1314 , -27160, -28084, 3341 , 12691 , 15932 , 31291 , -13455, 29654 , -1163 , -19701, -9026 , -19563, 3984 , 5006 , -1175 , 5102 , -3172 , -32177, 3900 , -4109 , 14395 , -9721 , -18989, -22743, -18907, -25047, 6945 , -17908, -29019, 32599 , -24087, -18806, 31770 , -20502, -9147 , 29827 , 29303 , -30610, 21539 , 8784 , 4035 , 31779 , -23614, -24263, 23706 , 23933 , -8646 , -19971, 23722 , 29349 , -14351, 29005 , 28471 , 23031 , 24359 , 9297 , 32663 , -16766, 13419 , -10974, -31306, 23690 , -27869, -16561, -10604, 22025 , 31240 , 3161 , -15166, -10454, -7256 , 24630 , -28439, -30004, 24290 , 13777 , -21949, -8442 , 30573 , -29816, -16609, 6557 , 28242 , -8275 , -25247, 15503 , -15763, -761 , -7424 , 14988 , -30480, 5966 , 32391 , 31607 , -27168, 14257 , -108 , -20247, 29847 , 31059 , 14172 , 31407 , -20416, 5578 , -22235, -9401 , 27741 , 16799 , 19147 , -921 , 19780 , -10030, -27333, 17270 , 12446 , 23379 , 25851 , 13841 , -18969, -18039, -21856, 11911 , -26895, -3890 , 27478 , 24669 , 20577 , -2063 , 4444 , 11467 , -26064, 31667 , -29562, 18237 , -20437, -5301 , -15687, 10707 , -5516 , 21731 , -12174, 23010 , -23041, -28136, 6463 , 31857 , 32021 , 17533 , 10308 , 15036 , -12332, 8729 , -8008 , -2380 , 7341 , 4580 , -411 , -12419, -22299, 6222 , 26156 , -2578 , -1771 , -27719, 18046 , 20757 , -26198, 18682 , -30748, 29361 , 14181 , 16347 , -29320, 23478 , 2012 , -4196 , 17770 , -28468, 503 , -17555, -30340, 32464 , -6539 , -16650, -12410, 12114 , 6244 , -5425 , -22029, -13035, -14932, 28936 , 6210 , -1902 , 24453 , 419 , 10118 , -5002 , -7428 , -10475, -7450 , 29215 , 29042 , 4809 , 5150 , 9763 , 14621 , 27037 , -11268, -29495, -21115, -24478, -5404 , 30350 , 4104 , -10144, -32436, -19295, -14249, -21552, 8256 , 7527 , 3318 , 6752 , -32288, -7944 , 23488 , -14925, 12765 , -21088, 16993 , 32222 , -512 , -23457, -2342 , -25108, -18781, 7529 , -16383, -18341, -16587, 15527 , -20994, 5020 , -4422 , -10700, -23857, -2409 , 16457 , -23839, -21819, 17701 , -11379, 17586 , 9476 , 27797 , 15685 , -25761, -17401, 8232 , 10180 , 26835 , 11802 , 26004 , 17265 , -14928, -6690 , 29060 , -30905, 26057 , -7480 , 21526 , 16726 , 11430 , 29090 , 30044 , -2240 , 4612 , -19191, 25052 , -26946, -10669, -530 , -6384 , -2535 , -30922, 29717 , 32743 , -23375, -11257, 3737 , 4418 , -29831, -19888, 23653 , 30327 , -8839 , 21074 , -25412, -8750 , -10166, -7294 , -22605, 29967 , -11106, -22265, -22862, -6687 , 9910 , -8642 , -25354, -23954, 20201 , -5322 , -16366, -32304, 31268 , -5836 , 8297 , -21354, 21092 , 30512 , 8630 , 22849 , -24770, -8618 , -15484, 22728 , 13912 , -31098, 14774 , 29460 , 15341 , 15060 , 21760 , -27771, 13133 , -16887, -17556, 17771 , -8358 , -20704, 28887 , 141 , -3316 , -16950, 12145 , -14938, -28178, -20757, -28607, 2787 , -24417, 12570 , -31842, 30822 , 25938 , 293 , -26186, 29894 , 30798 , -8565 , 6923 , 396 , -31633, -12288, -3855 , -6216 , 22435 , -18452, -8686 , -19398, 17262 , -18196, 1771 , 1146 , -12954, -5553 , 19020 , 8912 , 12216 , -9061 , -5669 , -3316 , -22111, 28166 , -32111, 12016 , 8182 , 28413 , 21820 , -3407 , 3484 , 5793 , -8452 , 6522 , 17424 , 18244 , -15930, 27112 , 31713 , -23824, 31971 , -28017, -19151, -4127 , 30066 , 30323 , 26680 , 19718 , -12574, -13936, -31295, 13956 , -27783, 32083 , -14422, -9677 , -21296, -737 , -11928, -17377, 11349 , 15049 , -24447, 11016 , 25543 , 2844 , 19729 , 1250 , -12867, 21078 , 6726 , -13482, -14816, 169 , -10525, -30657, 4780 , 24250 , -29248, -32210, -17549, 10789 , -31159, -16153, 13146 , 504 , -27397, -7711 , -12134, 9011 , -17430, -17206, -27327, -2737 , 6974 , -10240, 18350 , 26292 , 12720 , 11545 , 23320 , -26303, 27922 , 15709 , -22520, 24264 , -30011, -2489 , -2854 , 1423 , -14272, 26119 , 20032 , 29904 , -7280 , 16387 , -20545, -26311, -5166 , 12625 , 31792 , -24211, -7749 , 1342 , -14784, 2690 , 10257 , -26166, -5904 , -895 , 17455 , 9258 , 28694 , 30441 , -4475 , -15035, 20698 , -13012, -3307 , 28215 , -3525 , 29488 , 25080 , 5330 , 1415 , 6607 , -28713, -18408, -20762, -25768, 26225 , 13505 , -560 , 14348 , -31460, 27067 , 13714 , 8866 , -20164, 11429 , -6706 , 23747 , 5838 , -29100, 21239 , -7282 , -10016, 28494 , -20775, -21482, -3563 , -7087 , 8463 , -4129 , 25894 , 27341 , 8074 , 18788 , -17060, -4762 , -26863, 8340 , -8424 , -26509, 25532 , 26448 , -22453, 32386 , -26248, 9711 , 24830 , 3282 , -25466, -10309, 31691 , -12329, 2556 , 6001 , 9826 , 1977 , 28738 , 7108 , 10757 , 3285 , -10346, 987 , 7180 , 1082 , 6793 , 29646 , 24161 , -7123 , -29057, 301 , 28677 , -14169, -973 , -4230 , 3466 , -26670, -6095 , 15530 , -24169, 30351 , 11098 , -601 , -31384, 3315 , 23396 , 2769 , 4427 , 6853 , -31913, -904 , 32035 , 23553 , -21487, -2204 , -28439, 15704 , -19262, -14002, -23258, -8018 , 31601 , -10908, 29562 , 29083 , -10891, 20680 , -18664, -13845, 22525 , 20242 , -25272, -6626 , 28809 , 7881 , 1508 , -22040, -12945, 30190 , -27685, -2894 , -27049, 28274 , 3505 , 1559 , -2882 , -11590, -29187, -19864, -5001 , 14882 , 1001 , -6360 , -31707, 30072 , -31818, -111 , 15811 , 19324 , 26422 , 26893 , 24348 , -31385, 15951 , -26690, -30125, 19297 , 3967 , -13577, 9821 , 20744 , -6061 , 8640 , -26750, -11792, -16914, 32598 , -14369, -8674 , 7560 , -16472, 32743 , -2420 , -21268, -17444, 3805 , 31145 , -1287 , -24888, -15524, -8235 , 8226 , -30343, 13263 , 18409 , 12015 , -30801, 22265 , 21421 , -2951 , -11169, -5010 , -11168, -30479, 28208 , -19176, -14540, 12314 , 31742 , -1100 , -24113, 2507 , 346 , 27986 , 28363 , -28050, 25352 , -15912, -17865, -3196 , 15232 , -19328, -12780, -23522, -146 , -13227, -16679, -9883 , -3534 , 29882 , -14353, -14573, -5536 , 26083 , -1995 , -20489, -6591 , 23898 , -20867, 18038 , 28752 , -22917, -6643 , -8955 , 21438 , -3335 , -11488, -6481 , -24338, -31913, -12446, 18325 , 506 , -24721, 5752 , -2711 , 24364 , -8466 , 21109 , -6158 , -11386, -15914, 30822 , -9844 , -3782 , 6395 , 29895 , 22437 , 22067 , 16007 , -22517, 9024 , -28533, 7798 , -19687, -7818 , -11502, -28902, -27703, -25616, -1587 , 31128 , -28309, 4462 , 24180 , 21098 , 31041 , 22084 , 31987 , 25051 , 11007 , 17623 , 26603 , -9075 , 30034 , -16860, -29394, 19446 , -15785, -17863, -13754, -14625, 5151 , -22342, 20719 , -1564 , 20785 , 8542 , -9320 , -9 , -7928 , -7056 , 12773 , 2781 , -26479, -21682, -720 , -9297 , -2385 , 18669 , 27908 , -29861, 12471 , -26029, -21599, 8992 , 3828 , 18203 , 8827 , 1301 , -26333, 20981 , -28997, 9378 , -27912, -1756 , -6724 , 3846 , -14185, -6402 , -30321, -15408, 11036 , 12911 , 19831 , -8859 , 15636 , -20618, -13715, -30336, -12542, -28762, -31842, 20909 , 3035 , 21158 , 23272 , 13262 , -10870, 1714 , -10911, 2711 , -3731 , -9960 , 12241 , 17937 , 1238 , 30396 , -15566, 29722 , -7797 , -17259, -18121, 6371 , 8774 , -18387, 4290 , -10383, -26827, 30757 , 29292 , 27165 , -32133, 11438 , -11007, 27412 , -23379, 6161 , -3583 , -4905 , -26282, -12504, 2593 , -7492 , -31884, -13853, 31176 , 22891 , -30215, -15420, -25198, -158 , 9291 , 27747 , 1744 , 32114 , -18748, 26603 , 6 , 7999 , 32563 , 8091 , -7828 , 19396 , 20825 , -7610 , 13677 , 19917 , -23700, -11053, -21205, -4997 , -5480 , -19779, -6919 , 21444 , -14471, -8556 , 30944 , 19696 , 674 , -15749, -5861 , -14563, 22809 , 168 , -12645, -20548, 6360 , -3096 , -8317 , -25839, -29362, 24 , 17325 , 15543 , 15324 , 12972 , -18141, 12314 , 28761 , -19668, -30553, -28421, -26226, 946 , -13781, -7184 , -2630 , -28307, -1702 , 20193 , 3855 , 5409 , -9715 , 8587 , 2100 , 17317 , 11479 , -20991, -18239, -12700, 13178 , 28966 , -26170, 13276 , 1391 , 2869 , -32188, 24610 , -19358, 2106 , -19534, 7516 , -16205, 30870 , -18822, 21573 , -8713 , -9858 , 1657 , -25427, 1908 , 19836 , 3971 , 7671 , -6999 , 9453 , 31196 , -16487, -572 , 13953 , -14656, -22113, -16342, 1983 , -17188, 5416 , 21234 , -14978, 9426 , 27879 , 15210 , -29587, -10823, 15780 , -11887, 396 , 4507 , 30392 , -31589, 15024 , -19979, -1387 , -4239 , -2301 , 9275 , 32571 , 15662 , -22654, -18863, -16700, 23970 , 18301 , -19693, -2086 , 2515 , 1307 , -12594, -16837, 6263 , 14803 , 25541 , 6972 , 8827 , 13043 , 32429 , -446 , 30592 , -13795, -17615, 32075 , 25177 , 19910 , 28783 , 25955 , 15758 , 14773 , -21128, 6959 , -10276, 16266 , -31276, 19302 , 10418 , 7988 , -20996, 27475 , 21685 , 20345 , -6178 , 2389 , 573 , -2445 , -16547, -4769 , 32214 , -19955, 5838 , 2424 , -20800, 12426 , 893 , -17860, 23408 , 6398 , 31269 , -10407, -16883, -15405, -13445, -27629, 26867 , -15547, 28836 , -20544, 31539 , 15334 , -22598, 30284 , 9489 , 3356 , 24652 , -28489, -892 , 18846 , -2085 , -23150, -24134, 32762 , 18013 , -13946, 13202 , 21266 , -1347 , 16333 , -27616, -7526 , -14503, -30026, -724 , 923 , 24195 , 19493 , 25779 , -14092, 16129 , -2543 , 12645 , -9260 , -12146, -13563, 16165 , -23487, 20566 , 11935 , 13197 , 16788 , -29315, 17940 , -23961, 21242 , -2663 , -5974 , -32203, -28683, -3789 , -8131 , 28841 , -20263, -28598, 31162 , -14547, 10063 , 1745 , -6745 , 32605 , 9942 , -1748 , 26777 , -6264 , -707 , 6326 , 23484 , 10036 , -17622, -28610, 32079 , -27754, 11414 , 16517 , 4390 , 21533 , 8526 , -13118, 20774 , -10519, -31373, -2274 , 11724 , 5452 , 18939 , -12999, 24230 , -22448, 7471 , -23389, 17112 , 11568 , 29483 , -6301 , 4505 , 31197 , 24161 , -20364, 23219 , 8571 , 14357 , -18365, 22279 , 18657 , 6370 , 4402 , -30458, -13539, 8500 , 13336 , 11577 , -21010, -28211, -9025 , -1350 , 26184 , 13377 , 13924 , 13241 , 27859 , 4985 , -10181, 1528 , 8812 , 1075 , -28184, 15183 , -31581, 32128 , -30713, -17879, -19909, 16709 , 8357 , 22021 , 16302 , 21690 , -16443, -4106 , -9306 , 18670 , -11300, 26403 , -15484, 21314 , 12885 , -9912 , -30755, -18967, -15347, 13107 , 8440 , -1937 , -32296, 4424 , 21330 , -4049 , -16133, -4099 , 25626 , -26406, 20400 , -21410, 7605 , -17161, 24997 , -11125, 9275 , -4514 , 19580 , -14283, 6648 , -12612, -27571, -22235, 5100 , 10258 , 18464 , -25675, 24140 , -10955, -20876, -10412, -28418, -1456 , -15942, 1798 , -3039 , 3421 , 31962 , -1566 , 13443 , -20816, 30637 , -23661, 26664 , -11923, 21378 , -4904 , 25290 , -19444, 30617 , -11260, 23124 , 10460 , 7595 , 23934 , 23397 , -20867, -20896, -11199, 3539 , 22629 , -4649 , 23133 , -14042, 1884 , 30754 , 18804 , 31001 , -3584 , 3527 , 25407 , -11748, -703 , 12352 , 20999 , -10795, -6938 , -29060, 31020 , 10138 , 13318 , -16036, -27231, 12536 , -29296, 22582 , -20882, -27088, 17604 , 13653 , 21804 , -1356 , -14921, 14968 , -18803, 5550 , 19923 , 17743 , -1326 , -27014, 29781 , -1023 , -2478 , -9945 , -32051, 27048 , 10746 , -5382 , -25182, -5421 , -27705, -8469 , 15499 , -5629 , 20302 , -3546 , 29463 , 27695 , 1589 , 139 , 2342 , 27968 , -20297, 18734 , -7315 , 3221 , 9764 , 728 , -17418, -30335, -674 , -16252, -21859, -28728, -17059, 9699 , 32149 , -11226, -8788 , -5159 , 25057 , 199 , -26902, -19202, -9253 , -3632 , -31926, -19939, 4017 , -15915, -28909, 5816 , -9757 , -22944, 14625 , -8830 , 14278 , 7281 , 9058 , 23779 , -32764, -6920 , -3238 , -21640, -5351 , 20828 , 671 , 21649 , -5160 , 24568 , 24414 , -9039 , -10268, -22375, 7380 , 5649 , -8137 , -26366, 29654 , 17694 , 22942 , -32408, -19639, -27402, -10949, -3851 , -32598, 23535 , -30462, 25161 , -6008 , 12304 , -30659, 14325 , 16133 , -13419, -13304, 2302 , 20569 , -16017, 3030 , -17056, 24911 , 450 , 26090 , 31368 , 32709 , 11878 , -10274, 24537 , 9008 , -16537, 1823 , 4904 , -25322, -2171 , -9873 , -25280, -9837 , 10421 , 23906 , 5727 , -4139 , 18589 , -32031, 8886 , -32097, -10981, -23637, 16109 , 28874 , 2239 , -9265 , 23709 , -10817, -8371 , -19917, 20180 , -9730 , -5571 , -28400, -31083, -11366, -2758 , 3699 , -24746, -18757, -1370 , 1214 , 15232 , 22042 , 26644 , -1243 , -20238, 29577 , -19764, -8655 , 1405 , -24471, -17333, 2112 , 15209 , -4559 , -31040, 6659 , -4624 , -4370 , 14737 , -23809, 15806 , -31298, -2604 , 6669 , 3447 , -30893, 31446 , -23078, -29136, 10870 , 6808 , 13672 , -25611, 18561 , 32332 , -6005 , 27202 , 28132 , 15068 , 18540 , 138 , -17759, 13668 , 20489 , -31053, -27951, -10317, 17587 , -7785 , -24803, -27442, 24207 , 8069 , 7492 , -17043, -16106, -19266, 156 , 9340 , -15467, 2041 , -7543 , 5019 , -30291, -12577, -15608, -28770, -5164 , -17777, -26329, -4850 , -20526, 29723 , 13193 , -19290, -28347, 26890 , 26855 , -10281, 6686 , -6188 , 6282 , -19132, 19234 , 3177 , -1325 , 27975 , 5225 , -854 , 16819 , 1642 , -25118, 29934 , 2355 , -7697 , 24526 , -23426, -26643, -32695, -29888, -9702 , 28561 , -27232, 17060 , -32654, 11617 , 28241 , -24012, -5459 , -17739, -23701, 6276 , 28902 , 19831 , 7988 , -28936, -9046 , 14504 , 29090 , -7607 , -23173, -29478, -2846 , 11011 , 32080 , -30540, -15916, 22026 , 11539 , 22898 , 29837 , -29424, 16674 , -21662, 16596 , 28448 , 1486 , -30105, 22182 , 6423 , 21471 , -28038, -26958, -474 , 11533 , -4060 , -26915, -28591, 10377 , -20219, -2370 , -18189, -20622, 25680 , -31709, -24264, -30368, 2893 , 12171 , -13663, 14557 , -9770 , -12118, 30595 , 10215 , -14630, 15081 , -7288 , -23441, 27869 , 8675 , 19501 , -21283, 14966 , -12823, 18754 , -29558, -3377 , -24449, 30062 , -14268, -471 , 26844 , -6488 , -9522 , -30122, 2158 , -2369 , -16035, 31548 , 26451 , 23507 , 22556 , 11097 , -18207, -28455, -31063, -966 , -28641, -29157, -17258, 14082 , 17482 , 20918 , -16919, 15593 , 9554 , -18406, 16284 , 1978 , -32678, -23410, 21533 , -1452 , 29755 , -1623 , 10191 , 298 , -27135, -7718 , 3464 , 708 , -6803 , -6175 , 23313 , 8251 , -28303, 24403 , -27223, -14912, -29513, -25318, -4478 , -29930, 29211 , 32754 , -28862, 25620 , -18132, 18670 , -18813, 8484 , 15023 , 17393 , 9300 , -16441, -31461, -16331, -10570, 2830 , -32482, 22728 , -27105, 3106 , 26135 , 3337 , 20987 , -13635, 32410 , -22224, 19750 , -8785 , 15600 , 32451 , -25997, -13478, 8084 , -4830 , -5848 , -17866, -6729 , -17924, -24193, -3763 , -27716, 14807 , -11993, -22336, -14403, 18572 , 26561 , 10817 , 24068 , 4553 , -15516, -15977, 26003 , 10638 , -29414, -738 , -7011 , -2896 , -6816 , 15940 , -4854 , 24920 , -8023 , -26100, -32521, -4219 , 21468 , -30321, 18227 , -30330, -3887 , 27254 , -28733, 11393 , -19752, 20353 , -22432, 24815 , -25806, 8452 , 244 , -31971, 15766 , 3428 , -24544, 23469 , 7342 , 18846 , -6216 , -30701, 22167 , -24128, 10565 , -19687, -24219, -9874 , 2691 , 7515 , -26724, 23647 , 14817 , -2613 , -11080, 16094 , 29444 , 558 , 24998 , -29111, -11452, -26723, -3768 , -3691 , 32300 , 25349 , 27894 , -26168, 4606 , 424 , -12041, 637 , 27693 , -5735 , -9972 , 612 , -16926, -23996, 31974 , 11200 , -3976 , //Osc 4 Level 1 -13084, 15530 , -793 , 23040 , -757 , -17036, -7995 , 16829 , 24862 , 13777 , 32601 , 13481 , -17706, -21948, -8650 , -22034, 10176 , -1598 , 20739 , -2194 , 14781 , 14902 , -17924, -27076, 24451 , -6914 , -26001, -18656, 7451 , -11412, -3264 , -22761, -27551, -29883, 30054 , 976 , 23943 , -9403 , 619 , 16432 , 12177 , -14438, 31984 , -1841 , 22746 , -14747, 26918 , -26503, -30834, -13252, -8874 , 19631 , -7633 , 10410 , 16986 , 18979 , 28688 , -19795, 25634 , -7873 , 20957 , 17719 , 21040 , -7522 , -13807, 2990 , 4124 , -11375, -27267, 7788 , -27119, 29340 , -27704, 28480 , -24242, 3063 , 16362 , -31253, 21670 , 7694 , -1872 , 3235 , -22272, 19969 , 6459 , 11411 , -21033, -21468, -7807 , -17831, 6587 , -14209, 11978 , 12935 , -21809, -26801, -31692, 1572 , 22345 , -23164, 25391 , -18648, 19958 , -25278, 29698 , 17667 , -14669, -26016, 32325 , 26902 , -23820, -12565, -20124, 9015 , -8639 , 30628 , -17118, 5682 , -12620, -24450, 14868 , 13379 , 13692 , 14625 , 25122 , -17507, -24739, -1686 , -26358, 743 , 5422 , -27160, -15139, -27207, 7258 , 17504 , 30335 , -24285, -30881, -28598, -7637 , -20442, -27054, -174 , 10220 , 14393 , -6311 , 1496 , 27685 , -2618 , -18641, -13455, 16395 , 6314 , -3676 , -16540, 23078 , -16200, -28133, -723 , -24876, 18999 , 21514 , 253 , 30917 , 27231 , 13181 , -21448, -32385, -25632, 15763 , -26122, -1572 , 23388 , -20225, 17282 , 4744 , -19480, 28297 , 29918 , 1155 , -25713, -18038, -28355, -1627 , -24626, -14220, -22648, -15083, 25113 , -23225, 22234 , 27600 , -7084 , -8675 , -31996, 32041 , 9563 , 1440 , 22793 , -17597, -29317, 910 , -23646, 5016 , -21769, -19140, 28604 , -6282 , -16764, 24079 , -32523, 9341 , 6093 , -6139 , 5667 , -21214, 16880 , 29738 , -563 , 4399 , 32766 , -17629, -1360 , -27072, 6527 , 15783 , -1989 , 4168 , 30444 , 17665 , 3859 , -30198, -29133, -19568, -9840 , -16992, -24777, -23225, 6206 , 23800 , 16461 , -8147 , 9822 , 10833 , -17728, -27426, 15970 , 24771 , 14158 , -4344 , 3700 , -4940 , -17751, 30191 , 7407 , 29796 , -3593 , -17175, -796 , 12386 , 20306 , -7198 , -11625, -27628, 30280 , -6182 , 10240 , 17971 , -1956 , 17250 , -28342, -5811 , -7804 , -8413 , -24233, 13377 , -27479, 21079 , -20934, 23238 , 30762 , 29517 , 26044 , -14875, 29273 , 14313 , 12760 , 7290 , 13820 , 26146 , -4802 , -25673, -8499 , 5251 , -6188 , 16289 , -8709 , 31402 , -17616, 15250 , -18777, -28212, -4321 , -15691, -30104, 1327 , 28194 , -24436, 30151 , -3409 , 18924 , -24211, 15555 , 31545 , 20453 , 19201 , -14514, 9043 , -4695 , -6972 , 28111 , 914 , 25994 , 20616 , 5534 , -14046, 21258 , -19726, 7563 , 1602 , 32610 , 27643 , -26025, 21190 , 1534 , -8336 , 25401 , 15507 , 18686 , 3443 , 28250 , -30682, 13750 , 31480 , 32090 , 16653 , 22831 , 27208 , -26167, -26004, -15196, -7295 , -7762 , 8058 , -15866, -29420, -23548, 13313 , 22649 , 21574 , -13000, 25826 , -24363, 26032 , 9132 , 2190 , -5595 , -2625 , -11209, 12174 , 11819 , -9932 , -12637, 25852 , -10790, -4699 , 29229 , 16136 , -12837, 20987 , 2569 , 16244 , 27401 , 28402 , -26149, 1048 , 7924 , 20379 , 31295 , 18271 , -926 , -13859, -15038, 12488 , -29751, 30448 , -27929, -2714 , -4138 , -1055 , 1443 , 18528 , 23018 , 8721 , -22815, 7026 , -12649, 16310 , -27778, 12138 , -17880, -4008 , 30798 , 29868 , 21782 , 7509 , 24213 , 15278 , -10093, -10658, -14193, 13693 , 771 , 31224 , -25110, 17462 , 27774 , -20997, 26694 , -25715, 11088 , 10262 , -8260 , -20150, -14214, 17993 , 18259 , 32199 , 1070 , 30570 , 6540 , -29581, 27222 , 29601 , -31528, 23634 , -18675, -15124, 14365 , -28549, -29916, -24676, -203 , 28825 , 28831 , 2773 , -20626, -18069, -20683, -9966 , -7157 , 15684 , 28884 , -3937 , -30014, -11125, -18917, 25629 , -16324, 7739 , 6878 , 23297 , -872 , -28572, -5467 , 18965 , -28696, -10072, 1325 , 31734 , -4430 , 3264 , 4838 , -5739 , -12688, 10997 , -30349, 25270 , -28144, 27303 , -32723, -31116, -31115, 23753 , 21664 , 3002 , -4363 , 23651 , 7949 , 22987 , 25049 , -12529, -2329 , 28860 , -2848 , 13692 , -30890, 8693 , 14780 , -29714, -3146 , -26445, 2708 , -1349 , 3096 , -19831, 9856 , -10544, -11840, 10202 , 7696 , -3542 , -13402, 1121 , 4037 , -17314, -21770, -4183 , -19306, 13074 , -16496, 17813 , -17300, -23935, 15497 , 32474 , 31398 , 13819 , -13145, -5761 , -7530 , 22626 , -2327 , 12644 , -11261, 25774 , -11523, 14520 , 14245 , 9834 , -29241, -16254, 27564 , 10805 , 15841 , -7911 , -32711, 24130 , -30699, -11605, -15389, -32040, -27675, -31302, -24524, 27347 , -12284, -29797, 17961 , -29663, -31013, -12555, 10934 , -8122 , 17156 , 7240 , -11457, 5336 , -31790, -1437 , -3552 , -29692, -15929, 21228 , 21286 , 11527 , -15587, -5411 , -26605, -31562, 16446 , -21759, 17694 , -18954, 22603 , 14459 , -25231, 14916 , 21913 , 23871 , 20394 , -3537 , -15825, -16234, -3494 , -31271, 19529 , 28575 , 20617 , 5498 , 31449 , 13769 , 1584 , 14813 , 12801 , -15014, -4931 , 21728 , -30822, -20501, -10349, 12792 , -6225 , -20758, -24441, -2389 , 2306 , -17386, -31644, -7403 , 12679 , -1530 , -12441, -7580 , -13595, -4957 , -9788 , 27483 , -14600, 425 , 21536 , 12499 , -11183, -5846 , -7147 , 8757 , -7501 , 15883 , 4273 , 15361 , 30616 , 32389 , 32503 , 10314 , -11606, -11098, 32348 , -20680, 25163 , 11981 , -6837 , -2172 , 2062 , 10289 , 15778 , -26880, 11579 , -16037, -16077, 29453 , -22705, -5977 , -22972, 28962 , 27770 , 21191 , -17393, 30540 , 6175 , 9024 , 22339 , -17239, 16215 , 25835 , -29055, 27115 , 5486 , 21109 , -14625, 2523 , -8091 , 28383 , 4200 , -13869, 15726 , 28159 , 21146 , 2627 , -19085, 27902 , -14104, 16174 , 8592 , 31448 , -12490, -24406, 24468 , 28895 , -417 , 11107 , -10620, -25801, 6322 , -3816 , 19224 , -20133, -14736, 14620 , 1084 , -24937, -23985, 28886 , -16496, 6797 , -27141, -5054 , 30184 , 4528 , 1680 , -2450 , 28621 , -8756 , 20769 , 12798 , -22022, -12676, 5940 , 18856 , 2528 , 433 , -9404 , 28856 , -7646 , -29646, -4802 , 13198 , -14566, 29207 , 9988 , -26597, 13138 , 28493 , -1811 , -29080, 31756 , 4117 , 17986 , 12559 , -27205, 6533 , -28221, 21952 , 10375 , 16901 , -1504 , -4675 , 29901 , 14803 , -31104, -18850, 1949 , 896 , -15618, -18035, 16186 , 7280 , -21209, -25013, -24675, -2722 , 28797 , -14038, -2318 , -17706, -3337 , -13103, -11750, 28089 , -20097, -21892, 16679 , -13379, -5006 , -7559 , -5149 , 2026 , 9252 , 21675 , 30282 , -11490, 25945 , 28939 , 13579 , -19319, 26061 , 14370 , 12811 , 12850 , 28845 , -29808, 226 , -13968, 8988 , 20104 , -7332 , -18574, -1873 , 22098 , -16904, -28232, -22543, 10952 , -9107 , -20840, -12576, -26919, -31200, -8774 , -4243 , -30455, -7504 , -3941 , 15360 , 17391 , 11882 , 4878 , 13298 , -8523 , -16683, -3146 , -28655, -27236, -10457, -17266, -224 , 27254 , 19662 , 23394 , 12884 , 5418 , 31721 , 6739 , -17960, -15309, -29749, 2134 , -20150, 11553 , 895 , -20043, 15420 , 27926 , -20929, -22387, 21172 , 14666 , -12293, -8882 , -8788 , -8312 , -22056, 18238 , 9106 , 5807 , 20142 , -8969 , -31543, -24782, -14454, -8988 , -30682, 13209 , 2090 , -6712 , -18571, 18685 , 13187 , -8393 , -13326, -24689, 12350 , -19941, 10960 , 8978 , 3383 , -11983, 12725 , 7005 , 13821 , 4489 , -11461, 11482 , 30549 , -11511, 880 , -22262, 21431 , -1813 , 29783 , -20738, -22578, -19910, 8806 , 7135 , -24836, 4697 , 12550 , 19303 , 30677 , -1668 , 5911 , -22426, -26465, 19757 , 7017 , 3390 , 29656 , 200 , 8515 , 29799 , -17232, -4608 , 17631 , 30956 , -5237 , -680 , 18412 , -22805, 4736 , 7850 , -12789, -25575, 477 , -28253, -5805 , 30780 , -17248, 32325 , 30413 , 7600 , -17153, 23908 , -13575, -15901, 2273 , -20182, 11847 , 19929 , -27037, 3475 , 10654 , -29016, -32683, -3855 , 8921 , 13820 , 2746 , -5015 , 18757 , 10900 , 30539 , -25483, -11740, -22332, 10740 , 29024 , -31443, -19727, 7509 , 18380 , -26358, 21016 , -22717, 20783 , 24536 , 9799 , -29371, 19538 , -15445, 18211 , 26903 , -29231, -27897, 29792 , -8918 , -10082, 7528 , -27060, 6434 , -31106, 8123 , -29115, 11863 , 138 , 226 , -10435, 13397 , -30800, -8652 , 30269 , -17061, 19759 , 26619 , -17696, 6880 , 23326 , 3573 , -12333, 29193 , -13083, -1069 , -25764, -24524, //Osc 4 Level 2 -10301, 26045 , -4144 , -4239 , -23737, 9420 , -29669, 6916 , -3626 , -23666, 27708 , -23580, -26325, 6790 , 27078 , -2754 , -13613, -25431, -21408, 22771 , 11437 , 29666 , 27206 , -17386, -16016, -12913, -1850 , 17263 , 8484 , 14081 , -21308, -20485, 423 , -5632 , 2871 , -27799, 3882 , -5819 , 18857 , 21662 , 5298 , 27903 , -24901, 1074 , -2920 , 8014 , -7522 , -32526, 28937 , -22325, -101 , -5028 , -15226, -29442, -19828, 28453 , -30107, -10522, 7009 , 19894 , 30542 , 5493 , -25188, 19627 , 25023 , -22511, 4309 , 25939 , -25975, 23316 , -16073, 18994 , 5457 , -11188, -16383, -17534, 24847 , -12420, 1030 , 11182 , 28818 , 10970 , -9683 , -19498, 13050 , -15473, 9713 , -10162, 31805 , 8762 , 29154 , 7455 , 15779 , -2195 , 20515 , 27268 , 3658 , -6098 , 2794 , 16749 , 931 , -21896, -23292, -16384, -9742 , 29111 , -21938, 30227 , 27858 , -21681, 20540 , -30284, 32687 , -29930, -6570 , -21599, -10678, 26582 , 5814 , -9264 , 7481 , 26572 , 30347 , -536 , 8804 , -725 , -6503 , -16954, 23944 , -19815, 17335 , -15367, -14152, 18353 , 26448 , 14918 , -30504, 7552 , -2078 , 8229 , -6624 , 29448 , -30334, -4286 , -27489, 29120 , -29098, -28674, 19637 , 2577 , -26855, -25109, -19561, -24613, 25499 , -941 , 5071 , -30994, -15553, -17743, 26042 , -12398, 17787 , -14026, -22519, 25343 , 14939 , -698 , 2112 , -4123 , -32002, 26105 , -9415 , -22810, -19945, 28827 , -6750 , -14569, -914 , -8917 , 29819 , -1406 , -1700 , -32032, -14951, 679 , -19629, 25759 , -16346, -19210, -30636, 5510 , -737 , -14505, -9610 , 28005 , 8148 , -4957 , 4198 , 3391 , 32364 , 16680 , 26081 , 13262 , 6750 , -30935, -29636, 25084 , 26873 , -19621, 6876 , 20331 , 27612 , 18793 , 20415 , -20755, -26241, -30608, 8177 , 17164 , 5544 , 26500 , 6168 , -15740, 14839 , 25130 , 3305 , 3268 , 28251 , -27428, -25681, 11890 , 20890 , 10632 , -1333 , 13796 , -20018, 5137 , 6703 , 22439 , -11038, -24884, -27678, -7429 , 4377 , -14588, 27776 , 1620 , -19065, 26999 , -23625, -7205 , -15722, 16087 , 5323 , 30187 , -3454 , -22454, -22766, 17301 , -28195, 19434 , -12680, -6883 , 10253 , 325 , 23549 , -10117, 28617 , 3550 , -25038, -23077, -24673, -20053, 20928 , 21532 , 625 , 917 , -7711 , -21164, -8205 , 7675 , 30948 , -11445, -19153, -25809, -8019 , 9212 , -17151, 25079 , 13107 , 28184 , -14181, 16909 , 23297 , -2686 , -6142 , -8032 , 25525 , -14381, 25231 , 29905 , 6788 , -7976 , 32623 , -11210, 32436 , -24817, -25052, 20315 , 545 , 2094 , 7938 , 24124 , -26183, -8804 , 7090 , 7372 , 7679 , -32522, -4173 , 6001 , 31627 , -22389, 4308 , -6266 , 13192 , 25568 , 14267 , 8152 , -21451, -4051 , 22625 , 2345 , -11930, 23774 , 27283 , 11952 , 1280 , -32749, 626 , 14998 , -8320 , 15137 , -18188, 8826 , -16268, -28914, 25698 , 9199 , 12032 , -32487, -24360, 4345 , 2651 , 20272 , -22328, 27796 , -30129, 29815 , -649 , 22317 , -28739, 32200 , 24445 , -13530, 17686 , -20946, 5962 , -22186, 3811 , -3224 , -29284, 5511 , -13250, -21907, 13322 , -23818, -6313 , -19486, -17028, 20694 , -18960, 22693 , -22864, 22222 , 10721 , -442 , 3767 , -16009, -11883, -21624, 24438 , -8481 , -22389, 23780 , 17957 , 31496 , 14294 , -22265, 31699 , 27753 , 1693 , -19121, 24033 , 28780 , 23196 , -1454 , -10622, -10257, 18593 , 22615 , -27326, 964 , -27376, 31706 , -26756, 12592 , 25695 , 4621 , 225 , -27025, 15259 , 19794 , 17400 , -12498, 20705 , -17982, -25959, -26352, 11237 , 25001 , -12687, -8150 , 5743 , -15865, 20865 , -25721, 23769 , -28912, -22882, 31141 , 24210 , -14163, 6643 , 23798 , -4449 , -24839, 18811 , -22432, -31724, -22843, -633 , -9283 , -17761, -8683 , -11970, -32677, -23810, -32608, 11031 , 25981 , 25476 , 11348 , 1377 , -21288, -22376, 21968 , 1724 , 10008 , -6859 , 3304 , -5474 , -32680, -7317 , 4388 , -17969, 15533 , -23331, 13889 , -11539, -31588, -27839, -26449, -15640, -15968, -32541, -24047, -4729 , -30043, -1758 , 24000 , -31263, 24719 , -7951 , 7497 , -10523, -17740, 26456 , -4886 , 23507 , -7331 , -14863, -10215, -22336, -23479, 20843 , 32253 , 8982 , -15574, 23050 , -2574 , //Osc 4 Level 3 2578 , 20006 , -9180 , -31734, 20292 , -18344, 166 , -25209, 16147 , 17996 , -4723 , 15714 , 31030 , 19079 , -6546 , -30521, 14652 , -19972, -17169, 17302 , 28421 , -8040 , 4427 , 5347 , -22714, -8777 , -7470 , 7031 , -15351, 20652 , -3994 , -11699, 1322 , 19774 , 26879 , 17686 , 24796 , 28709 , -5080 , -27466, 11298 , -13423, 23168 , -13372, 4950 , 9123 , 30266 , -31986, 25254 , 31474 , -11362, 22034 , -24942, 28424 , -26235, -22650, 27759 , -6942 , -28192, -18990, -13593, -31372, 2610 , 32657 , -25994, -30174, 1042 , 30739 , -2577 , 22856 , 13738 , -29730, -9483 , 29363 , 23098 , 29992 , -23934, 11301 , -11626, 24670 , 18787 , 15829 , 5539 , -8032 , 2234 , 7917 , 28894 , 13379 , -16773, -19957, -26410, 22862 , -23056, -15936, -30291, 29182 , -8139 , -13036, -18533, -1726 , 19645 , -23552, -28821, 18239 , 12747 , -11278, 18171 , 26061 , -19207, -7092 , -576 , -19208, 9140 , -7450 , 11584 , -8320 , -29762, 16519 , 27031 , 8025 , 9131 , -656 , -3597 , 21036 , -31900, -23086, -28393, -8748 , 11432 , -25005, 19932 , 25826 , -7290 , -16243, -5205 , -13542, -10524, -14450, 15108 , -30221, 6395 , 3161 , -17926, -10981, 26584 , 4707 , -31563, -28944, 17885 , -7145 , 5614 , 3336 , 25150 , 16211 , -10377, -21333, 20868 , -28183, -32079, -18604, 5645 , -14817, 20755 , -26829, -1910 , 24367 , -854 , 23469 , -20352, -6712 , 4244 , -29221, 23752 , -23414, -30333, 21767 , -13297, 13454 , -14784, 27442 , 5463 , -9764 , 18469 , 24977 , -32652, -20493, 17314 , 13579 , 16015 , -22971, -32582, 12988 , -3418 , 19640 , -29821, -21387, 2570 , 28711 , -19287, -710 , -6944 , -31010, -7701 , -8765 , -12639, 27937 , -20836, 2300 , 18074 , -3674 , 23587 , 12421 , 6252 , 12822 , 4732 , 16690 , -15219, 18321 , 28853 , -2164 , -18235, -15577, -4750 , -15282, 22706 , 31327 , -30871, 233 , 22085 , 9140 , -14874, 29697 , -9661 , -15598, 2377 , 9709 , 31941 , 26206 , -21629, 1339 , -29257, -19989, -3939 , -9431 , 11613 , -17146, 18225 , -28627, -19255, 15979 , -10001, -16273, 28263 , 2254 , 27417 , 8266 , //Osc 4 Level 4 -24974, -10413, -28921, 12494 , -9349 , 27158 , 8867 , 17472 , -18711, 29348 , -24338, 21144 , 13684 , 20607 , 17018 , -25085, 6056 , -25186, 28142 , 10079 , 29289 , -29973, -1914 , 29378 , 5993 , -29501, -18800, 7155 , 19891 , -10374, 23535 , 15086 , 23076 , -21548, 11420 , -26524, -10259, -3187 , -736 , 12857 , -7918 , 11730 , -31973, -28667, -30994, 11206 , -2624 , -6252 , 6829 , 7422 , 32343 , 4454 , -14896, -5115 , 30906 , -13009, 29356 , -5416 , 984 , 22104 , 1259 , 20331 , 25141 , -14212, 25098 , 35 , -21912, -11284, 18905 , 12378 , 18331 , -15829, 32511 , 19678 , 18959 , 19059 , -16525, 14450 , 1942 , 13870 , 3332 , 22603 , -29673, -10882, 17874 , 28820 , -9715 , -15434, -29486, -12053, 31496 , 31710 , -32178, 20706 , -8150 , -17101, 19555 , 7294 , -27989, 16292 , -4223 , -12100, -19370, -18345, -2321 , -6137 , 20490 , -20958, -4796 , -2365 , 31290 , -25070, 9455 , -18491, -16018, -4121 , -12112, -5928 , -4417 , 14998 , 27676 , 30522 , 5726 , -10042, 29725 , -995 , 30734 , 19795 , //Osc 4 Level 5 28527 , 2343 , -20570, -2098 , 18213 , 17651 , -19056, 6395 , -4318 , 22413 , 12109 , -22702, -8544 , 9977 , -28690, -3201 , 22701 , 25517 , 2204 , -25374, 1193 , -6894 , -14063, 22031 , 22217 , -10745, 4125 , 31054 , 18583 , -20130, 3106 , 27933 , -7825 , 3678 , 2968 , 22697 , 3843 , 15679 , -630 , -22439, 19928 , 13233 , -15850, -7613 , 8648 , -13995, -13583, 19125 , -8578 , 17474 , 3041 , 22701 , 16381 , 13697 , -17598, 31329 , -11495, -23151, -7550 , -22087, -20997, 4325 , 16037 , -12081, //Osc 4 Level 6 30882 , -19359, 28865 , 32374 , -15011, -22047, -382 , 27312 , 14674 , 21682 , -23897, -13514, -31494, 7702 , -4732 , 30708 , 11426 , -32316, -19074, -8310 , 8428 , -5531 , -10350, -13363, -22708, -8679 , 18383 , 30276 , 4748 , 31472 , -3625 , 27819 , //Osc 4 Level 7 -13496, -15502, -5791 , 17779 , -22414, -17641, -5446 , 9280 , 6095 , -11568, 11072 , -29078, 5752 , 9596 , 31205 , 3965 , //Osc 4 Level 8 -1702 , -31629, 12210 , -21063, 1463 , 21503 , 28738 , 11922 , //Osc 4 Level 9 22947 , 14302 , -17854, -21711, //Osc 4 Level 10 -23417, -28735, //Osc 4 Level 11 -23417, -28735, }, //Osc 5 Level 0 { 0 , 0 , -1 , 0 , 8 , 28 , 63 , 110 , 165 , 223 , 279 , 332 , 382 , 432 , 482 , 533 , 583 , 631 , 678 , 725 , 772 , 819 , 867 , 913 , 957 , 1001 , 1046 , 1092 , 1139 , 1185 , 1229 , 1274 , 1318 , 1363 , 1410 , 1458 , 1506 , 1551 , 1594 , 1636 , 1678 , 1720 , 1762 , 1804 , 1846 , 1887 , 1928 , 1969 , 2012 , 2056 , 2099 , 2140 , 2179 , 2216 , 2251 , 2287 , 2325 , 2367 , 2410 , 2453 , 2496 , 2537 , 2577 , 2616 , 2655 , 2695 , 2736 , 2775 , 2812 , 2847 , 2882 , 2919 , 2956 , 2993 , 3028 , 3062 , 3097 , 3134 , 3172 , 3211 , 3249 , 3283 , 3315 , 3346 , 3380 , 3417 , 3455 , 3491 , 3523 , 3553 , 3583 , 3616 , 3653 , 3692 , 3729 , 3764 , 3794 , 3823 , 3854 , 3887 , 3921 , 3953 , 3983 , 4011 , 4040 , 4070 , 4104 , 4139 , 4173 , 4205 , 4235 , 4265 , 4295 , 4325 , 4356 , 4386 , 4416 , 4446 , 4474 , 4501 , 4526 , 4551 , 4576 , 4602 , 4629 , 4658 , 4687 , 4716 , 4745 , 4775 , 4805 , 4835 , 4866 , 4895 , 4923 , 4950 , 4975 , 5001 , 5027 , 5053 , 5080 , 5107 , 5135 , 5161 , 5186 , 5210 , 5232 , 5255 , 5280 , 5306 , 5333 , 5359 , 5384 , 5407 , 5430 , 5452 , 5475 , 5500 , 5526 , 5551 , 5575 , 5598 , 5622 , 5645 , 5668 , 5690 , 5711 , 5731 , 5751 , 5772 , 5794 , 5819 , 5844 , 5869 , 5892 , 5915 , 5937 , 5957 , 5978 , 6000 , 6022 , 6046 , 6069 , 6092 , 6114 , 6132 , 6150 , 6167 , 6187 , 6208 , 6230 , 6252 , 6273 , 6292 , 6310 , 6329 , 6350 , 6370 , 6389 , 6406 , 6423 , 6442 , 6462 , 6481 , 6500 , 6517 , 6535 , 6553 , 6573 , 6594 , 6614 , 6632 , 6647 , 6663 , 6680 , 6700 , 6720 , 6738 , 6752 , 6763 , 6775 , 6790 , 6808 , 6828 , 6846 , 6863 , 6880 , 6897 , 6915 , 6935 , 6955 , 6973 , 6988 , 7001 , 7014 , 7030 , 7048 , 7066 , 7081 , 7095 , 7108 , 7122 , 7137 , 7153 , 7171 , 7187 , 7203 , 7217 , 7231 , 7245 , 7258 , 7271 , 7284 , 7299 , 7316 , 7333 , 7348 , 7360 , 7371 , 7382 , 7395 , 7411 , 7428 , 7445 , 7459 , 7472 , 7483 , 7496 , 7510 , 7525 , 7539 , 7550 , 7558 , 7567 , 7578 , 7592 , 7608 , 7625 , 7640 , 7653 , 7665 , 7677 , 7690 , 7703 , 7714 , 7723 , 7732 , 7742 , 7756 , 7770 , 7784 , 7797 , 7808 , 7819 , 7830 , 7842 , 7854 , 7865 , 7874 , 7883 , 7892 , 7902 , 7915 , 7927 , 7937 , 7946 , 7953 , 7961 , 7970 , 7980 , 7991 , 8002 , 8013 , 8023 , 8033 , 8045 , 8058 , 8070 , 8081 , 8091 , 8100 , 8110 , 8121 , 8133 , 8144 , 8154 , 8162 , 8169 , 8176 , 8184 , 8192 , 8202 , 8213 , 8223 , 8233 , 8242 , 8249 , 8256 , 8265 , 8276 , 8288 , 8299 , 8308 , 8313 , 8317 , 8321 , 8328 , 8339 , 8352 , 8364 , 8373 , 8378 , 8383 , 8389 , 8397 , 8407 , 8417 , 8426 , 8433 , 8439 , 8445 , 8452 , 8459 , 8467 , 8475 , 8483 , 8491 , 8497 , 8503 , 8509 , 8517 , 8526 , 8536 , 8546 , 8555 , 8563 , 8568 , 8571 , 8575 , 8579 , 8586 , 8594 , 8603 , 8609 , 8615 , 8619 , 8624 , 8630 , 8636 , 8644 , 8653 , 8661 , 8668 , 8673 , 8678 , 8682 , 8688 , 8695 , 8703 , 8712 , 8721 , 8727 , 8730 , 8732 , 8737 , 8744 , 8752 , 8760 , 8767 , 8772 , 8775 , 8779 , 8784 , 8791 , 8799 , 8805 , 8809 , 8812 , 8815 , 8820 , 8827 , 8835 , 8841 , 8844 , 8844 , 8845 , 8849 , 8857 , 8867 , 8876 , 8883 , 8886 , 8889 , 8891 , 8895 , 8899 , 8904 , 8908 , 8912 , 8916 , 8921 , 8928 , 8934 , 8940 , 8945 , 8949 , 8953 , 8957 , 8962 , 8967 , 8972 , 8977 , 8983 , 8990 , 8998 , 9004 , 9007 , 9008 , 9007 , 9008 , 9011 , 9016 , 9023 , 9030 , 9034 , 9037 , 9039 , 9041 , 9045 , 9050 , 9056 , 9063 , 9069 , 9073 , 9074 , 9073 , 9072 , 9071 , 9073 , 9078 , 9083 , 9087 , 9090 , 9092 , 9094 , 9098 , 9104 , 9111 , 9116 , 9119 , 9119 , 9118 , 9119 , 9123 , 9129 , 9136 , 9140 , 9143 , 9144 , 9145 , 9146 , 9147 , 9149 , 9151 , 9154 , 9159 , 9165 , 9170 , 9175 , 9176 , 9176 , 9175 , 9177 , 9180 , 9184 , 9187 , 9188 , 9187 , 9185 , 9187 , 9191 , 9197 , 9203 , 9207 , 9210 , 9211 , 9213 , 9215 , 9218 , 9220 , 9221 , 9223 , 9225 , 9229 , 9233 , 9237 , 9239 , 9240 , 9242 , 9245 , 9249 , 9254 , 9258 , 9259 , 9258 , 9257 , 9256 , 9258 , 9260 , 9262 , 9263 , 9264 , 9264 , 9266 , 9268 , 9273 , 9278 , 9283 , 9287 , 9289 , 9290 , 9291 , 9291 , 9290 , 9291 , 9293 , 9296 , 9298 , 9298 , 9296 , 9292 , 9291 , 9294 , 9302 , 9311 , 9318 , 9320 , 9316 , 9310 , 9305 , 9305 , 9309 , 9315 , 9320 , 9321 , 9319 , 9317 , 9316 , 9317 , 9320 , 9323 , 9325 , 9326 , 9326 , 9326 , 9327 , 9328 , 9329 , 9329 , 9328 , 9328 , 9328 , 9329 , 9332 , 9336 , 9341 , 9343 , 9342 , 9339 , 9337 , 9337 , 9339 , 9342 , 9345 , 9346 , 9347 , 9348 , 9350 , 9352 , 9353 , 9352 , 9349 , 9346 , 9345 , 9347 , 9353 , 9359 , 9364 , 9365 , 9363 , 9359 , 9356 , 9353 , 9352 , 9353 , 9355 , 9356 , 9358 , 9358 , 9358 , 9358 , 9357 , 9357 , 9359 , 9361 , 9363 , 9365 , 9366 , 9365 , 9364 , 9363 , 9364 , 9365 , 9367 , 9369 , 9371 , 9372 , 9371 , 9369 , 9367 , 9366 , 9367 , 9368 , 9369 , 9368 , 9366 , 9364 , 9364 , 9365 , 9367 , 9368 , 9366 , 9364 , 9362 , 9362 , 9365 , 9368 , 9370 , 9369 , 9366 , 9362 , 9360 , 9360 , 9362 , 9364 , 9364 , 9362 , 9360 , 9359 , 9362 , 9367 , 9373 , 9377 , 9378 , 9375 , 9371 , 9367 , 9365 , 9366 , 9368 , 9369 , 9369 , 9368 , 9365 , 9362 , 9360 , 9359 , 9361 , 9366 , 9371 , 9374 , 9375 , 9371 , 9366 , 9361 , 9359 , 9361 , 9365 , 9367 , 9367 , 9364 , 9361 , 9359 , 9359 , 9359 , 9359 , 9357 , 9354 , 9353 , 9355 , 9358 , 9360 , 9361 , 9358 , 9355 , 9353 , 9353 , 9355 , 9356 , 9353 , 9350 , 9348 , 9347 , 9349 , 9350 , 9351 , 9350 , 9348 , 9346 , 9348 , 9351 , 9352 , 9349 , 9343 , 9336 , 9332 , 9333 , 9337 , 9341 , 9343 , 9341 , 9338 , 9337 , 9339 , 9341 , 9343 , 9343 , 9341 , 9339 , 9338 , 9338 , 9340 , 9340 , 9340 , 9339 , 9338 , 9338 , 9339 , 9339 , 9335 , 9330 , 9325 , 9323 , 9323 , 9325 , 9328 , 9330 , 9331 , 9330 , 9327 , 9324 , 9320 , 9315 , 9310 , 9307 , 9307 , 9311 , 9317 , 9321 , 9322 , 9318 , 9312 , 9307 , 9304 , 9304 , 9307 , 9310 , 9311 , 9310 , 9307 , 9304 , 9301 , 9301 , 9301 , 9302 , 9303 , 9302 , 9299 , 9296 , 9293 , 9292 , 9293 , 9294 , 9294 , 9291 , 9286 , 9283 , 9281 , 9282 , 9284 , 9285 , 9285 , 9283 , 9280 , 9278 , 9276 , 9276 , 9274 , 9272 , 9268 , 9266 , 9264 , 9264 , 9263 , 9263 , 9262 , 9261 , 9263 , 9264 , 9266 , 9265 , 9261 , 9258 , 9255 , 9255 , 9257 , 9259 , 9259 , 9257 , 9252 , 9249 , 9247 , 9248 , 9250 , 9251 , 9249 , 9245 , 9240 , 9238 , 9238 , 9239 , 9241 , 9242 , 9241 , 9240 , 9239 , 9238 , 9236 , 9235 , 9232 , 9230 , 9227 , 9226 , 9225 , 9224 , 9222 , 9222 , 9221 , 9221 , 9221 , 9221 , 9218 , 9216 , 9212 , 9209 , 9205 , 9203 , 9202 , 9203 , 9206 , 9207 , 9208 , 9206 , 9201 , 9195 , 9190 , 9188 , 9191 , 9193 , 9195 , 9193 , 9188 , 9183 , 9179 , 9179 , 9183 , 9185 , 9185 , 9181 , 9175 , 9170 , 9167 , 9168 , 9172 , 9175 , 9176 , 9175 , 9172 , 9171 , 9170 , 9168 , 9167 , 9165 , 9163 , 9161 , 9160 , 9159 , 9158 , 9155 , 9151 , 9145 , 9142 , 9142 , 9143 , 9143 , 9142 , 9138 , 9134 , 9130 , 9130 , 9132 , 9134 , 9134 , 9132 , 9128 , 9125 , 9124 , 9125 , 9126 , 9124 , 9119 , 9113 , 9108 , 9106 , 9108 , 9110 , 9113 , 9112 , 9109 , 9106 , 9104 , 9104 , 9104 , 9104 , 9101 , 9099 , 9096 , 9095 , 9094 , 9094 , 9092 , 9090 , 9086 , 9083 , 9080 , 9079 , 9077 , 9077 , 9079 , 9081 , 9083 , 9082 , 9079 , 9074 , 9068 , 9065 , 9066 , 9069 , 9073 , 9074 , 9071 , 9066 , 9062 , 9061 , 9062 , 9062 , 9060 , 9057 , 9052 , 9049 , 9049 , 9049 , 9049 , 9047 , 9042 , 9037 , 9034 , 9033 , 9034 , 9033 , 9030 , 9026 , 9021 , 9019 , 9020 , 9022 , 9024 , 9023 , 9021 , 9020 , 9020 , 9020 , 9019 , 9017 , 9013 , 9009 , 9005 , 9005 , 9006 , 9007 , 9005 , 9002 , 8998 , 8996 , 8997 , 8998 , 8999 , 8998 , 8995 , 8992 , 8988 , 8987 , 8987 , 8986 , 8984 , 8980 , 8974 , 8969 , 8966 , 8967 , 8969 , 8970 , 8968 , 8964 , 8958 , 8954 , 8953 , 8954 , 8957 , 8959 , 8959 , 8958 , 8954 , 8949 , 8944 , 8940 , 8938 , 8938 , 8937 , 8936 , 8934 , 8933 , 8931 , 8931 , 8930 , 8930 , 8929 , 8927 , 8924 , 8920 , 8916 , 8913 , 8911 , 8910 , 8911 , 8911 , 8911 , 8911 , 8909 , 8908 , 8905 , 8902 , 8898 , 8896 , 8894 , 8894 , 8895 , 8895 , 8894 , 8892 , 8889 , 8886 , 8883 , 8881 , 8879 , 8878 , 8877 , 8876 , 8874 , 8874 , 8875 , 8877 , 8877 , 8876 , 8871 , 8864 , 8856 , 8851 , 8847 , 8847 , 8848 , 8850 , 8851 , 8850 , 8847 , 8844 , 8841 , 8839 , 8838 , 8837 , 8835 , 8833 , 8830 , 8828 , 8827 , 8827 , 8825 , 8823 , 8820 , 8818 , 8817 , 8816 , 8814 , 8811 , 8806 , 8800 , 8796 , 8795 , 8797 , 8798 , 8797 , 8793 , 8789 , 8785 , 8785 , 8786 , 8789 , 8790 , 8789 , 8785 , 8782 , 8780 , 8781 , 8782 , 8781 , 8778 , 8774 , 8769 , 8766 , 8766 , 8767 , 8766 , 8764 , 8760 , 8755 , 8751 , 8749 , 8749 , 8749 , 8749 , 8747 , 8745 , 8743 , 8741 , 8739 , 8738 , 8736 , 8734 , 8732 , 8730 , 8728 , 8727 , 8725 , 8724 , 8723 , 8722 , 8721 , 8719 , 8717 , 8715 , 8715 , 8716 , 8717 , 8715 , 8711 , 8705 , 8699 , 8696 , 8697 , 8700 , 8702 , 8701 , 8698 , 8692 , 8688 , 8684 , 8683 , 8683 , 8682 , 8679 , 8675 , 8672 , 8670 , 8670 , 8669 , 8667 , 8665 , 8662 , 8660 , 8659 , 8660 , 8660 , 8659 , 8657 , 8654 , 8650 , 8648 , 8646 , 8643 , 8639 , 8636 , 8633 , 8631 , 8630 , 8631 , 8631 , 8630 , 8629 , 8627 , 8625 , 8622 , 8619 , 8617 , 8616 , 8615 , 8615 , 8614 , 8613 , 8610 , 8605 , 8602 , 8599 , 8598 , 8598 , 8597 , 8597 , 8596 , 8595 , 8593 , 8591 , 8589 , 8585 , 8582 , 8579 , 8579 , 8579 , 8579 , 8577 , 8573 , 8570 , 8567 , 8567 , 8568 , 8569 , 8568 , 8564 , 8558 , 8553 , 8551 , 8552 , 8553 , 8553 , 8551 , 8546 , 8543 , 8542 , 8543 , 8544 , 8543 , 8538 , 8532 , 8525 , 8522 , 8521 , 8523 , 8526 , 8528 , 8528 , 8527 , 8524 , 8519 , 8514 , 8509 , 8506 , 8504 , 8504 , 8504 , 8503 , 8499 , 8494 , 8491 , 8490 , 8491 , 8494 , 8496 , 8495 , 8491 , 8486 , 8482 , 8480 , 8478 , 8476 , 8472 , 8469 , 8465 , 8463 , 8463 , 8463 , 8463 , 8462 , 8460 , 8457 , 8456 , 8456 , 8457 , 8457 , 8456 , 8455 , 8453 , 8450 , 8448 , 8445 , 8443 , 8440 , 8438 , 8436 , 8434 , 8434 , 8433 , 8433 , 8431 , 8428 , 8424 , 8420 , 8416 , 8415 , 8415 , 8415 , 8414 , 8409 , 8403 , 8398 , 8396 , 8397 , 8401 , 8403 , 8403 , 8398 , 8391 , 8384 , 8381 , 8381 , 8383 , 8384 , 8383 , 8380 , 8376 , 8374 , 8372 , 8371 , 8368 , 8365 , 8360 , 8357 , 8357 , 8360 , 8362 , 8363 , 8360 , 8355 , 8351 , 8349 , 8348 , 8348 , 8347 , 8343 , 8339 , 8335 , 8333 , 8334 , 8335 , 8336 , 8335 , 8332 , 8329 , 8326 , 8323 , 8320 , 8318 , 8316 , 8315 , 8316 , 8317 , 8317 , 8316 , 8312 , 8307 , 8303 , 8301 , 8301 , 8302 , 8302 , 8299 , 8295 , 8289 , 8285 , 8283 , 8282 , 8281 , 8280 , 8278 , 8276 , 8275 , 8275 , 8274 , 8273 , 8270 , 8267 , 8263 , 8260 , 8258 , 8257 , 8257 , 8258 , 8259 , 8259 , 8258 , 8256 , 8254 , 8252 , 8251 , 8247 , 8242 , 8237 , 8233 , 8233 , 8234 , 8234 , 8230 , 8224 , 8217 , 8215 , 8217 , 8222 , 8224 , 8220 , 8211 , 8203 , 8199 , 8202 , 8208 , 8210 , 8205 , 8196 , 8191 , 8194 , 8202 , 8206 , 8201 , 8189 , 8178 , 8177 , 8185 , 8196 , 8198 , 8186 , 8169 , 8161 , 8167 , 8183 , 8191 , 8182 , 8159 , 8141 , 8144 , 8168 , 8192 , 8193 , 8166 , 8130 , 8117 , 8140 , 8183 , 8207 , 8184 , 8124 , 8073 , 8078 , 8142 , 8216 , 8233 , 8167 , 8060 , 8000 , 8047 , 8175 , 8283 , 8266 , 8112 , 7930 , 7875 , 8023 , 8281 , 8434 , 8308 , 7939 , 7602 , 7637 , 8148 , 8766 , 8679 , 6940 , 2949 , -3188 , -10616, -18049, -24282, -28637, -31106, -32189, -32538, -32647, -32726, -32768, -32735, -32609, -32472, -32408, -32442, -32526, -32585, -32576, -32516, -32457, -32440, -32464, -32495, -32498, -32469, -32429, -32407, -32412, -32430, -32438, -32426, -32401, -32381, -32378, -32387, -32396, -32393, -32378, -32360, -32351, -32350, -32352, -32347, -32335, -32320, -32311, -32310, -32312, -32310, -32299, -32281, -32264, -32255, -32252, -32252, -32249, -32241, -32230, -32221, -32215, -32210, -32202, -32191, -32179, -32171, -32169, -32171, -32174, -32171, -32161, -32146, -32131, -32121, -32116, -32113, -32109, -32100, -32085, -32068, -32052, -32042, -32038, -32038, -32040, -32041, -32039, -32033, -32025, -32017, -32009, -32001, -31991, -31979, -31966, -31955, -31946, -31939, -31931, -31923, -31915, -31908, -31901, -31895, -31890, -31885, -31881, -31878, -31876, -31873, -31867, -31857, -31844, -31830, -31821, -31817, -31815, -31812, -31805, -31793, -31780, -31769, -31763, -31763, -31764, -31763, -31758, -31751, -31743, -31734, -31724, -31713, -31700, -31690, -31683, -31680, -31679, -31674, -31665, -31652, -31639, -31632, -31631, -31629, -31621, -31603, -31582, -31565, -31560, -31568, -31581, -31589, -31584, -31569, -31551, -31540, -31537, -31538, -31534, -31521, -31501, -31483, -31474, -31473, -31478, -31480, -31475, -31462, -31448, -31436, -31429, -31425, -31420, -31413, -31404, -31396, -31391, -31386, -31379, -31367, -31352, -31339, -31331, -31329, -31329, -31327, -31319, -31306, -31292, -31279, -31272, -31269, -31266, -31261, -31252, -31242, -31235, -31231, -31230, -31229, -31215, -31174, -31096, -30974, -30812, -30620, -30415, -30211, -30016, -29831, -29651, -29469, -29283, -29091, -28897, -28703, -28513, -28325, -28140, -27957, -27776, -27598, -27421, -27242, -27061, -26879, -26700, -26524, -26352, -26180, -26007, -25831, -25655, -25480, -25307, -25136, -24966, -24796, -24627, -24460, -24296, -24131, -23965, -23796, -23627, -23460, -23299, -23143, -22991, -22838, -22681, -22520, -22357, -22194, -22035, -21880, -21728, -21578, -21426, -21272, -21116, -20961, -20809, -20661, -20514, -20365, -20215, -20066, -19920, -19777, -19637, -19495, -19350, -19201, -19054, -18910, -18769, -18628, -18486, -18345, -18209, -18077, -17947, -17815, -17678, -17538, -17401, -17269, -17141, -17012, -16879, -16743, -16610, -16482, -16359, -16235, -16108, -15977, -15849, -15726, -15606, -15482, -15352, -15220, -15096, -14983, -14876, -14764, -14639, -14501, -14364, -14240, -14132, -14029, -13918, -13796, -13672, -13556, -13451, -13347, -13234, -13111, -12987, -12873, -12772, -12675, -12569, -12450, -12325, -12209, -12106, -12009, -11905, -11791, -11676, -11573, -11481, -11392, -11290, -11174, -11053, -10943, -10852, -10767, -10668, -10552, -10436, -10336, -10254, -10175, -10083, -9971 , -9852 , -9747 , -9666 , -9593 , -9503 , -9388 , -9268 , -9170 , -9097 , -9034 , -8953 , -8843 , -8714 , -8603 , -8529 , -8475 , -8400 , -8291 , -8171 , -8070 , -8000 , -7947 , -7881 , -7779 , -7649 , -7533 , -7465 , -7427 , -7366 , -7259 , -7133 , -7025 , -6955 , -6913 , -6867 , -6778 , -6645 , -6520 , -6456 , -6433 , -6385 , -6280 , -6150 , -6038 , -5969 , -5938 , -5911 , -5833 , -5692 , -5554 , -5494 , -5492 , -5463 , -5365 , -5231 , -5112 , -5037 , -5013 , -5007 , -4942 , -4790 , -4633 , -4573 , -4595 , -4590 , -4499 , -4361 , -4234 , -4156 , -4149 , -4178 , -4136 , -3969 , -3780 , -3713 , -3760 , -3785 , -3708 , -3563 , -3414 , -3312 , -3309 , -3378 , -3371 , -3194 , -2968 , -2888 , -2959 , -3012 , -2946 , -2799 , -2629 , -2502 , -2506 , -2626 , -2661 , -2459 , -2174 , -2078 , -2193 , -2303 , -2268 , -2113 , -1899 , -1717 , -1726 , -1934 , -2049 , -1819 , -1433 , -1289 , -1449 , -1634 , -1647 , -1491 , -1208 , -925 , -928 , -1286 , -1552 , -1277 , -700 , -452 , -696 , -1046 , -1174 , -1017 , -555 , -3 , 21 , -735 , -1439 , -1047 , 172 , 887 , 417 , -707 , -1672 , -1684 , 365 , 4729 , 8978 , 9397 , //Osc 5 Level 1 0 , -1 , 21 , 95 , 206 , 317 , 417 , 518 , 617 , 711 , 805 , 899 , 988 , 1078 , 1171 , 1260 , 1349 , 1443 , 1537 , 1623 , 1707 , 1791 , 1874 , 1956 , 2042 , 2127 , 2204 , 2275 , 2353 , 2439 , 2524 , 2603 , 2682 , 2762 , 2835 , 2906 , 2981 , 3051 , 3121 , 3198 , 3272 , 3335 , 3404 , 3479 , 3543 , 3604 , 3678 , 3752 , 3813 , 3875 , 3942 , 4001 , 4059 , 4126 , 4194 , 4254 , 4314 , 4375 , 4435 , 4491 , 4542 , 4592 , 4647 , 4705 , 4764 , 4824 , 4884 , 4940 , 4991 , 5043 , 5097 , 5151 , 5201 , 5246 , 5296 , 5349 , 5398 , 5443 , 5490 , 5541 , 5589 , 5636 , 5681 , 5723 , 5763 , 5809 , 5859 , 5906 , 5949 , 5991 , 6036 , 6083 , 6125 , 6160 , 6199 , 6243 , 6284 , 6321 , 6362 , 6399 , 6434 , 6473 , 6510 , 6545 , 6585 , 6625 , 6656 , 6691 , 6731 , 6759 , 6783 , 6819 , 6856 , 6889 , 6926 , 6965 , 6995 , 7023 , 7058 , 7089 , 7116 , 7146 , 7180 , 7211 , 7239 , 7265 , 7292 , 7325 , 7355 , 7377 , 7403 , 7437 , 7466 , 7490 , 7518 , 7545 , 7563 , 7585 , 7617 , 7647 , 7671 , 7697 , 7719 , 7737 , 7763 , 7791 , 7814 , 7836 , 7860 , 7879 , 7897 , 7921 , 7942 , 7957 , 7975 , 7997 , 8018 , 8039 , 8064 , 8086 , 8105 , 8127 , 8149 , 8166 , 8180 , 8197 , 8218 , 8238 , 8253 , 8270 , 8294 , 8311 , 8319 , 8333 , 8358 , 8376 , 8386 , 8402 , 8422 , 8436 , 8448 , 8463 , 8479 , 8494 , 8506 , 8521 , 8541 , 8559 , 8570 , 8577 , 8590 , 8606 , 8617 , 8627 , 8640 , 8657 , 8671 , 8680 , 8691 , 8707 , 8724 , 8731 , 8740 , 8756 , 8770 , 8777 , 8787 , 8802 , 8811 , 8817 , 8831 , 8843 , 8845 , 8852 , 8871 , 8885 , 8890 , 8897 , 8906 , 8914 , 8924 , 8937 , 8947 , 8955 , 8964 , 8974 , 8986 , 9001 , 9008 , 9008 , 9013 , 9026 , 9036 , 9040 , 9047 , 9059 , 9071 , 9074 , 9072 , 9075 , 9085 , 9091 , 9096 , 9107 , 9118 , 9119 , 9121 , 9132 , 9142 , 9145 , 9147 , 9150 , 9156 , 9167 , 9176 , 9176 , 9178 , 9186 , 9188 , 9186 , 9193 , 9205 , 9211 , 9214 , 9219 , 9222 , 9227 , 9235 , 9240 , 9243 , 9251 , 9259 , 9258 , 9257 , 9261 , 9264 , 9265 , 9270 , 9280 , 9288 , 9291 , 9291 , 9292 , 9297 , 9298 , 9292 , 9296 , 9314 , 9320 , 9309 , 9306 , 9317 , 9321 , 9317 , 9318 , 9324 , 9327 , 9327 , 9329 , 9329 , 9328 , 9330 , 9338 , 9343 , 9339 , 9338 , 9343 , 9347 , 9349 , 9353 , 9352 , 9346 , 9349 , 9361 , 9365 , 9359 , 9353 , 9354 , 9357 , 9359 , 9358 , 9358 , 9362 , 9366 , 9365 , 9364 , 9366 , 9370 , 9372 , 9369 , 9367 , 9369 , 9368 , 9364 , 9366 , 9368 , 9364 , 9363 , 9369 , 9369 , 9362 , 9361 , 9365 , 9362 , 9360 , 9369 , 9378 , 9375 , 9367 , 9367 , 9370 , 9368 , 9362 , 9360 , 9367 , 9375 , 9371 , 9361 , 9362 , 9368 , 9364 , 9359 , 9360 , 9357 , 9354 , 9359 , 9361 , 9355 , 9354 , 9356 , 9350 , 9348 , 9351 , 9350 , 9347 , 9352 , 9349 , 9336 , 9334 , 9342 , 9341 , 9338 , 9342 , 9343 , 9339 , 9339 , 9341 , 9339 , 9339 , 9339 , 9330 , 9323 , 9326 , 9331 , 9330 , 9324 , 9315 , 9307 , 9312 , 9322 , 9318 , 9307 , 9305 , 9311 , 9310 , 9304 , 9301 , 9303 , 9302 , 9296 , 9293 , 9295 , 9291 , 9283 , 9283 , 9286 , 9283 , 9278 , 9276 , 9272 , 9266 , 9264 , 9263 , 9262 , 9265 , 9265 , 9258 , 9256 , 9260 , 9257 , 9249 , 9249 , 9251 , 9245 , 9238 , 9240 , 9242 , 9240 , 9238 , 9235 , 9230 , 9226 , 9224 , 9222 , 9222 , 9221 , 9216 , 9209 , 9203 , 9204 , 9208 , 9206 , 9195 , 9189 , 9194 , 9193 , 9183 , 9180 , 9186 , 9181 , 9170 , 9169 , 9176 , 9175 , 9171 , 9169 , 9166 , 9162 , 9160 , 9156 , 9146 , 9142 , 9144 , 9139 , 9131 , 9132 , 9135 , 9129 , 9124 , 9126 , 9120 , 9109 , 9108 , 9113 , 9110 , 9105 , 9105 , 9102 , 9097 , 9095 , 9093 , 9087 , 9081 , 9078 , 9079 , 9083 , 9080 , 9069 , 9066 , 9073 , 9072 , 9063 , 9062 , 9061 , 9053 , 9049 , 9050 , 9043 , 9035 , 9034 , 9031 , 9022 , 9020 , 9024 , 9022 , 9020 , 9020 , 9014 , 9006 , 9006 , 9006 , 8999 , 8997 , 8999 , 8996 , 8989 , 8987 , 8985 , 8975 , 8967 , 8969 , 8969 , 8959 , 8953 , 8957 , 8960 , 8955 , 8945 , 8939 , 8938 , 8935 , 8932 , 8931 , 8930 , 8925 , 8917 , 8912 , 8911 , 8912 , 8910 , 8906 , 8899 , 8895 , 8895 , 8895 , 8890 , 8884 , 8880 , 8878 , 8875 , 8875 , 8878 , 8872 , 8858 , 8848 , 8848 , 8851 , 8848 , 8842 , 8839 , 8836 , 8831 , 8828 , 8826 , 8821 , 8818 , 8815 , 8807 , 8797 , 8797 , 8798 , 8790 , 8785 , 8789 , 8790 , 8783 , 8781 , 8782 , 8775 , 8767 , 8767 , 8765 , 8756 , 8750 , 8750 , 8748 , 8744 , 8740 , 8737 , 8733 , 8729 , 8726 , 8724 , 8722 , 8718 , 8715 , 8717 , 8713 , 8701 , 8697 , 8702 , 8699 , 8689 , 8684 , 8683 , 8676 , 8671 , 8670 , 8666 , 8661 , 8660 , 8660 , 8655 , 8649 , 8644 , 8637 , 8632 , 8631 , 8631 , 8628 , 8623 , 8618 , 8616 , 8615 , 8611 , 8603 , 8599 , 8598 , 8597 , 8594 , 8590 , 8583 , 8579 , 8580 , 8575 , 8568 , 8568 , 8569 , 8560 , 8552 , 8553 , 8552 , 8544 , 8543 , 8544 , 8534 , 8523 , 8523 , 8528 , 8528 , 8521 , 8511 , 8505 , 8505 , 8501 , 8492 , 8491 , 8496 , 8493 , 8484 , 8479 , 8474 , 8467 , 8463 , 8464 , 8461 , 8457 , 8457 , 8457 , 8454 , 8449 , 8444 , 8439 , 8435 , 8434 , 8432 , 8426 , 8418 , 8415 , 8415 , 8406 , 8397 , 8400 , 8404 , 8394 , 8382 , 8383 , 8384 , 8378 , 8373 , 8370 , 8362 , 8357 , 8362 , 8362 , 8353 , 8349 , 8348 , 8341 , 8334 , 8335 , 8336 , 8331 , 8325 , 8319 , 8316 , 8317 , 8317 , 8309 , 8302 , 8302 , 8301 , 8292 , 8284 , 8282 , 8279 , 8276 , 8275 , 8272 , 8265 , 8259 , 8257 , 8259 , 8259 , 8255 , 8252 , 8245 , 8235 , 8234 , 8233 , 8220 , 8216 , 8224 , 8216 , 8200 , 8206 , 8208 , 8193 , 8199 , 8205 , 8183 , 8181 , 8199 , 8177 , 8163 , 8190 , 8170 , 8140 , 8183 , 8181 , 8119 , 8164 , 8201 , 8092 , 8108 , 8236 , 8109 , 8012 , 8244 , 8196 , 7877 , 8160 , 8406 , 7733 , 7860 , 8871 , 5132 , -7005 , -21521, -30138, -32425, -32689, -32768, -32534, -32415, -32564, -32549, -32443, -32482, -32487, -32415, -32421, -32435, -32390, -32382, -32397, -32369, -32350, -32351, -32328, -32310, -32313, -32291, -32259, -32253, -32246, -32226, -32213, -32198, -32175, -32170, -32174, -32155, -32126, -32115, -32106, -32078, -32047, -32038, -32041, -32037, -32022, -32006, -31986, -31961, -31943, -31928, -31912, -31899, -31888, -31880, -31875, -31864, -31838, -31819, -31815, -31801, -31775, -31763, -31765, -31756, -31740, -31720, -31696, -31682, -31678, -31660, -31636, -31631, -31615, -31574, -31563, -31586, -31579, -31546, -31538, -31530, -31494, -31473, -31480, -31471, -31443, -31428, -31418, -31401, -31390, -31375, -31347, -31330, -31329, -31315, -31287, -31271, -31265, -31249, -31233, -31231, -31204, -31056, -30744, -30340, -29948, -29585, -29214, -28827, -28445, -28074, -27713, -27358, -26997, -26638, -26292, -25946, -25594, -25248, -24908, -24570, -24240, -23908, -23570, -23246, -22940, -22628, -22303, -21983, -21679, -21376, -21065, -20761, -20466, -20167, -19874, -19592, -19303, -19008, -18725, -18442, -18168, -17907, -17635, -17360, -17102, -16838, -16571, -16322, -16069, -15812, -15570, -15313, -15062, -14845, -14600, -14327, -14103, -13884, -13638, -13422, -13201, -12954, -12746, -12538, -12292, -12080, -11875, -11647, -11458, -11261, -11022, -10830, -10639, -10408, -10234, -10056, -9823 , -9648 , -9476 , -9241 , -9082 , -8929 , -8684 , -8516 , -8377 , -8144 , -7987 , -7861 , -7618 , -7456 , -7345 , -7105 , -6944 , -6852 , -6613 , -6450 , -6366 , -6122 , -5960 , -5900 , -5658 , -5492 , -5448 , -5203 , -5028 , -5001 , -4753 , -4575 , -4578 , -4333 , -4149 , -4179 , -3927 , -3717 , -3778 , -3533 , -3303 , -3388 , -3147 , -2895 , -3009 , -2767 , -2491 , -2647 , -2404 , -2089 , -2309 , -2078 , -1701 , -1973 , -1751 , -1301 , -1651 , -1451 , -898 , -1355 , -1185 , -465 , -1086 , -963 , 53 , -885 , -880 , 890 , -885 , -1532 , 5478 , //Osc 5 Level 2 -755 , -733 , -556 , -342 , -151 , 36 , 215 , 394 , 571 , 754 , 923 , 1086 , 1252 , 1411 , 1558 , 1726 , 1881 , 2033 , 2171 , 2316 , 2456 , 2593 , 2724 , 2859 , 2992 , 3115 , 3234 , 3363 , 3482 , 3601 , 3705 , 3808 , 3922 , 4040 , 4145 , 4249 , 4349 , 4443 , 4542 , 4632 , 4729 , 4818 , 4899 , 4992 , 5080 , 5165 , 5251 , 5324 , 5407 , 5481 , 5555 , 5625 , 5700 , 5771 , 5839 , 5896 , 5961 , 6034 , 6098 , 6159 , 6217 , 6278 , 6336 , 6389 , 6447 , 6497 , 6556 , 6607 , 6652 , 6701 , 6759 , 6800 , 6846 , 6895 , 6938 , 6977 , 7017 , 7052 , 7092 , 7137 , 7178 , 7220 , 7250 , 7288 , 7321 , 7360 , 7387 , 7421 , 7453 , 7484 , 7513 , 7541 , 7569 , 7602 , 7631 , 7650 , 7677 , 7699 , 7729 , 7749 , 7780 , 7799 , 7825 , 7845 , 7867 , 7886 , 7903 , 7924 , 7949 , 7959 , 7982 , 8001 , 8020 , 8042 , 8064 , 8069 , 8093 , 8102 , 8128 , 8129 , 8142 , 8155 , 8175 , 8180 , 8201 , 8206 , 8218 , 8234 , 8242 , 8249 , 8257 , 8275 , 8282 , 8294 , 8305 , 8319 , 8327 , 8330 , 8336 , 8351 , 8364 , 8367 , 8371 , 8375 , 8396 , 8387 , 8401 , 8399 , 8411 , 8412 , 8416 , 8424 , 8432 , 8431 , 8446 , 8444 , 8449 , 8462 , 8455 , 8459 , 8463 , 8468 , 8474 , 8476 , 8485 , 8482 , 8485 , 8485 , 8487 , 8491 , 8492 , 8490 , 8495 , 8509 , 8506 , 8507 , 8505 , 8511 , 8519 , 8510 , 8520 , 8511 , 8517 , 8518 , 8521 , 8517 , 8520 , 8523 , 8524 , 8514 , 8525 , 8525 , 8532 , 8530 , 8538 , 8528 , 8529 , 8536 , 8524 , 8526 , 8535 , 8525 , 8535 , 8528 , 8534 , 8528 , 8531 , 8524 , 8532 , 8523 , 8524 , 8518 , 8530 , 8524 , 8531 , 8524 , 8529 , 8522 , 8530 , 8529 , 8527 , 8522 , 8528 , 8524 , 8518 , 8525 , 8519 , 8518 , 8518 , 8517 , 8515 , 8516 , 8525 , 8517 , 8522 , 8509 , 8512 , 8506 , 8512 , 8509 , 8508 , 8501 , 8510 , 8505 , 8508 , 8504 , 8501 , 8502 , 8509 , 8500 , 8512 , 8503 , 8507 , 8499 , 8500 , 8492 , 8494 , 8496 , 8502 , 8493 , 8497 , 8494 , 8500 , 8494 , 8491 , 8486 , 8488 , 8484 , 8494 , 8478 , 8486 , 8481 , 8487 , 8473 , 8485 , 8478 , 8480 , 8479 , 8481 , 8473 , 8484 , 8479 , 8468 , 8470 , 8474 , 8467 , 8470 , 8465 , 8468 , 8455 , 8461 , 8455 , 8465 , 8462 , 8464 , 8457 , 8459 , 8451 , 8459 , 8451 , 8456 , 8451 , 8456 , 8455 , 8454 , 8450 , 8455 , 8443 , 8448 , 8440 , 8448 , 8442 , 8443 , 8432 , 8442 , 8434 , 8440 , 8435 , 8434 , 8434 , 8437 , 8429 , 8434 , 8429 , 8433 , 8424 , 8432 , 8426 , 8423 , 8423 , 8431 , 8414 , 8422 , 8412 , 8428 , 8410 , 8415 , 8406 , 8418 , 8411 , 8422 , 8405 , 8419 , 8404 , 8413 , 8397 , 8408 , 8398 , 8400 , 8396 , 8398 , 8387 , 8403 , 8389 , 8396 , 8384 , 8400 , 8379 , 8397 , 8381 , 8393 , 8377 , 8383 , 8372 , 8386 , 8366 , 8385 , 8374 , 8382 , 8361 , 8373 , 8356 , 8370 , 8349 , 8374 , 8348 , 8372 , 8344 , 8366 , 8342 , 8370 , 8338 , 8360 , 8339 , 8341 , 8352 , 8250 , 8583 , 4828 , -20745, -32637, -32157, -32397, -32139, -32288, -32097, -32190, -32056, -32125, -32008, -32053, -31952, -31969, -31890, -31897, -31827, -31846, -31761, -31761, -31674, -31710, -31634, -31625, -31548, -31551, -31494, -31504, -31427, -31433, -31360, -31383, -31304, -31302, -31238, -31237, -31153, -31174, -31123, -31109, -31039, -31049, -30978, -30979, -30912, -30901, -30846, -30832, -30774, -30785, -30573, -29888, -29095, -28367, -27579, -26888, -26139, -25469, -24739, -24091, -23390, -22761, -22104, -21491, -20846, -20262, -19634, -19083, -18472, -17930, -17358, -16848, -16285, -15797, -15260, -14786, -14274, -13811, -13303, -12887, -12389, -11989, -11497, -11117, -10661, -10282, -9833 , -9489 , -9049 , -8713 , -8296 , -7967 , -7561 , -7265 , -6856 , -6573 , -6181 , -5916 , -5522 , -5277 , -4898 , -4667 , -4285 , -4073 , -3708 , -3524 , -3150 , -2985 , -2611 , -2466 , -2083 , -1966 , -1574 , -1507 , -1087 , -1058 , -603 , -652 , -120 , -297 , 412 , -107 , 1431 , //Osc 5 Level 3 -868 , -901 , -403 , -96 , 301 , 621 , 973 , 1267 , 1601 , 1880 , 2174 , 2434 , 2708 , 2947 , 3202 , 3417 , 3639 , 3861 , 4065 , 4256 , 4446 , 4619 , 4798 , 4967 , 5125 , 5274 , 5420 , 5558 , 5683 , 5822 , 5939 , 6061 , 6167 , 6281 , 6377 , 6482 , 6573 , 6667 , 6742 , 6824 , 6907 , 6985 , 7052 , 7124 , 7183 , 7250 , 7302 , 7368 , 7409 , 7468 , 7512 , 7567 , 7603 , 7649 , 7684 , 7728 , 7762 , 7810 , 7831 , 7874 , 7885 , 7926 , 7942 , 7977 , 7989 , 8018 , 8033 , 8067 , 8079 , 8101 , 8117 , 8137 , 8145 , 8166 , 8167 , 8188 , 8191 , 8215 , 8216 , 8235 , 8228 , 8253 , 8250 , 8267 , 8258 , 8277 , 8269 , 8298 , 8281 , 8308 , 8291 , 8312 , 8298 , 8319 , 8304 , 8323 , 8317 , 8337 , 8319 , 8336 , 8320 , 8343 , 8324 , 8344 , 8323 , 8341 , 8323 , 8351 , 8326 , 8354 , 8330 , 8354 , 8329 , 8353 , 8327 , 8353 , 8333 , 8359 , 8323 , 8355 , 8324 , 8355 , 8327 , 8355 , 8328 , 8363 , 8331 , 8358 , 8323 , 8364 , 8326 , 8367 , 8324 , 8360 , 8324 , 8361 , 8322 , 8361 , 8323 , 8364 , 8325 , 8364 , 8317 , 8365 , 8313 , 8358 , 8314 , 8369 , 8310 , 8367 , 8309 , 8371 , 8312 , 8373 , 8304 , 8373 , 8302 , 8370 , 8301 , 8374 , 8299 , 8377 , 8295 , 8380 , 8291 , 8384 , 8283 , 8387 , 8277 , 8389 , 8280 , 8396 , 8270 , 8396 , 8259 , 8400 , 8250 , 8411 , 8237 , 8424 , 8223 , 8434 , 8198 , 8457 , 8175 , 8481 , 8125 , 8532 , 8059 , 8624 , 7917 , 8849 , 7481 , 9892 , 139 , -31591, -31964, -32567, -31870, -32349, -31824, -32154, -31726, -31991, -31612, -31822, -31503, -31652, -31389, -31514, -31269, -31378, -31131, -31233, -31018, -31095, -30883, -30955, -30733, -30833, -29854, -28358, -26820, -25467, -24018, -22764, -21423, -20255, -19005, -17922, -16771, -15779, -14713, -13789, -12800, -11951, -11030, -10246, -9394 , -8669 , -7879 , -7206 , -6477 , -5847 , -5174 , -4587 , -3965 , -3427 , -2867 , -2348 , -1836 , -1346 , -906 , -405 , -84 , 572 , //Osc 5 Level 4 -749 , -652 , 288 , 817 , 1564 , 2038 , 2669 , 3071 , 3605 , 3945 , 4405 , 4679 , 5088 , 5302 , 5652 , 5825 , 6135 , 6264 , 6541 , 6629 , 6872 , 6940 , 7152 , 7191 , 7383 , 7399 , 7578 , 7569 , 7739 , 7721 , 7867 , 7830 , 7970 , 7920 , 8062 , 7998 , 8131 , 8052 , 8181 , 8100 , 8223 , 8134 , 8255 , 8154 , 8287 , 8175 , 8304 , 8185 , 8324 , 8200 , 8333 , 8204 , 8340 , 8201 , 8352 , 8206 , 8358 , 8201 , 8367 , 8198 , 8366 , 8195 , 8377 , 8196 , 8380 , 8192 , 8390 , 8181 , 8397 , 8175 , 8409 , 8165 , 8412 , 8152 , 8428 , 8140 , 8446 , 8126 , 8458 , 8106 , 8480 , 8085 , 8506 , 8054 , 8537 , 8017 , 8584 , 7955 , 8647 , 7873 , 8750 , 7731 , 8934 , 7452 , 9356 , 6677 , 11192 , -5260 , -32768, -30690, -32768, -31141, -32437, -31122, -31976, -30999, -31599, -30823, -31243, -30664, -30144, -26618, -24334, -21257, -19281, -16628, -14961, -12672, -11260, -9279 , -8091 , -6366 , -5369 , -3856 , -3049 , -1708 , -1078 , 169 , //Osc 5 Level 5 -611 , 29 , 1567 , 2527 , 3594 , 4287 , 5064 , 5541 , 6109 , 6428 , 6844 , 7044 , 7354 , 7465 , 7706 , 7756 , 7935 , 7944 , 8093 , 8059 , 8187 , 8129 , 8244 , 8170 , 8278 , 8194 , 8294 , 8200 , 8308 , 8201 , 8312 , 8200 , 8325 , 8196 , 8331 , 8190 , 8338 , 8177 , 8356 , 8164 , 8371 , 8145 , 8395 , 8113 , 8428 , 8061 , 8474 , 8047 , 7588 , -26139, -32768, -31150, -32004, -30905, -31397, -29460, -24277, -18954, -14908, -10995, -8057 , -5129 , -3031 , -775 , //Osc 5 Level 6 -516 , 1408 , 3505 , 5052 , 5987 , 6871 , 7210 , 7751 , 7774 , 8159 , 7997 , 8331 , 8057 , 8412 , 8042 , 8468 , 7993 , 8546 , 7898 , 8677 , 7710 , 8979 , 7148 , 10315 , -300 , -32768, -30419, -31984, -24033, -14988, -7779 , -3038 , //Osc 5 Level 7 -355 , 3627 , 5817 , 7586 , 7532 , 8533 , 7724 , 8827 , 7489 , 9253 , 6726 , 11116 , -5338 , -32768, -22746, -8623 , //Osc 5 Level 8 -298 , 6835 , 6748 , 9718 , 6037 , 12157 , -9291 , -25375, //Osc 5 Level 9 -1390 , 5500 , 6077 , 11215 , //Osc 5 Level 10 -1390 , 4139 , //Osc 5 Level 11 -1390 , 4139 } }; bml-0.6.1/src/BuzzMachineLoader/debug.cpp0000644042355400116100000000337411576362477015177 00000000000000/* $Id: debug.cpp 1740 2008-04-16 06:19:17Z ensonic $ * * Buzz Machine Loader * Copyright (C) 2006 Buzztard team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #include #include #include #include "debug.h" DebugLoggerFunc debug_log_func=NULL; void DebugLogger(const char *file, unsigned int line, const char *func, const char *obj, const char *fmt,...) { va_list args; // Initialize variable arguments. va_start(args, fmt); if(debug_log_func) { char str[2048]; if(obj) { sprintf(str,"%s:%d:%s:%s ",file,line,func,obj); } else { sprintf(str,"%s:%d:%s ",file,line,func); } debug_log_func(str); vsprintf(str,fmt,args); debug_log_func(str); } else { if(obj) { fprintf(stdout,"%s:%d:%s:%s ",file,line,func,obj); } else { fprintf(stdout,"%s:%d:%s ",file,line,func); } vfprintf(stdout,fmt,args); fflush(stdout); } va_end(args); } bml-0.6.1/src/BuzzMachineLoader/BuzzMachineCallbacksPre12.h0000644042355400116100000001103311576362476020375 00000000000000/* $Id: BuzzMachineCallbacksPre12.h 2067 2008-11-16 21:11:08Z ensonic $ * * Buzz Machine Loader * Copyright (C) 2006 Buzztard team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef BUZZ_MACHINE_CALLBACKS_PRE12_H #define BUZZ_MACHINE_CALLBACKS_PRE12_H #include "MachineInterface.h" //#include "BuzzMDKHelper.h" #include "mdkimp.h" // should be MAX_BUFFER_LENGTH=256 //#define BMC_AUXBUFFER_SIZE MAX_BUFFER_LENGTH #define BMC_AUXBUFFER_SIZE 1024 typedef struct _CHostCallbacks CHostCallbacks; class BuzzMachineCallbacksPre12 : public CMICallbacks { private: CMachine *machine; CMachineInterface *machine_interface; CMachineInfo *machine_info; CWaveLevel defaultWaveLevel;/*={0,NULL,0,0,0,0};*/ //BuzzMDKHelper *mdkHelper; CMDKImplementation *mdkHelper; CHostCallbacks **host_callbacks; // static float ... does not work? float auxBuffer[2*BMC_AUXBUFFER_SIZE]; // gah, inefficient, because BuzzMachineCallbacks objects could all share same aux buffer public: public: BuzzMachineCallbacksPre12() { machine=NULL; machine_interface=NULL; machine_info=NULL; defaultWaveLevel.LoopEnd=0; defaultWaveLevel.LoopStart=0; defaultWaveLevel.numSamples=0; defaultWaveLevel.pSamples=NULL; defaultWaveLevel.RootNote=0; defaultWaveLevel.SamplesPerSec=0; mdkHelper=NULL; host_callbacks=NULL; } BuzzMachineCallbacksPre12(CMachine *_machine, CMachineInterface *_machine_interface,CMachineInfo *_machine_info,CHostCallbacks **_host_callbacks) { machine=_machine; machine_interface=_machine_interface; machine_info=_machine_info; defaultWaveLevel.LoopEnd=0; defaultWaveLevel.LoopStart=0; defaultWaveLevel.numSamples=0; defaultWaveLevel.pSamples=NULL; defaultWaveLevel.RootNote=0; defaultWaveLevel.SamplesPerSec=0; mdkHelper=NULL; host_callbacks=_host_callbacks; } ~BuzzMachineCallbacksPre12() { /* done in CMDKMachineInterface::~CMDKMachineInterface() if (mdkHelper) { delete mdkHelper; }*/ } CWaveInfo const *GetWave(int const i); CWaveLevel const *GetWaveLevel(int const i, int const level); void MessageBox(char const *txt); void Lock(); void Unlock(); int GetWritePos(); int GetPlayPos(); float *GetAuxBuffer(); void ClearAuxBuffer(); int GetFreeWave(); bool AllocateWave(int const i, int const size, char const *name); void ScheduleEvent(int const time, dword const data); void MidiOut(int const dev, dword const data); short const *GetOscillatorTable(int const waveform); // envelopes int GetEnvSize(int const wave, int const env); bool GetEnvPoint(int const wave, int const env, int const i, word &x, word &y, int &flags); CWaveLevel const *GetNearestWaveLevel(int const i, int const note); // pattern editing void SetNumberOfTracks(int const n); CPattern *CreatePattern(char const *name, int const length); CPattern *GetPattern(int const index); char const *GetPatternName(CPattern *ppat); void RenamePattern(char const *oldname, char const *newname); void DeletePattern(CPattern *ppat); int GetPatternData(CPattern *ppat, int const row, int const group, int const track, int const field); void SetPatternData(CPattern *ppat, int const row, int const group, int const track, int const field, int const value); // sequence editing CSequence *CreateSequence(); void DeleteSequence(CSequence *pseq); // special ppat values for GetSequenceData and SetSequenceData // empty = NULL // = (CPattern *)1 // = (CPattern *)2 // = (CPattern *)3 CPattern *GetSequenceData(int const row); void SetSequenceData(int const row, CPattern *ppat); }; #endif // BUZZ_MACHINE_CALLBACKS_H bml-0.6.1/src/BuzzMachineLoader/mdk.h0000644042355400116100000000337511576362476014331 00000000000000// Copyright (C) 2000 Oskari Tammelin (ot@iki.fi) // This header file and the library may be used to write _freeware_ DLL "machines" for Buzz // Using it for anything else is not allowed without a permission from the author #ifndef __BUZZ_MDK #define __BUZZ_MDK #include "MachineInterface.h" class CMDKImplementation; class CMDKMachineInterfaceEx; class CMDKMachineInterface : public CMachineInterface { public: virtual ~CMDKMachineInterface(); virtual void Init(CMachineDataInput * const pi); virtual bool Work(float *psamples, int numsamples, int const mode); virtual bool WorkMonoToStereo(float *pin, float *pout, int numsamples, int const mode); virtual void Save(CMachineDataOutput * const po); public: void SetOutputMode(bool stereo); public: virtual CMDKMachineInterfaceEx *GetEx() = 0; virtual void OutputModeChanged(bool stereo) = 0; virtual bool MDKWork(float *psamples, int numsamples, int const mode) = 0; virtual bool MDKWorkStereo(float *psamples, int numsamples, int const mode) = 0; virtual void MDKInit(CMachineDataInput * const pi) = 0; virtual void MDKSave(CMachineDataOutput * const po) = 0; private: CMDKImplementation *pImp; }; class CMDKMachineInterfaceEx : public CMachineInterfaceEx { public: friend class CMDKMachineInterface; virtual void AddInput(char const *macname, bool stereo); // called when input is added to a machine virtual void DeleteInput(char const *macename); virtual void RenameInput(char const *macoldname, char const *macnewname); virtual void Input(float *psamples, int numsamples, float amp); // if MIX_DOES_INPUT_MIXING virtual void SetInputChannels(char const *macname, bool stereo); private: CMDKImplementation *pImp; }; #endif bml-0.6.1/src/BuzzMachineLoader/mdkimp.cpp0000644042355400116100000002023111576362476015360 00000000000000#include "mdk.h" #include "mdkimp.h" #include "debug.h" /* CMDKImplementation *NewMDKImp() { return new CMDKImplementation; } */ void CopyStereoToMono(float *pout, float *pin, int numsamples, float amp) { do { *pout++ = (pin[0] + pin[1]) * amp; pin += 2; } while(--numsamples); } void AddStereoToMono(float *pout, float *pin, int numsamples, float amp) { do { *pout++ += (pin[0] + pin[1]) * amp; pin += 2; } while(--numsamples); } void CopyM2S(float *pout, float *pin, int numsamples, float amp) { do { double s = *pin++ * amp; pout[0] = (float)s; pout[1] = (float)s; pout += 2; } while(--numsamples); } void Add(float *pout, float *pin, int numsamples, float amp) { do { *pout++ += *pin++ * amp; } while(--numsamples); } // begin dsplib --- #define UNROLL 4 // how many times to unroll inner loops #define SUNROLL 2 // same for loops with stereo output void DSP_Copy(float *pout, float const *pin, dword const n, float const a) { double const amp = a; // copy a to fpu stack if (n >= UNROLL) { int c = n / UNROLL; do { pout[0] = (float)(pin[0] * amp); pout[1] = (float)(pin[1] * amp); pout[2] = (float)(pin[2] * amp); pout[3] = (float)(pin[3] * amp); pin += UNROLL; pout += UNROLL; } while(--c); } int c = n & (UNROLL-1); while(c--) *pout++ = (float)(*pin++ * amp); } void DSP_Add(float *pout, float const *pin, dword const n, float const a) { double const amp = a; // copy a to fpu stack if (n >= UNROLL) { int c = n / UNROLL; do { pout[0] += (float)(pin[0] * amp); pout[1] += (float)(pin[1] * amp); pout[2] += (float)(pin[2] * amp); pout[3] += (float)(pin[3] * amp); pin += UNROLL; pout += UNROLL; } while(--c); } int c = n & (UNROLL-1); while(c--) *pout++ += (float)(*pin++ * amp); } void DSP_AddM2S(float *pout, float const *pin, dword const n, float const a) { double const amp = a; // copy a to fpu stack if (n >= SUNROLL) { int c = n / SUNROLL; do { double s = pin[0] * amp; pout[0] += (float)s; pout[1] += (float)s; s = pin[1] * amp; pout[2] += (float)s; pout[3] += (float)s; pin += SUNROLL; pout += SUNROLL*2; } while(--c); } int c = n & (SUNROLL-1); while(c--) { double const s = *pin++ * amp; pout[0] += (float)s; pout[1] += (float)s; pout += 2; } } void DSP_Copy(float *pout, float const *pin, dword const n) { memcpy(pout, pin, n*sizeof(float)); } // --- end dsplib void CMDKImplementation::AddInput(char const *macname, bool stereo) { if (macname == NULL) return; Inputs.push_back(CInput(macname, stereo)); SetMode(); } void CMDKImplementation::DeleteInput(char const *macname) { for (InputList::iterator i = Inputs.begin(); i != Inputs.end(); i++) { if ((*i).Name.compare(macname) == 0) { Inputs.erase(i); SetMode(); return; } } } void CMDKImplementation::RenameInput(char const *macoldname, char const *macnewname) { for (InputList::iterator i = Inputs.begin(); i != Inputs.end(); i++) { if ((*i).Name.compare(macoldname) == 0) { (*i).Name = macnewname; return; } } } void CMDKImplementation::SetInputChannels(char const *macname, bool stereo) { for (InputList::iterator i = Inputs.begin(); i != Inputs.end(); i++) { if ((*i).Name.compare(macname) == 0) { (*i).Stereo = stereo; SetMode(); return; } } } void CMDKImplementation::Input(float *psamples, int numsamples, float amp) { assert(InputIterator != Inputs.end()); if (psamples == NULL) { InputIterator++; return; } DBG2("numChannels=%d, HaveInput=%d",numChannels,HaveInput); if (numChannels == 1) { if (HaveInput == 0) { if ((*InputIterator).Stereo) CopyStereoToMono(Buffer, psamples, numsamples, amp); else DSP_Copy(Buffer, psamples, numsamples, amp); } else { if ((*InputIterator).Stereo) AddStereoToMono(Buffer, psamples, numsamples, amp); else DSP_Add(Buffer, psamples, numsamples, amp); } } else { if (HaveInput == 0) { if ((*InputIterator).Stereo) DSP_Copy(Buffer, psamples, numsamples*2, amp); else CopyM2S(Buffer, psamples, numsamples, amp); } else { if ((*InputIterator).Stereo) DSP_Add(Buffer, psamples, numsamples*2, amp); else DSP_AddM2S(Buffer, psamples, numsamples, amp); } } HaveInput++; InputIterator++; } bool CMDKImplementation::Work(float *psamples, int numsamples, int const mode) { DBG4("(%p,%d,%d), HaveInput=%d\n",psamples,numsamples,mode,HaveInput); if ((mode & WM_READ) && HaveInput) DSP_Copy(psamples, Buffer, numsamples); bool ret = pmi->MDKWork(psamples, numsamples, mode); InputIterator = Inputs.begin(); HaveInput = 0; return ret; } bool CMDKImplementation::WorkMonoToStereo(float *pin, float *pout, int numsamples, int const mode) { DBG5("(%p,%p,%d,%d), HaveInput=%d\n",pin,pout,numsamples,mode,HaveInput); // fill pout from mdkBuffer if ((mode & WM_READ) && HaveInput) DSP_Copy(pout, Buffer, 2*numsamples); bool ret = pmi->MDKWorkStereo(pout, numsamples, mode); // we don't use that right now InputIterator = Inputs.begin(); HaveInput = 0; return ret; } void CMDKImplementation::Init(CMachineDataInput * const pi) { DBG(" CMDKImplementation::Init() called\n"); ThisMachine = pmi->pCB->GetThisMachine(); numChannels = 1; InputIterator = Inputs.begin(); HaveInput = 0; MachineWantsChannels = 1; if (pi != NULL) { byte ver; pi->Read(ver); } pmi->MDKInit(pi); } void CMDKImplementation::Save(CMachineDataOutput * const po) { po->Write((byte)MDK_VERSION); pmi->MDKSave(po); } void CMDKImplementation::SetOutputMode(bool stereo) { numChannels = stereo ? 2 : 1; MachineWantsChannels = numChannels; pmi->OutputModeChanged(stereo); } void CMDKImplementation::SetMode() { InputIterator = Inputs.begin(); HaveInput = 0; if (MachineWantsChannels > 1) { numChannels = MachineWantsChannels; pmi->pCB->SetnumOutputChannels(ThisMachine, numChannels); pmi->OutputModeChanged(numChannels > 1 ? true : false); return; } for (InputList::iterator i = Inputs.begin(); i != Inputs.end(); i++) { if ((*i).Stereo) { numChannels = 2; pmi->pCB->SetnumOutputChannels(ThisMachine, numChannels); pmi->OutputModeChanged(numChannels > 1 ? true : false); return; } } numChannels = 1; pmi->pCB->SetnumOutputChannels(ThisMachine, numChannels); pmi->OutputModeChanged(numChannels > 1 ? true : false); } CMDKImplementation::~CMDKImplementation() { } void CMDKMachineInterfaceEx::AddInput(char const *macname, bool stereo) { pImp->AddInput(macname, stereo); } void CMDKMachineInterfaceEx::DeleteInput(char const *macename) { pImp->DeleteInput(macename); } void CMDKMachineInterfaceEx::RenameInput(char const *macoldname, char const *macnewname) { pImp->RenameInput(macoldname, macnewname); } void CMDKMachineInterfaceEx::SetInputChannels(char const *macname, bool stereo) { pImp->SetInputChannels(macname, stereo); } void CMDKMachineInterfaceEx::Input(float *psamples, int numsamples, float amp) { pImp->Input(psamples, numsamples, amp); } bool CMDKMachineInterface::Work(float *psamples, int numsamples, int const mode) { return pImp->Work(psamples, numsamples, mode); } bool CMDKMachineInterface::WorkMonoToStereo(float *pin, float *pout, int numsamples, int const mode) { return pImp->WorkMonoToStereo(pin, pout, numsamples, mode); } void CMDKMachineInterface::Save(CMachineDataOutput * const po) { pImp->Save(po); } void CMDKMachineInterface::SetOutputMode(bool stereo) { pImp->SetOutputMode(stereo); } CMDKMachineInterface::~CMDKMachineInterface() { delete pImp; } void CMDKMachineInterface::Init(CMachineDataInput * const pi) { DBG(" CMDKMachineInterface::Init() called\n"); pImp = (CMDKImplementation*)pCB->GetNearestWaveLevel(-1,-1); pImp->pmi = this; CMDKMachineInterfaceEx *pex = GetEx(); pex->pImp = pImp; pCB->SetMachineInterfaceEx(pex); pImp->Init(pi); } bml-0.6.1/src/BuzzMachineLoader/resample.h0000644042355400116100000000271511576362477015364 00000000000000#ifndef __BUZZ_DSPLIB_RESAMPLE_H #define __BUZZ_DSPLIB_RESAMPLE_H typedef unsigned char byte; typedef unsigned short word; typedef unsigned long dword; // interpolation modes #define RSI_NONE 0 // nearest sample (no interpolation) [fast, poor quality] #define RSI_LINEAR 1 // linear interpolation [quite fast, better quality] // amp modes #define RSA_ONE 0 // amp = 1.0 #define RSA_CONSTANT 1 // constant amp #define RSA_LINEAR_INTP 2 // linear amp interpolation // step modes #define RSS_ONE 0 // step = 1.0 #define RSS_CONSTANT 1 // constant step // flags #define RSF_ADD 1 // add input to output instead of moving #define RSF_FLOAT 2 // input samples are 32bit floats (16bit integers by default) #define RS_STEP_FRAC_BITS 24 class CResamplerParams { public: void SetStep(double const s) { StepInt = (int)s; StepFrac = (int)((s - StepInt) * (1 << RS_STEP_FRAC_BITS)); } public: void *Samples; // ptr to first sample int numSamples; // number of samples (or loop) int LoopBegin; // zero based index to Samples, -1 = no loop int StepInt; dword StepFrac; float AmpStep; // used if AmpMode == RSA_LINEAR_INTP byte Interpolation; // one of RSI_* byte AmpMode; // one of RSA_* byte StepMode; // one of RSS_* byte Flags; // any of RSF_* ORred }; class CResamplerState { public: int PosInt; dword PosFrac; float Amp; bool Active; }; #endif bml-0.6.1/src/BuzzMachineLoader/dsplib.h0000644042355400116100000000636511576362477015036 00000000000000#ifndef __BUZZ_DSPLIB_H #define __BUZZ_DSPLIB_H /* How to use dsplib in Buzz machines: Add dsplib.lib to library modules list of your project and #include this file. After that you can simply call the functions you need. Note: Some of these functions may not be implemented yet. You will get a link error if you try to use them. Descriptions for the abbrvs. used in this file: ps - pointer to samples pin - pointer to input samples pout - pointer to output samples n - number of samples a - amplitude scaling factor la - left a ra - right a M - mono 2 - to S - stereo */ typedef unsigned long dword; #if defined(_MSC_VER) || defined(_MINGW_VER) #define DI __declspec(dllimport) #else #define DI #endif // initialization // you don't need to call DSP_Init in machines // buzz uses the same dll so it has done it already #if defined(_MSC_VER) || defined(_MINGW_VER) DI void __fastcall DSP_Init(int const samplerate); #else // fastcall seems to be x86 only #if defined(__i386__) && !defined(__LP64__) DI void __attribute__ ((fastcall)) DSP_Init(int const samplerate); #else DI void DSP_Init(int const samplerate); #endif #endif // basic stuff DI void DSP_Zero(float *ps, dword const n); DI void DSP_Copy(float *pout, float const *pin, dword const n); DI void DSP_Copy(float *pout, float const *pin, dword const n, float const a); DI void DSP_CopyM2S(float *pout, float const *pin, dword const n); DI void DSP_CopyM2S(float *pout, float const *pin, dword const n, float const a); DI void DSP_CopyM2S(float *pout, float const *pin, dword const n, float const la, float const ra); DI void DSP_CopyS2MOneChannel(float *pout, float const *pin, dword const n, float const a); DI void DSP_Add(float *pout, float const *pin, dword const n); DI void DSP_Add(float *pout, float const *pin, dword const n, float const a); DI void DSP_AddM2S(float *pout, float const *pin, dword const n); DI void DSP_AddM2S(float *pout, float const *pin, dword const n, float const a); DI void DSP_AddM2S(float *pout, float const *pin, dword const n, float const la, float const ra); DI void DSP_AddS2S(float *pout, float const *pin, dword const n); DI void DSP_AddS2S(float *pout, float const *pin, dword const n, float const a); DI void DSP_AddS2S(float *pout, float const *pin, dword const n, float const la, float const ra); DI void DSP_AddS2MOneChannel(float *pout, float const *pin, dword const n, float const a); DI void DSP_AddS2SOneChannel(float *pout, float const *pin, dword const n, float const a); DI void DSP_Amp(float *ps, dword const n, float const a); // second order butterworth filters #include "bw.h" DI void DSP_BW_Reset(CBWState &s); // clears past inputs & outputs DI void DSP_BW_InitLowpass(CBWState &s, float const f); DI void DSP_BW_InitHighpass(CBWState &s, float const f); DI void DSP_BW_InitBandpass(CBWState &s, float const f, float const bw); DI void DSP_BW_InitBandreject(CBWState &s, float const f, float const bw); DI bool DSP_BW_Work(CBWState &s, float *ps, dword const n, int const mode); DI bool DSP_BW_WorkStereo(CBWState &s, float *ps, dword const n, int const mode); // resampler #include "resample.h" DI void DSP_Resample(float *pout, int numsamples, CResamplerState &state, CResamplerParams const ¶ms); #undef DI #endif bml-0.6.1/src/BuzzMachineLoader/Makefile.am0000644042355400116100000000167411576362477015442 00000000000000## $Id: Makefile.am 2812 2010-04-13 07:40:36Z ensonic $ pkglib_LTLIBRARIES = libbuzzmachineloader.la libbuzzmachineloader_la_SOURCES = \ BuzzMachineCallbacks.cpp \ BuzzMachineCallbacksPre12.cpp \ BuzzMachineLoader.cpp \ BuzzMachineVirtualCallbacks.cpp \ MachineDataImpl.cpp \ OscTable.cpp \ mdkimp.cpp \ debug.cpp noinst_HEADERS = \ BuzzMachine.h \ BuzzMachineCallbacks.h \ BuzzMachineCallbacksPre12.h \ BuzzMachineLoader.h \ CMachine.h \ MachineDataImpl.h \ MachineInterface.h \ OscTable.h \ mdk.h \ mdkimp.h \ bw.h \ debug.h \ dsplib.h \ resample.h libbuzzmachineloader_la_CXXFLAGS = $(PTHREAD_CFLAGS) $(BML_CXXFLAGS) libbuzzmachineloader_la_LIBADD = $(LIBM) $(PTHREAD_LIBS) $(BML_LIBS) -lstdc++ libbuzzmachineloader_la_LDFLAGS = -module -avoid-version libbuzzmachineloader_la_LIBTOOLFLAGS = --tag=disable-static AM_CPPFLAGS = -I$(top_srcdir)/dllwrapper/wine bml-0.6.1/src/BuzzMachineLoader/BuzzMachineCallbacks.h0000644042355400116100000001453611576362476017576 00000000000000/* $Id: BuzzMachineCallbacks.h 2067 2008-11-16 21:11:08Z ensonic $ * * Buzz Machine Loader * Copyright (C) 2006 Buzztard team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef BUZZ_MACHINE_CALLBACKS_H #define BUZZ_MACHINE_CALLBACKS_H #include "MachineInterface.h" //#include "BuzzMDKHelper.h" #include "mdkimp.h" // should be MAX_BUFFER_LENGTH=256 //#define BMC_AUXBUFFER_SIZE MAX_BUFFER_LENGTH #define BMC_AUXBUFFER_SIZE 1024 typedef struct _CHostCallbacks CHostCallbacks; class BuzzMachineCallbacks : public CMICallbacks { private: CMachine *machine; CMachineInterface *machine_interface; CMachineInfo *machine_info; CWaveLevel defaultWaveLevel;/*={0,NULL,0,0,0,0};*/ //BuzzMDKHelper *mdkHelper; CMDKImplementation *mdkHelper; CHostCallbacks **host_callbacks; // static float ... does not work? float auxBuffer[2*BMC_AUXBUFFER_SIZE]; // gah, inefficient, because BuzzMachineCallbacks objects could all share same aux buffer public: CMachineInterfaceEx *machine_ex; public: BuzzMachineCallbacks() { machine=NULL; machine_interface=NULL; machine_ex=NULL; machine_info=NULL; defaultWaveLevel.LoopEnd=0; defaultWaveLevel.LoopStart=0; defaultWaveLevel.numSamples=0; defaultWaveLevel.pSamples=NULL; defaultWaveLevel.RootNote=0; defaultWaveLevel.SamplesPerSec=0; mdkHelper=NULL; host_callbacks=NULL; } BuzzMachineCallbacks(CMachine *_machine, CMachineInterface *_machine_interface,CMachineInfo *_machine_info,CHostCallbacks **_host_callbacks) { machine=_machine; machine_interface=_machine_interface; machine_ex=NULL; machine_info=_machine_info; defaultWaveLevel.LoopEnd=0; defaultWaveLevel.LoopStart=0; defaultWaveLevel.numSamples=0; defaultWaveLevel.pSamples=NULL; defaultWaveLevel.RootNote=0; defaultWaveLevel.SamplesPerSec=0; mdkHelper=NULL; host_callbacks=_host_callbacks; } ~BuzzMachineCallbacks() { /* done in CMDKMachineInterface::~CMDKMachineInterface() if (mdkHelper) { delete mdkHelper; }*/ } CWaveInfo const *GetWave(int const i); CWaveLevel const *GetWaveLevel(int const i, int const level); void MessageBox(char const *txt); void Lock(); void Unlock(); int GetWritePos(); int GetPlayPos(); float *GetAuxBuffer(); void ClearAuxBuffer(); int GetFreeWave(); bool AllocateWave(int const i, int const size, char const *name); void ScheduleEvent(int const time, dword const data); void MidiOut(int const dev, dword const data); short const *GetOscillatorTable(int const waveform); // envelopes int GetEnvSize(int const wave, int const env); bool GetEnvPoint(int const wave, int const env, int const i, word &x, word &y, int &flags); CWaveLevel const *GetNearestWaveLevel(int const i, int const note); // pattern editing void SetNumberOfTracks(int const n); CPattern *CreatePattern(char const *name, int const length); CPattern *GetPattern(int const index); char const *GetPatternName(CPattern *ppat); void RenamePattern(char const *oldname, char const *newname); void DeletePattern(CPattern *ppat); int GetPatternData(CPattern *ppat, int const row, int const group, int const track, int const field); void SetPatternData(CPattern *ppat, int const row, int const group, int const track, int const field, int const value); // sequence editing CSequence *CreateSequence(); void DeleteSequence(CSequence *pseq); // special ppat values for GetSequenceData and SetSequenceData // empty = NULL // = (CPattern *)1 // = (CPattern *)2 // = (CPattern *)3 CPattern *GetSequenceData(int const row); void SetSequenceData(int const row, CPattern *ppat); // buzz v1.2 (MI_VERSION 15) additions start here (need one version without that) void SetMachineInterfaceEx(CMachineInterfaceEx *pex); // group 1=global, 2=track void ControlChange__obsolete__(int group, int track, int param, int value); // set value of parameter // direct calls to audiodriver, used by WaveInput and WaveOutput // shouldn't be used for anything else int ADGetnumChannels(bool input); void ADWrite(int channel, float *psamples, int numsamples); void ADRead(int channel, float *psamples, int numsamples); CMachine *GetThisMachine(); // only call this in Init()! void ControlChange(CMachine *pmac, int group, int track, int param, int value); // set value of parameter (group & 16 == don't record) // returns pointer to the sequence if there is a pattern playing CSequence *GetPlayingSequence(CMachine *pmac); // gets ptr to raw pattern data for row of a track of a currently playing pattern (or something like that) void *GetPlayingRow(CSequence *pseq, int group, int track); int GetStateFlags(); void SetnumOutputChannels(CMachine *pmac, int n); // if n=1 Work(), n=2 WorkMonoToStereo() void SetEventHandler(CMachine *pmac, BEventType et, EVENT_HANDLER_PTR p, void *param); char const *GetWaveName(int const i); void SetInternalWaveName(CMachine *pmac, int const i, char const *name); // i >= 1, NULL name to clear void GetMachineNames(CMachineDataOutput *pout); // *pout will get one name per Write() CMachine *GetMachine(char const *name); CMachineInfo const *GetMachineInfo(CMachine *pmac); char const *GetMachineName(CMachine *pmac); bool GetInput(int index, float *psamples, int numsamples, bool stereo, float *extrabuffer); }; #endif // BUZZ_MACHINE_CALLBACKS_H bml-0.6.1/src/BuzzMachineLoader/OscTable.h0000644042355400116100000000200211576362476015234 00000000000000/* $Id: OscTable.h 1740 2008-04-16 06:19:17Z ensonic $ * * Buzz Machine Loader * Copyright (C) 2006 Buzztard team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef OSCTABLE_H #define OSCTABLE_H extern "C" const short OscTable[6][4096]; #endif // OSCTABLE_H bml-0.6.1/src/BuzzMachineLoader/BuzzMachineLoader.cpp0000644042355400116100000005706611642673555017462 00000000000000/* $Id: BuzzMachineLoader.cpp 3017 2010-09-24 18:20:51Z ensonic $ * * Buzz Machine Loader * Copyright (C) 2006 Buzztard team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #define BUZZ_MACHINE_LOADER_CPP #define BUZZ_MACHINE_LOADER #ifdef WIN32 #include "stdafx.h" #include #else #include "windef.h" #include #endif #include #include #include #include "debug.h" #include "MachineInterface.h" #include "BuzzMachineCallbacks.h" #include "BuzzMachineCallbacksPre12.h" #include "MachineDataImpl.h" #include "CMachine.h" #include "BuzzMachineLoader.h" #include "dsplib.h" #ifdef _MSC_VER #define DE __declspec(dllexport) #else #define DE #endif // buzz emulation code typedef void (*CMIInitPtr)(CMachineInterface *_this, CMachineDataInput * const pi); // globals CMasterInfo master_info; // prototypes extern "C" DE void bm_free(BuzzMachine *bm); extern "C" DE BuzzMachine *bm_new(BuzzMachineHandle *bmh); extern "C" DE void bm_init(BuzzMachine *bm, unsigned long blob_size, unsigned char *blob_data); extern "C" DE void bm_set_attribute_value(BuzzMachine *bm,int index,int value); extern "C" DE void bm_set_global_parameter_value(BuzzMachine *bm,int index,int value); extern "C" DE void bm_set_track_parameter_value(BuzzMachine *bm,int track,int index,int value); // helpers // global API extern "C" DE void bm_set_logger(DebugLoggerFunc func) { debug_log_func=func; } extern "C" DE void bm_set_master_info(long bpm, long tpb, long srat) { master_info.BeatsPerMin=bpm; /* 120 */ master_info.TicksPerBeat=tpb; /* 4 */ master_info.SamplesPerSec=srat; /* 44100 */ master_info.SamplesPerTick=(int)((60*master_info.SamplesPerSec)/(master_info.BeatsPerMin*master_info.TicksPerBeat)); master_info.PosInTick=0; /*master_info.SamplesPerTick-1;*/ master_info.TicksPerSec=(float)master_info.SamplesPerSec/(float)master_info.SamplesPerTick; #ifdef _MSC_VER DSP_Init(master_info.SamplesPerSec); #else /* todo: we need a way to link fastcall stuff from mingw-cross * undefined symbol: _Z8DSP_Initi * right now we link statically and call this from the plugins. */ //DSP_Init(master_info.SamplesPerSec); #endif } // library api extern "C" DE void bm_close(BuzzMachineHandle *bmh) { if(bmh) { if(bmh->bm) { bm_free(bmh->bm); } if(bmh->lib_name) { free(bmh->lib_name); } if(bmh->h) { #ifdef WIN32 FreeLibrary((HMODULE)(bmh->h)); #else dlclose(bmh->h); #endif DBG(" dll unloaded\n"); } free(bmh); } } extern "C" DE BuzzMachineHandle *bm_open(char *bm_file_name) { BuzzMachineHandle *bmh=(BuzzMachineHandle *)calloc(sizeof(BuzzMachineHandle),1); GetInfoPtr GetInfo=NULL; CreateMachinePtr CreateMachine=NULL; #ifdef WIN32 bmh->h=(void*)LoadLibraryA(bm_file_name); #else bmh->h=dlopen(bm_file_name,RTLD_LAZY); #endif if(!bmh->h) { #ifdef WIN32 DBG1(" failed to load machine dll from \"%s\"\n",bm_file_name); #else DBG2(" failed to load machine dll from \"%s\": %s\n",bm_file_name,dlerror()); #endif bm_close(bmh); return(NULL); } DBG1(" dll %s loaded\n",bm_file_name); bmh->lib_name=strdup(bm_file_name); //-- get the two dll entries #ifdef WIN32 GetInfo =(GetInfoPtr )GetProcAddress((HMODULE)(bmh->h),"GetInfo"); CreateMachine=(CreateMachinePtr)GetProcAddress((HMODULE)(bmh->h),"CreateMachine"); #else GetInfo =(GetInfoPtr )dlsym(bmh->h,"GetInfo"); CreateMachine=(CreateMachinePtr)dlsym(bmh->h,"CreateMachine"); #endif if(!GetInfo) { DBG(" failed to connect to GetInfo method\n"); bm_close(bmh); return(NULL); } if(!CreateMachine) { DBG(" failed to connect to GreateMachine method\n"); bm_close(bmh); return(NULL); } bmh->CreateMachine=CreateMachine; DBG(" symbols connected\n"); //-- call GetInfo bmh->machine_info=GetInfo(); DBG(" GetInfo() called\n"); //-- apply fixes if(!bmh->machine_info->minTracks) { if(bmh->machine_info->numTrackParameters) { DBG("!! buggy machine, numTrackParams>0, but minTracks=0\n"); bmh->machine_info->numTrackParameters=0; } if(bmh->machine_info->maxTracks) { DBG("!! buggy machine, maxTracks>0, but minTracks=0\n"); bmh->machine_info->maxTracks=0; } } //-- we need to temporarily create an instance to query extra data if((bmh->bm=bm_new(bmh))) { bm_init(bmh->bm,0,NULL); if(bmh->bm->mdkHelper) { if(bmh->bm->mdkHelper->numChannels) { bmh->mdk_num_channels=bmh->bm->mdkHelper->numChannels; } } } else { DBG(" CreateMachine() failed\n"); bm_close(bmh); return(NULL); } return(bmh); } extern "C" DE int bm_get_machine_info(BuzzMachineHandle *bmh,BuzzMachineProperty key,void *value) { int ret=TRUE; int *ival; const char **sval; if(!value) return(FALSE); ival=(int *)value; sval=(const char **)value; switch(key) { case BM_PROP_TYPE: *ival=bmh->machine_info->Type;break; case BM_PROP_VERSION: *ival=bmh->machine_info->Version;break; case BM_PROP_FLAGS: *ival=bmh->machine_info->Flags;break; case BM_PROP_MIN_TRACKS: *ival=bmh->machine_info->minTracks;break; case BM_PROP_MAX_TRACKS: *ival=bmh->machine_info->maxTracks;break; case BM_PROP_NUM_GLOBAL_PARAMS: *ival=bmh->machine_info->numGlobalParameters;break; case BM_PROP_NUM_TRACK_PARAMS: *ival=bmh->machine_info->numTrackParameters;break; case BM_PROP_NUM_ATTRIBUTES: *ival=bmh->machine_info->numAttributes;break; case BM_PROP_NAME: *sval=bmh->machine_info->Name;break; case BM_PROP_SHORT_NAME: *sval=bmh->machine_info->ShortName;break; case BM_PROP_AUTHOR: *sval=bmh->machine_info->Author;break; case BM_PROP_COMMANDS: *sval=bmh->machine_info->Commands;break; case BM_PROP_DLL_NAME: *sval=bmh->lib_name;break; case BM_PROP_NUM_INPUT_CHANNELS: //*ival=(bm->mdkHelper && bm->mdkHelper->numChannels)?bm->mdkHelper->numChannels:1; if(bmh->mdk_num_channels) { *ival=bmh->mdk_num_channels; } else { *ival=1; } break; case BM_PROP_NUM_OUTPUT_CHANNELS: //*ival=(bm->mdkHelper && bm->mdkHelper->numChannels==2)?2:((bm->machine_info->Flags&MIF_MONO_TO_STEREO)?2:1); if(bmh->mdk_num_channels==2) { *ival=2; } else { if(bmh->machine_info->Flags&MIF_MONO_TO_STEREO) { *ival=2; } else { *ival=1; } } break; default: ret=FALSE; } return(ret); } static int bm_get_parameter_info(BuzzMachineHandle *bmh,int index,BuzzMachineParameter key,void *value) { int ret=TRUE; int *ival; const char **sval; ival=(int *)value; sval=(const char **)value; switch(key) { case BM_PARA_TYPE: *ival=bmh->machine_info->Parameters[index]->Type;break; case BM_PARA_NAME: *sval=bmh->machine_info->Parameters[index]->Name;break; case BM_PARA_DESCRIPTION: *sval=bmh->machine_info->Parameters[index]->Description;break; case BM_PARA_MIN_VALUE: *ival=bmh->machine_info->Parameters[index]->MinValue;break; case BM_PARA_MAX_VALUE: *ival=bmh->machine_info->Parameters[index]->MaxValue;break; case BM_PARA_NO_VALUE: *ival=bmh->machine_info->Parameters[index]->NoValue;break; case BM_PARA_FLAGS: *ival=bmh->machine_info->Parameters[index]->Flags;break; case BM_PARA_DEF_VALUE: *ival=bmh->machine_info->Parameters[index]->DefValue;break; default: ret=FALSE; } return(ret); } extern "C" DE int bm_get_global_parameter_info(BuzzMachineHandle *bmh,int index,BuzzMachineParameter key,void *value) { if(!value) return(FALSE); if(!(indexmachine_info->numGlobalParameters)) return(FALSE); return(bm_get_parameter_info(bmh,index,key,value)); } extern "C" DE int bm_get_track_parameter_info(BuzzMachineHandle *bmh,int index,BuzzMachineParameter key,void *value) { if(!value) return(FALSE); if(!(indexmachine_info->numTrackParameters)) return(FALSE); return(bm_get_parameter_info(bmh,(bmh->machine_info->numGlobalParameters+index),key,value)); } extern "C" DE int bm_get_attribute_info(BuzzMachineHandle *bmh,int index,BuzzMachineAttribute key,void *value) { int ret=TRUE; int *ival; const char **sval; if(!value) return(FALSE); if(!(indexmachine_info->numAttributes)) return(FALSE); ival=(int *)value; sval=(const char **)value; switch(key) { case BM_ATTR_NAME: *sval=bmh->machine_info->Attributes[index]->Name;break; case BM_ATTR_MIN_VALUE: *ival=bmh->machine_info->Attributes[index]->MinValue;break; case BM_ATTR_MAX_VALUE: *ival=bmh->machine_info->Attributes[index]->MaxValue;break; case BM_ATTR_DEF_VALUE: *ival=bmh->machine_info->Attributes[index]->DefValue;break; default: ret=FALSE; } return(ret); } extern "C" DE char const *bm_describe_global_value(BuzzMachineHandle *bmh,int const param,int const value) { static const char *empty=""; if(!(parammachine_info->numGlobalParameters)) return(empty); //DBG2("(param=%d,value=%d)\n",param,value); return(bmh->bm->machine_iface->DescribeValue(param,value)); } extern "C" DE char const *bm_describe_track_value(BuzzMachineHandle *bmh,int const param,int const value) { static const char *empty=""; if(!(parammachine_info->numTrackParameters)) return(empty); //DBG2("(param=%d,value=%d)\n",param,value); return(bmh->bm->machine_iface->DescribeValue(bmh->machine_info->numGlobalParameters+param,value)); } // instance api extern "C" DE void bm_free(BuzzMachine *bm) { if(bm) { CMICallbacks *callbacks = bm->callbacks; DBG("freeing\n"); delete bm->machine_iface; delete bm->machine; if(callbacks) { int version = bm->machine_info->Version; DBG1("freeing callbacks 0x%04x\n",version); if((version & 0xff) < 15) { delete (BuzzMachineCallbacksPre12 *)callbacks; DBG(" freed old callback instance\n"); } else { delete (BuzzMachineCallbacks *)callbacks; DBG(" freed callback instance\n"); } } free(bm); } } extern "C" DE BuzzMachine *bm_new(BuzzMachineHandle *bmh) { BuzzMachine *bm=(BuzzMachine *)calloc(sizeof(BuzzMachine),1); // copy some fields from bmh for convinient access bm->bmh=bmh; bm->machine_info=bm->bmh->machine_info; // call CreateMachine bm->machine_iface=bm->bmh->CreateMachine(); DBG(" CreateMachine() called\n"); // we need to create a CMachine object bm->machine=new CMachine(bm->machine_iface,bm->machine_info); // not callbacks set by host so far bm->host_callbacks = NULL; DBG1(" mi-version 0x%04x\n",bm->machine_info->Version); if((bm->machine_info->Version & 0xff) < 15) { bm->callbacks=(CMICallbacks *)new BuzzMachineCallbacksPre12(bm->machine,bm->machine_iface,bm->machine_info,&bm->host_callbacks); DBG(" old callback instance created\n"); } else { bm->callbacks=(CMICallbacks *)new BuzzMachineCallbacks(bm->machine,bm->machine_iface,bm->machine_info,&bm->host_callbacks); DBG(" callback instance created\n"); } // FIXME: should we do this earlier? bm->machine_iface->pMasterInfo=&master_info; bm->machine_iface->pCB=bm->callbacks; return(bm); } extern "C" DE void bm_init(BuzzMachine *bm, unsigned long blob_size, unsigned char *blob_data) { int i,j; DBG2(" bm_init(bm,%ld,%p)\n",blob_size,blob_data); // initialise attributes for(i=0;imachine_info->numAttributes;i++) { bm_set_attribute_value(bm,i,bm->machine_info->Attributes[i]->DefValue); } DBG(" attributes initialized\n"); // create the machine data input CMachineDataInput * pcmdii = NULL; if (blob_size && blob_data) { pcmdii = new CMachineDataInputImpl(blob_data, blob_size); } // call Init (this also calles mdkHelper::Init() bm->machine_iface->Init(pcmdii); DBG(" CMachineInterface::Init() called\n"); // create and get mdk implementation if((bm->machine_info->Version & 0xff) >= 15) { // imho mdk only works with for machines that use buzz 1.2 api // we need to avoid creating mdkimpl here, if the machine is an mdkmachine // its already created // CMDKMachineInterface::Init() also sets CMachineInterfaceEx if(((BuzzMachineCallbacks *)bm->callbacks)->machine_ex) { bm->mdkHelper = (CMDKImplementation*)bm->callbacks->GetNearestWaveLevel(-1,-1); DBG1(" numInputChannels=%d\n",(bm->mdkHelper)?bm->mdkHelper->numChannels:0); // if numChannels=0, its not a mdk-machine and numChannels=1 } } // call AttributesChanged always //if(bm->machine_info->numAttributes>0) { bm->machine_iface->AttributesChanged(); DBG(" CMachineInterface::AttributesChanged() called\n"); //} // call SetNumTracks //DBG1(" CMachineInterface::SetNumTracks(%d)\n",bm->machine_info->minTracks); // calling this without the '-1' crashes: Automaton Parametric EQ.dll //bm->machine_iface->SetNumTracks(bm->machine_info->minTracks-1); bm->machine_iface->SetNumTracks(bm->machine_info->minTracks); DBG1(" CMachineInterface::SetNumTracks(%d) called\n",bm->machine_info->minTracks); // FIXME: CyanPhase DTMF-1 access gval.xxx in mi::Init // -> so we might need to call these before // initialise global parameters (DefValue or NoValue, Buzz seems to use NoValue) for(i=0;imachine_info->numGlobalParameters;i++) { if(bm->machine_info->Parameters[i]->Flags&MPF_STATE) { bm_set_global_parameter_value(bm,i,bm->machine_info->Parameters[i]->DefValue); } else { bm_set_global_parameter_value(bm,i,bm->machine_info->Parameters[i]->NoValue); } } DBG(" global parameters initialized\n"); // initialise track parameters if((bm->machine_info->minTracks>0) && (bm->machine_info->maxTracks>0)) { DBG3(" need to initialize %d track params for tracks: %d...%d\n",bm->machine_info->numTrackParameters,bm->machine_info->minTracks,bm->machine_info->maxTracks); for(j=0;jmachine_info->maxTracks;j++) { for(i=0;imachine_info->numTrackParameters;i++) { if(bm->machine_info->Parameters[bm->machine_info->numGlobalParameters+i]->Flags&MPF_STATE) { bm_set_track_parameter_value(bm,j,i,bm->machine_info->Parameters[bm->machine_info->numGlobalParameters+i]->DefValue); } else { bm_set_track_parameter_value(bm,j,i,bm->machine_info->Parameters[bm->machine_info->numGlobalParameters+i]->NoValue); } } } } DBG(" track parameters initialized\n"); /* we've given the machine the initial global- and track-parameters, * and the attributes, give it a tick * - tick HERE rather than later, to give (for example) the Master machine a * chance to update its state before any other machines need to rely on it * - tick AFTER AttributesChanged, and after we've set initial track and * global data for machine) */ bm->machine_iface->Tick(); DBG(" CMachineInterface::Tick() called\n"); if(bm->machine_info->Flags&MIF_USES_LIB_INTERFACE) { DBG(" MIF_USES_LIB_INTERFACE"); FIXME; } } extern "C" DE void * bm_get_track_parameter_location(BuzzMachine *bm,int track,int index) { void *res=NULL; if(!(trackmachine_info->maxTracks)) return(0); if(!(indexmachine_info->numTrackParameters)) return(0); if(!(bm->machine_iface->TrackVals)) return(0); byte *ptr=(byte *)bm->machine_iface->TrackVals; if(!ptr) { DBG(" -> machine->TrackVals is NULL!\n"); } // @todo prepare pointer array in bm_init for(int j=0;j<=track;j++) { for(int i=0;imachine_info->numTrackParameters;i++) { switch(bm->machine_info->Parameters[bm->machine_info->numGlobalParameters+i]->Type) { case pt_note: case pt_switch: case pt_byte: if((j==track) && (i==index)) res=(void *)ptr; else ptr++; break; case pt_word: if((j==track) && (i==index)) res=(void *)ptr; else ptr+=2; break; } } } return(res); } extern "C" DE int bm_get_track_parameter_value(BuzzMachine *bm,int track,int index) { int value=0; if(!(indexmachine_info->numTrackParameters)) return(0); if(!(bm->machine_iface->TrackVals)) return(0); void *ptr=bm_get_track_parameter_location(bm,track,index); switch(bm->machine_info->Parameters[bm->machine_info->numGlobalParameters+index]->Type) { case pt_note: case pt_switch: case pt_byte: value=(int)(*((byte *)ptr)); break; case pt_word: value=(int)(*((word *)ptr)); break; } return(value); } extern "C" DE void bm_set_track_parameter_value(BuzzMachine *bm,int track,int index,int value) { if(!(indexmachine_info->numTrackParameters)) return; if(!(bm->machine_iface->TrackVals)) return; void *ptr=bm_get_track_parameter_location(bm,track,index); switch(bm->machine_info->Parameters[bm->machine_info->numGlobalParameters+index]->Type) { case pt_note: case pt_switch: case pt_byte: (*((byte *)ptr))=(byte)value; break; case pt_word: (*((word *)ptr))=(word)value; break; } } extern "C" DE void * bm_get_global_parameter_location(BuzzMachine *bm,int index) { void *res=NULL; if(!(indexmachine_info->numGlobalParameters)) return(0); if(!(bm->machine_iface->GlobalVals)) return(0); byte *ptr=(byte *)bm->machine_iface->GlobalVals; if(!ptr) { DBG(" -> machine->GlobalVals is NULL!\n"); } // @todo prepare pointer array in bm_init for(int i=0;i<=index;i++) { switch(bm->machine_info->Parameters[i]->Type) { case pt_note: case pt_switch: case pt_byte: if(i==index) res=(void *)ptr; else ptr++; break; case pt_word: if(i==index) res=(void *)ptr; else ptr+=2; break; } } return(res); } extern "C" DE int bm_get_global_parameter_value(BuzzMachine *bm,int index) { int value=0; if(!(indexmachine_info->numGlobalParameters)) return(0); if(!(bm->machine_iface->GlobalVals)) return(0); void *ptr=bm_get_global_parameter_location(bm,index); switch(bm->machine_info->Parameters[index]->Type) { case pt_note: case pt_switch: case pt_byte: value=(int)(*((byte *)ptr)); break; case pt_word: value=(int)(*((word *)ptr)); break; } return(value); } extern "C" DE void bm_set_global_parameter_value(BuzzMachine *bm,int index,int value) { if(!(indexmachine_info->numGlobalParameters)) return; if(!(bm->machine_iface->GlobalVals)) return; void *ptr=bm_get_global_parameter_location(bm,index); //printf("%s: index=%d, GlobalVals :%p, %p\n",__PRETTY_FUNCTION__,index,bm->machine_iface->GlobalVals,ptr); switch(bm->machine_info->Parameters[index]->Type) { case pt_note: case pt_switch: case pt_byte: (*((byte *)ptr))=(byte)value; break; case pt_word: (*((word *)ptr))=(word)value; break; } } extern "C" DE void * bm_get_attribute_location(BuzzMachine *bm,int index) { if(!(indexmachine_info->numAttributes)) return(0); if(!(bm->machine_iface->AttrVals)) return(0); return((void *)&bm->machine_iface->AttrVals[index]); } extern "C" DE int bm_get_attribute_value(BuzzMachine *bm,int index) { if(!(indexmachine_info->numAttributes)) return(0); if(!(bm->machine_iface->AttrVals)) return(0); return(bm->machine_iface->AttrVals[index]); } extern "C" DE void bm_set_attribute_value(BuzzMachine *bm,int index,int value) { if(!(indexmachine_info->numAttributes)) return; if(!(bm->machine_iface->AttrVals)) return; bm->machine_iface->AttrVals[index]=value; } extern "C" DE void bm_attributes_changed(BuzzMachine *bm) { // call AttributesChanged // FIXME: should we call this always? if(bm->machine_info->numAttributes>0) { bm->machine_iface->AttributesChanged(); DBG(" CMachineInterface::AttributesChanged() called\n"); } } extern "C" DE void bm_tick(BuzzMachine *bm) { bm->machine_iface->Tick(); // FIXME: do we need to bump that from somewhere //DBG1("master_info.PosInTick = %d\n", master_info.PosInTick); } extern "C" DE bool bm_work(BuzzMachine *bm,float *psamples, int numsamples, int const mode) { bool res=0; res=bm->machine_iface->Work(psamples,numsamples,mode); return(res); } extern "C" DE bool bm_work_m2s(BuzzMachine *bm, float *pin, float *pout, int numsamples, int const mode) { bool res=0; res=bm->machine_iface->WorkMonoToStereo(pin,pout,numsamples,mode); return(res); } extern "C" DE void bm_stop(BuzzMachine *bm) { bm->machine_iface->Stop(); } /* virtual void Command(int const i) {} */ extern "C" DE void bm_set_num_tracks(BuzzMachine *bm, int num) { DBG1("(num=%d)\n",num); bm->machine_iface->SetNumTracks(num); // we don't need to initialize the track params, as the max-num of tracks is already initialized in bm_init() // dunno if some machines would require this } /* virtual void MuteTrack(int const i) {} virtual bool IsTrackMuted(int const i) const { return false; } */ extern "C" DE void bm_set_callbacks(BuzzMachine *bm, CHostCallbacks *callbacks) { bm->host_callbacks=callbacks; } bml-0.6.1/src/bmltest_info.h0000644042355400116100000002072711576362477012676 00000000000000/* $Id: bmltest_info.h 3166 2011-01-28 22:51:41Z ensonic $ * * Buzz Machine Loader * Copyright (C) 2009 Buzztard team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ void bml(test_info(char *libpath)) { // buzz machine handle void *bmh,*bm; char *str; int type,val,i,num,tracks; int maval,mival,noval,ptrval=0; double ts1, ts2; printf("%s(\"%s\")\n",__FUNCTION__,libpath); ts1=_get_timestamp(); if((bmh=bml(open(libpath)))) { if((bm=bml(new(bmh)))) { char *machine_types[]={"MT_MASTER","MT_GENERATOR","MT_EFFECT" }; char *parameter_types[]={"PT_NOTE","PT_SWITCH","PT_BYTE","PT_WORD" }; void *addr; ts2=_get_timestamp(); printf(" machine created in %lf sec\n",ts2-ts1); ts1=ts2; bml(init(bm,0,NULL)); ts2=_get_timestamp(); printf(" machine initialized in %lf sec\n",ts2-ts1); if(bml(get_machine_info(bmh,BM_PROP_SHORT_NAME,(void *)&str))) printf(" Short Name: \"%s\"\n",str); if(bml(get_machine_info(bmh,BM_PROP_NAME,(void *)&str))) printf(" Name: \"%s\"\n",str); if(bml(get_machine_info(bmh,BM_PROP_AUTHOR,(void *)&str))) printf(" Author: \"%s\"\n",str); if(bml(get_machine_info(bmh,BM_PROP_COMMANDS,(void *)&str))) { if(str) { char *p=str; while(*p) { if(*p=='\n') *p=','; p++; } } printf(" Commands: \"%s\"\n",str?str:""); } if(bml(get_machine_info(bmh,BM_PROP_TYPE,(void *)&val))) printf(" Type: %i -> \"%s\"\n",val,((val<3)?machine_types[val]:"unknown")); if(bml(get_machine_info(bmh,BM_PROP_VERSION,(void *)&val))) printf(" Version: %3.1f\n",(float)val/10.0); if(bml(get_machine_info(bmh,BM_PROP_FLAGS,(void *)&val))) { printf(" Flags: 0x%x\n",val); if(val&(1<<0)) puts(" MIF_MONO_TO_STEREO"); if(val&(1<<1)) puts(" MIF_PLAYS_WAVES"); if(val&(1<<2)) puts(" MIF_USES_LIB_INTERFACE"); if(val&(1<<3)) puts(" MIF_USES_INSTRUMENTS"); if(val&(1<<4)) puts(" MIF_DOES_INPUT_MIXING"); if(val&(1<<5)) puts(" MIF_NO_OUTPUT"); if(val&(1<<6)) puts(" MIF_CONTROL_MACHINE"); if(val&(1<<7)) puts(" MIF_INTERNAL_AUX"); //if(val&) puts(" "); } if(bml(get_machine_info(bmh,BM_PROP_MIN_TRACKS,(void *)&val))) printf(" MinTracks: %i\n",val); tracks=val; if(bml(get_machine_info(bmh,BM_PROP_MAX_TRACKS,(void *)&val))) printf(" MaxTracks: %i\n",val); if(bml(get_machine_info(bmh,BM_PROP_NUM_INPUT_CHANNELS,(void *)&val))) printf(" InputChannels: %d\n",val); if(bml(get_machine_info(bmh,BM_PROP_NUM_OUTPUT_CHANNELS,(void *)&val))) printf(" OutputChannels: %d\n",val); fflush(stdout); if(bml(get_machine_info(bmh,BM_PROP_NUM_GLOBAL_PARAMS,(void *)&val))) { printf(" NumGlobalParams: %i\n",val);fflush(stdout); num=val; for(i=0;i \"%s\"\n",type,((type<4)?parameter_types[type]:"unknown")); if(bml(get_global_parameter_info(bmh,i,BM_PARA_NAME,(void *)&str))) printf(" Name: \"%s\"\n",str); if(bml(get_global_parameter_info(bmh,i,BM_PARA_DESCRIPTION,(void *)&str))) printf(" Description: \"%s\"\n",str); if(bml(get_global_parameter_info(bmh,i,BM_PARA_FLAGS,(void *)&val))) { printf(" Flags: 0x%x\n",val); if(val&(1<<0)) puts(" MPF_WAVE"); if(val&(1<<1)) puts(" MPF_STATE"); if(val&(1<<2)) puts(" MPF_TICK_ON_EDIT"); //if(val&) puts(" "); } if(bml(get_global_parameter_info(bmh,i,BM_PARA_MIN_VALUE,(void *)&mival)) && bml(get_global_parameter_info(bmh,i,BM_PARA_MAX_VALUE,(void *)&maval)) && bml(get_global_parameter_info(bmh,i,BM_PARA_NO_VALUE,(void *)&noval)) && bml(get_global_parameter_info(bmh,i,BM_PARA_DEF_VALUE,(void *)&val))) printf(" Value: %d .. %d .. %d [%d]\n",mival,val,maval,noval); val = bml(get_global_parameter_value(bm,i)); addr= bml(get_global_parameter_location(bm,i)); str =(char *)bml(describe_global_value(bmh,i,val)); switch(type) { case 0: //PT_NOTE: case 1: //PT_SWITCH: case 2: //PT_BYTE: ptrval=(int)(*(char *)addr); break; case 3: //PT_WORD: ptrval=(int)(*(short *)addr); break; } printf(" RealValue: %d %s (%p -> %d)\n",val,str,addr,ptrval); } } fflush(stdout); if(bml(get_machine_info(bmh,BM_PROP_NUM_TRACK_PARAMS,(void *)&val))) { printf(" NumTrackParams: %i\n",val);fflush(stdout); num=val; if(num && tracks) { for(i=0;i \"%s\"\n",type,((type<4)?parameter_types[type]:"unknown")); if(bml(get_track_parameter_info(bmh,i,BM_PARA_NAME,(void *)&str))) printf(" Name: \"%s\"\n",str); if(bml(get_track_parameter_info(bmh,i,BM_PARA_DESCRIPTION,(void *)&str))) printf(" Description: \"%s\"\n",str); if(bml(get_track_parameter_info(bmh,i,BM_PARA_FLAGS,(void *)&val))) { printf(" Flags: 0x%x\n",val); if(val&(1<<0)) puts(" MPF_WAVE"); if(val&(1<<1)) puts(" MPF_STATE"); if(val&(1<<2)) puts(" MPF_TICK_ON_EDIT"); //if(val&) puts(" "); } if(bml(get_track_parameter_info(bmh,i,BM_PARA_MIN_VALUE,(void *)&mival)) && bml(get_track_parameter_info(bmh,i,BM_PARA_MAX_VALUE,(void *)&maval)) && bml(get_track_parameter_info(bmh,i,BM_PARA_NO_VALUE,(void *)&noval)) && bml(get_track_parameter_info(bmh,i,BM_PARA_DEF_VALUE,(void *)&val))) printf(" Value: %d .. %d .. %d [%d]\n",mival,val,maval,noval); val = bml(get_track_parameter_value(bm,0,i)); addr= bml(get_track_parameter_location(bm,0,i)); str =(char *)bml(describe_track_value(bmh,i,val)); switch(type) { case 0: //PT_NOTE: case 1: //PT_SWITCH: case 2: //PT_BYTE: ptrval=(int)(*(char *)addr); break; case 3: //PT_WORD: ptrval=(int)(*(short *)addr); break; } printf(" RealValue: %d %s (%p -> %d)\n",val,str,addr,ptrval); } } else { if(num) { printf(" WARNING but tracks=0..0\n");fflush(stdout); } } } fflush(stdout); if(bml(get_machine_info(bmh,BM_PROP_NUM_ATTRIBUTES,(void *)&val))) { printf(" NumAttributes: %i\n",val);fflush(stdout); num=val; for(i=0;i * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /* * process data with a buzz machine * * invoke it e.g. as * LD_LIBRARY_PATH=".:./BuzzMachineLoader/.libs" ./bmltest_process ../machines/elak_svf.dll input.raw output1.raw * LD_LIBRARY_PATH=".:./BuzzMachineLoader/.libs" ./bmltest_process ../../buzzmachines/Elak/SVF/libelak_svf.so input.raw output2.raw * LD_LIBRARY_PATH=".:./BuzzMachineLoader/.libs" ./bmltest_process ~/buzztard/lib/Gear/Effects/Jeskola\ NiNjA\ dElaY.dll input.raw output1.raw * LD_LIBRARY_PATH=".:./BuzzMachineLoader/.libs" ./bmltest_process ~/buzztard/lib/Gear/Jeskola_Ninja.so input.raw output1.raw * * aplay -fS16_LE -r44100 input.raw * aplay -fS16_LE -r44100 output1.raw * * plot [0:] [-35000:35000] 'output1.raw' binary format="%short" using 1 with lines * * create test-data: * gst-launch filesrc location=/usr/share/sounds/info.wav ! decodebin ! filesink location=input1.raw * dd count=10 if=/dev/zero of=input2.raw */ #include "config.h" #define _ISOC99_SOURCE /* for isinf() and co. */ #define _BSD_SOURCE /* for setlinebuf() */ #include #include #include #include #include #include #include #include #include //#include #include "bml.h" // like MachineInterface.h::MAX_BUFFER_LENGTH #define BUFFER_SIZE 256 #ifdef HAVE_X86 #define bml(a) bmlw_ ## a #include "bmltest_process.h" #undef bml #endif /* HAVE_X86 */ #define bml(a) bmln_ ## a #include "bmltest_process.h" #undef bml int main( int argc, char **argv ) { setlinebuf(stdout); setlinebuf(stderr); puts("main beg"); if(bml_setup()) { char *lib_name; int sl; #ifdef HAVE_X86 bmlw_set_master_info(120,4,44100); #endif bmln_set_master_info(120,4,44100); puts(" master info initialized"); if(argc>2) { lib_name=argv[1]; sl=strlen(lib_name); if(sl>4) { if(!strcmp(&lib_name[sl-4],".dll")) { #ifdef HAVE_X86 bmlw_test_process(lib_name,argv[2],argv[3]); #else puts("no dll emulation on non x86 platforms"); #endif /* HAVE_X86 */ } else { bmln_test_process(lib_name,argv[2],argv[3]); } } } else puts(" not enough args!"); bml_finalize(); } puts("main end"); return 0; } bml-0.6.1/missing0000754042355400116100000002623311576366620010637 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar*) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: bml-0.6.1/COPYING0000644042355400116100000006364011576362500010270 00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! bml-0.6.1/aclocal.m40000644042355400116100000011161111701127003011050 00000000000000# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],, [m4_warning([this file was generated for autoconf 2.65. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # Figure out how to run the assembler. -*- Autoconf -*- # Copyright (C) 2001, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_PROG_AS # ---------- AC_DEFUN([AM_PROG_AS], [# By default we simply use the C compiler to build assembly code. AC_REQUIRE([AC_PROG_CC]) test "${CCAS+set}" = set || CCAS=$CC test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS AC_ARG_VAR([CCAS], [assembler compiler command (defaults to CC)]) AC_ARG_VAR([CCASFLAGS], [assembler compiler flags (defaults to CFLAGS)]) _AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES([CCAS])])dnl ]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 10 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_PROG_CC_C_O # -------------- # Like AC_PROG_CC_C_O, but changed for automake. AC_DEFUN([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC_C_O])dnl AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl # FIXME: we rely on the cache variable name because # there is no other way. set dummy $CC am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']` eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o if test "$am_t" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi dnl Make sure AC_PROG_CC is never called again, or it will override our dnl setting of CC. m4_define([AC_PROG_CC], [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])]) ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # (`yes' being less verbose, `no' or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [ --enable-silent-rules less verbose build output (undo: `make V=1') --disable-silent-rules verbose build output (undo: `make V=0')]) case $enable_silent_rules in yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/acx_pthread.m4]) m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) bml-0.6.1/configure0000754042355400116100000212016711701127004011127 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.65 for bml 0.6.1. # # Report bugs to . # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: buzztard-devel@lists.sourceforge.net about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error ERROR [LINENO LOG_FD] # --------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with status $?, using 1 if that was 0. as_fn_error () { as_status=$?; test $as_status -eq 0 && as_status=1 if test "$3"; then as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 fi $as_echo "$as_me: error: $1" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac ECHO=${lt_ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then # Yippee, $ECHO works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <<_LT_EOF $* _LT_EOF exit 0 fi # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null then break fi done fi if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$ECHO" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. ECHO='print -r' elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. ECHO='printf %s\n' if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL ECHO="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='bml' PACKAGE_TARNAME='bml' PACKAGE_VERSION='0.6.1' PACKAGE_STRING='bml 0.6.1' PACKAGE_BUGREPORT='buzztard-devel@lists.sourceforge.net' PACKAGE_URL='' ac_unique_file="ChangeLog" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS ARCH_CCASFLAGS ARCH_CFLAGS BML_LIBS BML_CXXFLAGS BML_CFLAGS PTHREAD_CC acx_pthread_config PTHREAD_LIBS PTHREAD_CFLAGS LIBM USE_LCOV_FALSE USE_LCOV_TRUE locv_path USE_X86_FALSE USE_X86_TRUE am__fastdepCCAS_FALSE am__fastdepCCAS_TRUE CCASDEPMODE CCASFLAGS CCAS CXXCPP OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL lt_ECHO RANLIB AR OBJDUMP NM ac_ct_DUMPBIN DUMPBIN LD FGREP EGREP GREP SED LIBTOOL LN_S CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE ac_ct_CC CFLAGS CC am__fastdepCXX_FALSE am__fastdepCXX_TRUE CXXDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CXX CPPFLAGS LDFLAGS CXXFLAGS CXX BML_VERSION_NUMBER BML_VERSION_INFO BML_VERSION BML_MICRO_VERSION BML_MINOR_VERSION BML_MAJOR_VERSION AM_BACKSLASH AM_DEFAULT_VERBOSITY host_os host_vendor host_cpu host build_os build_vendor build_cpu build am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_dependency_tracking enable_shared enable_static with_pic enable_fast_install with_gnu_ld enable_libtool_lock enable_debug enable_coverage ' ac_precious_vars='build_alias host_alias target_alias CXX CXXFLAGS LDFLAGS LIBS CPPFLAGS CCC CC CFLAGS CPP CXXCPP CCAS CCASFLAGS PTHREAD_CFLAGS PTHREAD_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error "unrecognized option: \`$ac_option' Try \`$0 --help' for more information." ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures bml 0.6.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/bml] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of bml 0.6.1:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: `make V=1') --disable-silent-rules verbose build output (undo: `make V=0') --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --enable-debug enable runtime debugging code (default=no) --enable-coverage enable coverage analysis (default=no) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] Some influential environment variables: CXX C++ compiler command CXXFLAGS C++ compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CC C compiler command CFLAGS C compiler flags CPP C preprocessor CXXCPP C++ preprocessor CCAS assembler compiler command (defaults to CC) CCASFLAGS assembler compiler flags (defaults to CFLAGS) PTHREAD_CFLAGS C compiler flags for pthread library PTHREAD_LIBS linker flags for pthread library Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF bml configure 0.6.1 generated by GNU Autoconf 2.65 Copyright (C) 2009 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_cxx_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_compile # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_func # ac_fn_cxx_try_cpp LINENO # ------------------------ # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_cxx_try_cpp # ac_fn_cxx_try_link LINENO # ------------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_cxx_try_link # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( cat <<\_ASBOX ## --------------------------------------------------- ## ## Report this to buzztard-devel@lists.sourceforge.net ## ## --------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_mongrel # ac_fn_c_check_decl LINENO SYMBOL VAR # ------------------------------------ # Tests whether SYMBOL is declared, setting cache variable VAR accordingly. ac_fn_c_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $2 is declared" >&5 $as_echo_n "checking whether $2 is declared... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { #ifndef $2 (void) $2; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_decl cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by bml $as_me 0.6.1, which was generated by GNU Autoconf 2.65. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am__api_version='1.11' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do for ac_t in install-sh install.sh shtool; do if test -f "$ac_dir/$ac_t"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/$ac_t -c" break 2 fi done done if test -z "$ac_aux_dir"; then as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='bml' VERSION='0.6.1' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' ac_config_headers="$ac_config_headers config.h" # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac # Support silent build rules, requires at least automake-1.11. Disable # by either passing --disable-silent-rules to configure or passing V=1 # to make # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=0;; esac AM_BACKSLASH='\' BML_MAJOR_VERSION=0 BML_MINOR_VERSION=6 BML_MICRO_VERSION=0 BML_VERSION=$BML_MAJOR_VERSION.$BML_MINOR_VERSION.$BML_MICRO_VERSION BML_VERSION_INFO=`expr $BML_MAJOR_VERSION + $BML_MINOR_VERSION`:$BML_MICRO_VERSION:$BML_MINOR_VERSION BML_VERSION_NUMBER=`expr $BML_MAJOR_VERSION \* 10000 + $BML_MINOR_VERSION \* 100 + $BML_MICRO_VERSION` cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION_NUMBER ${BML_VERSION_NUMBER} _ACEOF ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler works" >&5 $as_echo_n "checking whether the C++ compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { as_fn_set_status 77 as_fn_error "C++ compiler cannot create executables See \`config.log' for more details." "$LINENO" 5; }; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler default output file name" >&5 $as_echo_n "checking for C++ compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot run C++ compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot compute suffix of object files: cannot compile See \`config.log' for more details." "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CXX" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "no acceptable C compiler found in \$PATH See \`config.log' for more details." "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5 $as_echo_n "checking for library containing strerror... " >&6; } if test "${ac_cv_search_strerror+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char strerror (); int main () { return strerror (); ; return 0; } _ACEOF for ac_lib in '' cposix; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_strerror=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if test "${ac_cv_search_strerror+set}" = set; then : break fi done if test "${ac_cv_search_strerror+set}" = set; then : else ac_cv_search_strerror=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5 $as_echo "$ac_cv_search_strerror" >&6; } ac_res=$ac_cv_search_strerror if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.2.6b' macro_revision='1.3017' ltmain="$ac_aux_dir/ltmain.sh" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if test "${ac_cv_path_SED+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if test "${ac_cv_path_FGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if test "${lt_cv_path_NM+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$ac_tool_prefix"; then for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if test "${lt_cv_nm_interface+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:5315: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:5318: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:5321: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if test "${lt_cv_sys_max_cmd_len+set}" = set; then : $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if test "${lt_cv_deplibs_check_method+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 6515 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if test "${lt_cv_cc_needs_belf+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if test "${lt_cv_apple_cc_single_mod+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if test "${lt_cv_ld_exported_symbols_list+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " eval as_val=\$$as_ac_Header if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 $as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} _lt_caught_CXX_error=yes; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu else _lt_caught_CXX_error=yes fi # Set options enable_dlopen=no enable_win32_dll=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; pic_mode="$withval" else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if test "${lt_cv_objdir+set}" = set; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8435: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:8439: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 $as_echo "$lt_prog_compiler_pic" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if test "${lt_cv_prog_compiler_pic_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8774: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:8778: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8879: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:8883: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8934: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:8938: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; linux* | k*bsd*-gnu) link_all_deplibs=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld='-rpath $libdir' archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi link_all_deplibs=no else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo(void) {} _ACEOF if ac_fn_c_try_link "$LINENO"; then : archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 $as_echo "$archive_cmds_need_lc" >&6; } ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if test "${ac_cv_lib_svld_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if test "${ac_cv_lib_dld_dld_link+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 11318 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self_static+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 11414 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= compiler_needs_object_CXX=no export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_direct_absolute_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no inherit_rpath_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes file_list_spec_CXX='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec_CXX='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty # executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared # libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='' link_all_deplibs_CXX=yes allow_undefined_flag_CXX="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" if test "$lt_cv_apple_cc_single_mod" != "yes"; then archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi else ld_shlibs_CXX=no fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before # switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix[3-9]*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: inherit_rpath_CXX=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [1-5]* | *pgcpp\ [1-5]*) prelink_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' old_archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ $RANLIB $oldlib' archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will use weak symbols archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; xl*) # IBM XL 8.0 on PPC, with GNU ld hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object_CXX=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) ld_shlibs_CXX=yes ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no hardcode_direct_absolute_CXX=yes archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=echo else ld_shlibs_CXX=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) case $host in osf3*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' ;; *) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' ;; esac hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken case $host_os in interix[3-9]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac compiler_lib_search_dirs_CXX= if test -n "${compiler_lib_search_path_CXX}"; then compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic_CXX='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix[4-9]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; xlc* | xlC*) # IBM XL 8.0 on PPC lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-qpic' lt_prog_compiler_static_CXX='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5 $as_echo "$lt_prog_compiler_pic_CXX" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:13370: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:13374: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_CXX=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_CXX=yes fi else lt_cv_prog_compiler_static_works_CXX=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:13469: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:13473: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:13521: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:13525: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix[4-9]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ;; linux* | k*bsd*-gnu) link_all_deplibs_CXX=no ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no with_gnu_ld_CXX=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then archive_cmds_need_lc_CXX=no else archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5 $as_echo "$archive_cmds_need_lc_CXX" >&6; } ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || test -n "$runpath_var_CXX" || test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 $as_echo "$hardcode_action_CXX" >&6; } if test "$hardcode_action_CXX" = relink || test "$inherit_rpath_CXX" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi fi # test -n "$compiler" CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_commands="$ac_config_commands libtool" # Only expand once: # By default we simply use the C compiler to build assembly code. test "${CCAS+set}" = set || CCAS=$CC test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS depcc="$CCAS" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CCAS_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CCAS_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CCAS_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CCAS_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CCAS_dependencies_compiler_type" >&5 $as_echo "$am_cv_CCAS_dependencies_compiler_type" >&6; } CCASDEPMODE=depmode=$am_cv_CCAS_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3; then am__fastdepCCAS_TRUE= am__fastdepCCAS_FALSE='#' else am__fastdepCCAS_TRUE='#' am__fastdepCCAS_FALSE= fi if test "x$CC" != xcc; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 $as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5 $as_echo_n "checking whether cc understands -c and -o together... " >&6; } fi set dummy $CC; ac_cc=`$as_echo "$2" | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` if { as_var=ac_cv_prog_cc_${ac_cc}_c_o; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # We do the test twice because some compilers refuse to overwrite an # existing .o file with -o, though they will create one. ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' rm -f conftest2.* if { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -f conftest2.$ac_objext && { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then eval ac_cv_prog_cc_${ac_cc}_c_o=yes if test "x$CC" != xcc; then # Test first that cc exists at all. if { ac_try='cc -c conftest.$ac_ext >&5' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' rm -f conftest2.* if { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -f conftest2.$ac_objext && { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # cc works too. : else # cc exists but doesn't like -o. eval ac_cv_prog_cc_${ac_cc}_c_o=no fi fi fi else eval ac_cv_prog_cc_${ac_cc}_c_o=no fi rm -f core conftest* fi if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h fi # FIXME: we rely on the cache variable name because # there is no other way. set dummy $CC am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o if test "$am_t" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi ARCH_CFLAGS="" ARCH_CCASFLAGS="" case "x${host_cpu}" in xi?86 | k?) HAVE_X86=yes ;; xx86_64|xamd64) HAVE_X86=no #ARCH_CFLAGS="-m32" #ARCH_CCASFLAGS="-m32" ;; *) HAVE_X86=no ;; esac if test x$HAVE_X86 = xyes; then $as_echo "#define HAVE_X86 1" >>confdefs.h fi if test x$HAVE_X86 = xyes; then USE_X86_TRUE= USE_X86_FALSE='#' else USE_X86_TRUE='#' USE_X86_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable runtime debugging code" >&5 $as_echo_n "checking whether to enable runtime debugging code... " >&6; } # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then : enableval=$enable_debug; else enable_debug="no" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_debug" >&5 $as_echo "$enable_debug" >&6; } if test "$enable_debug" = "yes"; then $as_echo "#define LOG 1" >>confdefs.h DEBUG_CFLAGS="-O0 -Wall -Werror -g" else DEBUG_CFLAGS="" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable coverage analysis" >&5 $as_echo_n "checking whether to enable coverage analysis... " >&6; } # Check whether --enable-coverage was given. if test "${enable_coverage+set}" = set; then : enableval=$enable_coverage; else enable_coverage="no" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_coverage" >&5 $as_echo "$enable_coverage" >&6; } if test "$enable_coverage" = "yes"; then COVERAGE_CFLAGS="-O0 -g -fprofile-arcs -ftest-coverage" COVERAGE_LIBS="-lgcov" # Extract the first word of "lcov", so it can be a program name with args. set dummy lcov; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_locv_path+set}" = set; then : $as_echo_n "(cached) " >&6 else case $locv_path in [\\/]* | ?:[\\/]*) ac_cv_path_locv_path="$locv_path" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_locv_path="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_locv_path" && ac_cv_path_locv_path="no" ;; esac fi locv_path=$ac_cv_path_locv_path if test -n "$locv_path"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $locv_path" >&5 $as_echo "$locv_path" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$lcov_path" != "xno" ; then LCOV_VERSION=`lcov --version|head -n 1| 's/^.* version //'` LCOV_MAJOR=`echo $LCOV_VERSION | cut -d. -f1 | sed s/a-zA-Z\-.*//g` LCOV_MINOR=`echo $LCOV_VERSION | cut -d. -f2 | sed s/a-zA-Z\-.*//g` if [ "$LCOV_MAJOR" -lt "1" ]; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: lcov >= 1.6 is required, you have $LCOV_VERSION" >&5 $as_echo "$as_me: WARNING: lcov >= 1.6 is required, you have $LCOV_VERSION" >&2;} lcov_path="no" elif [ "$LCOV_MAJOR" -eq "1" ] && \ [ "$LCOV_MINOR" -lt "6" ]; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: lcov >= 1.6 is required, you have $LCOV_VERSION" >&5 $as_echo "$as_me: WARNING: lcov >= 1.6 is required, you have $LCOV_VERSION" >&2;} lcov_path="no" fi fi else COVERAGE_CFLAGS="" COVERAGE_LIBS="" fi if test ! x$lcov_path = xyes; then USE_LCOV_TRUE= USE_LCOV_FALSE='#' else USE_LCOV_TRUE='#' USE_LCOV_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi for ac_header in \ alloca.h assert.h byteswap.h dirent.h execinfo.h kstat.h libgen.h malloc.h \ netdb.h ucontext.h \ sys/mman.h sys/mixer.h sys/times.h sys/ioctl.h sys/param.h \ do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" eval as_val=\$$as_ac_Header if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_decl "$LINENO" "sysi86" "ac_cv_have_decl_sysi86" " #include " if test "x$ac_cv_have_decl_sysi86" = x""yes; then : $as_echo "#define HAVE_SYSI86 1" >>confdefs.h fi LIBM= case $host in *-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mwvalidcheckl in -lmw" >&5 $as_echo_n "checking for _mwvalidcheckl in -lmw... " >&6; } if test "${ac_cv_lib_mw__mwvalidcheckl+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lmw $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char _mwvalidcheckl (); int main () { return _mwvalidcheckl (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_mw__mwvalidcheckl=yes else ac_cv_lib_mw__mwvalidcheckl=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mw__mwvalidcheckl" >&5 $as_echo "$ac_cv_lib_mw__mwvalidcheckl" >&6; } if test "x$ac_cv_lib_mw__mwvalidcheckl" = x""yes; then : LIBM="-lmw" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5 $as_echo_n "checking for cos in -lm... " >&6; } if test "${ac_cv_lib_m_cos+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char cos (); int main () { return cos (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_m_cos=yes else ac_cv_lib_m_cos=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5 $as_echo "$ac_cv_lib_m_cos" >&6; } if test "x$ac_cv_lib_m_cos" = x""yes; then : LIBM="$LIBM -lm" fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5 $as_echo_n "checking for cos in -lm... " >&6; } if test "${ac_cv_lib_m_cos+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char cos (); int main () { return cos (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_m_cos=yes else ac_cv_lib_m_cos=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5 $as_echo "$ac_cv_lib_m_cos" >&6; } if test "x$ac_cv_lib_m_cos" = x""yes; then : LIBM="-lm" fi ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu acx_pthread_ok=no # We used to check for pthread.h first, but this fails if pthread.h # requires special compiler flags (e.g. on True64 or Sequent). # It gets checked for in the link test anyway. # First of all, check if the user has set any of the PTHREAD_LIBS, # etcetera environment variables, and if threads linking works using # them: if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5 $as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_join (); int main () { return pthread_join (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : acx_pthread_ok=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_ok" >&5 $as_echo "$acx_pthread_ok" >&6; } if test x"$acx_pthread_ok" = xno; then PTHREAD_LIBS="" PTHREAD_CFLAGS="" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" fi # We must check for the threads library under a number of different # names; the ordering is very important because some systems # (e.g. DEC) have both -lpthread and -lpthreads, where one of the # libraries is broken (non-POSIX). # Create a list of thread flags to try. Items starting with a "-" are # C compiler flags, and other items are library names, except for "none" # which indicates that we try without any flags at all, and "pthread-config" # which is a program returning the flags for the Pth emulation library. acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" # The ordering *is* (sometimes) important. Some notes on the # individual items follow: # pthreads: AIX (must check this before -lpthread) # none: in case threads are in libc; should be tried before -Kthread and # other compiler flags to prevent continual compiler warnings # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) # -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) # -pthreads: Solaris/gcc # -mthreads: Mingw32/gcc, Lynx/gcc # -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it # doesn't hurt to check since this sometimes defines pthreads too; # also defines -D_REENTRANT) # ... -mt is also the pthreads flag for HP/aCC # pthread: Linux, etcetera # --thread-safe: KAI C++ # pthread-config: use pthread-config program (for GNU Pth library) case "${host_cpu}-${host_os}" in *solaris*) # On Solaris (at least, for some versions), libc contains stubbed # (non-functional) versions of the pthreads routines, so link-based # tests will erroneously succeed. (We need to link with -pthreads/-mt/ # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather # a function called by this macro, so we could check for that, but # who knows whether they'll stub that too in a future libc.) So, # we'll just look for -pthreads and -lpthread first: acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags" ;; esac if test x"$acx_pthread_ok" = xno; then for flag in $acx_pthread_flags; do case $flag in none) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 $as_echo_n "checking whether pthreads work without any flags... " >&6; } ;; -*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5 $as_echo_n "checking whether pthreads work with $flag... " >&6; } PTHREAD_CFLAGS="$flag" ;; pthread-config) # Extract the first word of "pthread-config", so it can be a program name with args. set dummy pthread-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_acx_pthread_config+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$acx_pthread_config"; then ac_cv_prog_acx_pthread_config="$acx_pthread_config" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_acx_pthread_config="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_acx_pthread_config" && ac_cv_prog_acx_pthread_config="no" fi fi acx_pthread_config=$ac_cv_prog_acx_pthread_config if test -n "$acx_pthread_config"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_config" >&5 $as_echo "$acx_pthread_config" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x"$acx_pthread_config" = xno; then continue; fi PTHREAD_CFLAGS="`pthread-config --cflags`" PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5 $as_echo_n "checking for the pthreads library -l$flag... " >&6; } PTHREAD_LIBS="-l$flag" ;; esac save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Check for various functions. We must include pthread.h, # since some functions may be macros. (On the Sequent, we # need a special flag -Kthread to make this header compile.) # We check for pthread_join because it is in -lpthread on IRIX # while pthread_create is in libc. We check for pthread_attr_init # due to DEC craziness with -lpthreads. We check for # pthread_cleanup_push because it is one of the few pthread # functions on Solaris that doesn't have a non-functional libc stub. # We try pthread_create on general principles. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { pthread_t th; pthread_join(th, 0); pthread_attr_init(0); pthread_cleanup_push(0, 0); pthread_create(0,0,0,0); pthread_cleanup_pop(0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : acx_pthread_ok=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_ok" >&5 $as_echo "$acx_pthread_ok" >&6; } if test "x$acx_pthread_ok" = xyes; then break; fi PTHREAD_LIBS="" PTHREAD_CFLAGS="" done fi # Various other checks: if test "x$acx_pthread_ok" = xyes; then save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 $as_echo_n "checking for joinable pthread attribute... " >&6; } attr_name=unknown for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int attr=$attr; return attr; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : attr_name=$attr; break fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done { $as_echo "$as_me:${as_lineno-$LINENO}: result: $attr_name" >&5 $as_echo "$attr_name" >&6; } if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then cat >>confdefs.h <<_ACEOF #define PTHREAD_CREATE_JOINABLE $attr_name _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5 $as_echo_n "checking if more special flags are required for pthreads... " >&6; } flag=no case "${host_cpu}-${host_os}" in *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${flag}" >&5 $as_echo "${flag}" >&6; } if test "x$flag" != xno; then PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" # More AIX lossage: must compile with xlc_r or cc_r if test x"$GCC" != xyes; then for ac_prog in xlc_r cc_r do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_PTHREAD_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$PTHREAD_CC"; then ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_PTHREAD_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi PTHREAD_CC=$ac_cv_prog_PTHREAD_CC if test -n "$PTHREAD_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 $as_echo "$PTHREAD_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$PTHREAD_CC" && break done test -n "$PTHREAD_CC" || PTHREAD_CC="${CC}" else PTHREAD_CC=$CC fi # The next part tries to detect GCC inconsistency with -shared on some # architectures and systems. The problem is that in certain # configurations, when -shared is specified, GCC "forgets" to # internally use various flags which are still necessary. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to check for GCC pthread/shared inconsistencies" >&5 $as_echo_n "checking whether to check for GCC pthread/shared inconsistencies... " >&6; } check_inconsistencies=yes case "${host_cpu}-${host_os}" in *-darwin*) check_inconsistencies=no ;; esac if test x"$GCC" != xyes -o "x$check_inconsistencies" != xyes ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # In order not to create several levels of indentation, we test # the value of "$ok" until we find out the cure or run out of # ideas. ok="no" # # Prepare the flags # save_CFLAGS="$CFLAGS" save_LIBS="$LIBS" save_CC="$CC" # Try with the flags determined by the earlier checks. # # -Wl,-z,defs forces link-time symbol resolution, so that the # linking checks with -shared actually have any value # # FIXME: -fPIC is required for -shared on many architectures, # so we specify it here, but the right way would probably be to # properly detect whether it is actually required. CFLAGS="-shared -fPIC -Wl,-z,defs $CFLAGS $PTHREAD_CFLAGS" LIBS="$PTHREAD_LIBS $LIBS" CC="$PTHREAD_CC" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -pthread is sufficient with -shared" >&5 $as_echo_n "checking whether -pthread is sufficient with -shared... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { pthread_t th; pthread_join(th, 0); pthread_attr_init(0); pthread_cleanup_push(0, 0); pthread_create(0,0,0,0); pthread_cleanup_pop(0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ok=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "x$ok" = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # # Linux gcc on some architectures such as mips/mipsel forgets # about -lpthread # if test x"$ok" = xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lpthread fixes that" >&5 $as_echo_n "checking whether -lpthread fixes that... " >&6; } LIBS="-lpthread $PTHREAD_LIBS $save_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { pthread_t th; pthread_join(th, 0); pthread_attr_init(0); pthread_cleanup_push(0, 0); pthread_create(0,0,0,0); pthread_cleanup_pop(0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ok=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "x$ok" = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } PTHREAD_LIBS="-lpthread $PTHREAD_LIBS" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi # # FreeBSD 4.10 gcc forgets to use -lc_r instead of -lc # if test x"$ok" = xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc_r fixes that" >&5 $as_echo_n "checking whether -lc_r fixes that... " >&6; } LIBS="-lc_r $PTHREAD_LIBS $save_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { pthread_t th; pthread_join(th, 0); pthread_attr_init(0); pthread_cleanup_push(0, 0); pthread_create(0,0,0,0); pthread_cleanup_pop(0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ok=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "x$ok" = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } PTHREAD_LIBS="-lc_r $PTHREAD_LIBS" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test x"$ok" = xno; then # OK, we have run out of ideas { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Impossible to determine how to use pthreads with shared libraries" >&5 $as_echo "$as_me: WARNING: Impossible to determine how to use pthreads with shared libraries" >&2;} # so it's not safe to assume that we may use pthreads acx_pthread_ok=no fi CFLAGS="$save_CFLAGS" LIBS="$save_LIBS" CC="$save_CC" fi else PTHREAD_CC="$CC" fi # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x"$acx_pthread_ok" = xyes; then $as_echo "#define HAVE_PTHREAD 1" >>confdefs.h : else acx_pthread_ok=no fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lrt" >&5 $as_echo_n "checking for main in -lrt... " >&6; } if test "${ac_cv_lib_rt_main+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lrt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_rt_main=yes else ac_cv_lib_rt_main=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_main" >&5 $as_echo "$ac_cv_lib_rt_main" >&6; } if test "x$ac_cv_lib_rt_main" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBRT 1 _ACEOF LIBS="-lrt $LIBS" fi for ac_func in vsscanf clock_gettime do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" eval as_val=\$$as_ac_var if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = x""yes; then : $as_echo "#define HAVE_LIBDL 1" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : DL_LIBS=-ldl $as_echo "#define HAVE_LIBDL 1" >>confdefs.h fi fi # Compilation and Linker flags BML_CFLAGS="$DEBUG_CFLAGS $COVERAGE_CFLAGS" # the -Wno-non-virtual-dtor is needed to suppress : virtual methods with no virtual destructor BML_CXXFLAGS="$DEBUG_CFLAGS $COVERAGE_CFLAGS -Wno-non-virtual-dtor" BML_LIBS="$COVERAGE_LIBS $DL_LIBS" ac_config_files="$ac_config_files Makefile libbml.pc src/Makefile src/BuzzMachineLoader/Makefile dllwrapper/Makefile dllwrapper/wine/Makefile tests/bt-cfg.sh" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCCAS_TRUE}" && test -z "${am__fastdepCCAS_FALSE}"; then as_fn_error "conditional \"am__fastdepCCAS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${USE_X86_TRUE}" && test -z "${USE_X86_FALSE}"; then as_fn_error "conditional \"USE_X86\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${USE_LCOV_TRUE}" && test -z "${USE_LCOV_FALSE}"; then as_fn_error "conditional \"USE_LCOV\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error ERROR [LINENO LOG_FD] # --------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with status $?, using 1 if that was 0. as_fn_error () { as_status=$?; test $as_status -eq 0 && as_status=1 if test "$3"; then as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 fi $as_echo "$as_me: error: $1" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by bml $as_me 0.6.1, which was generated by GNU Autoconf 2.65. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ bml config.status 0.6.1 configured by $0, generated by GNU Autoconf 2.65, with options \\"\$ac_cs_config\\" Copyright (C) 2009 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_dirs='`$ECHO "X$compiler_lib_search_dirs" | $Xsed -e "$delay_single_quote_subst"`' predep_objects='`$ECHO "X$predep_objects" | $Xsed -e "$delay_single_quote_subst"`' postdep_objects='`$ECHO "X$postdep_objects" | $Xsed -e "$delay_single_quote_subst"`' predeps='`$ECHO "X$predeps" | $Xsed -e "$delay_single_quote_subst"`' postdeps='`$ECHO "X$postdeps" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_path='`$ECHO "X$compiler_lib_search_path" | $Xsed -e "$delay_single_quote_subst"`' LD_CXX='`$ECHO "X$LD_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds_CXX='`$ECHO "X$old_archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_CXX='`$ECHO "X$compiler_CXX" | $Xsed -e "$delay_single_quote_subst"`' GCC_CXX='`$ECHO "X$GCC_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "X$lt_prog_compiler_no_builtin_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl_CXX='`$ECHO "X$lt_prog_compiler_wl_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic_CXX='`$ECHO "X$lt_prog_compiler_pic_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static_CXX='`$ECHO "X$lt_prog_compiler_static_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o_CXX='`$ECHO "X$lt_cv_prog_compiler_c_o_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc_CXX='`$ECHO "X$archive_cmds_need_lc_CXX" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes_CXX='`$ECHO "X$enable_shared_with_static_runtimes_CXX" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec_CXX='`$ECHO "X$export_dynamic_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec_CXX='`$ECHO "X$whole_archive_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object_CXX='`$ECHO "X$compiler_needs_object_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds_CXX='`$ECHO "X$old_archive_from_new_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds_CXX='`$ECHO "X$old_archive_from_expsyms_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_CXX='`$ECHO "X$archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds_CXX='`$ECHO "X$archive_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' module_cmds_CXX='`$ECHO "X$module_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds_CXX='`$ECHO "X$module_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld_CXX='`$ECHO "X$with_gnu_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag_CXX='`$ECHO "X$allow_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag_CXX='`$ECHO "X$no_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_CXX='`$ECHO "X$hardcode_libdir_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld_CXX='`$ECHO "X$hardcode_libdir_flag_spec_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator_CXX='`$ECHO "X$hardcode_libdir_separator_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_CXX='`$ECHO "X$hardcode_direct_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute_CXX='`$ECHO "X$hardcode_direct_absolute_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L_CXX='`$ECHO "X$hardcode_minus_L_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var_CXX='`$ECHO "X$hardcode_shlibpath_var_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic_CXX='`$ECHO "X$hardcode_automatic_CXX" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath_CXX='`$ECHO "X$inherit_rpath_CXX" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs_CXX='`$ECHO "X$link_all_deplibs_CXX" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path_CXX='`$ECHO "X$fix_srcfile_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols_CXX='`$ECHO "X$always_export_symbols_CXX" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds_CXX='`$ECHO "X$export_symbols_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms_CXX='`$ECHO "X$exclude_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms_CXX='`$ECHO "X$include_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds_CXX='`$ECHO "X$prelink_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec_CXX='`$ECHO "X$file_list_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action_CXX='`$ECHO "X$hardcode_action_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_dirs_CXX='`$ECHO "X$compiler_lib_search_dirs_CXX" | $Xsed -e "$delay_single_quote_subst"`' predep_objects_CXX='`$ECHO "X$predep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' postdep_objects_CXX='`$ECHO "X$postdep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' predeps_CXX='`$ECHO "X$predeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' postdeps_CXX='`$ECHO "X$postdeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_path_CXX='`$ECHO "X$compiler_lib_search_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ AR \ AR_FLAGS \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ SHELL \ ECHO \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ fix_srcfile_path \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ finish_eval \ old_striplib \ striplib \ compiler_lib_search_dirs \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ LD_CXX \ compiler_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_static_CXX \ lt_cv_prog_compiler_c_o_CXX \ export_dynamic_flag_spec_CXX \ whole_archive_flag_spec_CXX \ compiler_needs_object_CXX \ with_gnu_ld_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ fix_srcfile_path_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX \ file_list_spec_CXX \ compiler_lib_search_dirs_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ export_symbols_cmds_CXX \ prelink_cmds_CXX; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` ;; esac ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "libbml.pc") CONFIG_FILES="$CONFIG_FILES libbml.pc" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "src/BuzzMachineLoader/Makefile") CONFIG_FILES="$CONFIG_FILES src/BuzzMachineLoader/Makefile" ;; "dllwrapper/Makefile") CONFIG_FILES="$CONFIG_FILES dllwrapper/Makefile" ;; "dllwrapper/wine/Makefile") CONFIG_FILES="$CONFIG_FILES dllwrapper/wine/Makefile" ;; "tests/bt-cfg.sh") CONFIG_FILES="$CONFIG_FILES tests/bt-cfg.sh" ;; *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || as_fn_error "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_t=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_t"; then break elif $ac_last_try; then as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || as_fn_error "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ || as_fn_error "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$tmp/config.h" "$ac_file" \ || as_fn_error "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="CXX " # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == "file_magic". file_magic_cmd=$lt_file_magic_cmd # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # The name of the directory that contains temporary libtool files. objdir=$objdir # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that does not interpret backslashes. ECHO=$lt_ECHO # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects postdep_objects=$lt_postdep_objects predeps=$lt_predeps postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $* )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[^=]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$@"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1+=\$2" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1=\$$1\$2" } _LT_EOF ;; esac sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" cat <<_LT_EOF >> "$ofile" # ### BEGIN LIBTOOL TAG CONFIG: CXX # The linker used to build libraries. LD=$lt_LD_CXX # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_CXX # A language specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU compiler? with_gcc=$GCC_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object_CXX # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld_CXX # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute_CXX # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic_CXX # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath_CXX # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path_CXX # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_CXX # Specify filename containing input files. file_list_spec=$lt_file_list_spec_CXX # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects_CXX postdep_objects=$lt_postdep_objects_CXX predeps=$lt_predeps_CXX postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # ### END LIBTOOL TAG CONFIG: CXX _LT_EOF ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit $? fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi echo " Configuration Version : ${VERSION} Source code location : ${srcdir} Prefix : ${prefix} Compiler : ${CC} x86 win32 buzzmachines : $HAVE_X86 Debug : ${enable_debug} Coverage profiling : ${enable_coverage} " if test ! `echo "$PKG_CONFIG_PATH:/usr" | tr \: \\n | grep $prefix` ; then echo " You are installing buzztard libraries into a location that is not yet known to system. In order for other buzztard modules to find them and the application to work with all features please register the location (see README for details): export LD_LIBRARY_PATH=$prefix/lib:\$LD_LIBRARY_PATH export PKG_CONFIG_PATH="\$PKG_CONFIG_PATH:$prefix/lib/pkgconfig" " fi bml-0.6.1/INSTALL0000644042355400116100000003633211576366620010273 00000000000000Installation Instructions ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. Basic Installation ================== Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. Some packages provide this `INSTALL' file but do not implement all of the features documented below. The lack of an optional feature in a given package is not necessarily a bug. More recommendations for GNU packages can be found in *note Makefile Conventions: (standards)Makefile Conventions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. Running `configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package, generally using the just-built uninstalled binaries. 4. Type `make install' to install the programs and any data files and documentation. When installing into a prefix owned by root, it is recommended that the package be configured and built as a regular user, and only the `make install' phase executed with root privileges. 5. Optionally, type `make installcheck' to repeat any self-tests, but this time using the binaries in their final installed location. This target does not install anything. Running this target as a regular user, particularly if the prior `make install' required root privileges, verifies that the installation completed correctly. 6. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 7. Often, you can also type `make uninstall' to remove the installed files again. In practice, not all packages have tested that uninstallation works correctly, even though it is required by the GNU Coding Standards. 8. Some packages, particularly those that use Automake, provide `make distcheck', which can by used by developers to test that all other targets like `make install' and `make uninstall' work correctly. This target is generally not run by end users. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. This is known as a "VPATH" build. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. On MacOS X 10.5 and later systems, you can create libraries and executables that work on multiple system types--known as "fat" or "universal" binaries--by specifying multiple `-arch' options to the compiler but only a single `-arch' option to the preprocessor. Like this: ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CPP="gcc -E" CXXCPP="g++ -E" This is not guaranteed to produce working output in all cases, you may have to build one architecture at a time and combine the results using the `lipo' tool if you have problems. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX', where PREFIX must be an absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. In general, the default for these options is expressed in terms of `${prefix}', so that specifying just `--prefix' will affect all of the other directory specifications that were not explicitly provided. The most portable way to affect installation locations is to pass the correct locations to `configure'; however, many packages provide one or both of the following shortcuts of passing variable assignments to the `make install' command line to change installation locations without having to reconfigure or recompile. The first method involves providing an override variable for each affected directory. For example, `make install prefix=/alternate/directory' will choose an alternate location for all directory configuration variables that were expressed in terms of `${prefix}'. Any directories that were specified during `configure', but not in terms of `${prefix}', must each be overridden at install time for the entire installation to be relocated. The approach of makefile variable overrides for each directory variable is required by the GNU Coding Standards, and ideally causes no recompilation. However, some platforms have known limitations with the semantics of shared libraries that end up requiring recompilation when using this method, particularly noticeable in packages that use GNU Libtool. The second method involves providing the `DESTDIR' variable. For example, `make install DESTDIR=/alternate/directory' will prepend `/alternate/directory' before all installation names. The approach of `DESTDIR' overrides is not required by the GNU Coding Standards, and does not work on platforms that have drive letters. On the other hand, it does better at avoiding recompilation issues, and works well even when some directory options were not specified in terms of `${prefix}' at `configure' time. Optional Features ================= If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Some packages offer the ability to configure how verbose the execution of `make' will be. For these packages, running `./configure --enable-silent-rules' sets the default to minimal output, which can be overridden with `make V=1'; while running `./configure --disable-silent-rules' sets the default to verbose, which can be overridden with `make V=0'. Particular systems ================== On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" and if that doesn't work, install pre-built binaries of GCC for HP-UX. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its `' header file. The option `-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended to try ./configure CC="cc" and if that doesn't work, try ./configure CC="cc -nodtk" On Solaris, don't put `/usr/ucb' early in your `PATH'. This directory contains several dysfunctional programs; working variants of these programs are available in `/usr/bin'. So, if you need `/usr/ucb' in your `PATH', put it _after_ `/usr/bin'. On Haiku, software installed for all users goes in `/boot/common', not `/usr/local'. It is recommended to use the following options: ./configure --prefix=/boot/common Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf bug. Until the bug is fixed you can use this workaround: CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of all of the options to `configure', and exit. `--help=short' `--help=recursive' Print a summary of the options unique to this package's `configure', and exit. The `short' variant lists options used only in the top level, while the `recursive' variant lists options also present in any nested packages. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--prefix=DIR' Use DIR as the installation prefix. *note Installation Names:: for more details, including other options available for fine-tuning the installation locations. `--no-create' `-n' Run the configure checks, but stop before creating any output files. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. bml-0.6.1/Makefile.am0000644042355400116100000000053111576362500011257 00000000000000## $Id: Makefile.am 2998 2010-09-21 08:16:37Z ensonic $ if USE_X86 DLLWRAPPER=dllwrapper else DLLWRAPPER= endif SUBDIRS = ${DLLWRAPPER} src ACLOCAL_AMFLAGS = -I m4 pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libbml.pc EXTRA_DIST = \ libbml.pc.in # CLEANFILES is for files generated by make CLEANFILES = \ $(pkgconfig_DATA) bml-0.6.1/depcomp0000754042355400116100000004426711576366620010624 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2009-04-28.21; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free # Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u="sed s,\\\\\\\\,/,g" depmode=msvisualcpp fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: bml-0.6.1/compile0000754042355400116100000000727111576366620010617 00000000000000#! /bin/sh # Wrapper for compilers which do not understand `-c -o'. scriptversion=2009-10-06.20; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software # Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand `-c -o'. Remove `-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file `INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; esac ofile= cfile= eat= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as `compile cc -o foo foo.c'. # So we strip `-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no `-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # `.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. # Note: use `[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: bml-0.6.1/config.guess0000754042355400116100000013105411576366620011556 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 # Free Software Foundation, Inc. timestamp='2009-06-10' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd | genuineintel) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: bml-0.6.1/NEWS0000644042355400116100000000262311701126756007727 000000000000000.6.1 black beats blue (04.Jan.2012) ================================================================================ Hot fix release. 0.6.0 black beats blue (25.Dec.2011) ================================================================================ Improved machine compatibility. 0.5.0 crown of thorns (06.Sep.2009) ================================================================================ Split the api into library and instance api. Lots of code and build cleanups. 0.4.0 the light in your eyes (26.Nov.2008) ================================================================================ Major addition is wavetable support for tracker plugins. Besides that the new release improves buzzmachine compatibility, performance and has a better build setup. 0.3.0 a tale of ice and darkness (26.Mar.2008) ================================================================================ Support for native machines. Better emulation. Can be build on 64bit x86. 0.2.0 sunrise release (03.May.2007) ================================================================================ Configure improvements and some compatibility fixes. 0.1.0 genesis release (30.Oct.2006) ================================================================================ This is a technical preview version. Only a subset of buzz machines will work. Nonetheless if you find bugs or have comments, please take your time to contact us. bml-0.6.1/m4/0000755042355400116100000000000011701130243007607 500000000000000bml-0.6.1/m4/libtool.m40000644042355400116100000077464711701127001011464 00000000000000# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 56 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl _LT_PROG_ECHO_BACKSLASH case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\[$]0 --fallback-echo"')dnl " lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` ;; esac _LT_OUTPUT_LIBTOOL_INIT ]) # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) cat >"$CONFIG_LT" <<_LTEOF #! $SHELL # Generated by $as_me. # Run this file to recreate a libtool stub with the current configuration. lt_cl_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2008 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. if test "$no_create" != yes; then lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) fi ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_XSI_SHELLFNS sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES # -------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(whole_archive_flag_spec, $1)='' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX # ----------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl AC_LINK_IFELSE(AC_LANG_PROGRAM,[ lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)]) $1 AC_DIVERT_POP ])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Add some code to the start of the generated configure script which # will find an echo command which doesn't interpret backslashes. m4_defun([_LT_PROG_ECHO_BACKSLASH], [_LT_SHELL_INIT([ # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac ECHO=${lt_ECHO-echo} if test "X[$]1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X[$]1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then # Yippee, $ECHO works! : else # Restart under the correct shell. exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} fi if test "X[$]1" = X--fallback-echo; then # used as fallback echo shift cat <<_LT_EOF [$]* _LT_EOF exit 0 fi # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null then break fi done fi if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$ECHO" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. ECHO='print -r' elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} else # Try using printf. ECHO='printf %s\n' if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL ECHO="$CONFIG_SHELL [$]0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$CONFIG_SHELL [$]0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "[$]0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" fi AC_SUBST(lt_ECHO) ]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that does not interpret backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [AC_CHECK_TOOL(AR, ar, false) test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1]) AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line __oline__ "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[123]]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[[3-9]]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method == "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= AC_MSG_CHECKING([for $compiler option to produce PIC]) m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC*) # IBM XL 8.0 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ;; linux* | k*bsd*-gnu) _LT_TAGVAR(link_all_deplibs, $1)=no ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; linux* | k*bsd*-gnu) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi _LT_TAGVAR(link_all_deplibs, $1)=no else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_TAGVAR(ld_shlibs, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE(int foo(void) {}, _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ) LDFLAGS="$save_LDFLAGS" else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_MSG_CHECKING([whether -lc should be explicitly linked in]) $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then _LT_TAGVAR(archive_cmds_need_lc, $1)=no else _LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], [[If ld is used when linking, flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [fix_srcfile_path], [1], [Fix the shell variable $srcfile for the compiler]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_PROG_CXX # ------------ # Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ # compiler, we have our own version here. m4_defun([_LT_PROG_CXX], [ pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) AC_PROG_CXX if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_CXX dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_CXX], []) # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [AC_REQUIRE([_LT_PROG_CXX])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[[12]]*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; xl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=echo else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ]) dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_PROG_F77 # ------------ # Since AC_PROG_F77 is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_F77], [ pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) AC_PROG_F77 if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_F77 dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_F77], []) # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_REQUIRE([_LT_PROG_F77])dnl AC_LANG_PUSH(Fortran 77) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${F77-"f77"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_PROG_FC # ----------- # Since AC_PROG_FC is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_FC], [ pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) AC_PROG_FC if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_FC dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_FC], []) # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_REQUIRE([_LT_PROG_FC])dnl AC_LANG_PUSH(Fortran) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${FC-"f95"} compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC="$lt_save_CC" ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC= CC=${RC-"windres"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC="$lt_save_CC" ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_XSI_SHELLFNS # --------------------- # Bourne and XSI compatible variants of some useful shell functions. m4_defun([_LT_PROG_XSI_SHELLFNS], [case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $[*] )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } dnl func_dirname_and_basename dnl A portable version of this function is already defined in general.m4sh dnl so there is no need for it here. # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[[^=]]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$[@]"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]+=\$[2]" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]=\$$[1]\$[2]" } _LT_EOF ;; esac ]) bml-0.6.1/m4/lt~obsolete.m40000644042355400116100000001311311701127001012340 00000000000000# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 4 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) bml-0.6.1/m4/ltversion.m40000644042355400116100000000127711701127001012023 00000000000000# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # Generated from ltversion.in. # serial 3017 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.2.6b]) m4_define([LT_PACKAGE_REVISION], [1.3017]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.2.6b' macro_revision='1.3017' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) bml-0.6.1/m4/ltoptions.m40000644042355400116100000002724211701127001012031 00000000000000# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [0], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) bml-0.6.1/m4/acx_pthread.m40000644042355400116100000003454611576362475012317 00000000000000# =========================================================================== # http://autoconf-archive.cryp.to/acx_pthread.html # =========================================================================== # # SYNOPSIS # # ACX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) # # DESCRIPTION # # This macro figures out how to build C programs using POSIX threads. It # sets the PTHREAD_LIBS output variable to the threads library and linker # flags, and the PTHREAD_CFLAGS output variable to any special C compiler # flags that are needed. (The user can also force certain compiler # flags/libs to be tested by setting these environment variables.) # # Also sets PTHREAD_CC to any special C compiler that is needed for # multi-threaded programs (defaults to the value of CC otherwise). (This # is necessary on AIX to use the special cc_r compiler alias.) # # NOTE: You are assumed to not only compile your program with these flags, # but also link it with them as well. e.g. you should link with # $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS # # If you are only building threads programs, you may wish to use these # variables in your default LIBS, CFLAGS, and CC: # # LIBS="$PTHREAD_LIBS $LIBS" # CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # CC="$PTHREAD_CC" # # In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant # has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name # (e.g. PTHREAD_CREATE_UNDETACHED on AIX). # # ACTION-IF-FOUND is a list of shell commands to run if a threads library # is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it # is not found. If ACTION-IF-FOUND is not specified, the default action # will define HAVE_PTHREAD. # # Please let the authors know if this macro fails on any platform, or if # you have any other suggestions or comments. This macro was based on work # by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help # from M. Frigo), as well as ac_pthread and hb_pthread macros posted by # Alejandro Forero Cuervo to the autoconf macro repository. We are also # grateful for the helpful feedback of numerous users. # # LAST MODIFICATION # # 2008-04-12 # # COPYLEFT # # Copyright (c) 2008 Steven G. Johnson # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation, either version 3 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Macro Archive. When you make and # distribute a modified version of the Autoconf Macro, you may extend this # special exception to the GPL to apply to your modified version as well. AC_DEFUN([ACX_PTHREAD], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_LANG_SAVE AC_LANG_C AC_ARG_VAR([PTHREAD_CFLAGS], [C compiler flags for pthread library])dnl AC_ARG_VAR([PTHREAD_LIBS], [linker flags for pthread library])dnl acx_pthread_ok=no # We used to check for pthread.h first, but this fails if pthread.h # requires special compiler flags (e.g. on True64 or Sequent). # It gets checked for in the link test anyway. # First of all, check if the user has set any of the PTHREAD_LIBS, # etcetera environment variables, and if threads linking works using # them: if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes) AC_MSG_RESULT($acx_pthread_ok) if test x"$acx_pthread_ok" = xno; then PTHREAD_LIBS="" PTHREAD_CFLAGS="" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" fi # We must check for the threads library under a number of different # names; the ordering is very important because some systems # (e.g. DEC) have both -lpthread and -lpthreads, where one of the # libraries is broken (non-POSIX). # Create a list of thread flags to try. Items starting with a "-" are # C compiler flags, and other items are library names, except for "none" # which indicates that we try without any flags at all, and "pthread-config" # which is a program returning the flags for the Pth emulation library. acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" # The ordering *is* (sometimes) important. Some notes on the # individual items follow: # pthreads: AIX (must check this before -lpthread) # none: in case threads are in libc; should be tried before -Kthread and # other compiler flags to prevent continual compiler warnings # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) # -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) # -pthreads: Solaris/gcc # -mthreads: Mingw32/gcc, Lynx/gcc # -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it # doesn't hurt to check since this sometimes defines pthreads too; # also defines -D_REENTRANT) # ... -mt is also the pthreads flag for HP/aCC # pthread: Linux, etcetera # --thread-safe: KAI C++ # pthread-config: use pthread-config program (for GNU Pth library) case "${host_cpu}-${host_os}" in *solaris*) # On Solaris (at least, for some versions), libc contains stubbed # (non-functional) versions of the pthreads routines, so link-based # tests will erroneously succeed. (We need to link with -pthreads/-mt/ # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather # a function called by this macro, so we could check for that, but # who knows whether they'll stub that too in a future libc.) So, # we'll just look for -pthreads and -lpthread first: acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags" ;; esac if test x"$acx_pthread_ok" = xno; then for flag in $acx_pthread_flags; do case $flag in none) AC_MSG_CHECKING([whether pthreads work without any flags]) ;; -*) AC_MSG_CHECKING([whether pthreads work with $flag]) PTHREAD_CFLAGS="$flag" ;; pthread-config) AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no) if test x"$acx_pthread_config" = xno; then continue; fi PTHREAD_CFLAGS="`pthread-config --cflags`" PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" ;; *) AC_MSG_CHECKING([for the pthreads library -l$flag]) PTHREAD_LIBS="-l$flag" ;; esac save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Check for various functions. We must include pthread.h, # since some functions may be macros. (On the Sequent, we # need a special flag -Kthread to make this header compile.) # We check for pthread_join because it is in -lpthread on IRIX # while pthread_create is in libc. We check for pthread_attr_init # due to DEC craziness with -lpthreads. We check for # pthread_cleanup_push because it is one of the few pthread # functions on Solaris that doesn't have a non-functional libc stub. # We try pthread_create on general principles. AC_TRY_LINK([#include ], [pthread_t th; pthread_join(th, 0); pthread_attr_init(0); pthread_cleanup_push(0, 0); pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], [acx_pthread_ok=yes]) LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" AC_MSG_RESULT($acx_pthread_ok) if test "x$acx_pthread_ok" = xyes; then break; fi PTHREAD_LIBS="" PTHREAD_CFLAGS="" done fi # Various other checks: if test "x$acx_pthread_ok" = xyes; then save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. AC_MSG_CHECKING([for joinable pthread attribute]) attr_name=unknown for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do AC_TRY_LINK([#include ], [int attr=$attr; return attr;], [attr_name=$attr; break]) done AC_MSG_RESULT($attr_name) if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name, [Define to necessary symbol if this constant uses a non-standard name on your system.]) fi AC_MSG_CHECKING([if more special flags are required for pthreads]) flag=no case "${host_cpu}-${host_os}" in *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; esac AC_MSG_RESULT(${flag}) if test "x$flag" != xno; then PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" # More AIX lossage: must compile with xlc_r or cc_r if test x"$GCC" != xyes; then AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC}) else PTHREAD_CC=$CC fi # The next part tries to detect GCC inconsistency with -shared on some # architectures and systems. The problem is that in certain # configurations, when -shared is specified, GCC "forgets" to # internally use various flags which are still necessary. AC_MSG_CHECKING([whether to check for GCC pthread/shared inconsistencies]) check_inconsistencies=yes case "${host_cpu}-${host_os}" in *-darwin*) check_inconsistencies=no ;; esac if test x"$GCC" != xyes -o "x$check_inconsistencies" != xyes ; then AC_MSG_RESULT([no]) else AC_MSG_RESULT([yes]) # In order not to create several levels of indentation, we test # the value of "$ok" until we find out the cure or run out of # ideas. ok="no" # # Prepare the flags # save_CFLAGS="$CFLAGS" save_LIBS="$LIBS" save_CC="$CC" # Try with the flags determined by the earlier checks. # # -Wl,-z,defs forces link-time symbol resolution, so that the # linking checks with -shared actually have any value # # FIXME: -fPIC is required for -shared on many architectures, # so we specify it here, but the right way would probably be to # properly detect whether it is actually required. CFLAGS="-shared -fPIC -Wl,-z,defs $CFLAGS $PTHREAD_CFLAGS" LIBS="$PTHREAD_LIBS $LIBS" CC="$PTHREAD_CC" AC_MSG_CHECKING([whether -pthread is sufficient with -shared]) AC_TRY_LINK([#include ], [pthread_t th; pthread_join(th, 0); pthread_attr_init(0); pthread_cleanup_push(0, 0); pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], [ok=yes]) if test "x$ok" = xyes; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi # # Linux gcc on some architectures such as mips/mipsel forgets # about -lpthread # if test x"$ok" = xno; then AC_MSG_CHECKING([whether -lpthread fixes that]) LIBS="-lpthread $PTHREAD_LIBS $save_LIBS" AC_TRY_LINK([#include ], [pthread_t th; pthread_join(th, 0); pthread_attr_init(0); pthread_cleanup_push(0, 0); pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], [ok=yes]) if test "x$ok" = xyes; then AC_MSG_RESULT([yes]) PTHREAD_LIBS="-lpthread $PTHREAD_LIBS" else AC_MSG_RESULT([no]) fi fi # # FreeBSD 4.10 gcc forgets to use -lc_r instead of -lc # if test x"$ok" = xno; then AC_MSG_CHECKING([whether -lc_r fixes that]) LIBS="-lc_r $PTHREAD_LIBS $save_LIBS" AC_TRY_LINK([#include ], [pthread_t th; pthread_join(th, 0); pthread_attr_init(0); pthread_cleanup_push(0, 0); pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], [ok=yes]) if test "x$ok" = xyes; then AC_MSG_RESULT([yes]) PTHREAD_LIBS="-lc_r $PTHREAD_LIBS" else AC_MSG_RESULT([no]) fi fi if test x"$ok" = xno; then # OK, we have run out of ideas AC_MSG_WARN([Impossible to determine how to use pthreads with shared libraries]) # so it's not safe to assume that we may use pthreads acx_pthread_ok=no fi CFLAGS="$save_CFLAGS" LIBS="$save_LIBS" CC="$save_CC" fi else PTHREAD_CC="$CC" fi AC_SUBST(PTHREAD_LIBS) AC_SUBST(PTHREAD_CFLAGS) AC_SUBST(PTHREAD_CC) # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x"$acx_pthread_ok" = xyes; then ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) : else acx_pthread_ok=no $2 fi AC_LANG_RESTORE ])dnl ACX_PTHREAD bml-0.6.1/m4/ltsugar.m40000644042355400116100000001042411701127001011451 00000000000000# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) bml-0.6.1/install-sh0000754042355400116100000003253711576366620011250 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: