Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Difference From 294601b232f6563c To 978a32a5b39a88ef
2011-11-13
| ||
09:10 | fixing the WinOZ build system (both MinGW and MSVC) re-licensing the library under the MPL terms check-in: dd270c4d41 user: a.furieri@lqt.it tags: trunk | |
2011-11-12
| ||
19:06 | adding reasterlite_tiff_hdrs.h check-in: 978a32a5b3 user: a.furieri@lqt.it tags: trunk | |
19:05 | fixing the previous commit check-in: 8cad98738d user: a.furieri@lqt.it tags: trunk | |
2010-01-09
| ||
11:16 | implementing Shaded Relief for Grids check-in: d4879cedec user: a.furieri@lqt.it tags: trunk | |
2009-12-07
| ||
15:41 | supporting RGBA, ARGB, BGR and BGRA raw images check-in: 294601b232 user: a.furieri@lqt.it tags: trunk | |
2009-11-19
| ||
11:03 | fixing makefile and warnings for MSVC check-in: bf94dc55e3 user: a.furieri@lqt.it tags: trunk | |
Changes to AUTHORS.
1 1 Original Author: 2 2 Alessandro Furieri <a.furieri@lqt.it> 3 3 4 -Portion Copyrigth [the Epsilon Wavelet library]: 5 -Alexander Simakov, <xander@entropyware.info> 4 +Contributors: 5 +Brad Hards <bradh@frogmouth.net>
Changes to Makefile-static-Linux.
61 61 /usr/local/lib/libgeos.a -lstdc++ -lm -lpthread -ldl 62 62 strip --strip-all ./static_bin/rasterlite_tool 63 63 64 64 ./static_bin/rasterlite_grid: ./src/rasterlite_grid.o 65 65 $(CC) ./src/rasterlite_grid.o -o ./static_bin/rasterlite_grid \ 66 66 /usr/local/lib/libgeotiff.a \ 67 67 /usr/lib/libtiff.a \ 68 - /usr/lib/libproj.a \ 68 + /usr/local/lib/libproj.a \ 69 69 /usr/lib/libjpeg.a \ 70 70 /usr/lib/libz.a -lm 71 71 strip --strip-all ./static_bin/rasterlite_grid
Changes to Makefile.am.
1 -SUBDIRS = headers epsilon lib src 1 +ACLOCAL_AMFLAGS = -I m4 2 + 3 +SUBDIRS = headers lib src 2 4 3 5 AUTOMAKE_OPTIONS = dist-zip 4 6 5 7 EXTRA_DIST = Makefile-static-MinGW Makefile-static-Linux \ 6 - Makefile-static-MacOsX makefile.vc nmake.opt \ 7 - librasterlite.def 8 + Makefile-static-MacOsX makefile.vc nmake.opt 8 9 9 10 pkgconfigdir = $(libdir)/pkgconfig 10 11 pkgconfig_DATA = rasterlite.pc 11 12
Changes to Makefile.in.
1 -# Makefile.in generated by automake 1.10.1 from Makefile.am. 1 +# Makefile.in generated by automake 1.11.1 from Makefile.am. 2 2 # @configure_input@ 3 3 4 4 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 5 -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. 5 +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, 6 +# Inc. 6 7 # This Makefile.in is free software; the Free Software Foundation 7 8 # gives unlimited permission to copy and/or distribute it, 8 9 # with or without modifications, as long as this notice is preserved. 9 10 10 11 # This program is distributed in the hope that it will be useful, 11 12 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without 12 13 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A 13 14 # PARTICULAR PURPOSE. 14 15 15 16 @SET_MAKE@ 16 17 17 18 VPATH = @srcdir@ 18 19 pkgdatadir = $(datadir)/@PACKAGE@ 19 -pkglibdir = $(libdir)/@PACKAGE@ 20 20 pkgincludedir = $(includedir)/@PACKAGE@ 21 +pkglibdir = $(libdir)/@PACKAGE@ 22 +pkglibexecdir = $(libexecdir)/@PACKAGE@ 21 23 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd 22 24 install_sh_DATA = $(install_sh) -c -m 644 23 25 install_sh_PROGRAM = $(install_sh) -c 24 26 install_sh_SCRIPT = $(install_sh) -c 25 27 INSTALL_HEADER = $(INSTALL_DATA) 26 28 transform = $(program_transform_name) 27 29 NORMAL_INSTALL = : ................................................................................ 41 43 am__aclocal_m4_deps = $(top_srcdir)/configure.ac 42 44 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 43 45 $(ACLOCAL_M4) 44 46 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ 45 47 configure.lineno config.status.lineno 46 48 mkinstalldirs = $(install_sh) -d 47 49 CONFIG_CLEAN_FILES = rasterlite.pc 50 +CONFIG_CLEAN_VPATH_FILES = 48 51 SOURCES = 49 52 DIST_SOURCES = 50 53 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ 51 54 html-recursive info-recursive install-data-recursive \ 52 55 install-dvi-recursive install-exec-recursive \ 53 56 install-html-recursive install-info-recursive \ 54 57 install-pdf-recursive install-ps-recursive install-recursive \ ................................................................................ 55 58 installcheck-recursive installdirs-recursive pdf-recursive \ 56 59 ps-recursive uninstall-recursive 57 60 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; 58 61 am__vpath_adj = case $$p in \ 59 62 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ 60 63 *) f=$$p;; \ 61 64 esac; 62 -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; 65 +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; 66 +am__install_max = 40 67 +am__nobase_strip_setup = \ 68 + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` 69 +am__nobase_strip = \ 70 + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" 71 +am__nobase_list = $(am__nobase_strip_setup); \ 72 + for p in $$list; do echo "$$p $$p"; done | \ 73 + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ 74 + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ 75 + if (++n[$$2] == $(am__install_max)) \ 76 + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ 77 + END { for (dir in files) print dir, files[dir] }' 78 +am__base_list = \ 79 + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ 80 + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' 63 81 am__installdirs = "$(DESTDIR)$(pkgconfigdir)" 64 -pkgconfigDATA_INSTALL = $(INSTALL_DATA) 65 82 DATA = $(pkgconfig_DATA) 66 83 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ 67 84 distclean-recursive maintainer-clean-recursive 85 +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ 86 + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ 87 + distdir dist dist-all distcheck 68 88 ETAGS = etags 69 89 CTAGS = ctags 70 90 DIST_SUBDIRS = $(SUBDIRS) 71 91 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 72 92 distdir = $(PACKAGE)-$(VERSION) 73 93 top_distdir = $(distdir) 74 94 am__remove_distdir = \ 75 - { test ! -d $(distdir) \ 76 - || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ 77 - && rm -fr $(distdir); }; } 95 + { test ! -d "$(distdir)" \ 96 + || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ 97 + && rm -fr "$(distdir)"; }; } 98 +am__relativize = \ 99 + dir0=`pwd`; \ 100 + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ 101 + sed_rest='s,^[^/]*/*,,'; \ 102 + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ 103 + sed_butlast='s,/*[^/]*$$,,'; \ 104 + while test -n "$$dir1"; do \ 105 + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ 106 + if test "$$first" != "."; then \ 107 + if test "$$first" = ".."; then \ 108 + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ 109 + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ 110 + else \ 111 + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ 112 + if test "$$first2" = "$$first"; then \ 113 + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ 114 + else \ 115 + dir2="../$$dir2"; \ 116 + fi; \ 117 + dir0="$$dir0"/"$$first"; \ 118 + fi; \ 119 + fi; \ 120 + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ 121 + done; \ 122 + reldir="$$dir2" 78 123 DIST_ARCHIVES = $(distdir).tar.gz $(distdir).zip 79 124 GZIP_ENV = --best 80 125 distuninstallcheck_listfiles = find . -type f -print 81 126 distcleancheck_listfiles = find . -type f -print 82 127 ACLOCAL = @ACLOCAL@ 83 128 AMTAR = @AMTAR@ 84 129 AR = @AR@ ................................................................................ 97 142 CXXDEPMODE = @CXXDEPMODE@ 98 143 CXXFLAGS = @CXXFLAGS@ 99 144 CYGPATH_W = @CYGPATH_W@ 100 145 DEFS = @DEFS@ 101 146 DEPDIR = @DEPDIR@ 102 147 DLLTOOL = @DLLTOOL@ 103 148 DSYMUTIL = @DSYMUTIL@ 104 -ECHO = @ECHO@ 149 +DUMPBIN = @DUMPBIN@ 105 150 ECHO_C = @ECHO_C@ 106 151 ECHO_N = @ECHO_N@ 107 152 ECHO_T = @ECHO_T@ 108 153 EGREP = @EGREP@ 109 154 EXEEXT = @EXEEXT@ 110 -F77 = @F77@ 111 -FFLAGS = @FFLAGS@ 155 +FGREP = @FGREP@ 112 156 GREP = @GREP@ 113 157 INSTALL = @INSTALL@ 114 158 INSTALL_DATA = @INSTALL_DATA@ 115 159 INSTALL_PROGRAM = @INSTALL_PROGRAM@ 116 160 INSTALL_SCRIPT = @INSTALL_SCRIPT@ 117 161 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ 162 +LD = @LD@ 118 163 LDFLAGS = @LDFLAGS@ 119 164 LIBOBJS = @LIBOBJS@ 120 165 LIBS = @LIBS@ 166 +LIBSPATIALITE_CFLAGS = @LIBSPATIALITE_CFLAGS@ 167 +LIBSPATIALITE_LIBS = @LIBSPATIALITE_LIBS@ 121 168 LIBTOOL = @LIBTOOL@ 169 +LIPO = @LIPO@ 122 170 LN_S = @LN_S@ 123 171 LTLIBOBJS = @LTLIBOBJS@ 124 172 MAINT = @MAINT@ 125 173 MAKEINFO = @MAKEINFO@ 126 174 MKDIR_P = @MKDIR_P@ 175 +NM = @NM@ 127 176 NMEDIT = @NMEDIT@ 128 177 OBJDUMP = @OBJDUMP@ 129 178 OBJEXT = @OBJEXT@ 179 +OTOOL = @OTOOL@ 180 +OTOOL64 = @OTOOL64@ 130 181 PACKAGE = @PACKAGE@ 131 182 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ 132 183 PACKAGE_NAME = @PACKAGE_NAME@ 133 184 PACKAGE_STRING = @PACKAGE_STRING@ 134 185 PACKAGE_TARNAME = @PACKAGE_TARNAME@ 186 +PACKAGE_URL = @PACKAGE_URL@ 135 187 PACKAGE_VERSION = @PACKAGE_VERSION@ 136 188 PATH_SEPARATOR = @PATH_SEPARATOR@ 189 +PKG_CONFIG = @PKG_CONFIG@ 190 +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ 191 +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ 137 192 RANLIB = @RANLIB@ 138 193 SED = @SED@ 139 194 SET_MAKE = @SET_MAKE@ 140 195 SHELL = @SHELL@ 141 196 STRIP = @STRIP@ 142 197 VERSION = @VERSION@ 143 198 abs_builddir = @abs_builddir@ 144 199 abs_srcdir = @abs_srcdir@ 145 200 abs_top_builddir = @abs_top_builddir@ 146 201 abs_top_srcdir = @abs_top_srcdir@ 147 202 ac_ct_CC = @ac_ct_CC@ 148 203 ac_ct_CXX = @ac_ct_CXX@ 149 -ac_ct_F77 = @ac_ct_F77@ 204 +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 150 205 am__include = @am__include@ 151 206 am__leading_dot = @am__leading_dot@ 152 207 am__quote = @am__quote@ 153 208 am__tar = @am__tar@ 154 209 am__untar = @am__untar@ 155 210 bindir = @bindir@ 156 211 build = @build@ ................................................................................ 173 228 includedir = @includedir@ 174 229 infodir = @infodir@ 175 230 install_sh = @install_sh@ 176 231 libdir = @libdir@ 177 232 libexecdir = @libexecdir@ 178 233 localedir = @localedir@ 179 234 localstatedir = @localstatedir@ 235 +lt_ECHO = @lt_ECHO@ 180 236 mandir = @mandir@ 181 237 mkdir_p = @mkdir_p@ 182 238 oldincludedir = @oldincludedir@ 183 239 pdfdir = @pdfdir@ 184 240 prefix = @prefix@ 185 241 program_transform_name = @program_transform_name@ 186 242 psdir = @psdir@ 187 243 sbindir = @sbindir@ 188 244 sharedstatedir = @sharedstatedir@ 189 245 srcdir = @srcdir@ 190 246 sysconfdir = @sysconfdir@ 191 247 target_alias = @target_alias@ 248 +top_build_prefix = @top_build_prefix@ 192 249 top_builddir = @top_builddir@ 193 250 top_srcdir = @top_srcdir@ 194 -SUBDIRS = headers epsilon lib src 251 +ACLOCAL_AMFLAGS = -I m4 252 +SUBDIRS = headers lib src 195 253 AUTOMAKE_OPTIONS = dist-zip 196 254 EXTRA_DIST = Makefile-static-MinGW Makefile-static-Linux \ 197 - Makefile-static-MacOsX makefile.vc nmake.opt \ 198 - librasterlite.def 255 + Makefile-static-MacOsX makefile.vc nmake.opt 199 256 200 257 pkgconfigdir = $(libdir)/pkgconfig 201 258 pkgconfig_DATA = rasterlite.pc 202 259 all: all-recursive 203 260 204 261 .SUFFIXES: 205 262 am--refresh: 206 263 @: 207 264 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) 208 265 @for dep in $?; do \ 209 266 case '$(am__configure_deps)' in \ 210 267 *$$dep*) \ 211 - echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ 212 - cd $(srcdir) && $(AUTOMAKE) --foreign \ 268 + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ 269 + $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ 213 270 && exit 0; \ 214 271 exit 1;; \ 215 272 esac; \ 216 273 done; \ 217 - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ 218 - cd $(top_srcdir) && \ 219 - $(AUTOMAKE) --foreign Makefile 274 + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ 275 + $(am__cd) $(top_srcdir) && \ 276 + $(AUTOMAKE) --foreign Makefile 220 277 .PRECIOUS: Makefile 221 278 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status 222 279 @case '$?' in \ 223 280 *config.status*) \ 224 281 echo ' $(SHELL) ./config.status'; \ 225 282 $(SHELL) ./config.status;; \ 226 283 *) \ ................................................................................ 228 285 cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ 229 286 esac; 230 287 231 288 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) 232 289 $(SHELL) ./config.status --recheck 233 290 234 291 $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 235 - cd $(srcdir) && $(AUTOCONF) 292 + $(am__cd) $(srcdir) && $(AUTOCONF) 236 293 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) 237 - cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) 294 + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) 295 +$(am__aclocal_m4_deps): 238 296 rasterlite.pc: $(top_builddir)/config.status $(srcdir)/rasterlite.pc.in 239 297 cd $(top_builddir) && $(SHELL) ./config.status $@ 240 298 241 299 mostlyclean-libtool: 242 300 -rm -f *.lo 243 301 244 302 clean-libtool: 245 303 -rm -rf .libs _libs 246 304 247 305 distclean-libtool: 248 - -rm -f libtool 306 + -rm -f libtool config.lt 249 307 install-pkgconfigDATA: $(pkgconfig_DATA) 250 308 @$(NORMAL_INSTALL) 251 309 test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" 252 - @list='$(pkgconfig_DATA)'; for p in $$list; do \ 310 + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ 311 + for p in $$list; do \ 253 312 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ 254 - f=$(am__strip_dir) \ 255 - echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ 256 - $(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \ 313 + echo "$$d$$p"; \ 314 + done | $(am__base_list) | \ 315 + while read files; do \ 316 + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ 317 + $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ 257 318 done 258 319 259 320 uninstall-pkgconfigDATA: 260 321 @$(NORMAL_UNINSTALL) 261 - @list='$(pkgconfig_DATA)'; for p in $$list; do \ 262 - f=$(am__strip_dir) \ 263 - echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ 264 - rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \ 265 - done 322 + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ 323 + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ 324 + test -n "$$files" || exit 0; \ 325 + echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \ 326 + cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files 266 327 267 328 # This directory's subdirectories are mostly independent; you can cd 268 329 # into them and run `make' without going through this Makefile. 269 330 # To change the values of `make' variables: instead of editing Makefiles, 270 331 # (1) if the variable is set in `config.status', edit `config.status' 271 332 # (which will cause the Makefiles to be regenerated when you run `make'); 272 333 # (2) otherwise, pass the desired values on the `make' command line. 273 334 $(RECURSIVE_TARGETS): 274 - @failcom='exit 1'; \ 335 + @fail= failcom='exit 1'; \ 275 336 for f in x $$MAKEFLAGS; do \ 276 337 case $$f in \ 277 338 *=* | --[!k]*);; \ 278 339 *k*) failcom='fail=yes';; \ 279 340 esac; \ 280 341 done; \ 281 342 dot_seen=no; \ ................................................................................ 284 345 echo "Making $$target in $$subdir"; \ 285 346 if test "$$subdir" = "."; then \ 286 347 dot_seen=yes; \ 287 348 local_target="$$target-am"; \ 288 349 else \ 289 350 local_target="$$target"; \ 290 351 fi; \ 291 - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ 352 + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ 292 353 || eval $$failcom; \ 293 354 done; \ 294 355 if test "$$dot_seen" = "no"; then \ 295 356 $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ 296 357 fi; test -z "$$fail" 297 358 298 359 $(RECURSIVE_CLEAN_TARGETS): 299 - @failcom='exit 1'; \ 360 + @fail= failcom='exit 1'; \ 300 361 for f in x $$MAKEFLAGS; do \ 301 362 case $$f in \ 302 363 *=* | --[!k]*);; \ 303 364 *k*) failcom='fail=yes';; \ 304 365 esac; \ 305 366 done; \ 306 367 dot_seen=no; \ ................................................................................ 318 379 for subdir in $$rev; do \ 319 380 echo "Making $$target in $$subdir"; \ 320 381 if test "$$subdir" = "."; then \ 321 382 local_target="$$target-am"; \ 322 383 else \ 323 384 local_target="$$target"; \ 324 385 fi; \ 325 - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ 386 + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ 326 387 || eval $$failcom; \ 327 388 done && test -z "$$fail" 328 389 tags-recursive: 329 390 list='$(SUBDIRS)'; for subdir in $$list; do \ 330 - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ 391 + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ 331 392 done 332 393 ctags-recursive: 333 394 list='$(SUBDIRS)'; for subdir in $$list; do \ 334 - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ 395 + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ 335 396 done 336 397 337 398 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) 338 399 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ 339 400 unique=`for i in $$list; do \ 340 401 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 341 402 done | \ 342 - $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ 403 + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ 343 404 END { if (nonempty) { for (i in files) print i; }; }'`; \ 344 405 mkid -fID $$unique 345 406 tags: TAGS 346 407 347 408 TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ 348 409 $(TAGS_FILES) $(LISP) 349 - tags=; \ 410 + set x; \ 350 411 here=`pwd`; \ 351 412 if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ 352 413 include_option=--etags-include; \ 353 414 empty_fix=.; \ 354 415 else \ 355 416 include_option=--include; \ 356 417 empty_fix=; \ 357 418 fi; \ 358 419 list='$(SUBDIRS)'; for subdir in $$list; do \ 359 420 if test "$$subdir" = .; then :; else \ 360 421 test ! -f $$subdir/TAGS || \ 361 - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ 422 + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ 362 423 fi; \ 363 424 done; \ 364 425 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ 365 426 unique=`for i in $$list; do \ 366 427 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 367 428 done | \ 368 429 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ 369 430 END { if (nonempty) { for (i in files) print i; }; }'`; \ 370 - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ 431 + shift; \ 432 + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ 371 433 test -n "$$unique" || unique=$$empty_fix; \ 372 - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 373 - $$tags $$unique; \ 434 + if test $$# -gt 0; then \ 435 + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 436 + "$$@" $$unique; \ 437 + else \ 438 + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 439 + $$unique; \ 440 + fi; \ 374 441 fi 375 442 ctags: CTAGS 376 443 CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ 377 444 $(TAGS_FILES) $(LISP) 378 - tags=; \ 379 445 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ 380 446 unique=`for i in $$list; do \ 381 447 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 382 448 done | \ 383 449 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ 384 450 END { if (nonempty) { for (i in files) print i; }; }'`; \ 385 - test -z "$(CTAGS_ARGS)$$tags$$unique" \ 451 + test -z "$(CTAGS_ARGS)$$unique" \ 386 452 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ 387 - $$tags $$unique 453 + $$unique 388 454 389 455 GTAGS: 390 456 here=`$(am__cd) $(top_builddir) && pwd` \ 391 - && cd $(top_srcdir) \ 392 - && gtags -i $(GTAGS_ARGS) $$here 457 + && $(am__cd) $(top_srcdir) \ 458 + && gtags -i $(GTAGS_ARGS) "$$here" 393 459 394 460 distclean-tags: 395 461 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags 396 462 397 463 distdir: $(DISTFILES) 398 464 $(am__remove_distdir) 399 - test -d $(distdir) || mkdir $(distdir) 465 + test -d "$(distdir)" || mkdir "$(distdir)" 400 466 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ 401 467 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ 402 468 list='$(DISTFILES)'; \ 403 469 dist_files=`for file in $$list; do echo $$file; done | \ 404 470 sed -e "s|^$$srcdirstrip/||;t" \ 405 471 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ 406 472 case $$dist_files in \ ................................................................................ 408 474 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ 409 475 sort -u` ;; \ 410 476 esac; \ 411 477 for file in $$dist_files; do \ 412 478 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ 413 479 if test -d $$d/$$file; then \ 414 480 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ 481 + if test -d "$(distdir)/$$file"; then \ 482 + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ 483 + fi; \ 415 484 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ 416 - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ 485 + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ 486 + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ 417 487 fi; \ 418 - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ 488 + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ 419 489 else \ 420 - test -f $(distdir)/$$file \ 421 - || cp -p $$d/$$file $(distdir)/$$file \ 490 + test -f "$(distdir)/$$file" \ 491 + || cp -p $$d/$$file "$(distdir)/$$file" \ 422 492 || exit 1; \ 423 493 fi; \ 424 494 done 425 - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ 495 + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ 426 496 if test "$$subdir" = .; then :; else \ 427 497 test -d "$(distdir)/$$subdir" \ 428 498 || $(MKDIR_P) "$(distdir)/$$subdir" \ 429 499 || exit 1; \ 430 - distdir=`$(am__cd) $(distdir) && pwd`; \ 431 - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ 432 - (cd $$subdir && \ 500 + fi; \ 501 + done 502 + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ 503 + if test "$$subdir" = .; then :; else \ 504 + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ 505 + $(am__relativize); \ 506 + new_distdir=$$reldir; \ 507 + dir1=$$subdir; dir2="$(top_distdir)"; \ 508 + $(am__relativize); \ 509 + new_top_distdir=$$reldir; \ 510 + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ 511 + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ 512 + ($(am__cd) $$subdir && \ 433 513 $(MAKE) $(AM_MAKEFLAGS) \ 434 - top_distdir="$$top_distdir" \ 435 - distdir="$$distdir/$$subdir" \ 514 + top_distdir="$$new_top_distdir" \ 515 + distdir="$$new_distdir" \ 436 516 am__remove_distdir=: \ 437 517 am__skip_length_check=: \ 518 + am__skip_mode_fix=: \ 438 519 distdir) \ 439 520 || exit 1; \ 440 521 fi; \ 441 522 done 442 - -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ 523 + -test -n "$(am__skip_mode_fix)" \ 524 + || find "$(distdir)" -type d ! -perm -755 \ 525 + -exec chmod u+rwx,go+rx {} \; -o \ 443 526 ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ 444 527 ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ 445 528 ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ 446 - || chmod -R a+r $(distdir) 529 + || chmod -R a+r "$(distdir)" 447 530 dist-gzip: distdir 448 531 tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz 449 532 $(am__remove_distdir) 450 533 451 534 dist-bzip2: distdir 452 535 tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 453 536 $(am__remove_distdir) 454 537 455 538 dist-lzma: distdir 456 539 tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma 457 540 $(am__remove_distdir) 458 541 542 +dist-xz: distdir 543 + tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz 544 + $(am__remove_distdir) 545 + 459 546 dist-tarZ: distdir 460 547 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z 461 548 $(am__remove_distdir) 462 549 463 550 dist-shar: distdir 464 551 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz 465 552 $(am__remove_distdir) ................................................................................ 476 563 477 564 # This target untars the dist file and tries a VPATH configuration. Then 478 565 # it guarantees that the distribution is self-contained by making another 479 566 # tarfile. 480 567 distcheck: dist 481 568 case '$(DIST_ARCHIVES)' in \ 482 569 *.tar.gz*) \ 483 - GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ 570 + GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ 484 571 *.tar.bz2*) \ 485 - bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ 572 + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ 486 573 *.tar.lzma*) \ 487 - unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ 574 + lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ 575 + *.tar.xz*) \ 576 + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ 488 577 *.tar.Z*) \ 489 578 uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ 490 579 *.shar.gz*) \ 491 - GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ 580 + GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ 492 581 *.zip*) \ 493 582 unzip $(distdir).zip ;;\ 494 583 esac 495 584 chmod -R a-w $(distdir); chmod a+w $(distdir) 496 585 mkdir $(distdir)/_build 497 586 mkdir $(distdir)/_inst 498 587 chmod a-w $(distdir) 588 + test -d $(distdir)/_build || exit 0; \ 499 589 dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ 500 590 && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ 501 - && cd $(distdir)/_build \ 591 + && am__cwd=`pwd` \ 592 + && $(am__cd) $(distdir)/_build \ 502 593 && ../configure --srcdir=.. --prefix="$$dc_install_base" \ 503 594 $(DISTCHECK_CONFIGURE_FLAGS) \ 504 595 && $(MAKE) $(AM_MAKEFLAGS) \ 505 596 && $(MAKE) $(AM_MAKEFLAGS) dvi \ 506 597 && $(MAKE) $(AM_MAKEFLAGS) check \ 507 598 && $(MAKE) $(AM_MAKEFLAGS) install \ 508 599 && $(MAKE) $(AM_MAKEFLAGS) installcheck \ ................................................................................ 516 607 && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ 517 608 && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ 518 609 distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ 519 610 } || { rm -rf "$$dc_destdir"; exit 1; }) \ 520 611 && rm -rf "$$dc_destdir" \ 521 612 && $(MAKE) $(AM_MAKEFLAGS) dist \ 522 613 && rm -rf $(DIST_ARCHIVES) \ 523 - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck 614 + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ 615 + && cd "$$am__cwd" \ 616 + || exit 1 524 617 $(am__remove_distdir) 525 618 @(echo "$(distdir) archives ready for distribution: "; \ 526 619 list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ 527 620 sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' 528 621 distuninstallcheck: 529 - @cd $(distuninstallcheck_dir) \ 622 + @$(am__cd) '$(distuninstallcheck_dir)' \ 530 623 && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ 531 624 || { echo "ERROR: files left after uninstall:" ; \ 532 625 if test -n "$(DESTDIR)"; then \ 533 626 echo " (check DESTDIR support)"; \ 534 627 fi ; \ 535 628 $(distuninstallcheck_listfiles) ; \ 536 629 exit 1; } >&2 ................................................................................ 567 660 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install 568 661 mostlyclean-generic: 569 662 570 663 clean-generic: 571 664 572 665 distclean-generic: 573 666 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) 667 + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) 574 668 575 669 maintainer-clean-generic: 576 670 @echo "This command is intended for maintainers to use" 577 671 @echo "it deletes files that may require special tools to rebuild." 578 672 clean: clean-recursive 579 673 580 674 clean-am: clean-generic clean-libtool mostlyclean-am ................................................................................ 586 680 distclean-tags 587 681 588 682 dvi: dvi-recursive 589 683 590 684 dvi-am: 591 685 592 686 html: html-recursive 687 + 688 +html-am: 593 689 594 690 info: info-recursive 595 691 596 692 info-am: 597 693 598 694 install-data-am: install-pkgconfigDATA 599 695 600 696 install-dvi: install-dvi-recursive 697 + 698 +install-dvi-am: 601 699 602 700 install-exec-am: 603 701 604 702 install-html: install-html-recursive 703 + 704 +install-html-am: 605 705 606 706 install-info: install-info-recursive 707 + 708 +install-info-am: 607 709 608 710 install-man: 609 711 610 712 install-pdf: install-pdf-recursive 713 + 714 +install-pdf-am: 611 715 612 716 install-ps: install-ps-recursive 717 + 718 +install-ps-am: 613 719 614 720 installcheck-am: 615 721 616 722 maintainer-clean: maintainer-clean-recursive 617 723 -rm -f $(am__CONFIG_DISTCLEAN_FILES) 618 724 -rm -rf $(top_srcdir)/autom4te.cache 619 725 -rm -f Makefile ................................................................................ 629 735 630 736 ps: ps-recursive 631 737 632 738 ps-am: 633 739 634 740 uninstall-am: uninstall-pkgconfigDATA 635 741 636 -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ 637 - install-strip 742 +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ 743 + install-am install-strip tags-recursive 638 744 639 745 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ 640 746 all all-am am--refresh check check-am clean clean-generic \ 641 747 clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ 642 - dist-gzip dist-lzma dist-shar dist-tarZ dist-zip distcheck \ 643 - distclean distclean-generic distclean-libtool distclean-tags \ 644 - distcleancheck distdir distuninstallcheck dvi dvi-am html \ 645 - html-am info info-am install install-am install-data \ 646 - install-data-am install-dvi install-dvi-am install-exec \ 647 - install-exec-am install-html install-html-am install-info \ 648 - install-info-am install-man install-pdf install-pdf-am \ 649 - install-pkgconfigDATA install-ps install-ps-am install-strip \ 650 - installcheck installcheck-am installdirs installdirs-am \ 651 - maintainer-clean maintainer-clean-generic mostlyclean \ 652 - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ 653 - tags tags-recursive uninstall uninstall-am \ 748 + dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ 749 + distcheck distclean distclean-generic distclean-libtool \ 750 + distclean-tags distcleancheck distdir distuninstallcheck dvi \ 751 + dvi-am html html-am info info-am install install-am \ 752 + install-data install-data-am install-dvi install-dvi-am \ 753 + install-exec install-exec-am install-html install-html-am \ 754 + install-info install-info-am install-man install-pdf \ 755 + install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ 756 + install-strip installcheck installcheck-am installdirs \ 757 + installdirs-am maintainer-clean maintainer-clean-generic \ 758 + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ 759 + ps ps-am tags tags-recursive uninstall uninstall-am \ 654 760 uninstall-pkgconfigDATA 761 + 655 762 656 763 # Tell versions [3.59,3.63) of GNU make to not export all variables. 657 764 # Otherwise a system limit (for SysV at least) may be exceeded. 658 765 .NOEXPORT:
Changes to README.
60 60 -------------- 61 61 a library required in order to access JPEG images 62 62 download site: http://www.ijg.org 63 63 64 64 zlib 65 65 -------------- 66 66 a library supporting DEFLATE (zip) compression 67 -dowload site: http://www.zlib.net 67 +download site: http://www.zlib.net 68 68 69 69 libpng 70 70 -------------- 71 71 a library supporting PNG images 72 72 download site: http://www.libpng.org/pub/png/libpng.html 73 73 74 74 libspatialite / libproj 75 75 ----------------------- 76 76 please refer to the 'libspatialite' documentation. 77 77 78 -IMPORTANTE NOTICE: librasterlite internally includes a copy 79 -of libepsilon, a library supporting Wavelt compressed images: 80 -so you ARE NOT required to install and/or build libepsilon 81 -as a separete step. 82 -libepsilon is a copyright of: 83 -Alexander Simakov, <xander@entropyware.info> 84 -download from: http://sourceforge.net/projects/epsilon-project/ 85 - 86 78 3 - Build notes 87 79 =============== 88 80 89 81 3.1: Building on Linux 90 82 ---------------------- 91 83 92 84 Building 'librasterlite' under Linux does not require any special
Changes to aclocal.m4.
1 -# generated automatically by aclocal 1.10.1 -*- Autoconf -*- 1 +# generated automatically by aclocal 1.11.1 -*- Autoconf -*- 2 2 3 3 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 4 -# 2005, 2006, 2007, 2008 Free Software Foundation, Inc. 4 +# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. 5 5 # This file is free software; the Free Software Foundation 6 6 # gives unlimited permission to copy and/or distribute it, 7 7 # with or without modifications, as long as this notice is preserved. 8 8 9 9 # This program is distributed in the hope that it will be useful, 10 10 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without 11 11 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A 12 12 # PARTICULAR PURPOSE. 13 13 14 14 m4_ifndef([AC_AUTOCONF_VERSION], 15 15 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl 16 -m4_if(AC_AUTOCONF_VERSION, [2.61],, 17 -[m4_warning([this file was generated for autoconf 2.61. 16 +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, 17 +[m4_warning([this file was generated for autoconf 2.67. 18 18 You have another version of autoconf. It may work, but is not guaranteed to. 19 19 If you have problems, you may need to regenerate the build system entirely. 20 20 To do so, use the procedure documented by the package, typically `autoreconf'.])]) 21 21 22 22 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- 23 - 24 -# serial 52 Debian 1.5.26-1ubuntu1 AC_PROG_LIBTOOL 25 - 26 - 27 -# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) 28 -# ----------------------------------------------------------- 29 -# If this macro is not defined by Autoconf, define it here. 30 -m4_ifdef([AC_PROVIDE_IFELSE], 31 - [], 32 - [m4_define([AC_PROVIDE_IFELSE], 33 - [m4_ifdef([AC_PROVIDE_$1], 34 - [$2], [$3])])]) 35 - 36 - 37 -# AC_PROG_LIBTOOL 38 -# --------------- 39 -AC_DEFUN([AC_PROG_LIBTOOL], 40 -[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl 41 -dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX 42 -dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. 43 - AC_PROVIDE_IFELSE([AC_PROG_CXX], 44 - [AC_LIBTOOL_CXX], 45 - [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX 46 - ])]) 47 -dnl And a similar setup for Fortran 77 support 48 - AC_PROVIDE_IFELSE([AC_PROG_F77], 49 - [AC_LIBTOOL_F77], 50 - [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 51 -])]) 52 - 53 -dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. 54 -dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run 55 -dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. 56 - AC_PROVIDE_IFELSE([AC_PROG_GCJ], 57 - [AC_LIBTOOL_GCJ], 58 - [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], 59 - [AC_LIBTOOL_GCJ], 60 - [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], 61 - [AC_LIBTOOL_GCJ], 62 - [ifdef([AC_PROG_GCJ], 63 - [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) 64 - ifdef([A][M_PROG_GCJ], 65 - [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) 66 - ifdef([LT_AC_PROG_GCJ], 67 - [define([LT_AC_PROG_GCJ], 68 - defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) 69 -])])# AC_PROG_LIBTOOL 70 - 71 - 72 -# _AC_PROG_LIBTOOL 73 -# ---------------- 74 -AC_DEFUN([_AC_PROG_LIBTOOL], 75 -[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl 76 -AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl 77 -AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl 78 -AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl 23 +# 24 +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 25 +# 2006, 2007, 2008 Free Software Foundation, Inc. 26 +# Written by Gordon Matzigkeit, 1996 27 +# 28 +# This file is free software; the Free Software Foundation gives 29 +# unlimited permission to copy and/or distribute it, with or without 30 +# modifications, as long as this notice is preserved. 31 + 32 +m4_define([_LT_COPYING], [dnl 33 +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 34 +# 2006, 2007, 2008 Free Software Foundation, Inc. 35 +# Written by Gordon Matzigkeit, 1996 36 +# 37 +# This file is part of GNU Libtool. 38 +# 39 +# GNU Libtool is free software; you can redistribute it and/or 40 +# modify it under the terms of the GNU General Public License as 41 +# published by the Free Software Foundation; either version 2 of 42 +# the License, or (at your option) any later version. 43 +# 44 +# As a special exception to the GNU General Public License, 45 +# if you distribute this file as part of a program or library that 46 +# is built using GNU Libtool, you may include this file under the 47 +# same distribution terms that you use for the rest of that program. 48 +# 49 +# GNU Libtool is distributed in the hope that it will be useful, 50 +# but WITHOUT ANY WARRANTY; without even the implied warranty of 51 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 52 +# GNU General Public License for more details. 53 +# 54 +# You should have received a copy of the GNU General Public License 55 +# along with GNU Libtool; see the file COPYING. If not, a copy 56 +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or 57 +# obtained by writing to the Free Software Foundation, Inc., 58 +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 59 +]) 60 + 61 +# serial 56 LT_INIT 62 + 63 + 64 +# LT_PREREQ(VERSION) 65 +# ------------------ 66 +# Complain and exit if this libtool version is less that VERSION. 67 +m4_defun([LT_PREREQ], 68 +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, 69 + [m4_default([$3], 70 + [m4_fatal([Libtool version $1 or higher is required], 71 + 63)])], 72 + [$2])]) 73 + 74 + 75 +# _LT_CHECK_BUILDDIR 76 +# ------------------ 77 +# Complain if the absolute build directory name contains unusual characters 78 +m4_defun([_LT_CHECK_BUILDDIR], 79 +[case `pwd` in 80 + *\ * | *\ *) 81 + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; 82 +esac 83 +]) 84 + 85 + 86 +# LT_INIT([OPTIONS]) 87 +# ------------------ 88 +AC_DEFUN([LT_INIT], 89 +[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT 90 +AC_BEFORE([$0], [LT_LANG])dnl 91 +AC_BEFORE([$0], [LT_OUTPUT])dnl 92 +AC_BEFORE([$0], [LTDL_INIT])dnl 93 +m4_require([_LT_CHECK_BUILDDIR])dnl 94 + 95 +dnl Autoconf doesn't catch unexpanded LT_ macros by default: 96 +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl 97 +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl 98 +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 99 +dnl unless we require an AC_DEFUNed macro: 100 +AC_REQUIRE([LTOPTIONS_VERSION])dnl 101 +AC_REQUIRE([LTSUGAR_VERSION])dnl 102 +AC_REQUIRE([LTVERSION_VERSION])dnl 103 +AC_REQUIRE([LTOBSOLETE_VERSION])dnl 104 +m4_require([_LT_PROG_LTMAIN])dnl 105 + 106 +dnl Parse OPTIONS 107 +_LT_SET_OPTIONS([$0], [$1]) 79 108 80 109 # This can be used to rebuild libtool when needed 81 -LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" 110 +LIBTOOL_DEPS="$ltmain" 82 111 83 112 # Always use our own libtool. 84 113 LIBTOOL='$(SHELL) $(top_builddir)/libtool' 85 114 AC_SUBST(LIBTOOL)dnl 86 115 87 -# Prevent multiple expansion 88 -define([AC_PROG_LIBTOOL], []) 89 -])# _AC_PROG_LIBTOOL 90 - 91 - 92 -# AC_LIBTOOL_SETUP 93 -# ---------------- 94 -AC_DEFUN([AC_LIBTOOL_SETUP], 95 -[AC_PREREQ(2.50)dnl 96 -AC_REQUIRE([AC_ENABLE_SHARED])dnl 97 -AC_REQUIRE([AC_ENABLE_STATIC])dnl 98 -AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl 99 -AC_REQUIRE([AC_CANONICAL_HOST])dnl 116 +_LT_SETUP 117 + 118 +# Only expand once: 119 +m4_define([LT_INIT]) 120 +])# LT_INIT 121 + 122 +# Old names: 123 +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) 124 +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) 125 +dnl aclocal-1.4 backwards compatibility: 126 +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) 127 +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) 128 + 129 + 130 +# _LT_CC_BASENAME(CC) 131 +# ------------------- 132 +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. 133 +m4_defun([_LT_CC_BASENAME], 134 +[for cc_temp in $1""; do 135 + case $cc_temp in 136 + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; 137 + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; 138 + \-*) ;; 139 + *) break;; 140 + esac 141 +done 142 +cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` 143 +]) 144 + 145 + 146 +# _LT_FILEUTILS_DEFAULTS 147 +# ---------------------- 148 +# It is okay to use these file commands and assume they have been set 149 +# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. 150 +m4_defun([_LT_FILEUTILS_DEFAULTS], 151 +[: ${CP="cp -f"} 152 +: ${MV="mv -f"} 153 +: ${RM="rm -f"} 154 +])# _LT_FILEUTILS_DEFAULTS 155 + 156 + 157 +# _LT_SETUP 158 +# --------- 159 +m4_defun([_LT_SETUP], 160 +[AC_REQUIRE([AC_CANONICAL_HOST])dnl 100 161 AC_REQUIRE([AC_CANONICAL_BUILD])dnl 162 +_LT_DECL([], [host_alias], [0], [The host system])dnl 163 +_LT_DECL([], [host], [0])dnl 164 +_LT_DECL([], [host_os], [0])dnl 165 +dnl 166 +_LT_DECL([], [build_alias], [0], [The build system])dnl 167 +_LT_DECL([], [build], [0])dnl 168 +_LT_DECL([], [build_os], [0])dnl 169 +dnl 101 170 AC_REQUIRE([AC_PROG_CC])dnl 102 -AC_REQUIRE([AC_PROG_LD])dnl 103 -AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl 104 -AC_REQUIRE([AC_PROG_NM])dnl 105 - 171 +AC_REQUIRE([LT_PATH_LD])dnl 172 +AC_REQUIRE([LT_PATH_NM])dnl 173 +dnl 106 174 AC_REQUIRE([AC_PROG_LN_S])dnl 107 -AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl 108 -# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! 109 -AC_REQUIRE([AC_OBJEXT])dnl 110 -AC_REQUIRE([AC_EXEEXT])dnl 175 +test -z "$LN_S" && LN_S="ln -s" 176 +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl 177 +dnl 178 +AC_REQUIRE([LT_CMD_MAX_LEN])dnl 179 +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl 180 +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl 111 181 dnl 112 -AC_LIBTOOL_SYS_MAX_CMD_LEN 113 -AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE 114 -AC_LIBTOOL_OBJDIR 182 +m4_require([_LT_FILEUTILS_DEFAULTS])dnl 183 +m4_require([_LT_CHECK_SHELL_FEATURES])dnl 184 +m4_require([_LT_CMD_RELOAD])dnl 185 +m4_require([_LT_CHECK_MAGIC_METHOD])dnl 186 +m4_require([_LT_CMD_OLD_ARCHIVE])dnl 187 +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl 115 188 116 -AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl 117 -_LT_AC_PROG_ECHO_BACKSLASH 189 +_LT_CONFIG_LIBTOOL_INIT([ 190 +# See if we are running on zsh, and set the options which allow our 191 +# commands through without removal of \ escapes INIT. 192 +if test -n "\${ZSH_VERSION+set}" ; then 193 + setopt NO_GLOB_SUBST 194 +fi 195 +]) 196 +if test -n "${ZSH_VERSION+set}" ; then 197 + setopt NO_GLOB_SUBST 198 +fi 199 + 200 +_LT_CHECK_OBJDIR 201 + 202 +m4_require([_LT_TAG_COMPILER])dnl 203 +_LT_PROG_ECHO_BACKSLASH 118 204 119 205 case $host_os in 120 206 aix3*) 121 207 # AIX sometimes has problems with the GCC collect2 program. For some 122 208 # reason, if we set the COLLECT_NAMES environment variable, the problems 123 209 # vanish in a puff of smoke. 124 210 if test "X${COLLECT_NAMES+set}" != Xset; then ................................................................................ 126 212 export COLLECT_NAMES 127 213 fi 128 214 ;; 129 215 esac 130 216 131 217 # Sed substitution that helps us do robust quoting. It backslashifies 132 218 # metacharacters that are still active within double-quoted strings. 133 -Xsed='sed -e 1s/^X//' 134 -[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'] 219 +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' 135 220 136 221 # Same as above, but do not quote variable references. 137 -[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'] 222 +double_quote_subst='s/\([["`\\]]\)/\\\1/g' 138 223 139 224 # Sed substitution to delay expansion of an escaped shell variable in a 140 225 # double_quote_subst'ed string. 141 226 delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' 227 + 228 +# Sed substitution to delay expansion of an escaped single quote. 229 +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' 142 230 143 231 # Sed substitution to avoid accidental globbing in evaled expressions 144 232 no_glob_subst='s/\*/\\\*/g' 145 233 146 -# Constants: 147 -rm="rm -f" 148 - 149 234 # Global variables: 150 -default_ofile=libtool 235 +ofile=libtool 151 236 can_build_shared=yes 152 237 153 238 # All known linkers require a `.a' archive for static linking (except MSVC, 154 239 # which needs '.lib'). 155 240 libext=a 156 -ltmain="$ac_aux_dir/ltmain.sh" 157 -ofile="$default_ofile" 241 + 158 242 with_gnu_ld="$lt_cv_prog_gnu_ld" 159 243 160 -AC_CHECK_TOOL(AR, ar, false) 161 -AC_CHECK_TOOL(RANLIB, ranlib, :) 162 -AC_CHECK_TOOL(STRIP, strip, :) 163 - 164 244 old_CC="$CC" 165 245 old_CFLAGS="$CFLAGS" 166 246 167 247 # Set sane defaults for various variables 168 -test -z "$AR" && AR=ar 169 -test -z "$AR_FLAGS" && AR_FLAGS=cru 170 -test -z "$AS" && AS=as 171 248 test -z "$CC" && CC=cc 172 249 test -z "$LTCC" && LTCC=$CC 173 250 test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS 174 -test -z "$DLLTOOL" && DLLTOOL=dlltool 175 251 test -z "$LD" && LD=ld 176 -test -z "$LN_S" && LN_S="ln -s" 252 +test -z "$ac_objext" && ac_objext=o 253 + 254 +_LT_CC_BASENAME([$compiler]) 255 + 256 +# Only perform the check for file, if the check method requires it 177 257 test -z "$MAGIC_CMD" && MAGIC_CMD=file 178 -test -z "$NM" && NM=nm 179 -test -z "$SED" && SED=sed 180 -test -z "$OBJDUMP" && OBJDUMP=objdump 181 -test -z "$RANLIB" && RANLIB=: 258 +case $deplibs_check_method in 259 +file_magic*) 260 + if test "$file_magic_cmd" = '$MAGIC_CMD'; then 261 + _LT_PATH_MAGIC 262 + fi 263 + ;; 264 +esac 265 + 266 +# Use C for the default configuration in the libtool script 267 +LT_SUPPORTED_TAG([CC]) 268 +_LT_LANG_C_CONFIG 269 +_LT_LANG_DEFAULT_CONFIG 270 +_LT_CONFIG_COMMANDS 271 +])# _LT_SETUP 272 + 273 + 274 +# _LT_PROG_LTMAIN 275 +# --------------- 276 +# Note that this code is called both from `configure', and `config.status' 277 +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, 278 +# `config.status' has no value for ac_aux_dir unless we are using Automake, 279 +# so we pass a copy along to make sure it has a sensible value anyway. 280 +m4_defun([_LT_PROG_LTMAIN], 281 +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl 282 +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) 283 +ltmain="$ac_aux_dir/ltmain.sh" 284 +])# _LT_PROG_LTMAIN 285 + 286 + 287 + 288 +# So that we can recreate a full libtool script including additional 289 +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS 290 +# in macros and then make a single call at the end using the `libtool' 291 +# label. 292 + 293 + 294 +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) 295 +# ---------------------------------------- 296 +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. 297 +m4_define([_LT_CONFIG_LIBTOOL_INIT], 298 +[m4_ifval([$1], 299 + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], 300 + [$1 301 +])])]) 302 + 303 +# Initialize. 304 +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) 305 + 306 + 307 +# _LT_CONFIG_LIBTOOL([COMMANDS]) 308 +# ------------------------------ 309 +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. 310 +m4_define([_LT_CONFIG_LIBTOOL], 311 +[m4_ifval([$1], 312 + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], 313 + [$1 314 +])])]) 315 + 316 +# Initialize. 317 +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) 318 + 319 + 320 +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) 321 +# ----------------------------------------------------- 322 +m4_defun([_LT_CONFIG_SAVE_COMMANDS], 323 +[_LT_CONFIG_LIBTOOL([$1]) 324 +_LT_CONFIG_LIBTOOL_INIT([$2]) 325 +]) 326 + 327 + 328 +# _LT_FORMAT_COMMENT([COMMENT]) 329 +# ----------------------------- 330 +# Add leading comment marks to the start of each line, and a trailing 331 +# full-stop to the whole comment if one is not present already. 332 +m4_define([_LT_FORMAT_COMMENT], 333 +[m4_ifval([$1], [ 334 +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], 335 + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) 336 +)]) 337 + 338 + 339 + 340 + 341 + 342 +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) 343 +# ------------------------------------------------------------------- 344 +# CONFIGNAME is the name given to the value in the libtool script. 345 +# VARNAME is the (base) name used in the configure script. 346 +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on 347 +# VARNAME. Any other value will be used directly. 348 +m4_define([_LT_DECL], 349 +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], 350 + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], 351 + [m4_ifval([$1], [$1], [$2])]) 352 + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) 353 + m4_ifval([$4], 354 + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) 355 + lt_dict_add_subkey([lt_decl_dict], [$2], 356 + [tagged?], [m4_ifval([$5], [yes], [no])])]) 357 +]) 358 + 359 + 360 +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) 361 +# -------------------------------------------------------- 362 +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) 363 + 364 + 365 +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) 366 +# ------------------------------------------------ 367 +m4_define([lt_decl_tag_varnames], 368 +[_lt_decl_filter([tagged?], [yes], $@)]) 369 + 370 + 371 +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) 372 +# --------------------------------------------------------- 373 +m4_define([_lt_decl_filter], 374 +[m4_case([$#], 375 + [0], [m4_fatal([$0: too few arguments: $#])], 376 + [1], [m4_fatal([$0: too few arguments: $#: $1])], 377 + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], 378 + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], 379 + [lt_dict_filter([lt_decl_dict], $@)])[]dnl 380 +]) 381 + 382 + 383 +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) 384 +# -------------------------------------------------- 385 +m4_define([lt_decl_quote_varnames], 386 +[_lt_decl_filter([value], [1], $@)]) 387 + 388 + 389 +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) 390 +# --------------------------------------------------- 391 +m4_define([lt_decl_dquote_varnames], 392 +[_lt_decl_filter([value], [2], $@)]) 393 + 394 + 395 +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) 396 +# --------------------------------------------------- 397 +m4_define([lt_decl_varnames_tagged], 398 +[m4_assert([$# <= 2])dnl 399 +_$0(m4_quote(m4_default([$1], [[, ]])), 400 + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), 401 + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) 402 +m4_define([_lt_decl_varnames_tagged], 403 +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) 404 + 405 + 406 +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) 407 +# ------------------------------------------------ 408 +m4_define([lt_decl_all_varnames], 409 +[_$0(m4_quote(m4_default([$1], [[, ]])), 410 + m4_if([$2], [], 411 + m4_quote(lt_decl_varnames), 412 + m4_quote(m4_shift($@))))[]dnl 413 +]) 414 +m4_define([_lt_decl_all_varnames], 415 +[lt_join($@, lt_decl_varnames_tagged([$1], 416 + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl 417 +]) 418 + 419 + 420 +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) 421 +# ------------------------------------ 422 +# Quote a variable value, and forward it to `config.status' so that its 423 +# declaration there will have the same value as in `configure'. VARNAME 424 +# must have a single quote delimited value for this to work. 425 +m4_define([_LT_CONFIG_STATUS_DECLARE], 426 +[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) 427 + 428 + 429 +# _LT_CONFIG_STATUS_DECLARATIONS 430 +# ------------------------------ 431 +# We delimit libtool config variables with single quotes, so when 432 +# we write them to config.status, we have to be sure to quote all 433 +# embedded single quotes properly. In configure, this macro expands 434 +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: 435 +# 436 +# <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`' 437 +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], 438 +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), 439 + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) 440 + 441 + 442 +# _LT_LIBTOOL_TAGS 443 +# ---------------- 444 +# Output comment and list of tags supported by the script 445 +m4_defun([_LT_LIBTOOL_TAGS], 446 +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl 447 +available_tags="_LT_TAGS"dnl 448 +]) 449 + 450 + 451 +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) 452 +# ----------------------------------- 453 +# Extract the dictionary values for VARNAME (optionally with TAG) and 454 +# expand to a commented shell variable setting: 455 +# 456 +# # Some comment about what VAR is for. 457 +# visible_name=$lt_internal_name 458 +m4_define([_LT_LIBTOOL_DECLARE], 459 +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], 460 + [description])))[]dnl 461 +m4_pushdef([_libtool_name], 462 + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl 463 +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), 464 + [0], [_libtool_name=[$]$1], 465 + [1], [_libtool_name=$lt_[]$1], 466 + [2], [_libtool_name=$lt_[]$1], 467 + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl 468 +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl 469 +]) 470 + 471 + 472 +# _LT_LIBTOOL_CONFIG_VARS 473 +# ----------------------- 474 +# Produce commented declarations of non-tagged libtool config variables 475 +# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' 476 +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG 477 +# section) are produced by _LT_LIBTOOL_TAG_VARS. 478 +m4_defun([_LT_LIBTOOL_CONFIG_VARS], 479 +[m4_foreach([_lt_var], 480 + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), 481 + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) 482 + 483 + 484 +# _LT_LIBTOOL_TAG_VARS(TAG) 485 +# ------------------------- 486 +m4_define([_LT_LIBTOOL_TAG_VARS], 487 +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), 488 + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) 489 + 490 + 491 +# _LT_TAGVAR(VARNAME, [TAGNAME]) 492 +# ------------------------------ 493 +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) 494 + 495 + 496 +# _LT_CONFIG_COMMANDS 497 +# ------------------- 498 +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of 499 +# variables for single and double quote escaping we saved from calls 500 +# to _LT_DECL, we can put quote escaped variables declarations 501 +# into `config.status', and then the shell code to quote escape them in 502 +# for loops in `config.status'. Finally, any additional code accumulated 503 +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. 504 +m4_defun([_LT_CONFIG_COMMANDS], 505 +[AC_PROVIDE_IFELSE([LT_OUTPUT], 506 + dnl If the libtool generation code has been placed in $CONFIG_LT, 507 + dnl instead of duplicating it all over again into config.status, 508 + dnl then we will have config.status run $CONFIG_LT later, so it 509 + dnl needs to know what name is stored there: 510 + [AC_CONFIG_COMMANDS([libtool], 511 + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], 512 + dnl If the libtool generation code is destined for config.status, 513 + dnl expand the accumulated commands and init code now: 514 + [AC_CONFIG_COMMANDS([libtool], 515 + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) 516 +])#_LT_CONFIG_COMMANDS 517 + 518 + 519 +# Initialize. 520 +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], 521 +[ 522 + 523 +# The HP-UX ksh and POSIX shell print the target directory to stdout 524 +# if CDPATH is set. 525 +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 526 + 527 +sed_quote_subst='$sed_quote_subst' 528 +double_quote_subst='$double_quote_subst' 529 +delay_variable_subst='$delay_variable_subst' 530 +_LT_CONFIG_STATUS_DECLARATIONS 531 +LTCC='$LTCC' 532 +LTCFLAGS='$LTCFLAGS' 533 +compiler='$compiler_DEFAULT' 534 + 535 +# Quote evaled strings. 536 +for var in lt_decl_all_varnames([[ \ 537 +]], lt_decl_quote_varnames); do 538 + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in 539 + *[[\\\\\\\`\\"\\\$]]*) 540 + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" 541 + ;; 542 + *) 543 + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" 544 + ;; 545 + esac 546 +done 547 + 548 +# Double-quote double-evaled strings. 549 +for var in lt_decl_all_varnames([[ \ 550 +]], lt_decl_dquote_varnames); do 551 + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in 552 + *[[\\\\\\\`\\"\\\$]]*) 553 + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" 554 + ;; 555 + *) 556 + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" 557 + ;; 558 + esac 559 +done 560 + 561 +# Fix-up fallback echo if it was mangled by the above quoting rules. 562 +case \$lt_ECHO in 563 +*'\\\[$]0 --fallback-echo"')dnl " 564 + lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` 565 + ;; 566 +esac 567 + 568 +_LT_OUTPUT_LIBTOOL_INIT 569 +]) 570 + 571 + 572 +# LT_OUTPUT 573 +# --------- 574 +# This macro allows early generation of the libtool script (before 575 +# AC_OUTPUT is called), incase it is used in configure for compilation 576 +# tests. 577 +AC_DEFUN([LT_OUTPUT], 578 +[: ${CONFIG_LT=./config.lt} 579 +AC_MSG_NOTICE([creating $CONFIG_LT]) 580 +cat >"$CONFIG_LT" <<_LTEOF 581 +#! $SHELL 582 +# Generated by $as_me. 583 +# Run this file to recreate a libtool stub with the current configuration. 584 + 585 +lt_cl_silent=false 586 +SHELL=\${CONFIG_SHELL-$SHELL} 587 +_LTEOF 588 + 589 +cat >>"$CONFIG_LT" <<\_LTEOF 590 +AS_SHELL_SANITIZE 591 +_AS_PREPARE 592 + 593 +exec AS_MESSAGE_FD>&1 594 +exec AS_MESSAGE_LOG_FD>>config.log 595 +{ 596 + echo 597 + AS_BOX([Running $as_me.]) 598 +} >&AS_MESSAGE_LOG_FD 599 + 600 +lt_cl_help="\ 601 +\`$as_me' creates a local libtool stub from the current configuration, 602 +for use in further configure time tests before the real libtool is 603 +generated. 604 + 605 +Usage: $[0] [[OPTIONS]] 606 + 607 + -h, --help print this help, then exit 608 + -V, --version print version number, then exit 609 + -q, --quiet do not print progress messages 610 + -d, --debug don't remove temporary files 611 + 612 +Report bugs to <bug-libtool@gnu.org>." 613 + 614 +lt_cl_version="\ 615 +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl 616 +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) 617 +configured by $[0], generated by m4_PACKAGE_STRING. 618 + 619 +Copyright (C) 2008 Free Software Foundation, Inc. 620 +This config.lt script is free software; the Free Software Foundation 621 +gives unlimited permision to copy, distribute and modify it." 622 + 623 +while test $[#] != 0 624 +do 625 + case $[1] in 626 + --version | --v* | -V ) 627 + echo "$lt_cl_version"; exit 0 ;; 628 + --help | --h* | -h ) 629 + echo "$lt_cl_help"; exit 0 ;; 630 + --debug | --d* | -d ) 631 + debug=: ;; 632 + --quiet | --q* | --silent | --s* | -q ) 633 + lt_cl_silent=: ;; 634 + 635 + -*) AC_MSG_ERROR([unrecognized option: $[1] 636 +Try \`$[0] --help' for more information.]) ;; 637 + 638 + *) AC_MSG_ERROR([unrecognized argument: $[1] 639 +Try \`$[0] --help' for more information.]) ;; 640 + esac 641 + shift 642 +done 643 + 644 +if $lt_cl_silent; then 645 + exec AS_MESSAGE_FD>/dev/null 646 +fi 647 +_LTEOF 648 + 649 +cat >>"$CONFIG_LT" <<_LTEOF 650 +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT 651 +_LTEOF 652 + 653 +cat >>"$CONFIG_LT" <<\_LTEOF 654 +AC_MSG_NOTICE([creating $ofile]) 655 +_LT_OUTPUT_LIBTOOL_COMMANDS 656 +AS_EXIT(0) 657 +_LTEOF 658 +chmod +x "$CONFIG_LT" 659 + 660 +# configure is writing to config.log, but config.lt does its own redirection, 661 +# appending to config.log, which fails on DOS, as config.log is still kept 662 +# open by configure. Here we exec the FD to /dev/null, effectively closing 663 +# config.log, so it can be properly (re)opened and appended to by config.lt. 664 +if test "$no_create" != yes; then 665 + lt_cl_success=: 666 + test "$silent" = yes && 667 + lt_config_lt_args="$lt_config_lt_args --quiet" 668 + exec AS_MESSAGE_LOG_FD>/dev/null 669 + $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false 670 + exec AS_MESSAGE_LOG_FD>>config.log 671 + $lt_cl_success || AS_EXIT(1) 672 +fi 673 +])# LT_OUTPUT 674 + 675 + 676 +# _LT_CONFIG(TAG) 677 +# --------------- 678 +# If TAG is the built-in tag, create an initial libtool script with a 679 +# default configuration from the untagged config vars. Otherwise add code 680 +# to config.status for appending the configuration named by TAG from the 681 +# matching tagged config vars. 682 +m4_defun([_LT_CONFIG], 683 +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl 684 +_LT_CONFIG_SAVE_COMMANDS([ 685 + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl 686 + m4_if(_LT_TAG, [C], [ 687 + # See if we are running on zsh, and set the options which allow our 688 + # commands through without removal of \ escapes. 689 + if test -n "${ZSH_VERSION+set}" ; then 690 + setopt NO_GLOB_SUBST 691 + fi 692 + 693 + cfgfile="${ofile}T" 694 + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 695 + $RM "$cfgfile" 696 + 697 + cat <<_LT_EOF >> "$cfgfile" 698 +#! $SHELL 699 + 700 +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. 701 +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION 702 +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: 703 +# NOTE: Changes made to this file will be lost: look at ltmain.sh. 704 +# 705 +_LT_COPYING 706 +_LT_LIBTOOL_TAGS 707 + 708 +# ### BEGIN LIBTOOL CONFIG 709 +_LT_LIBTOOL_CONFIG_VARS 710 +_LT_LIBTOOL_TAG_VARS 711 +# ### END LIBTOOL CONFIG 712 + 713 +_LT_EOF 714 + 715 + case $host_os in 716 + aix3*) 717 + cat <<\_LT_EOF >> "$cfgfile" 718 +# AIX sometimes has problems with the GCC collect2 program. For some 719 +# reason, if we set the COLLECT_NAMES environment variable, the problems 720 +# vanish in a puff of smoke. 721 +if test "X${COLLECT_NAMES+set}" != Xset; then 722 + COLLECT_NAMES= 723 + export COLLECT_NAMES 724 +fi 725 +_LT_EOF 726 + ;; 727 + esac 728 + 729 + _LT_PROG_LTMAIN 730 + 731 + # We use sed instead of cat because bash on DJGPP gets confused if 732 + # if finds mixed CR/LF and LF-only lines. Since sed operates in 733 + # text mode, it properly converts lines to CR/LF. This bash problem 734 + # is reportedly fixed, but why not run on old versions too? 735 + sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ 736 + || (rm -f "$cfgfile"; exit 1) 737 + 738 + _LT_PROG_XSI_SHELLFNS 739 + 740 + sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ 741 + || (rm -f "$cfgfile"; exit 1) 742 + 743 + mv -f "$cfgfile" "$ofile" || 744 + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") 745 + chmod +x "$ofile" 746 +], 747 +[cat <<_LT_EOF >> "$ofile" 748 + 749 +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded 750 +dnl in a comment (ie after a #). 751 +# ### BEGIN LIBTOOL TAG CONFIG: $1 752 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) 753 +# ### END LIBTOOL TAG CONFIG: $1 754 +_LT_EOF 755 +])dnl /m4_if 756 +], 757 +[m4_if([$1], [], [ 758 + PACKAGE='$PACKAGE' 759 + VERSION='$VERSION' 760 + TIMESTAMP='$TIMESTAMP' 761 + RM='$RM' 762 + ofile='$ofile'], []) 763 +])dnl /_LT_CONFIG_SAVE_COMMANDS 764 +])# _LT_CONFIG 765 + 766 + 767 +# LT_SUPPORTED_TAG(TAG) 768 +# --------------------- 769 +# Trace this macro to discover what tags are supported by the libtool 770 +# --tag option, using: 771 +# autoconf --trace 'LT_SUPPORTED_TAG:$1' 772 +AC_DEFUN([LT_SUPPORTED_TAG], []) 773 + 774 + 775 +# C support is built-in for now 776 +m4_define([_LT_LANG_C_enabled], []) 777 +m4_define([_LT_TAGS], []) 778 + 779 + 780 +# LT_LANG(LANG) 781 +# ------------- 782 +# Enable libtool support for the given language if not already enabled. 783 +AC_DEFUN([LT_LANG], 784 +[AC_BEFORE([$0], [LT_OUTPUT])dnl 785 +m4_case([$1], 786 + [C], [_LT_LANG(C)], 787 + [C++], [_LT_LANG(CXX)], 788 + [Java], [_LT_LANG(GCJ)], 789 + [Fortran 77], [_LT_LANG(F77)], 790 + [Fortran], [_LT_LANG(FC)], 791 + [Windows Resource], [_LT_LANG(RC)], 792 + [m4_ifdef([_LT_LANG_]$1[_CONFIG], 793 + [_LT_LANG($1)], 794 + [m4_fatal([$0: unsupported language: "$1"])])])dnl 795 +])# LT_LANG 796 + 797 + 798 +# _LT_LANG(LANGNAME) 799 +# ------------------ 800 +m4_defun([_LT_LANG], 801 +[m4_ifdef([_LT_LANG_]$1[_enabled], [], 802 + [LT_SUPPORTED_TAG([$1])dnl 803 + m4_append([_LT_TAGS], [$1 ])dnl 804 + m4_define([_LT_LANG_]$1[_enabled], [])dnl 805 + _LT_LANG_$1_CONFIG($1)])dnl 806 +])# _LT_LANG 807 + 808 + 809 +# _LT_LANG_DEFAULT_CONFIG 810 +# ----------------------- 811 +m4_defun([_LT_LANG_DEFAULT_CONFIG], 812 +[AC_PROVIDE_IFELSE([AC_PROG_CXX], 813 + [LT_LANG(CXX)], 814 + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) 815 + 816 +AC_PROVIDE_IFELSE([AC_PROG_F77], 817 + [LT_LANG(F77)], 818 + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) 819 + 820 +AC_PROVIDE_IFELSE([AC_PROG_FC], 821 + [LT_LANG(FC)], 822 + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) 823 + 824 +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal 825 +dnl pulling things in needlessly. 826 +AC_PROVIDE_IFELSE([AC_PROG_GCJ], 827 + [LT_LANG(GCJ)], 828 + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], 829 + [LT_LANG(GCJ)], 830 + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], 831 + [LT_LANG(GCJ)], 832 + [m4_ifdef([AC_PROG_GCJ], 833 + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) 834 + m4_ifdef([A][M_PROG_GCJ], 835 + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) 836 + m4_ifdef([LT_PROG_GCJ], 837 + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) 838 + 839 +AC_PROVIDE_IFELSE([LT_PROG_RC], 840 + [LT_LANG(RC)], 841 + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) 842 +])# _LT_LANG_DEFAULT_CONFIG 843 + 844 +# Obsolete macros: 845 +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) 846 +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) 847 +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) 848 +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) 849 +dnl aclocal-1.4 backwards compatibility: 850 +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) 851 +dnl AC_DEFUN([AC_LIBTOOL_F77], []) 852 +dnl AC_DEFUN([AC_LIBTOOL_FC], []) 853 +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) 854 + 855 + 856 +# _LT_TAG_COMPILER 857 +# ---------------- 858 +m4_defun([_LT_TAG_COMPILER], 859 +[AC_REQUIRE([AC_PROG_CC])dnl 860 + 861 +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl 862 +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl 863 +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl 864 +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl 865 + 866 +# If no C compiler was specified, use CC. 867 +LTCC=${LTCC-"$CC"} 868 + 869 +# If no C compiler flags were specified, use CFLAGS. 870 +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} 871 + 872 +# Allow CC to be a program name with arguments. 873 +compiler=$CC 874 +])# _LT_TAG_COMPILER 875 + 876 + 877 +# _LT_COMPILER_BOILERPLATE 878 +# ------------------------ 879 +# Check for compiler boilerplate output or warnings with 880 +# the simple compiler test code. 881 +m4_defun([_LT_COMPILER_BOILERPLATE], 882 +[m4_require([_LT_DECL_SED])dnl 883 +ac_outfile=conftest.$ac_objext 884 +echo "$lt_simple_compile_test_code" >conftest.$ac_ext 885 +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err 886 +_lt_compiler_boilerplate=`cat conftest.err` 887 +$RM conftest* 888 +])# _LT_COMPILER_BOILERPLATE 889 + 890 + 891 +# _LT_LINKER_BOILERPLATE 892 +# ---------------------- 893 +# Check for linker boilerplate output or warnings with 894 +# the simple link test code. 895 +m4_defun([_LT_LINKER_BOILERPLATE], 896 +[m4_require([_LT_DECL_SED])dnl 897 +ac_outfile=conftest.$ac_objext 898 +echo "$lt_simple_link_test_code" >conftest.$ac_ext 899 +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err 900 +_lt_linker_boilerplate=`cat conftest.err` 901 +$RM -r conftest* 902 +])# _LT_LINKER_BOILERPLATE 903 + 904 +# _LT_REQUIRED_DARWIN_CHECKS 905 +# ------------------------- 906 +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ 907 + case $host_os in 908 + rhapsody* | darwin*) 909 + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) 910 + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) 911 + AC_CHECK_TOOL([LIPO], [lipo], [:]) 912 + AC_CHECK_TOOL([OTOOL], [otool], [:]) 913 + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) 914 + _LT_DECL([], [DSYMUTIL], [1], 915 + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) 916 + _LT_DECL([], [NMEDIT], [1], 917 + [Tool to change global to local symbols on Mac OS X]) 918 + _LT_DECL([], [LIPO], [1], 919 + [Tool to manipulate fat objects and archives on Mac OS X]) 920 + _LT_DECL([], [OTOOL], [1], 921 + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) 922 + _LT_DECL([], [OTOOL64], [1], 923 + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) 924 + 925 + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], 926 + [lt_cv_apple_cc_single_mod=no 927 + if test -z "${LT_MULTI_MODULE}"; then 928 + # By default we will add the -single_module flag. You can override 929 + # by either setting the environment variable LT_MULTI_MODULE 930 + # non-empty at configure time, or by adding -multi_module to the 931 + # link flags. 932 + rm -rf libconftest.dylib* 933 + echo "int foo(void){return 1;}" > conftest.c 934 + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ 935 +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD 936 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ 937 + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err 938 + _lt_result=$? 939 + if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then 940 + lt_cv_apple_cc_single_mod=yes 941 + else 942 + cat conftest.err >&AS_MESSAGE_LOG_FD 943 + fi 944 + rm -rf libconftest.dylib* 945 + rm -f conftest.* 946 + fi]) 947 + AC_CACHE_CHECK([for -exported_symbols_list linker flag], 948 + [lt_cv_ld_exported_symbols_list], 949 + [lt_cv_ld_exported_symbols_list=no 950 + save_LDFLAGS=$LDFLAGS 951 + echo "_main" > conftest.sym 952 + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" 953 + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], 954 + [lt_cv_ld_exported_symbols_list=yes], 955 + [lt_cv_ld_exported_symbols_list=no]) 956 + LDFLAGS="$save_LDFLAGS" 957 + ]) 958 + case $host_os in 959 + rhapsody* | darwin1.[[012]]) 960 + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; 961 + darwin1.*) 962 + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 963 + darwin*) # darwin 5.x on 964 + # if running on 10.5 or later, the deployment target defaults 965 + # to the OS version, if on x86, and 10.4, the deployment 966 + # target defaults to 10.4. Don't you love it? 967 + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 968 + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) 969 + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 970 + 10.[[012]]*) 971 + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 972 + 10.*) 973 + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 974 + esac 975 + ;; 976 + esac 977 + if test "$lt_cv_apple_cc_single_mod" = "yes"; then 978 + _lt_dar_single_mod='$single_module' 979 + fi 980 + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then 981 + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' 982 + else 983 + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' 984 + fi 985 + if test "$DSYMUTIL" != ":"; then 986 + _lt_dsymutil='~$DSYMUTIL $lib || :' 987 + else 988 + _lt_dsymutil= 989 + fi 990 + ;; 991 + esac 992 +]) 993 + 994 + 995 +# _LT_DARWIN_LINKER_FEATURES 996 +# -------------------------- 997 +# Checks for linker and compiler features on darwin 998 +m4_defun([_LT_DARWIN_LINKER_FEATURES], 999 +[ 1000 + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) 1001 + _LT_TAGVAR(archive_cmds_need_lc, $1)=no 1002 + _LT_TAGVAR(hardcode_direct, $1)=no 1003 + _LT_TAGVAR(hardcode_automatic, $1)=yes 1004 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported 1005 + _LT_TAGVAR(whole_archive_flag_spec, $1)='' 1006 + _LT_TAGVAR(link_all_deplibs, $1)=yes 1007 + _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" 1008 + case $cc_basename in 1009 + ifort*) _lt_dar_can_shared=yes ;; 1010 + *) _lt_dar_can_shared=$GCC ;; 1011 + esac 1012 + if test "$_lt_dar_can_shared" = "yes"; then 1013 + output_verbose_link_cmd=echo 1014 + _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}" 1015 + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" 1016 + _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}" 1017 + _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}" 1018 + m4_if([$1], [CXX], 1019 +[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then 1020 + _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}" 1021 + _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}" 1022 + fi 1023 +],[]) 1024 + else 1025 + _LT_TAGVAR(ld_shlibs, $1)=no 1026 + fi 1027 +]) 1028 + 1029 +# _LT_SYS_MODULE_PATH_AIX 1030 +# ----------------------- 1031 +# Links a minimal program and checks the executable 1032 +# for the system default hardcoded library path. In most cases, 1033 +# this is /usr/lib:/lib, but when the MPI compilers are used 1034 +# the location of the communication and MPI libs are included too. 1035 +# If we don't find anything, use the default library path according 1036 +# to the aix ld manual. 1037 +m4_defun([_LT_SYS_MODULE_PATH_AIX], 1038 +[m4_require([_LT_DECL_SED])dnl 1039 +AC_LINK_IFELSE(AC_LANG_PROGRAM,[ 1040 +lt_aix_libpath_sed=' 1041 + /Import File Strings/,/^$/ { 1042 + /^0/ { 1043 + s/^0 *\(.*\)$/\1/ 1044 + p 1045 + } 1046 + }' 1047 +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` 1048 +# Check for a 64-bit object if we didn't find anything. 1049 +if test -z "$aix_libpath"; then 1050 + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` 1051 +fi],[]) 1052 +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi 1053 +])# _LT_SYS_MODULE_PATH_AIX 1054 + 1055 + 1056 +# _LT_SHELL_INIT(ARG) 1057 +# ------------------- 1058 +m4_define([_LT_SHELL_INIT], 1059 +[ifdef([AC_DIVERSION_NOTICE], 1060 + [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], 1061 + [AC_DIVERT_PUSH(NOTICE)]) 1062 +$1 1063 +AC_DIVERT_POP 1064 +])# _LT_SHELL_INIT 1065 + 1066 + 1067 +# _LT_PROG_ECHO_BACKSLASH 1068 +# ----------------------- 1069 +# Add some code to the start of the generated configure script which 1070 +# will find an echo command which doesn't interpret backslashes. 1071 +m4_defun([_LT_PROG_ECHO_BACKSLASH], 1072 +[_LT_SHELL_INIT([ 1073 +# Check that we are running under the correct shell. 1074 +SHELL=${CONFIG_SHELL-/bin/sh} 1075 + 1076 +case X$lt_ECHO in 1077 +X*--fallback-echo) 1078 + # Remove one level of quotation (which was required for Make). 1079 + ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` 1080 + ;; 1081 +esac 1082 + 1083 +ECHO=${lt_ECHO-echo} 1084 +if test "X[$]1" = X--no-reexec; then 1085 + # Discard the --no-reexec flag, and continue. 1086 + shift 1087 +elif test "X[$]1" = X--fallback-echo; then 1088 + # Avoid inline document here, it may be left over 1089 + : 1090 +elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then 1091 + # Yippee, $ECHO works! 1092 + : 1093 +else 1094 + # Restart under the correct shell. 1095 + exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} 1096 +fi 1097 + 1098 +if test "X[$]1" = X--fallback-echo; then 1099 + # used as fallback echo 1100 + shift 1101 + cat <<_LT_EOF 1102 +[$]* 1103 +_LT_EOF 1104 + exit 0 1105 +fi 1106 + 1107 +# The HP-UX ksh and POSIX shell print the target directory to stdout 1108 +# if CDPATH is set. 1109 +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 1110 + 1111 +if test -z "$lt_ECHO"; then 1112 + if test "X${echo_test_string+set}" != Xset; then 1113 + # find a string as large as possible, as long as the shell can cope with it 1114 + for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do 1115 + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... 1116 + if { echo_test_string=`eval $cmd`; } 2>/dev/null && 1117 + { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null 1118 + then 1119 + break 1120 + fi 1121 + done 1122 + fi 1123 + 1124 + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && 1125 + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && 1126 + test "X$echo_testing_string" = "X$echo_test_string"; then 1127 + : 1128 + else 1129 + # The Solaris, AIX, and Digital Unix default echo programs unquote 1130 + # backslashes. This makes it impossible to quote backslashes using 1131 + # echo "$something" | sed 's/\\/\\\\/g' 1132 + # 1133 + # So, first we look for a working echo in the user's PATH. 1134 + 1135 + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR 1136 + for dir in $PATH /usr/ucb; do 1137 + IFS="$lt_save_ifs" 1138 + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && 1139 + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && 1140 + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && 1141 + test "X$echo_testing_string" = "X$echo_test_string"; then 1142 + ECHO="$dir/echo" 1143 + break 1144 + fi 1145 + done 1146 + IFS="$lt_save_ifs" 1147 + 1148 + if test "X$ECHO" = Xecho; then 1149 + # We didn't find a better echo, so look for alternatives. 1150 + if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && 1151 + echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && 1152 + test "X$echo_testing_string" = "X$echo_test_string"; then 1153 + # This shell has a builtin print -r that does the trick. 1154 + ECHO='print -r' 1155 + elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && 1156 + test "X$CONFIG_SHELL" != X/bin/ksh; then 1157 + # If we have ksh, try running configure again with it. 1158 + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} 1159 + export ORIGINAL_CONFIG_SHELL 1160 + CONFIG_SHELL=/bin/ksh 1161 + export CONFIG_SHELL 1162 + exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} 1163 + else 1164 + # Try using printf. 1165 + ECHO='printf %s\n' 1166 + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && 1167 + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && 1168 + test "X$echo_testing_string" = "X$echo_test_string"; then 1169 + # Cool, printf works 1170 + : 1171 + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && 1172 + test "X$echo_testing_string" = 'X\t' && 1173 + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && 1174 + test "X$echo_testing_string" = "X$echo_test_string"; then 1175 + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL 1176 + export CONFIG_SHELL 1177 + SHELL="$CONFIG_SHELL" 1178 + export SHELL 1179 + ECHO="$CONFIG_SHELL [$]0 --fallback-echo" 1180 + elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && 1181 + test "X$echo_testing_string" = 'X\t' && 1182 + echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && 1183 + test "X$echo_testing_string" = "X$echo_test_string"; then 1184 + ECHO="$CONFIG_SHELL [$]0 --fallback-echo" 1185 + else 1186 + # maybe with a smaller string... 1187 + prev=: 1188 + 1189 + for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do 1190 + if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null 1191 + then 1192 + break 1193 + fi 1194 + prev="$cmd" 1195 + done 1196 + 1197 + if test "$prev" != 'sed 50q "[$]0"'; then 1198 + echo_test_string=`eval $prev` 1199 + export echo_test_string 1200 + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} 1201 + else 1202 + # Oops. We lost completely, so just stick with echo. 1203 + ECHO=echo 1204 + fi 1205 + fi 1206 + fi 1207 + fi 1208 + fi 1209 +fi 1210 + 1211 +# Copy echo and quote the copy suitably for passing to libtool from 1212 +# the Makefile, instead of quoting the original, which is used later. 1213 +lt_ECHO=$ECHO 1214 +if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then 1215 + lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" 1216 +fi 1217 + 1218 +AC_SUBST(lt_ECHO) 1219 +]) 1220 +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) 1221 +_LT_DECL([], [ECHO], [1], 1222 + [An echo program that does not interpret backslashes]) 1223 +])# _LT_PROG_ECHO_BACKSLASH 1224 + 1225 + 1226 +# _LT_ENABLE_LOCK 1227 +# --------------- 1228 +m4_defun([_LT_ENABLE_LOCK], 1229 +[AC_ARG_ENABLE([libtool-lock], 1230 + [AS_HELP_STRING([--disable-libtool-lock], 1231 + [avoid locking (might break parallel builds)])]) 1232 +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes 1233 + 1234 +# Some flags need to be propagated to the compiler or linker for good 1235 +# libtool support. 1236 +case $host in 1237 +ia64-*-hpux*) 1238 + # Find out which ABI we are using. 1239 + echo 'int i;' > conftest.$ac_ext 1240 + if AC_TRY_EVAL(ac_compile); then 1241 + case `/usr/bin/file conftest.$ac_objext` in 1242 + *ELF-32*) 1243 + HPUX_IA64_MODE="32" 1244 + ;; 1245 + *ELF-64*) 1246 + HPUX_IA64_MODE="64" 1247 + ;; 1248 + esac 1249 + fi 1250 + rm -rf conftest* 1251 + ;; 1252 +*-*-irix6*) 1253 + # Find out which ABI we are using. 1254 + echo '[#]line __oline__ "configure"' > conftest.$ac_ext 1255 + if AC_TRY_EVAL(ac_compile); then 1256 + if test "$lt_cv_prog_gnu_ld" = yes; then 1257 + case `/usr/bin/file conftest.$ac_objext` in 1258 + *32-bit*) 1259 + LD="${LD-ld} -melf32bsmip" 1260 + ;; 1261 + *N32*) 1262 + LD="${LD-ld} -melf32bmipn32" 1263 + ;; 1264 + *64-bit*) 1265 + LD="${LD-ld} -melf64bmip" 1266 + ;; 1267 + esac 1268 + else 1269 + case `/usr/bin/file conftest.$ac_objext` in 1270 + *32-bit*) 1271 + LD="${LD-ld} -32" 1272 + ;; 1273 + *N32*) 1274 + LD="${LD-ld} -n32" 1275 + ;; 1276 + *64-bit*) 1277 + LD="${LD-ld} -64" 1278 + ;; 1279 + esac 1280 + fi 1281 + fi 1282 + rm -rf conftest* 1283 + ;; 1284 + 1285 +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ 1286 +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) 1287 + # Find out which ABI we are using. 1288 + echo 'int i;' > conftest.$ac_ext 1289 + if AC_TRY_EVAL(ac_compile); then 1290 + case `/usr/bin/file conftest.o` in 1291 + *32-bit*) 1292 + case $host in 1293 + x86_64-*kfreebsd*-gnu) 1294 + LD="${LD-ld} -m elf_i386_fbsd" 1295 + ;; 1296 + x86_64-*linux*) 1297 + LD="${LD-ld} -m elf_i386" 1298 + ;; 1299 + ppc64-*linux*|powerpc64-*linux*) 1300 + LD="${LD-ld} -m elf32ppclinux" 1301 + ;; 1302 + s390x-*linux*) 1303 + LD="${LD-ld} -m elf_s390" 1304 + ;; 1305 + sparc64-*linux*) 1306 + LD="${LD-ld} -m elf32_sparc" 1307 + ;; 1308 + esac 1309 + ;; 1310 + *64-bit*) 1311 + case $host in 1312 + x86_64-*kfreebsd*-gnu) 1313 + LD="${LD-ld} -m elf_x86_64_fbsd" 1314 + ;; 1315 + x86_64-*linux*) 1316 + LD="${LD-ld} -m elf_x86_64" 1317 + ;; 1318 + ppc*-*linux*|powerpc*-*linux*) 1319 + LD="${LD-ld} -m elf64ppc" 1320 + ;; 1321 + s390*-*linux*|s390*-*tpf*) 1322 + LD="${LD-ld} -m elf64_s390" 1323 + ;; 1324 + sparc*-*linux*) 1325 + LD="${LD-ld} -m elf64_sparc" 1326 + ;; 1327 + esac 1328 + ;; 1329 + esac 1330 + fi 1331 + rm -rf conftest* 1332 + ;; 1333 + 1334 +*-*-sco3.2v5*) 1335 + # On SCO OpenServer 5, we need -belf to get full-featured binaries. 1336 + SAVE_CFLAGS="$CFLAGS" 1337 + CFLAGS="$CFLAGS -belf" 1338 + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, 1339 + [AC_LANG_PUSH(C) 1340 + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) 1341 + AC_LANG_POP]) 1342 + if test x"$lt_cv_cc_needs_belf" != x"yes"; then 1343 + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf 1344 + CFLAGS="$SAVE_CFLAGS" 1345 + fi 1346 + ;; 1347 +sparc*-*solaris*) 1348 + # Find out which ABI we are using. 1349 + echo 'int i;' > conftest.$ac_ext 1350 + if AC_TRY_EVAL(ac_compile); then 1351 + case `/usr/bin/file conftest.o` in 1352 + *64-bit*) 1353 + case $lt_cv_prog_gnu_ld in 1354 + yes*) LD="${LD-ld} -m elf64_sparc" ;; 1355 + *) 1356 + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then 1357 + LD="${LD-ld} -64" 1358 + fi 1359 + ;; 1360 + esac 1361 + ;; 1362 + esac 1363 + fi 1364 + rm -rf conftest* 1365 + ;; 1366 +esac 1367 + 1368 +need_locks="$enable_libtool_lock" 1369 +])# _LT_ENABLE_LOCK 1370 + 1371 + 1372 +# _LT_CMD_OLD_ARCHIVE 1373 +# ------------------- 1374 +m4_defun([_LT_CMD_OLD_ARCHIVE], 1375 +[AC_CHECK_TOOL(AR, ar, false) 1376 +test -z "$AR" && AR=ar 1377 +test -z "$AR_FLAGS" && AR_FLAGS=cru 1378 +_LT_DECL([], [AR], [1], [The archiver]) 1379 +_LT_DECL([], [AR_FLAGS], [1]) 1380 + 1381 +AC_CHECK_TOOL(STRIP, strip, :) 182 1382 test -z "$STRIP" && STRIP=: 183 -test -z "$ac_objext" && ac_objext=o 1383 +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) 1384 + 1385 +AC_CHECK_TOOL(RANLIB, ranlib, :) 1386 +test -z "$RANLIB" && RANLIB=: 1387 +_LT_DECL([], [RANLIB], [1], 1388 + [Commands used to install an old-style archive]) 184 1389 185 1390 # Determine commands to create old-style static archives. 186 1391 old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' 187 1392 old_postinstall_cmds='chmod 644 $oldlib' 188 1393 old_postuninstall_cmds= 189 1394 190 1395 if test -n "$RANLIB"; then ................................................................................ 194 1399 ;; 195 1400 *) 196 1401 old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" 197 1402 ;; 198 1403 esac 199 1404 old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" 200 1405 fi 201 - 202 -_LT_CC_BASENAME([$compiler]) 203 - 204 -# Only perform the check for file, if the check method requires it 205 -case $deplibs_check_method in 206 -file_magic*) 207 - if test "$file_magic_cmd" = '$MAGIC_CMD'; then 208 - AC_PATH_MAGIC 209 - fi 210 - ;; 211 -esac 212 - 213 -_LT_REQUIRED_DARWIN_CHECKS 214 - 215 -AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) 216 -AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], 217 -enable_win32_dll=yes, enable_win32_dll=no) 218 - 219 -AC_ARG_ENABLE([libtool-lock], 220 - [AC_HELP_STRING([--disable-libtool-lock], 221 - [avoid locking (might break parallel builds)])]) 222 -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes 223 - 224 -AC_ARG_WITH([pic], 225 - [AC_HELP_STRING([--with-pic], 226 - [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], 227 - [pic_mode="$withval"], 228 - [pic_mode=default]) 229 -test -z "$pic_mode" && pic_mode=default 230 - 231 -# Use C for the default configuration in the libtool script 232 -tagname= 233 -AC_LIBTOOL_LANG_C_CONFIG 234 -_LT_AC_TAGCONFIG 235 -])# AC_LIBTOOL_SETUP 236 - 237 - 238 -# _LT_AC_SYS_COMPILER 239 -# ------------------- 240 -AC_DEFUN([_LT_AC_SYS_COMPILER], 241 -[AC_REQUIRE([AC_PROG_CC])dnl 242 - 243 -# If no C compiler was specified, use CC. 244 -LTCC=${LTCC-"$CC"} 245 - 246 -# If no C compiler flags were specified, use CFLAGS. 247 -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} 248 - 249 -# Allow CC to be a program name with arguments. 250 -compiler=$CC 251 -])# _LT_AC_SYS_COMPILER 252 - 253 - 254 -# _LT_CC_BASENAME(CC) 255 -# ------------------- 256 -# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. 257 -AC_DEFUN([_LT_CC_BASENAME], 258 -[for cc_temp in $1""; do 259 - case $cc_temp in 260 - compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; 261 - distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; 262 - \-*) ;; 263 - *) break;; 264 - esac 265 -done 266 -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` 267 -]) 268 - 269 - 270 -# _LT_COMPILER_BOILERPLATE 271 -# ------------------------ 272 -# Check for compiler boilerplate output or warnings with 273 -# the simple compiler test code. 274 -AC_DEFUN([_LT_COMPILER_BOILERPLATE], 275 -[AC_REQUIRE([LT_AC_PROG_SED])dnl 276 -ac_outfile=conftest.$ac_objext 277 -echo "$lt_simple_compile_test_code" >conftest.$ac_ext 278 -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err 279 -_lt_compiler_boilerplate=`cat conftest.err` 280 -$rm conftest* 281 -])# _LT_COMPILER_BOILERPLATE 282 - 283 - 284 -# _LT_LINKER_BOILERPLATE 285 -# ---------------------- 286 -# Check for linker boilerplate output or warnings with 287 -# the simple link test code. 288 -AC_DEFUN([_LT_LINKER_BOILERPLATE], 289 -[AC_REQUIRE([LT_AC_PROG_SED])dnl 290 -ac_outfile=conftest.$ac_objext 291 -echo "$lt_simple_link_test_code" >conftest.$ac_ext 292 -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err 293 -_lt_linker_boilerplate=`cat conftest.err` 294 -$rm -r conftest* 295 -])# _LT_LINKER_BOILERPLATE 296 - 297 -# _LT_REQUIRED_DARWIN_CHECKS 298 -# -------------------------- 299 -# Check for some things on darwin 300 -AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS],[ 301 - case $host_os in 302 - rhapsody* | darwin*) 303 - AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) 304 - AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) 305 - 306 - AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], 307 - [lt_cv_apple_cc_single_mod=no 308 - if test -z "${LT_MULTI_MODULE}"; then 309 - # By default we will add the -single_module flag. You can override 310 - # by either setting the environment variable LT_MULTI_MODULE 311 - # non-empty at configure time, or by adding -multi_module to the 312 - # link flags. 313 - echo "int foo(void){return 1;}" > conftest.c 314 - $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ 315 - -dynamiclib ${wl}-single_module conftest.c 316 - if test -f libconftest.dylib; then 317 - lt_cv_apple_cc_single_mod=yes 318 - rm -rf libconftest.dylib* 319 - fi 320 - rm conftest.c 321 - fi]) 322 - AC_CACHE_CHECK([for -exported_symbols_list linker flag], 323 - [lt_cv_ld_exported_symbols_list], 324 - [lt_cv_ld_exported_symbols_list=no 325 - save_LDFLAGS=$LDFLAGS 326 - echo "_main" > conftest.sym 327 - LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" 328 - AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], 329 - [lt_cv_ld_exported_symbols_list=yes], 330 - [lt_cv_ld_exported_symbols_list=no]) 331 - LDFLAGS="$save_LDFLAGS" 332 - ]) 333 - case $host_os in 334 - rhapsody* | darwin1.[[0123]]) 335 - _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; 336 - darwin1.*) 337 - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 338 - darwin*) 339 - # if running on 10.5 or later, the deployment target defaults 340 - # to the OS version, if on x86, and 10.4, the deployment 341 - # target defaults to 10.4. Don't you love it? 342 - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 343 - 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) 344 - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 345 - 10.[[012]]*) 346 - _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 347 - 10.*) 348 - _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 349 - esac 350 - ;; 351 - esac 352 - if test "$lt_cv_apple_cc_single_mod" = "yes"; then 353 - _lt_dar_single_mod='$single_module' 354 - fi 355 - if test "$lt_cv_ld_exported_symbols_list" = "yes"; then 356 - _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' 357 - else 358 - _lt_dar_export_syms="~$NMEDIT -s \$output_objdir/\${libname}-symbols.expsym \${lib}" 359 - fi 360 - if test "$DSYMUTIL" != ":"; then 361 - _lt_dsymutil="~$DSYMUTIL \$lib || :" 362 - else 363 - _lt_dsymutil= 364 - fi 365 - ;; 366 - esac 367 -]) 368 - 369 -# _LT_AC_SYS_LIBPATH_AIX 370 -# ---------------------- 371 -# Links a minimal program and checks the executable 372 -# for the system default hardcoded library path. In most cases, 373 -# this is /usr/lib:/lib, but when the MPI compilers are used 374 -# the location of the communication and MPI libs are included too. 375 -# If we don't find anything, use the default library path according 376 -# to the aix ld manual. 377 -AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], 378 -[AC_REQUIRE([LT_AC_PROG_SED])dnl 379 -AC_LINK_IFELSE(AC_LANG_PROGRAM,[ 380 -lt_aix_libpath_sed=' 381 - /Import File Strings/,/^$/ { 382 - /^0/ { 383 - s/^0 *\(.*\)$/\1/ 384 - p 385 - } 386 - }' 387 -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` 388 -# Check for a 64-bit object if we didn't find anything. 389 -if test -z "$aix_libpath"; then 390 - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` 391 -fi],[]) 392 -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi 393 -])# _LT_AC_SYS_LIBPATH_AIX 394 - 395 - 396 -# _LT_AC_SHELL_INIT(ARG) 397 -# ---------------------- 398 -AC_DEFUN([_LT_AC_SHELL_INIT], 399 -[ifdef([AC_DIVERSION_NOTICE], 400 - [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], 401 - [AC_DIVERT_PUSH(NOTICE)]) 402 -$1 403 -AC_DIVERT_POP 404 -])# _LT_AC_SHELL_INIT 405 - 406 - 407 -# _LT_AC_PROG_ECHO_BACKSLASH 408 -# -------------------------- 409 -# Add some code to the start of the generated configure script which 410 -# will find an echo command which doesn't interpret backslashes. 411 -AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], 412 -[_LT_AC_SHELL_INIT([ 413 -# Check that we are running under the correct shell. 414 -SHELL=${CONFIG_SHELL-/bin/sh} 415 - 416 -case X$ECHO in 417 -X*--fallback-echo) 418 - # Remove one level of quotation (which was required for Make). 419 - ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` 420 - ;; 421 -esac 422 - 423 -echo=${ECHO-echo} 424 -if test "X[$]1" = X--no-reexec; then 425 - # Discard the --no-reexec flag, and continue. 426 - shift 427 -elif test "X[$]1" = X--fallback-echo; then 428 - # Avoid inline document here, it may be left over 429 - : 430 -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then 431 - # Yippee, $echo works! 432 - : 433 -else 434 - # Restart under the correct shell. 435 - exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} 436 -fi 437 - 438 -if test "X[$]1" = X--fallback-echo; then 439 - # used as fallback echo 440 - shift 441 - cat <<EOF 442 -[$]* 443 -EOF 444 - exit 0 445 -fi 446 - 447 -# The HP-UX ksh and POSIX shell print the target directory to stdout 448 -# if CDPATH is set. 449 -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 450 - 451 -if test -z "$ECHO"; then 452 -if test "X${echo_test_string+set}" != Xset; then 453 -# find a string as large as possible, as long as the shell can cope with it 454 - for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do 455 - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... 456 - if (echo_test_string=`eval $cmd`) 2>/dev/null && 457 - echo_test_string=`eval $cmd` && 458 - (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null 459 - then 460 - break 461 - fi 462 - done 463 -fi 464 - 465 -if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && 466 - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && 467 - test "X$echo_testing_string" = "X$echo_test_string"; then 468 - : 469 -else 470 - # The Solaris, AIX, and Digital Unix default echo programs unquote 471 - # backslashes. This makes it impossible to quote backslashes using 472 - # echo "$something" | sed 's/\\/\\\\/g' 473 - # 474 - # So, first we look for a working echo in the user's PATH. 475 - 476 - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR 477 - for dir in $PATH /usr/ucb; do 478 - IFS="$lt_save_ifs" 479 - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && 480 - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && 481 - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && 482 - test "X$echo_testing_string" = "X$echo_test_string"; then 483 - echo="$dir/echo" 484 - break 485 - fi 486 - done 487 - IFS="$lt_save_ifs" 488 - 489 - if test "X$echo" = Xecho; then 490 - # We didn't find a better echo, so look for alternatives. 491 - if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && 492 - echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && 493 - test "X$echo_testing_string" = "X$echo_test_string"; then 494 - # This shell has a builtin print -r that does the trick. 495 - echo='print -r' 496 - elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && 497 - test "X$CONFIG_SHELL" != X/bin/ksh; then 498 - # If we have ksh, try running configure again with it. 499 - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} 500 - export ORIGINAL_CONFIG_SHELL 501 - CONFIG_SHELL=/bin/ksh 502 - export CONFIG_SHELL 503 - exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} 504 - else 505 - # Try using printf. 506 - echo='printf %s\n' 507 - if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && 508 - echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && 509 - test "X$echo_testing_string" = "X$echo_test_string"; then 510 - # Cool, printf works 511 - : 512 - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && 513 - test "X$echo_testing_string" = 'X\t' && 514 - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && 515 - test "X$echo_testing_string" = "X$echo_test_string"; then 516 - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL 517 - export CONFIG_SHELL 518 - SHELL="$CONFIG_SHELL" 519 - export SHELL 520 - echo="$CONFIG_SHELL [$]0 --fallback-echo" 521 - elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && 522 - test "X$echo_testing_string" = 'X\t' && 523 - echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && 524 - test "X$echo_testing_string" = "X$echo_test_string"; then 525 - echo="$CONFIG_SHELL [$]0 --fallback-echo" 526 - else 527 - # maybe with a smaller string... 528 - prev=: 529 - 530 - for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do 531 - if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null 532 - then 533 - break 534 - fi 535 - prev="$cmd" 536 - done 537 - 538 - if test "$prev" != 'sed 50q "[$]0"'; then 539 - echo_test_string=`eval $prev` 540 - export echo_test_string 541 - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} 542 - else 543 - # Oops. We lost completely, so just stick with echo. 544 - echo=echo 545 - fi 546 - fi 547 - fi 548 - fi 549 -fi 550 -fi 551 - 552 -# Copy echo and quote the copy suitably for passing to libtool from 553 -# the Makefile, instead of quoting the original, which is used later. 554 -ECHO=$echo 555 -if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then 556 - ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" 557 -fi 558 - 559 -AC_SUBST(ECHO) 560 -])])# _LT_AC_PROG_ECHO_BACKSLASH 561 - 562 - 563 -# _LT_AC_LOCK 564 -# ----------- 565 -AC_DEFUN([_LT_AC_LOCK], 566 -[AC_ARG_ENABLE([libtool-lock], 567 - [AC_HELP_STRING([--disable-libtool-lock], 568 - [avoid locking (might break parallel builds)])]) 569 -test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes 570 - 571 -# Some flags need to be propagated to the compiler or linker for good 572 -# libtool support. 573 -case $host in 574 -ia64-*-hpux*) 575 - # Find out which ABI we are using. 576 - echo 'int i;' > conftest.$ac_ext 577 - if AC_TRY_EVAL(ac_compile); then 578 - case `/usr/bin/file conftest.$ac_objext` in 579 - *ELF-32*) 580 - HPUX_IA64_MODE="32" 581 - ;; 582 - *ELF-64*) 583 - HPUX_IA64_MODE="64" 584 - ;; 585 - esac 586 - fi 587 - rm -rf conftest* 588 - ;; 589 -*-*-irix6*) 590 - # Find out which ABI we are using. 591 - echo '[#]line __oline__ "configure"' > conftest.$ac_ext 592 - if AC_TRY_EVAL(ac_compile); then 593 - if test "$lt_cv_prog_gnu_ld" = yes; then 594 - case `/usr/bin/file conftest.$ac_objext` in 595 - *32-bit*) 596 - LD="${LD-ld} -melf32bsmip" 597 - ;; 598 - *N32*) 599 - LD="${LD-ld} -melf32bmipn32" 600 - ;; 601 - *64-bit*) 602 - LD="${LD-ld} -melf64bmip" 603 - ;; 604 - esac 605 - else 606 - case `/usr/bin/file conftest.$ac_objext` in 607 - *32-bit*) 608 - LD="${LD-ld} -32" 609 - ;; 610 - *N32*) 611 - LD="${LD-ld} -n32" 612 - ;; 613 - *64-bit*) 614 - LD="${LD-ld} -64" 615 - ;; 616 - esac 617 - fi 618 - fi 619 - rm -rf conftest* 620 - ;; 621 - 622 -x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ 623 -s390*-*linux*|sparc*-*linux*) 624 - # Find out which ABI we are using. 625 - echo 'int i;' > conftest.$ac_ext 626 - if AC_TRY_EVAL(ac_compile); then 627 - case `/usr/bin/file conftest.o` in 628 - *32-bit*) 629 - case $host in 630 - x86_64-*kfreebsd*-gnu) 631 - LD="${LD-ld} -m elf_i386_fbsd" 632 - ;; 633 - x86_64-*linux*) 634 - LD="${LD-ld} -m elf_i386" 635 - ;; 636 - ppc64-*linux*|powerpc64-*linux*) 637 - LD="${LD-ld} -m elf32ppclinux" 638 - ;; 639 - s390x-*linux*) 640 - LD="${LD-ld} -m elf_s390" 641 - ;; 642 - sparc64-*linux*) 643 - LD="${LD-ld} -m elf32_sparc" 644 - ;; 645 - esac 646 - ;; 647 - *64-bit*) 648 - case $host in 649 - x86_64-*kfreebsd*-gnu) 650 - LD="${LD-ld} -m elf_x86_64_fbsd" 651 - ;; 652 - x86_64-*linux*) 653 - LD="${LD-ld} -m elf_x86_64" 654 - ;; 655 - ppc*-*linux*|powerpc*-*linux*) 656 - LD="${LD-ld} -m elf64ppc" 657 - ;; 658 - s390*-*linux*) 659 - LD="${LD-ld} -m elf64_s390" 660 - ;; 661 - sparc*-*linux*) 662 - LD="${LD-ld} -m elf64_sparc" 663 - ;; 664 - esac 665 - ;; 666 - esac 667 - fi 668 - rm -rf conftest* 669 - ;; 670 - 671 -*-*-sco3.2v5*) 672 - # On SCO OpenServer 5, we need -belf to get full-featured binaries. 673 - SAVE_CFLAGS="$CFLAGS" 674 - CFLAGS="$CFLAGS -belf" 675 - AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, 676 - [AC_LANG_PUSH(C) 677 - AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) 678 - AC_LANG_POP]) 679 - if test x"$lt_cv_cc_needs_belf" != x"yes"; then 680 - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf 681 - CFLAGS="$SAVE_CFLAGS" 682 - fi 683 - ;; 684 -sparc*-*solaris*) 685 - # Find out which ABI we are using. 686 - echo 'int i;' > conftest.$ac_ext 687 - if AC_TRY_EVAL(ac_compile); then 688 - case `/usr/bin/file conftest.o` in 689 - *64-bit*) 690 - case $lt_cv_prog_gnu_ld in 691 - yes*) LD="${LD-ld} -m elf64_sparc" ;; 692 - *) 693 - if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then 694 - LD="${LD-ld} -64" 695 - fi 696 - ;; 697 - esac 698 - ;; 699 - esac 700 - fi 701 - rm -rf conftest* 702 - ;; 703 - 704 -AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], 705 -[*-*-cygwin* | *-*-mingw* | *-*-pw32*) 706 - AC_CHECK_TOOL(DLLTOOL, dlltool, false) 707 - AC_CHECK_TOOL(AS, as, false) 708 - AC_CHECK_TOOL(OBJDUMP, objdump, false) 709 - ;; 710 - ]) 711 -esac 712 - 713 -need_locks="$enable_libtool_lock" 714 - 715 -])# _LT_AC_LOCK 716 - 717 - 718 -# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, 1406 +_LT_DECL([], [old_postinstall_cmds], [2]) 1407 +_LT_DECL([], [old_postuninstall_cmds], [2]) 1408 +_LT_TAGDECL([], [old_archive_cmds], [2], 1409 + [Commands used to build an old-style archive]) 1410 +])# _LT_CMD_OLD_ARCHIVE 1411 + 1412 + 1413 +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, 719 1414 # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) 720 1415 # ---------------------------------------------------------------- 721 1416 # Check whether the given compiler option works 722 -AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], 723 -[AC_REQUIRE([LT_AC_PROG_SED]) 1417 +AC_DEFUN([_LT_COMPILER_OPTION], 1418 +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl 1419 +m4_require([_LT_DECL_SED])dnl 724 1420 AC_CACHE_CHECK([$1], [$2], 725 1421 [$2=no 726 - ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) 1422 + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) 727 1423 echo "$lt_simple_compile_test_code" > conftest.$ac_ext 728 1424 lt_compiler_flag="$3" 729 1425 # Insert the option either (1) after the last *FLAGS variable, or 730 1426 # (2) before a word containing "conftest.", or (3) at the end. 731 1427 # Note that $ac_compile itself does not contain backslashes and begins 732 1428 # with a dollar sign (not a hyphen), so the echo should work correctly. 733 1429 # The option is referenced via a variable to avoid confusing sed. ................................................................................ 739 1435 (eval "$lt_compile" 2>conftest.err) 740 1436 ac_status=$? 741 1437 cat conftest.err >&AS_MESSAGE_LOG_FD 742 1438 echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD 743 1439 if (exit $ac_status) && test -s "$ac_outfile"; then 744 1440 # The compiler can only warn and ignore the option if not recognized 745 1441 # So say no if there are warnings other than the usual output. 746 - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp 1442 + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp 747 1443 $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 748 1444 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then 749 1445 $2=yes 750 1446 fi 751 1447 fi 752 - $rm conftest* 1448 + $RM conftest* 753 1449 ]) 754 1450 755 1451 if test x"[$]$2" = xyes; then 756 - ifelse([$5], , :, [$5]) 1452 + m4_if([$5], , :, [$5]) 757 1453 else 758 - ifelse([$6], , :, [$6]) 1454 + m4_if([$6], , :, [$6]) 759 1455 fi 760 -])# AC_LIBTOOL_COMPILER_OPTION 1456 +])# _LT_COMPILER_OPTION 1457 + 1458 +# Old name: 1459 +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) 1460 +dnl aclocal-1.4 backwards compatibility: 1461 +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) 761 1462 762 1463 763 -# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, 764 -# [ACTION-SUCCESS], [ACTION-FAILURE]) 765 -# ------------------------------------------------------------ 766 -# Check whether the given compiler option works 767 -AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], 768 -[AC_REQUIRE([LT_AC_PROG_SED])dnl 1464 +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, 1465 +# [ACTION-SUCCESS], [ACTION-FAILURE]) 1466 +# ---------------------------------------------------- 1467 +# Check whether the given linker option works 1468 +AC_DEFUN([_LT_LINKER_OPTION], 1469 +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl 1470 +m4_require([_LT_DECL_SED])dnl 769 1471 AC_CACHE_CHECK([$1], [$2], 770 1472 [$2=no 771 1473 save_LDFLAGS="$LDFLAGS" 772 1474 LDFLAGS="$LDFLAGS $3" 773 1475 echo "$lt_simple_link_test_code" > conftest.$ac_ext 774 1476 if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then 775 1477 # The linker can only warn and ignore the option if not recognized 776 1478 # So say no if there are warnings 777 1479 if test -s conftest.err; then 778 1480 # Append any errors to the config.log. 779 1481 cat conftest.err 1>&AS_MESSAGE_LOG_FD 780 - $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp 1482 + $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp 781 1483 $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 782 1484 if diff conftest.exp conftest.er2 >/dev/null; then 783 1485 $2=yes 784 1486 fi 785 1487 else 786 1488 $2=yes 787 1489 fi 788 1490 fi 789 - $rm -r conftest* 1491 + $RM -r conftest* 790 1492 LDFLAGS="$save_LDFLAGS" 791 1493 ]) 792 1494 793 1495 if test x"[$]$2" = xyes; then 794 - ifelse([$4], , :, [$4]) 1496 + m4_if([$4], , :, [$4]) 795 1497 else 796 - ifelse([$5], , :, [$5]) 1498 + m4_if([$5], , :, [$5]) 797 1499 fi 798 -])# AC_LIBTOOL_LINKER_OPTION 1500 +])# _LT_LINKER_OPTION 1501 + 1502 +# Old name: 1503 +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) 1504 +dnl aclocal-1.4 backwards compatibility: 1505 +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) 799 1506 800 1507 801 -# AC_LIBTOOL_SYS_MAX_CMD_LEN 802 -# -------------------------- 803 -AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], 804 -[# find the maximum length of command line arguments 1508 +# LT_CMD_MAX_LEN 1509 +#--------------- 1510 +AC_DEFUN([LT_CMD_MAX_LEN], 1511 +[AC_REQUIRE([AC_CANONICAL_HOST])dnl 1512 +# find the maximum length of command line arguments 805 1513 AC_MSG_CHECKING([the maximum length of command line arguments]) 806 1514 AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl 807 1515 i=0 808 1516 teststring="ABCD" 809 1517 810 1518 case $build_os in 811 1519 msdosdjgpp*) ................................................................................ 819 1527 gnu*) 820 1528 # Under GNU Hurd, this test is not required because there is 821 1529 # no limit to the length of command line arguments. 822 1530 # Libtool will interpret -1 as no limit whatsoever 823 1531 lt_cv_sys_max_cmd_len=-1; 824 1532 ;; 825 1533 826 - cygwin* | mingw*) 1534 + cygwin* | mingw* | cegcc*) 827 1535 # On Win9x/ME, this test blows up -- it succeeds, but takes 828 1536 # about 5 minutes as the teststring grows exponentially. 829 1537 # Worse, since 9x/ME are not pre-emptively multitasking, 830 1538 # you end up with a "frozen" computer, even though with patience 831 1539 # the test eventually succeeds (with a max line length of 256k). 832 1540 # Instead, let's just punt: use the minimum linelength reported by 833 1541 # all of the supported platforms: 8192 (on NT/2K/XP). ................................................................................ 874 1582 ;; 875 1583 sco3.2v5*) 876 1584 lt_cv_sys_max_cmd_len=102400 877 1585 ;; 878 1586 sysv5* | sco5v6* | sysv4.2uw2*) 879 1587 kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` 880 1588 if test -n "$kargmax"; then 881 - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` 1589 + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` 882 1590 else 883 1591 lt_cv_sys_max_cmd_len=32768 884 1592 fi 885 1593 ;; 886 1594 *) 887 1595 lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` 888 1596 if test -n "$lt_cv_sys_max_cmd_len"; then 889 1597 lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` 890 1598 lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` 891 1599 else 1600 + # Make teststring a little bigger before we do anything with it. 1601 + # a 1K string should be a reasonable start. 1602 + for i in 1 2 3 4 5 6 7 8 ; do 1603 + teststring=$teststring$teststring 1604 + done 892 1605 SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} 893 - while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \ 894 - = "XX$teststring") >/dev/null 2>&1 && 895 - new_result=`expr "X$teststring" : ".*" 2>&1` && 896 - lt_cv_sys_max_cmd_len=$new_result && 1606 + # If test is not a shell built-in, we'll probably end up computing a 1607 + # maximum length that is only half of the actual maximum length, but 1608 + # we can't tell. 1609 + while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ 1610 + = "XX$teststring$teststring"; } >/dev/null 2>&1 && 897 1611 test $i != 17 # 1/2 MB should be enough 898 1612 do 899 1613 i=`expr $i + 1` 900 1614 teststring=$teststring$teststring 901 1615 done 1616 + # Only check the string length outside the loop. 1617 + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` 902 1618 teststring= 903 - # Add a significant safety factor because C++ compilers can tack on massive 904 - # amounts of additional arguments before passing them to the linker. 905 - # It appears as though 1/2 is a usable value. 1619 + # Add a significant safety factor because C++ compilers can tack on 1620 + # massive amounts of additional arguments before passing them to the 1621 + # linker. It appears as though 1/2 is a usable value. 906 1622 lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` 907 1623 fi 908 1624 ;; 909 1625 esac 910 1626 ]) 911 1627 if test -n $lt_cv_sys_max_cmd_len ; then 912 1628 AC_MSG_RESULT($lt_cv_sys_max_cmd_len) 913 1629 else 914 1630 AC_MSG_RESULT(none) 915 1631 fi 916 -])# AC_LIBTOOL_SYS_MAX_CMD_LEN 1632 +max_cmd_len=$lt_cv_sys_max_cmd_len 1633 +_LT_DECL([], [max_cmd_len], [0], 1634 + [What is the maximum length of a command?]) 1635 +])# LT_CMD_MAX_LEN 1636 + 1637 +# Old name: 1638 +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) 1639 +dnl aclocal-1.4 backwards compatibility: 1640 +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) 917 1641 918 1642 919 -# _LT_AC_CHECK_DLFCN 920 -# ------------------ 921 -AC_DEFUN([_LT_AC_CHECK_DLFCN], 922 -[AC_CHECK_HEADERS(dlfcn.h)dnl 923 -])# _LT_AC_CHECK_DLFCN 1643 +# _LT_HEADER_DLFCN 1644 +# ---------------- 1645 +m4_defun([_LT_HEADER_DLFCN], 1646 +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl 1647 +])# _LT_HEADER_DLFCN 924 1648 925 1649 926 -# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, 927 -# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) 928 -# --------------------------------------------------------------------- 929 -AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], 930 -[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl 1650 +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, 1651 +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) 1652 +# ---------------------------------------------------------------- 1653 +m4_defun([_LT_TRY_DLOPEN_SELF], 1654 +[m4_require([_LT_HEADER_DLFCN])dnl 931 1655 if test "$cross_compiling" = yes; then : 932 1656 [$4] 933 1657 else 934 1658 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 935 1659 lt_status=$lt_dlunknown 936 - cat > conftest.$ac_ext <<EOF 1660 + cat > conftest.$ac_ext <<_LT_EOF 937 1661 [#line __oline__ "configure" 938 1662 #include "confdefs.h" 939 1663 940 1664 #if HAVE_DLFCN_H 941 1665 #include <dlfcn.h> 942 1666 #endif 943 1667 ................................................................................ 971 1695 # define LT_DLLAZY_OR_NOW 0 972 1696 # endif 973 1697 # endif 974 1698 # endif 975 1699 # endif 976 1700 #endif 977 1701 978 -#ifdef __cplusplus 979 -extern "C" void exit (int); 980 -#endif 981 - 982 1702 void fnord() { int i=42;} 983 1703 int main () 984 1704 { 985 1705 void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); 986 1706 int status = $lt_dlunknown; 987 1707 988 1708 if (self) ................................................................................ 990 1710 if (dlsym (self,"fnord")) status = $lt_dlno_uscore; 991 1711 else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; 992 1712 /* dlclose (self); */ 993 1713 } 994 1714 else 995 1715 puts (dlerror ()); 996 1716 997 - exit (status); 1717 + return status; 998 1718 }] 999 -EOF 1719 +_LT_EOF 1000 1720 if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then 1001 1721 (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null 1002 1722 lt_status=$? 1003 1723 case x$lt_status in 1004 1724 x$lt_dlno_uscore) $1 ;; 1005 1725 x$lt_dlneed_uscore) $2 ;; 1006 1726 x$lt_dlunknown|x*) $3 ;; ................................................................................ 1007 1727 esac 1008 1728 else : 1009 1729 # compilation failed 1010 1730 $3 1011 1731 fi 1012 1732 fi 1013 1733 rm -fr conftest* 1014 -])# _LT_AC_TRY_DLOPEN_SELF 1734 +])# _LT_TRY_DLOPEN_SELF 1015 1735 1016 1736 1017 -# AC_LIBTOOL_DLOPEN_SELF 1018 -# ---------------------- 1019 -AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], 1020 -[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl 1737 +# LT_SYS_DLOPEN_SELF 1738 +# ------------------ 1739 +AC_DEFUN([LT_SYS_DLOPEN_SELF], 1740 +[m4_require([_LT_HEADER_DLFCN])dnl 1021 1741 if test "x$enable_dlopen" != xyes; then 1022 1742 enable_dlopen=unknown 1023 1743 enable_dlopen_self=unknown 1024 1744 enable_dlopen_self_static=unknown 1025 1745 else 1026 1746 lt_cv_dlopen=no 1027 1747 lt_cv_dlopen_libs= ................................................................................ 1029 1749 case $host_os in 1030 1750 beos*) 1031 1751 lt_cv_dlopen="load_add_on" 1032 1752 lt_cv_dlopen_libs= 1033 1753 lt_cv_dlopen_self=yes 1034 1754 ;; 1035 1755 1036 - mingw* | pw32*) 1756 + mingw* | pw32* | cegcc*) 1037 1757 lt_cv_dlopen="LoadLibrary" 1038 1758 lt_cv_dlopen_libs= 1039 - ;; 1759 + ;; 1040 1760 1041 1761 cygwin*) 1042 1762 lt_cv_dlopen="dlopen" 1043 1763 lt_cv_dlopen_libs= 1044 - ;; 1764 + ;; 1045 1765 1046 1766 darwin*) 1047 1767 # if libdl is installed we need to link against it 1048 1768 AC_CHECK_LIB([dl], [dlopen], 1049 1769 [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ 1050 1770 lt_cv_dlopen="dyld" 1051 1771 lt_cv_dlopen_libs= 1052 1772 lt_cv_dlopen_self=yes 1053 1773 ]) 1054 - ;; 1774 + ;; 1055 1775 1056 1776 *) 1057 1777 AC_CHECK_FUNC([shl_load], 1058 1778 [lt_cv_dlopen="shl_load"], 1059 1779 [AC_CHECK_LIB([dld], [shl_load], 1060 1780 [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], 1061 1781 [AC_CHECK_FUNC([dlopen], ................................................................................ 1089 1809 wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" 1090 1810 1091 1811 save_LIBS="$LIBS" 1092 1812 LIBS="$lt_cv_dlopen_libs $LIBS" 1093 1813 1094 1814 AC_CACHE_CHECK([whether a program can dlopen itself], 1095 1815 lt_cv_dlopen_self, [dnl 1096 - _LT_AC_TRY_DLOPEN_SELF( 1816 + _LT_TRY_DLOPEN_SELF( 1097 1817 lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, 1098 1818 lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) 1099 1819 ]) 1100 1820 1101 1821 if test "x$lt_cv_dlopen_self" = xyes; then 1102 1822 wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" 1103 1823 AC_CACHE_CHECK([whether a statically linked program can dlopen itself], 1104 - lt_cv_dlopen_self_static, [dnl 1105 - _LT_AC_TRY_DLOPEN_SELF( 1824 + lt_cv_dlopen_self_static, [dnl 1825 + _LT_TRY_DLOPEN_SELF( 1106 1826 lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, 1107 1827 lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) 1108 1828 ]) 1109 1829 fi 1110 1830 1111 1831 CPPFLAGS="$save_CPPFLAGS" 1112 1832 LDFLAGS="$save_LDFLAGS" ................................................................................ 1120 1840 esac 1121 1841 1122 1842 case $lt_cv_dlopen_self_static in 1123 1843 yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; 1124 1844 *) enable_dlopen_self_static=unknown ;; 1125 1845 esac 1126 1846 fi 1127 -])# AC_LIBTOOL_DLOPEN_SELF 1847 +_LT_DECL([dlopen_support], [enable_dlopen], [0], 1848 + [Whether dlopen is supported]) 1849 +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], 1850 + [Whether dlopen of programs is supported]) 1851 +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], 1852 + [Whether dlopen of statically linked programs is supported]) 1853 +])# LT_SYS_DLOPEN_SELF 1854 + 1855 +# Old name: 1856 +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) 1857 +dnl aclocal-1.4 backwards compatibility: 1858 +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) 1128 1859 1129 1860 1130 -# AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) 1131 -# --------------------------------- 1132 -# Check to see if options -c and -o are simultaneously supported by compiler 1133 -AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], 1134 -[AC_REQUIRE([LT_AC_PROG_SED])dnl 1135 -AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl 1861 +# _LT_COMPILER_C_O([TAGNAME]) 1862 +# --------------------------- 1863 +# Check to see if options -c and -o are simultaneously supported by compiler. 1864 +# This macro does not hard code the compiler like AC_PROG_CC_C_O. 1865 +m4_defun([_LT_COMPILER_C_O], 1866 +[m4_require([_LT_DECL_SED])dnl 1867 +m4_require([_LT_FILEUTILS_DEFAULTS])dnl 1868 +m4_require([_LT_TAG_COMPILER])dnl 1136 1869 AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], 1137 - [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], 1138 - [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no 1139 - $rm -r conftest 2>/dev/null 1870 + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], 1871 + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no 1872 + $RM -r conftest 2>/dev/null 1140 1873 mkdir conftest 1141 1874 cd conftest 1142 1875 mkdir out 1143 1876 echo "$lt_simple_compile_test_code" > conftest.$ac_ext 1144 1877 1145 1878 lt_compiler_flag="-o out/conftest2.$ac_objext" 1146 1879 # Insert the option either (1) after the last *FLAGS variable, or ................................................................................ 1156 1889 ac_status=$? 1157 1890 cat out/conftest.err >&AS_MESSAGE_LOG_FD 1158 1891 echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD 1159 1892 if (exit $ac_status) && test -s out/conftest2.$ac_objext 1160 1893 then 1161 1894 # The compiler can only warn and ignore the option if not recognized 1162 1895 # So say no if there are warnings 1163 - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp 1896 + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp 1164 1897 $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 1165 1898 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then 1166 - _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes 1899 + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes 1167 1900 fi 1168 1901 fi 1169 1902 chmod u+w . 2>&AS_MESSAGE_LOG_FD 1170 - $rm conftest* 1903 + $RM conftest* 1171 1904 # SGI C++ compiler will create directory out/ii_files/ for 1172 1905 # template instantiation 1173 - test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files 1174 - $rm out/* && rmdir out 1906 + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files 1907 + $RM out/* && rmdir out 1175 1908 cd .. 1176 - rmdir conftest 1177 - $rm conftest* 1909 + $RM -r conftest 1910 + $RM conftest* 1178 1911 ]) 1179 -])# AC_LIBTOOL_PROG_CC_C_O 1912 +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], 1913 + [Does compiler simultaneously support -c and -o options?]) 1914 +])# _LT_COMPILER_C_O 1180 1915 1181 1916 1182 -# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) 1183 -# ----------------------------------------- 1917 +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) 1918 +# ---------------------------------- 1184 1919 # Check to see if we can do hard links to lock some files if needed 1185 -AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], 1186 -[AC_REQUIRE([_LT_AC_LOCK])dnl 1920 +m4_defun([_LT_COMPILER_FILE_LOCKS], 1921 +[m4_require([_LT_ENABLE_LOCK])dnl 1922 +m4_require([_LT_FILEUTILS_DEFAULTS])dnl 1923 +_LT_COMPILER_C_O([$1]) 1187 1924 1188 1925 hard_links="nottested" 1189 -if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then 1926 +if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then 1190 1927 # do not overwrite the value of need_locks provided by the user 1191 1928 AC_MSG_CHECKING([if we can lock with hard links]) 1192 1929 hard_links=yes 1193 - $rm conftest* 1930 + $RM conftest* 1194 1931 ln conftest.a conftest.b 2>/dev/null && hard_links=no 1195 1932 touch conftest.a 1196 1933 ln conftest.a conftest.b 2>&5 || hard_links=no 1197 1934 ln conftest.a conftest.b 2>/dev/null && hard_links=no 1198 1935 AC_MSG_RESULT([$hard_links]) 1199 1936 if test "$hard_links" = no; then 1200 1937 AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) 1201 1938 need_locks=warn 1202 1939 fi 1203 1940 else 1204 1941 need_locks=no 1205 1942 fi 1206 -])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS 1943 +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) 1944 +])# _LT_COMPILER_FILE_LOCKS 1207 1945 1208 1946 1209 -# AC_LIBTOOL_OBJDIR 1210 -# ----------------- 1211 -AC_DEFUN([AC_LIBTOOL_OBJDIR], 1947 +# _LT_CHECK_OBJDIR 1948 +# ---------------- 1949 +m4_defun([_LT_CHECK_OBJDIR], 1212 1950 [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], 1213 1951 [rm -f .libs 2>/dev/null 1214 1952 mkdir .libs 2>/dev/null 1215 1953 if test -d .libs; then 1216 1954 lt_cv_objdir=.libs 1217 1955 else 1218 1956 # MS-DOS does not allow filenames that begin with a dot. 1219 1957 lt_cv_objdir=_libs 1220 1958 fi 1221 1959 rmdir .libs 2>/dev/null]) 1222 1960 objdir=$lt_cv_objdir 1223 -])# AC_LIBTOOL_OBJDIR 1961 +_LT_DECL([], [objdir], [0], 1962 + [The name of the directory that contains temporary libtool files])dnl 1963 +m4_pattern_allow([LT_OBJDIR])dnl 1964 +AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", 1965 + [Define to the sub-directory in which libtool stores uninstalled libraries.]) 1966 +])# _LT_CHECK_OBJDIR 1224 1967 1225 1968 1226 -# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) 1227 -# ---------------------------------------------- 1969 +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) 1970 +# -------------------------------------- 1228 1971 # Check hardcoding attributes. 1229 -AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], 1972 +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], 1230 1973 [AC_MSG_CHECKING([how to hardcode library paths into programs]) 1231 -_LT_AC_TAGVAR(hardcode_action, $1)= 1232 -if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ 1233 - test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \ 1234 - test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then 1974 +_LT_TAGVAR(hardcode_action, $1)= 1975 +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || 1976 + test -n "$_LT_TAGVAR(runpath_var, $1)" || 1977 + test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then 1235 1978 1236 - # We can hardcode non-existant directories. 1237 - if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && 1979 + # We can hardcode non-existent directories. 1980 + if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && 1238 1981 # If the only mechanism to avoid hardcoding is shlibpath_var, we 1239 1982 # have to relink, otherwise we might link with an installed library 1240 1983 # when we should be linking with a yet-to-be-installed one 1241 - ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && 1242 - test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then 1984 + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && 1985 + test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then 1243 1986 # Linking always hardcodes the temporary library directory. 1244 - _LT_AC_TAGVAR(hardcode_action, $1)=relink 1987 + _LT_TAGVAR(hardcode_action, $1)=relink 1245 1988 else 1246 1989 # We can link without hardcoding, and we can hardcode nonexisting dirs. 1247 - _LT_AC_TAGVAR(hardcode_action, $1)=immediate 1990 + _LT_TAGVAR(hardcode_action, $1)=immediate 1248 1991 fi 1249 1992 else 1250 1993 # We cannot hardcode anything, or else we can only hardcode existing 1251 1994 # directories. 1252 - _LT_AC_TAGVAR(hardcode_action, $1)=unsupported 1995 + _LT_TAGVAR(hardcode_action, $1)=unsupported 1253 1996 fi 1254 -AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) 1997 +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) 1255 1998 1256 -if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then 1999 +if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || 2000 + test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then 1257 2001 # Fast installation is not supported 1258 2002 enable_fast_install=no 1259 2003 elif test "$shlibpath_overrides_runpath" = yes || 1260 2004 test "$enable_shared" = no; then 1261 2005 # Fast installation is not necessary 1262 2006 enable_fast_install=needless 1263 2007 fi 1264 -])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH 2008 +_LT_TAGDECL([], [hardcode_action], [0], 2009 + [How to hardcode a shared library path into an executable]) 2010 +])# _LT_LINKER_HARDCODE_LIBPATH 1265 2011 1266 2012 1267 -# AC_LIBTOOL_SYS_LIB_STRIP 1268 -# ------------------------ 1269 -AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], 1270 -[striplib= 2013 +# _LT_CMD_STRIPLIB 2014 +# ---------------- 2015 +m4_defun([_LT_CMD_STRIPLIB], 2016 +[m4_require([_LT_DECL_EGREP]) 2017 +striplib= 1271 2018 old_striplib= 1272 2019 AC_MSG_CHECKING([whether stripping libraries is possible]) 1273 -if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then 2020 +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then 1274 2021 test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" 1275 2022 test -z "$striplib" && striplib="$STRIP --strip-unneeded" 1276 2023 AC_MSG_RESULT([yes]) 1277 2024 else 1278 2025 # FIXME - insert some real tests, host_os isn't really good enough 1279 2026 case $host_os in 1280 - darwin*) 1281 - if test -n "$STRIP" ; then 1282 - striplib="$STRIP -x" 1283 - old_striplib="$STRIP -S" 1284 - AC_MSG_RESULT([yes]) 1285 - else 1286 - AC_MSG_RESULT([no]) 1287 -fi 1288 - ;; 1289 - *) 1290 - AC_MSG_RESULT([no]) 2027 + darwin*) 2028 + if test -n "$STRIP" ; then 2029 + striplib="$STRIP -x" 2030 + old_striplib="$STRIP -S" 2031 + AC_MSG_RESULT([yes]) 2032 + else 2033 + AC_MSG_RESULT([no]) 2034 + fi 2035 + ;; 2036 + *) 2037 + AC_MSG_RESULT([no]) 1291 2038 ;; 1292 2039 esac 1293 2040 fi 1294 -])# AC_LIBTOOL_SYS_LIB_STRIP 2041 +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) 2042 +_LT_DECL([], [striplib], [1]) 2043 +])# _LT_CMD_STRIPLIB 1295 2044 1296 2045 1297 -# AC_LIBTOOL_SYS_DYNAMIC_LINKER 2046 +# _LT_SYS_DYNAMIC_LINKER([TAG]) 1298 2047 # ----------------------------- 1299 2048 # PORTME Fill in your ld.so characteristics 1300 -AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], 1301 -[AC_REQUIRE([LT_AC_PROG_SED])dnl 2049 +m4_defun([_LT_SYS_DYNAMIC_LINKER], 2050 +[AC_REQUIRE([AC_CANONICAL_HOST])dnl 2051 +m4_require([_LT_DECL_EGREP])dnl 2052 +m4_require([_LT_FILEUTILS_DEFAULTS])dnl 2053 +m4_require([_LT_DECL_OBJDUMP])dnl 2054 +m4_require([_LT_DECL_SED])dnl 1302 2055 AC_MSG_CHECKING([dynamic linker characteristics]) 1303 -library_names_spec= 1304 -libname_spec='lib$name' 1305 -soname_spec= 1306 -shrext_cmds=".so" 1307 -postinstall_cmds= 1308 -postuninstall_cmds= 1309 -finish_cmds= 1310 -finish_eval= 1311 -shlibpath_var= 1312 -shlibpath_overrides_runpath=unknown 1313 -version_type=none 1314 -dynamic_linker="$host_os ld.so" 1315 -sys_lib_dlsearch_path_spec="/lib /usr/lib" 1316 -m4_if($1,[],[ 2056 +m4_if([$1], 2057 + [], [ 1317 2058 if test "$GCC" = yes; then 1318 2059 case $host_os in 1319 2060 darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; 1320 2061 *) lt_awk_arg="/^libraries:/" ;; 1321 2062 esac 1322 2063 lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` 1323 - if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then 2064 + if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then 1324 2065 # if the path contains ";" then we assume it to be the separator 1325 2066 # otherwise default to the standard path separator (i.e. ":") - it is 1326 2067 # assumed that no part of a normal pathname contains ";" but that should 1327 2068 # okay in the real world where ";" in dirpaths is itself problematic. 1328 - lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'` 2069 + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` 1329 2070 else 1330 - lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` 2071 + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` 1331 2072 fi 1332 2073 # Ok, now we have the path, separated by spaces, we can step through it 1333 2074 # and add multilib dir if necessary. 1334 2075 lt_tmp_lt_search_path_spec= 1335 2076 lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` 1336 2077 for lt_sys_path in $lt_search_path_spec; do 1337 2078 if test -d "$lt_sys_path/$lt_multi_os_dir"; then 1338 2079 lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" 1339 2080 else 1340 2081 test -d "$lt_sys_path" && \ 1341 2082 lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" 1342 2083 fi 1343 2084 done 1344 - lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk ' 2085 + lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' 1345 2086 BEGIN {RS=" "; FS="/|\n";} { 1346 2087 lt_foo=""; 1347 2088 lt_count=0; 1348 2089 for (lt_i = NF; lt_i > 0; lt_i--) { 1349 2090 if ($lt_i != "" && $lt_i != ".") { 1350 2091 if ($lt_i == "..") { 1351 2092 lt_count++; ................................................................................ 1357 2098 } 1358 2099 } 1359 2100 } 1360 2101 } 1361 2102 if (lt_foo != "") { lt_freq[[lt_foo]]++; } 1362 2103 if (lt_freq[[lt_foo]] == 1) { print lt_foo; } 1363 2104 }'` 1364 - sys_lib_search_path_spec=`echo $lt_search_path_spec` 2105 + sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` 1365 2106 else 1366 2107 sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" 1367 2108 fi]) 2109 +library_names_spec= 2110 +libname_spec='lib$name' 2111 +soname_spec= 2112 +shrext_cmds=".so" 2113 +postinstall_cmds= 2114 +postuninstall_cmds= 2115 +finish_cmds= 2116 +finish_eval= 2117 +shlibpath_var= 2118 +shlibpath_overrides_runpath=unknown 2119 +version_type=none 2120 +dynamic_linker="$host_os ld.so" 2121 +sys_lib_dlsearch_path_spec="/lib /usr/lib" 1368 2122 need_lib_prefix=unknown 1369 2123 hardcode_into_libs=no 1370 2124 1371 2125 # when you set need_version to no, make sure it does not cause -set_version 1372 2126 # flags to be left without arguments 1373 2127 need_version=unknown 1374 2128 ................................................................................ 1397 2151 # the line `#! .'. This would cause the generated library to 1398 2152 # depend on `.', always an invalid library. This was fixed in 1399 2153 # development snapshots of GCC prior to 3.0. 1400 2154 case $host_os in 1401 2155 aix4 | aix4.[[01]] | aix4.[[01]].*) 1402 2156 if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' 1403 2157 echo ' yes ' 1404 - echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then 2158 + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then 1405 2159 : 1406 2160 else 1407 2161 can_build_shared=no 1408 2162 fi 1409 2163 ;; 1410 2164 esac 1411 2165 # AIX (on Power*) has no versioning support, so currently we can not hardcode correct ................................................................................ 1423 2177 soname_spec='${libname}${release}${shared_ext}$major' 1424 2178 fi 1425 2179 shlibpath_var=LIBPATH 1426 2180 fi 1427 2181 ;; 1428 2182 1429 2183 amigaos*) 1430 - library_names_spec='$libname.ixlibrary $libname.a' 1431 - # Create ${libname}_ixlibrary.a entries in /sys/libs. 1432 - 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' 2184 + case $host_cpu in 2185 + powerpc) 2186 + # Since July 2007 AmigaOS4 officially supports .so libraries. 2187 + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. 2188 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 2189 + ;; 2190 + m68k) 2191 + library_names_spec='$libname.ixlibrary $libname.a' 2192 + # Create ${libname}_ixlibrary.a entries in /sys/libs. 2193 + 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' 2194 + ;; 2195 + esac 1433 2196 ;; 1434 2197 1435 2198 beos*) 1436 2199 library_names_spec='${libname}${shared_ext}' 1437 2200 dynamic_linker="$host_os ld.so" 1438 2201 shlibpath_var=LIBRARY_PATH 1439 2202 ;; ................................................................................ 1448 2211 sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" 1449 2212 sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" 1450 2213 # the default ld.so.conf also contains /usr/contrib/lib and 1451 2214 # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow 1452 2215 # libtool to hard-code these into programs 1453 2216 ;; 1454 2217 1455 -cygwin* | mingw* | pw32*) 2218 +cygwin* | mingw* | pw32* | cegcc*) 1456 2219 version_type=windows 1457 2220 shrext_cmds=".dll" 1458 2221 need_version=no 1459 2222 need_lib_prefix=no 1460 2223 1461 2224 case $GCC,$host_os in 1462 - yes,cygwin* | yes,mingw* | yes,pw32*) 2225 + yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) 1463 2226 library_names_spec='$libname.dll.a' 1464 2227 # DLL is installed to $(libdir)/../bin by postinstall_cmds 1465 2228 postinstall_cmds='base_file=`basename \${file}`~ 1466 - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ 2229 + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ 1467 2230 dldir=$destdir/`dirname \$dlpath`~ 1468 2231 test -d \$dldir || mkdir -p \$dldir~ 1469 2232 $install_prog $dir/$dlname \$dldir/$dlname~ 1470 - chmod a+x \$dldir/$dlname' 2233 + chmod a+x \$dldir/$dlname~ 2234 + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then 2235 + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; 2236 + fi' 1471 2237 postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ 1472 2238 dlpath=$dir/\$dldll~ 1473 - $rm \$dlpath' 2239 + $RM \$dlpath' 1474 2240 shlibpath_overrides_runpath=yes 1475 2241 1476 2242 case $host_os in 1477 2243 cygwin*) 1478 2244 # Cygwin DLLs use 'cyg' prefix rather than 'lib' 1479 2245 soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' 1480 2246 sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" 1481 2247 ;; 1482 - mingw*) 2248 + mingw* | cegcc*) 1483 2249 # MinGW DLLs use traditional 'lib' prefix 1484 2250 soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' 1485 - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` 1486 - if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then 2251 + sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` 2252 + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then 1487 2253 # It is most probably a Windows format PATH printed by 1488 2254 # mingw gcc, but we are running on Cygwin. Gcc prints its search 1489 2255 # path with ; separators, and with drive letters. We can handle the 1490 2256 # drive letters (cygwin fileutils understands them), so leave them, 1491 2257 # especially as we might pass files found there to a mingw objdump, 1492 2258 # which wouldn't understand a cygwinified path. Ahh. 1493 - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` 2259 + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` 1494 2260 else 1495 - sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` 2261 + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` 1496 2262 fi 1497 2263 ;; 1498 2264 pw32*) 1499 2265 # pw32 DLLs use 'pw' prefix rather than 'lib' 1500 2266 library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' 1501 2267 ;; 1502 2268 esac ................................................................................ 1512 2278 ;; 1513 2279 1514 2280 darwin* | rhapsody*) 1515 2281 dynamic_linker="$host_os dyld" 1516 2282 version_type=darwin 1517 2283 need_lib_prefix=no 1518 2284 need_version=no 1519 - library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' 2285 + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' 1520 2286 soname_spec='${libname}${release}${major}$shared_ext' 1521 2287 shlibpath_overrides_runpath=yes 1522 2288 shlibpath_var=DYLD_LIBRARY_PATH 1523 2289 shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' 1524 - m4_if([$1], [],[ 1525 - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) 2290 +m4_if([$1], [],[ 2291 + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) 1526 2292 sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' 1527 2293 ;; 1528 2294 1529 2295 dgux*) 1530 2296 version_type=linux 1531 2297 need_lib_prefix=no 1532 2298 need_version=no ................................................................................ 1611 2377 if test "X$HPUX_IA64_MODE" = X32; then 1612 2378 sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" 1613 2379 else 1614 2380 sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" 1615 2381 fi 1616 2382 sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec 1617 2383 ;; 1618 - hppa*64*) 1619 - shrext_cmds='.sl' 1620 - hardcode_into_libs=yes 1621 - dynamic_linker="$host_os dld.sl" 1622 - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH 1623 - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. 1624 - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 1625 - soname_spec='${libname}${release}${shared_ext}$major' 1626 - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" 1627 - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec 1628 - ;; 1629 - *) 2384 + hppa*64*) 2385 + shrext_cmds='.sl' 2386 + hardcode_into_libs=yes 2387 + dynamic_linker="$host_os dld.sl" 2388 + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH 2389 + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. 2390 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 2391 + soname_spec='${libname}${release}${shared_ext}$major' 2392 + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" 2393 + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec 2394 + ;; 2395 + *) 1630 2396 shrext_cmds='.sl' 1631 2397 dynamic_linker="$host_os dld.sl" 1632 2398 shlibpath_var=SHLIB_PATH 1633 2399 shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH 1634 2400 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 1635 2401 soname_spec='${libname}${release}${shared_ext}$major' 1636 2402 ;; ................................................................................ 1690 2456 1691 2457 # No shared lib support for Linux oldld, aout, or coff. 1692 2458 linux*oldld* | linux*aout* | linux*coff*) 1693 2459 dynamic_linker=no 1694 2460 ;; 1695 2461 1696 2462 # This must be Linux ELF. 1697 -linux* | k*bsd*-gnu) 2463 +linux* | k*bsd*-gnu | kopensolaris*-gnu) 1698 2464 version_type=linux 1699 2465 need_lib_prefix=no 1700 2466 need_version=no 1701 2467 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 1702 2468 soname_spec='${libname}${release}${shared_ext}$major' 1703 2469 finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' 1704 2470 shlibpath_var=LD_LIBRARY_PATH 1705 2471 shlibpath_overrides_runpath=no 2472 + # Some binutils ld are patched to set DT_RUNPATH 2473 + save_LDFLAGS=$LDFLAGS 2474 + save_libdir=$libdir 2475 + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ 2476 + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" 2477 + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], 2478 + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], 2479 + [shlibpath_overrides_runpath=yes])]) 2480 + LDFLAGS=$save_LDFLAGS 2481 + libdir=$save_libdir 2482 + 1706 2483 # This implies no fast_install, which is unacceptable. 1707 2484 # Some rework will be needed to allow for fast_install 1708 2485 # before this can be enabled. 1709 2486 hardcode_into_libs=yes 1710 2487 1711 2488 # Append ld.so.conf contents to the search path 1712 2489 if test -f /etc/ld.so.conf; then 1713 - 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' ' '` 2490 + 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' ' '` 1714 2491 sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" 1715 2492 fi 1716 2493 1717 2494 # We used to test for /lib/ld.so.1 and disable shared libraries on 1718 2495 # powerpc, because MkLinux only supported shared libraries with the 1719 2496 # GNU dynamic linker. Since this was broken with cross compilers, 1720 2497 # most powerpc-linux boxes support dynamic linking these days and ................................................................................ 1735 2512 dynamic_linker='NetBSD ld.elf_so' 1736 2513 ;; 1737 2514 1738 2515 netbsd*) 1739 2516 version_type=sunos 1740 2517 need_lib_prefix=no 1741 2518 need_version=no 1742 - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then 2519 + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then 1743 2520 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' 1744 2521 finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' 1745 2522 dynamic_linker='NetBSD (a.out) ld.so' 1746 2523 else 1747 2524 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' 1748 2525 soname_spec='${libname}${release}${shared_ext}$major' 1749 2526 dynamic_linker='NetBSD ld.elf_so' ................................................................................ 1756 2533 newsos6) 1757 2534 version_type=linux 1758 2535 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 1759 2536 shlibpath_var=LD_LIBRARY_PATH 1760 2537 shlibpath_overrides_runpath=yes 1761 2538 ;; 1762 2539 1763 -nto-qnx*) 1764 - version_type=linux 2540 +*nto* | *qnx*) 2541 + version_type=qnx 1765 2542 need_lib_prefix=no 1766 2543 need_version=no 1767 2544 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 1768 2545 soname_spec='${libname}${release}${shared_ext}$major' 1769 2546 shlibpath_var=LD_LIBRARY_PATH 1770 - shlibpath_overrides_runpath=yes 2547 + shlibpath_overrides_runpath=no 2548 + hardcode_into_libs=yes 2549 + dynamic_linker='ldqnx.so' 1771 2550 ;; 1772 2551 1773 2552 openbsd*) 1774 2553 version_type=sunos 1775 2554 sys_lib_dlsearch_path_spec="/usr/lib" 1776 2555 need_lib_prefix=no 1777 2556 # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. 1778 2557 case $host_os in 1779 - openbsd3.3 | openbsd3.3.*) need_version=yes ;; 1780 - *) need_version=no ;; 2558 + openbsd3.3 | openbsd3.3.*) need_version=yes ;; 2559 + *) need_version=no ;; 1781 2560 esac 1782 2561 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' 1783 2562 finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' 1784 2563 shlibpath_var=LD_LIBRARY_PATH 1785 - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then 2564 + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then 1786 2565 case $host_os in 1787 2566 openbsd2.[[89]] | openbsd2.[[89]].*) 1788 2567 shlibpath_overrides_runpath=no 1789 2568 ;; 1790 2569 *) 1791 2570 shlibpath_overrides_runpath=yes 1792 2571 ;; ................................................................................ 1850 2629 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 1851 2630 soname_spec='${libname}${release}${shared_ext}$major' 1852 2631 shlibpath_var=LD_LIBRARY_PATH 1853 2632 case $host_vendor in 1854 2633 sni) 1855 2634 shlibpath_overrides_runpath=no 1856 2635 need_lib_prefix=no 1857 - export_dynamic_flag_spec='${wl}-Blargedynsym' 1858 2636 runpath_var=LD_RUN_PATH 1859 2637 ;; 1860 2638 siemens) 1861 2639 need_lib_prefix=no 1862 2640 ;; 1863 2641 motorola) 1864 2642 need_lib_prefix=no ................................................................................ 1881 2659 sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) 1882 2660 version_type=freebsd-elf 1883 2661 need_lib_prefix=no 1884 2662 need_version=no 1885 2663 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' 1886 2664 soname_spec='${libname}${release}${shared_ext}$major' 1887 2665 shlibpath_var=LD_LIBRARY_PATH 2666 + shlibpath_overrides_runpath=yes 1888 2667 hardcode_into_libs=yes 1889 2668 if test "$with_gnu_ld" = yes; then 1890 2669 sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' 1891 - shlibpath_overrides_runpath=no 1892 2670 else 1893 2671 sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' 1894 - shlibpath_overrides_runpath=yes 1895 2672 case $host_os in 1896 2673 sco3.2v5*) 1897 2674 sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" 1898 2675 ;; 1899 2676 esac 1900 2677 fi 1901 2678 sys_lib_dlsearch_path_spec='/usr/lib' 1902 2679 ;; 2680 + 2681 +tpf*) 2682 + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. 2683 + version_type=linux 2684 + need_lib_prefix=no 2685 + need_version=no 2686 + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 2687 + shlibpath_var=LD_LIBRARY_PATH 2688 + shlibpath_overrides_runpath=no 2689 + hardcode_into_libs=yes 2690 + ;; 1903 2691 1904 2692 uts4*) 1905 2693 version_type=linux 1906 2694 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' 1907 2695 soname_spec='${libname}${release}${shared_ext}$major' 1908 2696 shlibpath_var=LD_LIBRARY_PATH 1909 2697 ;; ................................................................................ 1911 2699 *) 1912 2700 dynamic_linker=no 1913 2701 ;; 1914 2702 esac 1915 2703 AC_MSG_RESULT([$dynamic_linker]) 1916 2704 test "$dynamic_linker" = no && can_build_shared=no 1917 2705 1918 -AC_CACHE_VAL([lt_cv_sys_lib_search_path_spec], 1919 -[lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"]) 1920 -sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" 1921 -AC_CACHE_VAL([lt_cv_sys_lib_dlsearch_path_spec], 1922 -[lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"]) 1923 -sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" 1924 - 1925 2706 variables_saved_for_relink="PATH $shlibpath_var $runpath_var" 1926 2707 if test "$GCC" = yes; then 1927 2708 variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" 1928 2709 fi 1929 -])# AC_LIBTOOL_SYS_DYNAMIC_LINKER 1930 - 1931 - 1932 -# _LT_AC_TAGCONFIG 1933 -# ---------------- 1934 -AC_DEFUN([_LT_AC_TAGCONFIG], 1935 -[AC_REQUIRE([LT_AC_PROG_SED])dnl 1936 -AC_ARG_WITH([tags], 1937 - [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], 1938 - [include additional configurations @<:@automatic@:>@])], 1939 - [tagnames="$withval"]) 1940 - 1941 -if test -f "$ltmain" && test -n "$tagnames"; then 1942 - if test ! -f "${ofile}"; then 1943 - AC_MSG_WARN([output file `$ofile' does not exist]) 1944 - fi 1945 - 1946 - if test -z "$LTCC"; then 1947 - eval "`$SHELL ${ofile} --config | grep '^LTCC='`" 1948 - if test -z "$LTCC"; then 1949 - AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) 1950 - else 1951 - AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) 1952 - fi 1953 - fi 1954 - if test -z "$LTCFLAGS"; then 1955 - eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" 1956 - fi 1957 - 1958 - # Extract list of available tagged configurations in $ofile. 1959 - # Note that this assumes the entire list is on one line. 1960 - available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` 1961 - 1962 - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," 1963 - for tagname in $tagnames; do 1964 - IFS="$lt_save_ifs" 1965 - # Check whether tagname contains only valid characters 1966 - case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in 1967 - "") ;; 1968 - *) AC_MSG_ERROR([invalid tag name: $tagname]) 1969 - ;; 1970 - esac 1971 - 1972 - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null 1973 - then 1974 - AC_MSG_ERROR([tag name \"$tagname\" already exists]) 1975 - fi 1976 - 1977 - # Update the list of available tags. 1978 - if test -n "$tagname"; then 1979 - echo appending configuration tag \"$tagname\" to $ofile 1980 - 1981 - case $tagname in 1982 - CXX) 1983 - if test -n "$CXX" && ( test "X$CXX" != "Xno" && 1984 - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || 1985 - (test "X$CXX" != "Xg++"))) ; then 1986 - AC_LIBTOOL_LANG_CXX_CONFIG 1987 - else 1988 - tagname="" 1989 - fi 1990 - ;; 1991 - 1992 - F77) 1993 - if test -n "$F77" && test "X$F77" != "Xno"; then 1994 - AC_LIBTOOL_LANG_F77_CONFIG 1995 - else 1996 - tagname="" 1997 - fi 1998 - ;; 1999 - 2000 - GCJ) 2001 - if test -n "$GCJ" && test "X$GCJ" != "Xno"; then 2002 - AC_LIBTOOL_LANG_GCJ_CONFIG 2003 - else 2004 - tagname="" 2005 - fi 2006 - ;; 2007 - 2008 - RC) 2009 - AC_LIBTOOL_LANG_RC_CONFIG 2010 - ;; 2011 - 2012 - *) 2013 - AC_MSG_ERROR([Unsupported tag name: $tagname]) 2014 - ;; 2015 - esac 2016 - 2017 - # Append the new tag name to the list of available tags. 2018 - if test -n "$tagname" ; then 2019 - available_tags="$available_tags $tagname" 2020 - fi 2021 - fi 2022 - done 2023 - IFS="$lt_save_ifs" 2024 - 2025 - # Now substitute the updated list of available tags. 2026 - if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then 2027 - mv "${ofile}T" "$ofile" 2028 - chmod +x "$ofile" 2029 - else 2030 - rm -f "${ofile}T" 2031 - AC_MSG_ERROR([unable to update list of available tagged configurations.]) 2032 - fi 2033 -fi 2034 -])# _LT_AC_TAGCONFIG 2035 - 2036 - 2037 -# AC_LIBTOOL_DLOPEN 2038 -# ----------------- 2039 -# enable checks for dlopen support 2040 -AC_DEFUN([AC_LIBTOOL_DLOPEN], 2041 - [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) 2042 -])# AC_LIBTOOL_DLOPEN 2043 - 2044 - 2045 -# AC_LIBTOOL_WIN32_DLL 2046 -# -------------------- 2047 -# declare package support for building win32 DLLs 2048 -AC_DEFUN([AC_LIBTOOL_WIN32_DLL], 2049 -[AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) 2050 -])# AC_LIBTOOL_WIN32_DLL 2051 - 2052 - 2053 -# AC_ENABLE_SHARED([DEFAULT]) 2054 -# --------------------------- 2055 -# implement the --enable-shared flag 2056 -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. 2057 -AC_DEFUN([AC_ENABLE_SHARED], 2058 -[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl 2059 -AC_ARG_ENABLE([shared], 2060 - [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], 2061 - [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])], 2062 - [p=${PACKAGE-default} 2063 - case $enableval in 2064 - yes) enable_shared=yes ;; 2065 - no) enable_shared=no ;; 2066 - *) 2067 - enable_shared=no 2068 - # Look at the argument we got. We use all the common list separators. 2069 - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," 2070 - for pkg in $enableval; do 2071 - IFS="$lt_save_ifs" 2072 - if test "X$pkg" = "X$p"; then 2073 - enable_shared=yes 2074 - fi 2075 - done 2076 - IFS="$lt_save_ifs" 2077 - ;; 2078 - esac], 2079 - [enable_shared=]AC_ENABLE_SHARED_DEFAULT) 2080 -])# AC_ENABLE_SHARED 2081 - 2082 - 2083 -# AC_DISABLE_SHARED 2084 -# ----------------- 2085 -# set the default shared flag to --disable-shared 2086 -AC_DEFUN([AC_DISABLE_SHARED], 2087 -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl 2088 -AC_ENABLE_SHARED(no) 2089 -])# AC_DISABLE_SHARED 2090 - 2091 - 2092 -# AC_ENABLE_STATIC([DEFAULT]) 2093 -# --------------------------- 2094 -# implement the --enable-static flag 2095 -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. 2096 -AC_DEFUN([AC_ENABLE_STATIC], 2097 -[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl 2098 -AC_ARG_ENABLE([static], 2099 - [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], 2100 - [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])], 2101 - [p=${PACKAGE-default} 2102 - case $enableval in 2103 - yes) enable_static=yes ;; 2104 - no) enable_static=no ;; 2105 - *) 2106 - enable_static=no 2107 - # Look at the argument we got. We use all the common list separators. 2108 - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," 2109 - for pkg in $enableval; do 2110 - IFS="$lt_save_ifs" 2111 - if test "X$pkg" = "X$p"; then 2112 - enable_static=yes 2113 - fi 2114 - done 2115 - IFS="$lt_save_ifs" 2116 - ;; 2117 - esac], 2118 - [enable_static=]AC_ENABLE_STATIC_DEFAULT) 2119 -])# AC_ENABLE_STATIC 2120 - 2121 - 2122 -# AC_DISABLE_STATIC 2123 -# ----------------- 2124 -# set the default static flag to --disable-static 2125 -AC_DEFUN([AC_DISABLE_STATIC], 2126 -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl 2127 -AC_ENABLE_STATIC(no) 2128 -])# AC_DISABLE_STATIC 2129 - 2130 - 2131 -# AC_ENABLE_FAST_INSTALL([DEFAULT]) 2132 -# --------------------------------- 2133 -# implement the --enable-fast-install flag 2134 -# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. 2135 -AC_DEFUN([AC_ENABLE_FAST_INSTALL], 2136 -[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl 2137 -AC_ARG_ENABLE([fast-install], 2138 - [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], 2139 - [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], 2140 - [p=${PACKAGE-default} 2141 - case $enableval in 2142 - yes) enable_fast_install=yes ;; 2143 - no) enable_fast_install=no ;; 2144 - *) 2145 - enable_fast_install=no 2146 - # Look at the argument we got. We use all the common list separators. 2147 - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," 2148 - for pkg in $enableval; do 2149 - IFS="$lt_save_ifs" 2150 - if test "X$pkg" = "X$p"; then 2151 - enable_fast_install=yes 2152 - fi 2153 - done 2154 - IFS="$lt_save_ifs" 2155 - ;; 2156 - esac], 2157 - [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT) 2158 -])# AC_ENABLE_FAST_INSTALL 2159 - 2160 - 2161 -# AC_DISABLE_FAST_INSTALL 2162 -# ----------------------- 2163 -# set the default to --disable-fast-install 2164 -AC_DEFUN([AC_DISABLE_FAST_INSTALL], 2165 -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl 2166 -AC_ENABLE_FAST_INSTALL(no) 2167 -])# AC_DISABLE_FAST_INSTALL 2168 - 2169 - 2170 -# AC_LIBTOOL_PICMODE([MODE]) 2710 + 2711 +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then 2712 + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" 2713 +fi 2714 +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then 2715 + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" 2716 +fi 2717 + 2718 +_LT_DECL([], [variables_saved_for_relink], [1], 2719 + [Variables whose values should be saved in libtool wrapper scripts and 2720 + restored at link time]) 2721 +_LT_DECL([], [need_lib_prefix], [0], 2722 + [Do we need the "lib" prefix for modules?]) 2723 +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) 2724 +_LT_DECL([], [version_type], [0], [Library versioning type]) 2725 +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) 2726 +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) 2727 +_LT_DECL([], [shlibpath_overrides_runpath], [0], 2728 + [Is shlibpath searched before the hard-coded library search path?]) 2729 +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) 2730 +_LT_DECL([], [library_names_spec], [1], 2731 + [[List of archive names. First name is the real one, the rest are links. 2732 + The last name is the one that the linker finds with -lNAME]]) 2733 +_LT_DECL([], [soname_spec], [1], 2734 + [[The coded name of the library, if different from the real name]]) 2735 +_LT_DECL([], [postinstall_cmds], [2], 2736 + [Command to use after installation of a shared archive]) 2737 +_LT_DECL([], [postuninstall_cmds], [2], 2738 + [Command to use after uninstallation of a shared archive]) 2739 +_LT_DECL([], [finish_cmds], [2], 2740 + [Commands used to finish a libtool library installation in a directory]) 2741 +_LT_DECL([], [finish_eval], [1], 2742 + [[As "finish_cmds", except a single script fragment to be evaled but 2743 + not shown]]) 2744 +_LT_DECL([], [hardcode_into_libs], [0], 2745 + [Whether we should hardcode library paths into libraries]) 2746 +_LT_DECL([], [sys_lib_search_path_spec], [2], 2747 + [Compile-time system search path for libraries]) 2748 +_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], 2749 + [Run-time system search path for libraries]) 2750 +])# _LT_SYS_DYNAMIC_LINKER 2751 + 2752 + 2753 +# _LT_PATH_TOOL_PREFIX(TOOL) 2171 2754 # -------------------------- 2172 -# implement the --with-pic flag 2173 -# MODE is either `yes' or `no'. If omitted, it defaults to `both'. 2174 -AC_DEFUN([AC_LIBTOOL_PICMODE], 2175 -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl 2176 -pic_mode=ifelse($#,1,$1,default) 2177 -])# AC_LIBTOOL_PICMODE 2178 - 2179 - 2180 -# AC_PROG_EGREP 2181 -# ------------- 2182 -# This is predefined starting with Autoconf 2.54, so this conditional 2183 -# definition can be removed once we require Autoconf 2.54 or later. 2184 -m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], 2185 -[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], 2186 - [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 2187 - then ac_cv_prog_egrep='grep -E' 2188 - else ac_cv_prog_egrep='egrep' 2189 - fi]) 2190 - EGREP=$ac_cv_prog_egrep 2191 - AC_SUBST([EGREP]) 2192 -])]) 2193 - 2194 - 2195 -# AC_PATH_TOOL_PREFIX 2196 -# ------------------- 2197 2755 # find a file program which can recognize shared library 2198 -AC_DEFUN([AC_PATH_TOOL_PREFIX], 2199 -[AC_REQUIRE([AC_PROG_EGREP])dnl 2756 +AC_DEFUN([_LT_PATH_TOOL_PREFIX], 2757 +[m4_require([_LT_DECL_EGREP])dnl 2200 2758 AC_MSG_CHECKING([for $1]) 2201 2759 AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, 2202 2760 [case $MAGIC_CMD in 2203 2761 [[\\/*] | ?:[\\/]*]) 2204 2762 lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. 2205 2763 ;; 2206 2764 *) 2207 2765 lt_save_MAGIC_CMD="$MAGIC_CMD" 2208 2766 lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR 2209 2767 dnl $ac_dummy forces splitting on constant user-supplied paths. 2210 2768 dnl POSIX.2 word splitting is done only on the output of word expansions, 2211 2769 dnl not every word. This closes a longstanding sh security hole. 2212 - ac_dummy="ifelse([$2], , $PATH, [$2])" 2770 + ac_dummy="m4_if([$2], , $PATH, [$2])" 2213 2771 for ac_dir in $ac_dummy; do 2214 2772 IFS="$lt_save_ifs" 2215 2773 test -z "$ac_dir" && ac_dir=. 2216 2774 if test -f $ac_dir/$1; then 2217 2775 lt_cv_path_MAGIC_CMD="$ac_dir/$1" 2218 2776 if test -n "$file_magic_test_file"; then 2219 2777 case $deplibs_check_method in ................................................................................ 2220 2778 "file_magic "*) 2221 2779 file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` 2222 2780 MAGIC_CMD="$lt_cv_path_MAGIC_CMD" 2223 2781 if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | 2224 2782 $EGREP "$file_magic_regex" > /dev/null; then 2225 2783 : 2226 2784 else 2227 - cat <<EOF 1>&2 2785 + cat <<_LT_EOF 1>&2 2228 2786 2229 2787 *** Warning: the command libtool uses to detect shared libraries, 2230 2788 *** $file_magic_cmd, produces output that libtool cannot recognize. 2231 2789 *** The result is that libtool may fail to recognize shared libraries 2232 2790 *** as such. This will affect the creation of libtool libraries that 2233 2791 *** depend on shared libraries, but programs linked with such libtool 2234 2792 *** libraries will work regardless of this problem. Nevertheless, you 2235 2793 *** may want to report the problem to your system manager and/or to 2236 2794 *** bug-libtool@gnu.org 2237 2795 2238 -EOF 2796 +_LT_EOF 2239 2797 fi ;; 2240 2798 esac 2241 2799 fi 2242 2800 break 2243 2801 fi 2244 2802 done 2245 2803 IFS="$lt_save_ifs" ................................................................................ 2248 2806 esac]) 2249 2807 MAGIC_CMD="$lt_cv_path_MAGIC_CMD" 2250 2808 if test -n "$MAGIC_CMD"; then 2251 2809 AC_MSG_RESULT($MAGIC_CMD) 2252 2810 else 2253 2811 AC_MSG_RESULT(no) 2254 2812 fi 2255 -])# AC_PATH_TOOL_PREFIX 2813 +_LT_DECL([], [MAGIC_CMD], [0], 2814 + [Used to examine libraries when file_magic_cmd begins with "file"])dnl 2815 +])# _LT_PATH_TOOL_PREFIX 2816 + 2817 +# Old name: 2818 +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) 2819 +dnl aclocal-1.4 backwards compatibility: 2820 +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) 2256 2821 2257 2822 2258 -# AC_PATH_MAGIC 2259 -# ------------- 2823 +# _LT_PATH_MAGIC 2824 +# -------------- 2260 2825 # find a file program which can recognize a shared library 2261 -AC_DEFUN([AC_PATH_MAGIC], 2262 -[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) 2826 +m4_defun([_LT_PATH_MAGIC], 2827 +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) 2263 2828 if test -z "$lt_cv_path_MAGIC_CMD"; then 2264 2829 if test -n "$ac_tool_prefix"; then 2265 - AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) 2830 + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) 2266 2831 else 2267 2832 MAGIC_CMD=: 2268 2833 fi 2269 2834 fi 2270 -])# AC_PATH_MAGIC 2835 +])# _LT_PATH_MAGIC 2271 2836 2272 2837 2273 -# AC_PROG_LD 2838 +# LT_PATH_LD 2274 2839 # ---------- 2275 2840 # find the pathname to the GNU or non-GNU linker 2276 -AC_DEFUN([AC_PROG_LD], 2277 -[AC_ARG_WITH([gnu-ld], 2278 - [AC_HELP_STRING([--with-gnu-ld], 2841 +AC_DEFUN([LT_PATH_LD], 2842 +[AC_REQUIRE([AC_PROG_CC])dnl 2843 +AC_REQUIRE([AC_CANONICAL_HOST])dnl 2844 +AC_REQUIRE([AC_CANONICAL_BUILD])dnl 2845 +m4_require([_LT_DECL_SED])dnl 2846 +m4_require([_LT_DECL_EGREP])dnl 2847 + 2848 +AC_ARG_WITH([gnu-ld], 2849 + [AS_HELP_STRING([--with-gnu-ld], 2279 2850 [assume the C compiler uses GNU ld @<:@default=no@:>@])], 2280 2851 [test "$withval" = no || with_gnu_ld=yes], 2281 - [with_gnu_ld=no]) 2282 -AC_REQUIRE([LT_AC_PROG_SED])dnl 2283 -AC_REQUIRE([AC_PROG_CC])dnl 2284 -AC_REQUIRE([AC_CANONICAL_HOST])dnl 2285 -AC_REQUIRE([AC_CANONICAL_BUILD])dnl 2852 + [with_gnu_ld=no])dnl 2853 + 2286 2854 ac_prog=ld 2287 2855 if test "$GCC" = yes; then 2288 2856 # Check if gcc -print-prog-name=ld gives a path. 2289 2857 AC_MSG_CHECKING([for ld used by $CC]) 2290 2858 case $host in 2291 2859 *-*-mingw*) 2292 2860 # gcc leaves a trailing carriage return which upsets mingw ................................................................................ 2295 2863 ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; 2296 2864 esac 2297 2865 case $ac_prog in 2298 2866 # Accept absolute paths. 2299 2867 [[\\/]]* | ?:[[\\/]]*) 2300 2868 re_direlt='/[[^/]][[^/]]*/\.\./' 2301 2869 # Canonicalize the pathname of ld 2302 - ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` 2303 - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do 2304 - ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` 2870 + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` 2871 + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do 2872 + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` 2305 2873 done 2306 2874 test -z "$LD" && LD="$ac_prog" 2307 2875 ;; 2308 2876 "") 2309 2877 # If it fails, then pretend we aren't using GCC. 2310 2878 ac_prog=ld 2311 2879 ;; ................................................................................ 2347 2915 LD="$lt_cv_path_LD" 2348 2916 if test -n "$LD"; then 2349 2917 AC_MSG_RESULT($LD) 2350 2918 else 2351 2919 AC_MSG_RESULT(no) 2352 2920 fi 2353 2921 test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) 2354 -AC_PROG_LD_GNU 2355 -])# AC_PROG_LD 2922 +_LT_PATH_LD_GNU 2923 +AC_SUBST([LD]) 2924 + 2925 +_LT_TAGDECL([], [LD], [1], [The linker used to build libraries]) 2926 +])# LT_PATH_LD 2927 + 2928 +# Old names: 2929 +AU_ALIAS([AM_PROG_LD], [LT_PATH_LD]) 2930 +AU_ALIAS([AC_PROG_LD], [LT_PATH_LD]) 2931 +dnl aclocal-1.4 backwards compatibility: 2932 +dnl AC_DEFUN([AM_PROG_LD], []) 2933 +dnl AC_DEFUN([AC_PROG_LD], []) 2356 2934 2357 2935 2358 -# AC_PROG_LD_GNU 2359 -# -------------- 2360 -AC_DEFUN([AC_PROG_LD_GNU], 2361 -[AC_REQUIRE([AC_PROG_EGREP])dnl 2362 -AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, 2936 +# _LT_PATH_LD_GNU 2937 +#- -------------- 2938 +m4_defun([_LT_PATH_LD_GNU], 2939 +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, 2363 2940 [# I'd rather use --version here, but apparently some GNU lds only accept -v. 2364 2941 case `$LD -v 2>&1 </dev/null` in 2365 2942 *GNU* | *'with BFD'*) 2366 2943 lt_cv_prog_gnu_ld=yes 2367 2944 ;; 2368 2945 *) 2369 2946 lt_cv_prog_gnu_ld=no 2370 2947 ;; 2371 2948 esac]) 2372 2949 with_gnu_ld=$lt_cv_prog_gnu_ld 2373 -])# AC_PROG_LD_GNU 2950 +])# _LT_PATH_LD_GNU 2374 2951 2375 2952 2376 -# AC_PROG_LD_RELOAD_FLAG 2377 -# ---------------------- 2953 +# _LT_CMD_RELOAD 2954 +# -------------- 2378 2955 # find reload flag for linker 2379 2956 # -- PORTME Some linkers may need a different reload flag. 2380 -AC_DEFUN([AC_PROG_LD_RELOAD_FLAG], 2957 +m4_defun([_LT_CMD_RELOAD], 2381 2958 [AC_CACHE_CHECK([for $LD option to reload object files], 2382 2959 lt_cv_ld_reload_flag, 2383 2960 [lt_cv_ld_reload_flag='-r']) 2384 2961 reload_flag=$lt_cv_ld_reload_flag 2385 2962 case $reload_flag in 2386 2963 "" | " "*) ;; 2387 2964 *) reload_flag=" $reload_flag" ;; ................................................................................ 2392 2969 if test "$GCC" = yes; then 2393 2970 reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' 2394 2971 else 2395 2972 reload_cmds='$LD$reload_flag -o $output$reload_objs' 2396 2973 fi 2397 2974 ;; 2398 2975 esac 2399 -])# AC_PROG_LD_RELOAD_FLAG 2976 +_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl 2977 +_LT_DECL([], [reload_cmds], [2])dnl 2978 +])# _LT_CMD_RELOAD 2400 2979 2401 2980 2402 -# AC_DEPLIBS_CHECK_METHOD 2403 -# ----------------------- 2981 +# _LT_CHECK_MAGIC_METHOD 2982 +# ---------------------- 2404 2983 # how to check for library dependencies 2405 2984 # -- PORTME fill in with the dynamic library characteristics 2406 -AC_DEFUN([AC_DEPLIBS_CHECK_METHOD], 2407 -[AC_CACHE_CHECK([how to recognize dependent libraries], 2985 +m4_defun([_LT_CHECK_MAGIC_METHOD], 2986 +[m4_require([_LT_DECL_EGREP]) 2987 +m4_require([_LT_DECL_OBJDUMP]) 2988 +AC_CACHE_CHECK([how to recognize dependent libraries], 2408 2989 lt_cv_deplibs_check_method, 2409 2990 [lt_cv_file_magic_cmd='$MAGIC_CMD' 2410 2991 lt_cv_file_magic_test_file= 2411 2992 lt_cv_deplibs_check_method='unknown' 2412 2993 # Need to set the preceding variable on all platforms that support 2413 2994 # interlibrary dependencies. 2414 2995 # 'none' -- dependencies not supported. ................................................................................ 2449 3030 lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' 2450 3031 lt_cv_file_magic_cmd='func_win32_libid' 2451 3032 else 2452 3033 lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' 2453 3034 lt_cv_file_magic_cmd='$OBJDUMP -f' 2454 3035 fi 2455 3036 ;; 3037 + 3038 +cegcc) 3039 + # use the weaker test based on 'objdump'. See mingw*. 3040 + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' 3041 + lt_cv_file_magic_cmd='$OBJDUMP -f' 3042 + ;; 2456 3043 2457 3044 darwin* | rhapsody*) 2458 3045 lt_cv_deplibs_check_method=pass_all 2459 3046 ;; 2460 3047 2461 3048 freebsd* | dragonfly*) 2462 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then 3049 + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then 2463 3050 case $host_cpu in 2464 3051 i*86 ) 2465 3052 # Not sure whether the presence of OpenBSD here was a mistake. 2466 3053 # Let's accept both of them until this is cleared up. 2467 3054 lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' 2468 3055 lt_cv_file_magic_cmd=/usr/bin/file 2469 3056 lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ................................................................................ 2508 3095 *-64|*"-64 ") libmagic=64-bit;; 2509 3096 *) libmagic=never-match;; 2510 3097 esac 2511 3098 lt_cv_deplibs_check_method=pass_all 2512 3099 ;; 2513 3100 2514 3101 # This must be Linux ELF. 2515 -linux* | k*bsd*-gnu) 3102 +linux* | k*bsd*-gnu | kopensolaris*-gnu) 2516 3103 lt_cv_deplibs_check_method=pass_all 2517 3104 ;; 2518 3105 2519 3106 netbsd* | netbsdelf*-gnu) 2520 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then 3107 + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then 2521 3108 lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' 2522 3109 else 2523 3110 lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' 2524 3111 fi 2525 3112 ;; 2526 3113 2527 3114 newos6*) 2528 3115 lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' 2529 3116 lt_cv_file_magic_cmd=/usr/bin/file 2530 3117 lt_cv_file_magic_test_file=/usr/lib/libnls.so 2531 3118 ;; 2532 3119 2533 -nto-qnx*) 2534 - lt_cv_deplibs_check_method=unknown 3120 +*nto* | *qnx*) 3121 + lt_cv_deplibs_check_method=pass_all 2535 3122 ;; 2536 3123 2537 3124 openbsd*) 2538 - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then 3125 + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then 2539 3126 lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' 2540 3127 else 2541 3128 lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' 2542 3129 fi 2543 3130 ;; 2544 3131 2545 3132 osf3* | osf4* | osf5*) ................................................................................ 2549 3136 rdos*) 2550 3137 lt_cv_deplibs_check_method=pass_all 2551 3138 ;; 2552 3139 2553 3140 solaris*) 2554 3141 lt_cv_deplibs_check_method=pass_all 2555 3142 ;; 3143 + 3144 +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) 3145 + lt_cv_deplibs_check_method=pass_all 3146 + ;; 2556 3147 2557 3148 sysv4 | sysv4.3*) 2558 3149 case $host_vendor in 2559 3150 motorola) 2560 3151 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]]' 2561 3152 lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` 2562 3153 ;; ................................................................................ 2577 3168 ;; 2578 3169 pc) 2579 3170 lt_cv_deplibs_check_method=pass_all 2580 3171 ;; 2581 3172 esac 2582 3173 ;; 2583 3174 2584 -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) 3175 +tpf*) 2585 3176 lt_cv_deplibs_check_method=pass_all 2586 3177 ;; 2587 3178 esac 2588 3179 ]) 2589 3180 file_magic_cmd=$lt_cv_file_magic_cmd 2590 3181 deplibs_check_method=$lt_cv_deplibs_check_method 2591 3182 test -z "$deplibs_check_method" && deplibs_check_method=unknown 2592 -])# AC_DEPLIBS_CHECK_METHOD 3183 + 3184 +_LT_DECL([], [deplibs_check_method], [1], 3185 + [Method to check whether dependent libraries are shared objects]) 3186 +_LT_DECL([], [file_magic_cmd], [1], 3187 + [Command to use when deplibs_check_method == "file_magic"]) 3188 +])# _LT_CHECK_MAGIC_METHOD 2593 3189 2594 3190 2595 -# AC_PROG_NM 3191 +# LT_PATH_NM 2596 3192 # ---------- 2597 -# find the pathname to a BSD-compatible name lister 2598 -AC_DEFUN([AC_PROG_NM], 2599 -[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, 3193 +# find the pathname to a BSD- or MS-compatible name lister 3194 +AC_DEFUN([LT_PATH_NM], 3195 +[AC_REQUIRE([AC_PROG_CC])dnl 3196 +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, 2600 3197 [if test -n "$NM"; then 2601 3198 # Let the user override the test. 2602 3199 lt_cv_path_NM="$NM" 2603 3200 else 2604 3201 lt_nm_to_check="${ac_tool_prefix}nm" 2605 3202 if test -n "$ac_tool_prefix" && test "$build" = "$host"; then 2606 3203 lt_nm_to_check="$lt_nm_to_check nm" ................................................................................ 2634 3231 esac 2635 3232 ;; 2636 3233 esac 2637 3234 fi 2638 3235 done 2639 3236 IFS="$lt_save_ifs" 2640 3237 done 2641 - test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm 3238 + : ${lt_cv_path_NM=no} 2642 3239 fi]) 2643 -NM="$lt_cv_path_NM" 2644 -])# AC_PROG_NM 3240 +if test "$lt_cv_path_NM" != "no"; then 3241 + NM="$lt_cv_path_NM" 3242 +else 3243 + # Didn't find any BSD compatible name lister, look for dumpbin. 3244 + AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) 3245 + AC_SUBST([DUMPBIN]) 3246 + if test "$DUMPBIN" != ":"; then 3247 + NM="$DUMPBIN" 3248 + fi 3249 +fi 3250 +test -z "$NM" && NM=nm 3251 +AC_SUBST([NM]) 3252 +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl 3253 + 3254 +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], 3255 + [lt_cv_nm_interface="BSD nm" 3256 + echo "int some_variable = 0;" > conftest.$ac_ext 3257 + (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) 3258 + (eval "$ac_compile" 2>conftest.err) 3259 + cat conftest.err >&AS_MESSAGE_LOG_FD 3260 + (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) 3261 + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) 3262 + cat conftest.err >&AS_MESSAGE_LOG_FD 3263 + (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) 3264 + cat conftest.out >&AS_MESSAGE_LOG_FD 3265 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then 3266 + lt_cv_nm_interface="MS dumpbin" 3267 + fi 3268 + rm -f conftest*]) 3269 +])# LT_PATH_NM 3270 + 3271 +# Old names: 3272 +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) 3273 +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) 3274 +dnl aclocal-1.4 backwards compatibility: 3275 +dnl AC_DEFUN([AM_PROG_NM], []) 3276 +dnl AC_DEFUN([AC_PROG_NM], []) 2645 3277 2646 3278 2647 -# AC_CHECK_LIBM 2648 -# ------------- 3279 +# LT_LIB_M 3280 +# -------- 2649 3281 # check for math library 2650 -AC_DEFUN([AC_CHECK_LIBM], 3282 +AC_DEFUN([LT_LIB_M], 2651 3283 [AC_REQUIRE([AC_CANONICAL_HOST])dnl 2652 3284 LIBM= 2653 3285 case $host in 2654 3286 *-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) 2655 3287 # These system don't have libm, or don't need it 2656 3288 ;; 2657 3289 *-ncr-sysv4.3*) ................................................................................ 2658 3290 AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") 2659 3291 AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") 2660 3292 ;; 2661 3293 *) 2662 3294 AC_CHECK_LIB(m, cos, LIBM="-lm") 2663 3295 ;; 2664 3296 esac 2665 -])# AC_CHECK_LIBM 2666 - 2667 - 2668 -# AC_LIBLTDL_CONVENIENCE([DIRECTORY]) 2669 -# ----------------------------------- 2670 -# sets LIBLTDL to the link flags for the libltdl convenience library and 2671 -# LTDLINCL to the include flags for the libltdl header and adds 2672 -# --enable-ltdl-convenience to the configure arguments. Note that 2673 -# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, 2674 -# it is assumed to be `libltdl'. LIBLTDL will be prefixed with 2675 -# '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/' 2676 -# (note the single quotes!). If your package is not flat and you're not 2677 -# using automake, define top_builddir and top_srcdir appropriately in 2678 -# the Makefiles. 2679 -AC_DEFUN([AC_LIBLTDL_CONVENIENCE], 2680 -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl 2681 - case $enable_ltdl_convenience in 2682 - no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; 2683 - "") enable_ltdl_convenience=yes 2684 - ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; 2685 - esac 2686 - LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la 2687 - LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) 2688 - # For backwards non-gettext consistent compatibility... 2689 - INCLTDL="$LTDLINCL" 2690 -])# AC_LIBLTDL_CONVENIENCE 2691 - 2692 - 2693 -# AC_LIBLTDL_INSTALLABLE([DIRECTORY]) 2694 -# ----------------------------------- 2695 -# sets LIBLTDL to the link flags for the libltdl installable library and 2696 -# LTDLINCL to the include flags for the libltdl header and adds 2697 -# --enable-ltdl-install to the configure arguments. Note that 2698 -# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, 2699 -# and an installed libltdl is not found, it is assumed to be `libltdl'. 2700 -# LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with 2701 -# '${top_srcdir}/' (note the single quotes!). If your package is not 2702 -# flat and you're not using automake, define top_builddir and top_srcdir 2703 -# appropriately in the Makefiles. 2704 -# In the future, this macro may have to be called after AC_PROG_LIBTOOL. 2705 -AC_DEFUN([AC_LIBLTDL_INSTALLABLE], 2706 -[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl 2707 - AC_CHECK_LIB(ltdl, lt_dlinit, 2708 - [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], 2709 - [if test x"$enable_ltdl_install" = xno; then 2710 - AC_MSG_WARN([libltdl not installed, but installation disabled]) 2711 - else 2712 - enable_ltdl_install=yes 2713 - fi 2714 - ]) 2715 - if test x"$enable_ltdl_install" = x"yes"; then 2716 - ac_configure_args="$ac_configure_args --enable-ltdl-install" 2717 - LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la 2718 - LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) 2719 - else 2720 - ac_configure_args="$ac_configure_args --enable-ltdl-install=no" 2721 - LIBLTDL="-lltdl" 2722 - LTDLINCL= 2723 - fi 2724 - # For backwards non-gettext consistent compatibility... 2725 - INCLTDL="$LTDLINCL" 2726 -])# AC_LIBLTDL_INSTALLABLE 2727 - 2728 - 2729 -# AC_LIBTOOL_CXX 2730 -# -------------- 2731 -# enable support for C++ libraries 2732 -AC_DEFUN([AC_LIBTOOL_CXX], 2733 -[AC_REQUIRE([_LT_AC_LANG_CXX]) 2734 -])# AC_LIBTOOL_CXX 2735 - 2736 - 2737 -# _LT_AC_LANG_CXX 2738 -# --------------- 2739 -AC_DEFUN([_LT_AC_LANG_CXX], 2740 -[AC_REQUIRE([AC_PROG_CXX]) 2741 -AC_REQUIRE([_LT_AC_PROG_CXXCPP]) 2742 -_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) 2743 -])# _LT_AC_LANG_CXX 2744 - 2745 -# _LT_AC_PROG_CXXCPP 2746 -# ------------------ 2747 -AC_DEFUN([_LT_AC_PROG_CXXCPP], 2748 -[ 2749 -AC_REQUIRE([AC_PROG_CXX]) 2750 -if test -n "$CXX" && ( test "X$CXX" != "Xno" && 2751 - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || 2752 - (test "X$CXX" != "Xg++"))) ; then 2753 - AC_PROG_CXXCPP 2754 -fi 2755 -])# _LT_AC_PROG_CXXCPP 2756 - 2757 -# AC_LIBTOOL_F77 2758 -# -------------- 2759 -# enable support for Fortran 77 libraries 2760 -AC_DEFUN([AC_LIBTOOL_F77], 2761 -[AC_REQUIRE([_LT_AC_LANG_F77]) 2762 -])# AC_LIBTOOL_F77 2763 - 2764 - 2765 -# _LT_AC_LANG_F77 2766 -# --------------- 2767 -AC_DEFUN([_LT_AC_LANG_F77], 2768 -[AC_REQUIRE([AC_PROG_F77]) 2769 -_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) 2770 -])# _LT_AC_LANG_F77 2771 - 2772 - 2773 -# AC_LIBTOOL_GCJ 2774 -# -------------- 2775 -# enable support for GCJ libraries 2776 -AC_DEFUN([AC_LIBTOOL_GCJ], 2777 -[AC_REQUIRE([_LT_AC_LANG_GCJ]) 2778 -])# AC_LIBTOOL_GCJ 2779 - 2780 - 2781 -# _LT_AC_LANG_GCJ 2782 -# --------------- 2783 -AC_DEFUN([_LT_AC_LANG_GCJ], 2784 -[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], 2785 - [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], 2786 - [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], 2787 - [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], 2788 - [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], 2789 - [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) 2790 -_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) 2791 -])# _LT_AC_LANG_GCJ 2792 - 2793 - 2794 -# AC_LIBTOOL_RC 2795 -# ------------- 2796 -# enable support for Windows resource files 2797 -AC_DEFUN([AC_LIBTOOL_RC], 2798 -[AC_REQUIRE([LT_AC_PROG_RC]) 2799 -_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) 2800 -])# AC_LIBTOOL_RC 2801 - 2802 - 2803 -# AC_LIBTOOL_LANG_C_CONFIG 2804 -# ------------------------ 2805 -# Ensure that the configuration vars for the C compiler are 2806 -# suitably defined. Those variables are subsequently used by 2807 -# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. 2808 -AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) 2809 -AC_DEFUN([_LT_AC_LANG_C_CONFIG], 2810 -[lt_save_CC="$CC" 2811 -AC_LANG_PUSH(C) 2812 - 2813 -# Source file extension for C test sources. 2814 -ac_ext=c 2815 - 2816 -# Object file extension for compiled C test sources. 2817 -objext=o 2818 -_LT_AC_TAGVAR(objext, $1)=$objext 2819 - 2820 -# Code to be used in simple compile tests 2821 -lt_simple_compile_test_code="int some_variable = 0;" 2822 - 2823 -# Code to be used in simple link tests 2824 -lt_simple_link_test_code='int main(){return(0);}' 2825 - 2826 -_LT_AC_SYS_COMPILER 2827 - 2828 -# save warnings/boilerplate of simple test code 2829 -_LT_COMPILER_BOILERPLATE 2830 -_LT_LINKER_BOILERPLATE 2831 - 2832 -AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) 2833 -AC_LIBTOOL_PROG_COMPILER_PIC($1) 2834 -AC_LIBTOOL_PROG_CC_C_O($1) 2835 -AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) 2836 -AC_LIBTOOL_PROG_LD_SHLIBS($1) 2837 -AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) 2838 -AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) 2839 -AC_LIBTOOL_SYS_LIB_STRIP 2840 -AC_LIBTOOL_DLOPEN_SELF 2841 - 2842 -# Report which library types will actually be built 2843 -AC_MSG_CHECKING([if libtool supports shared libraries]) 2844 -AC_MSG_RESULT([$can_build_shared]) 2845 - 2846 -AC_MSG_CHECKING([whether to build shared libraries]) 2847 -test "$can_build_shared" = "no" && enable_shared=no 2848 - 2849 -# On AIX, shared libraries and static libraries use the same namespace, and 2850 -# are all built from PIC. 2851 -case $host_os in 2852 -aix3*) 2853 - test "$enable_shared" = yes && enable_static=no 2854 - if test -n "$RANLIB"; then 2855 - archive_cmds="$archive_cmds~\$RANLIB \$lib" 2856 - postinstall_cmds='$RANLIB $lib' 2857 - fi 2858 - ;; 2859 - 2860 -aix[[4-9]]*) 2861 - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then 2862 - test "$enable_shared" = yes && enable_static=no 2863 - fi 2864 - ;; 2865 -esac 2866 -AC_MSG_RESULT([$enable_shared]) 2867 - 2868 -AC_MSG_CHECKING([whether to build static libraries]) 2869 -# Make sure either enable_shared or enable_static is yes. 2870 -test "$enable_shared" = yes || enable_static=yes 2871 -AC_MSG_RESULT([$enable_static]) 2872 - 2873 -AC_LIBTOOL_CONFIG($1) 2874 - 2875 -AC_LANG_POP 2876 -CC="$lt_save_CC" 2877 -])# AC_LIBTOOL_LANG_C_CONFIG 2878 - 2879 - 2880 -# AC_LIBTOOL_LANG_CXX_CONFIG 2881 -# -------------------------- 2882 -# Ensure that the configuration vars for the C compiler are 2883 -# suitably defined. Those variables are subsequently used by 2884 -# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. 2885 -AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) 2886 -AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], 2887 -[AC_LANG_PUSH(C++) 2888 -AC_REQUIRE([AC_PROG_CXX]) 2889 -AC_REQUIRE([_LT_AC_PROG_CXXCPP]) 2890 - 2891 -_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no 2892 -_LT_AC_TAGVAR(allow_undefined_flag, $1)= 2893 -_LT_AC_TAGVAR(always_export_symbols, $1)=no 2894 -_LT_AC_TAGVAR(archive_expsym_cmds, $1)= 2895 -_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= 2896 -_LT_AC_TAGVAR(hardcode_direct, $1)=no 2897 -_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= 2898 -_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= 2899 -_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= 2900 -_LT_AC_TAGVAR(hardcode_minus_L, $1)=no 2901 -_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported 2902 -_LT_AC_TAGVAR(hardcode_automatic, $1)=no 2903 -_LT_AC_TAGVAR(module_cmds, $1)= 2904 -_LT_AC_TAGVAR(module_expsym_cmds, $1)= 2905 -_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown 2906 -_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds 2907 -_LT_AC_TAGVAR(no_undefined_flag, $1)= 2908 -_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= 2909 -_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no 2910 - 2911 -# Dependencies to place before and after the object being linked: 2912 -_LT_AC_TAGVAR(predep_objects, $1)= 2913 -_LT_AC_TAGVAR(postdep_objects, $1)= 2914 -_LT_AC_TAGVAR(predeps, $1)= 2915 -_LT_AC_TAGVAR(postdeps, $1)= 2916 -_LT_AC_TAGVAR(compiler_lib_search_path, $1)= 2917 -_LT_AC_TAGVAR(compiler_lib_search_dirs, $1)= 2918 - 2919 -# Source file extension for C++ test sources. 2920 -ac_ext=cpp 2921 - 2922 -# Object file extension for compiled C++ test sources. 2923 -objext=o 2924 -_LT_AC_TAGVAR(objext, $1)=$objext 2925 - 2926 -# Code to be used in simple compile tests 2927 -lt_simple_compile_test_code="int some_variable = 0;" 2928 - 2929 -# Code to be used in simple link tests 2930 -lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' 2931 - 2932 -# ltmain only uses $CC for tagged configurations so make sure $CC is set. 2933 -_LT_AC_SYS_COMPILER 2934 - 2935 -# save warnings/boilerplate of simple test code 2936 -_LT_COMPILER_BOILERPLATE 2937 -_LT_LINKER_BOILERPLATE 2938 - 2939 -# Allow CC to be a program name with arguments. 2940 -lt_save_CC=$CC 2941 -lt_save_LD=$LD 2942 -lt_save_GCC=$GCC 2943 -GCC=$GXX 2944 -lt_save_with_gnu_ld=$with_gnu_ld 2945 -lt_save_path_LD=$lt_cv_path_LD 2946 -if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then 2947 - lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx 2948 -else 2949 - $as_unset lt_cv_prog_gnu_ld 2950 -fi 2951 -if test -n "${lt_cv_path_LDCXX+set}"; then 2952 - lt_cv_path_LD=$lt_cv_path_LDCXX 2953 -else 2954 - $as_unset lt_cv_path_LD 2955 -fi 2956 -test -z "${LDCXX+set}" || LD=$LDCXX 2957 -CC=${CXX-"c++"} 2958 -compiler=$CC 2959 -_LT_AC_TAGVAR(compiler, $1)=$CC 2960 -_LT_CC_BASENAME([$compiler]) 2961 - 2962 -# We don't want -fno-exception wen compiling C++ code, so set the 2963 -# no_builtin_flag separately 2964 -if test "$GXX" = yes; then 2965 - _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' 2966 -else 2967 - _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= 2968 -fi 2969 - 2970 -if test "$GXX" = yes; then 2971 - # Set up default GNU C++ configuration 2972 - 2973 - AC_PROG_LD 2974 - 2975 - # Check if GNU C++ uses GNU ld as the underlying linker, since the 2976 - # archiving commands below assume that GNU ld is being used. 2977 - if test "$with_gnu_ld" = yes; then 2978 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' 2979 - _LT_AC_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' 2980 - 2981 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' 2982 - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' 2983 - 2984 - # If archive_cmds runs LD, not CC, wlarc should be empty 2985 - # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to 2986 - # investigate it a little bit more. (MM) 2987 - wlarc='${wl}' 2988 - 2989 - # ancient GNU ld didn't support --whole-archive et. al. 2990 - if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ 2991 - grep 'no-whole-archive' > /dev/null; then 2992 - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' 2993 - else 2994 - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= 2995 - fi 2996 - else 2997 - with_gnu_ld=no 2998 - wlarc= 2999 - 3000 - # A generic and very simple default shared library creation 3001 - # command for GNU C++ for the case where it uses the native 3002 - # linker, instead of GNU ld. If possible, this setting should 3003 - # overridden to take advantage of the native linker features on 3004 - # the platform it is being used on. 3005 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' 3006 - fi 3007 - 3008 - # Commands to make compiler produce verbose output that lists 3009 - # what "hidden" libraries, object files and flags are used when 3010 - # linking a shared library. 3011 - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' 3012 - 3013 -else 3014 - GXX=no 3015 - with_gnu_ld=no 3016 - wlarc= 3017 -fi 3018 - 3019 -# PORTME: fill in a description of your system's C++ link characteristics 3020 -AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) 3021 -_LT_AC_TAGVAR(ld_shlibs, $1)=yes 3022 -case $host_os in 3023 - aix3*) 3024 - # FIXME: insert proper C++ library support 3025 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3026 - ;; 3027 - aix[[4-9]]*) 3028 - if test "$host_cpu" = ia64; then 3029 - # On IA64, the linker does run time linking by default, so we don't 3030 - # have to do anything special. 3031 - aix_use_runtimelinking=no 3032 - exp_sym_flag='-Bexport' 3033 - no_entry_flag="" 3034 - else 3035 - aix_use_runtimelinking=no 3036 - 3037 - # Test if we are trying to use run time linking or normal 3038 - # AIX style linking. If -brtl is somewhere in LDFLAGS, we 3039 - # need to do runtime linking. 3040 - case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) 3041 - for ld_flag in $LDFLAGS; do 3042 - case $ld_flag in 3043 - *-brtl*) 3044 - aix_use_runtimelinking=yes 3045 - break 3046 - ;; 3047 - esac 3048 - done 3049 - ;; 3050 - esac 3051 - 3052 - exp_sym_flag='-bexport' 3053 - no_entry_flag='-bnoentry' 3054 - fi 3055 - 3056 - # When large executables or shared objects are built, AIX ld can 3057 - # have problems creating the table of contents. If linking a library 3058 - # or program results in "error TOC overflow" add -mminimal-toc to 3059 - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not 3060 - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. 3061 - 3062 - _LT_AC_TAGVAR(archive_cmds, $1)='' 3063 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes 3064 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' 3065 - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes 3066 - 3067 - if test "$GXX" = yes; then 3068 - case $host_os in aix4.[[012]]|aix4.[[012]].*) 3069 - # We only want to do this on AIX 4.2 and lower, the check 3070 - # below for broken collect2 doesn't work under 4.3+ 3071 - collect2name=`${CC} -print-prog-name=collect2` 3072 - if test -f "$collect2name" && \ 3073 - strings "$collect2name" | grep resolve_lib_name >/dev/null 3074 - then 3075 - # We have reworked collect2 3076 - : 3077 - else 3078 - # We have old collect2 3079 - _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported 3080 - # It fails to find uninstalled libraries when the uninstalled 3081 - # path is not listed in the libpath. Setting hardcode_minus_L 3082 - # to unsupported forces relinking 3083 - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes 3084 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 3085 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= 3086 - fi 3087 - ;; 3088 - esac 3089 - shared_flag='-shared' 3090 - if test "$aix_use_runtimelinking" = yes; then 3091 - shared_flag="$shared_flag "'${wl}-G' 3092 - fi 3093 - else 3094 - # not using gcc 3095 - if test "$host_cpu" = ia64; then 3096 - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release 3097 - # chokes on -Wl,-G. The following line is correct: 3098 - shared_flag='-G' 3099 - else 3100 - if test "$aix_use_runtimelinking" = yes; then 3101 - shared_flag='${wl}-G' 3102 - else 3103 - shared_flag='${wl}-bM:SRE' 3104 - fi 3105 - fi 3106 - fi 3107 - 3108 - # It seems that -bexpall does not export symbols beginning with 3109 - # underscore (_), so it is better to generate a list of symbols to export. 3110 - _LT_AC_TAGVAR(always_export_symbols, $1)=yes 3111 - if test "$aix_use_runtimelinking" = yes; then 3112 - # Warning - without using the other runtime loading flags (-brtl), 3113 - # -berok will link without error, but may produce a broken library. 3114 - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' 3115 - # Determine the default libpath from the value encoded in an empty executable. 3116 - _LT_AC_SYS_LIBPATH_AIX 3117 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" 3118 - 3119 - _LT_AC_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 "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" 3120 - else 3121 - if test "$host_cpu" = ia64; then 3122 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' 3123 - _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" 3124 - _LT_AC_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" 3125 - else 3126 - # Determine the default libpath from the value encoded in an empty executable. 3127 - _LT_AC_SYS_LIBPATH_AIX 3128 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" 3129 - # Warning - without using the other run time loading flags, 3130 - # -berok will link without error, but may produce a broken library. 3131 - _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' 3132 - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' 3133 - # Exported symbols can be pulled into shared objects from archives 3134 - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' 3135 - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes 3136 - # This is similar to how AIX traditionally builds its shared libraries. 3137 - _LT_AC_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' 3138 - fi 3139 - fi 3140 - ;; 3141 - 3142 - beos*) 3143 - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then 3144 - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported 3145 - # Joseph Beckenbach <jrb3@best.com> says some releases of gcc 3146 - # support --undefined. This deserves some investigation. FIXME 3147 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 3148 - else 3149 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3150 - fi 3151 - ;; 3152 - 3153 - chorus*) 3154 - case $cc_basename in 3155 - *) 3156 - # FIXME: insert proper C++ library support 3157 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3158 - ;; 3159 - esac 3160 - ;; 3161 - 3162 - cygwin* | mingw* | pw32*) 3163 - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, 3164 - # as there is no search path for DLLs. 3165 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 3166 - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported 3167 - _LT_AC_TAGVAR(always_export_symbols, $1)=no 3168 - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes 3169 - 3170 - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then 3171 - _LT_AC_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' 3172 - # If the export-symbols file already is a .def file (1st line 3173 - # is EXPORTS), use it as is; otherwise, prepend... 3174 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then 3175 - cp $export_symbols $output_objdir/$soname.def; 3176 - else 3177 - echo EXPORTS > $output_objdir/$soname.def; 3178 - cat $export_symbols >> $output_objdir/$soname.def; 3179 - fi~ 3180 - $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' 3181 - else 3182 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3183 - fi 3184 - ;; 3185 - darwin* | rhapsody*) 3186 - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no 3187 - _LT_AC_TAGVAR(hardcode_direct, $1)=no 3188 - _LT_AC_TAGVAR(hardcode_automatic, $1)=yes 3189 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported 3190 - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' 3191 - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes 3192 - _LT_AC_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" 3193 - if test "$GXX" = yes ; then 3194 - output_verbose_link_cmd='echo' 3195 - _LT_AC_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}" 3196 - _LT_AC_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" 3197 - _LT_AC_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}" 3198 - _LT_AC_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}" 3199 - if test "$lt_cv_apple_cc_single_mod" != "yes"; then 3200 - _LT_AC_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}" 3201 - _LT_AC_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}" 3202 - fi 3203 - else 3204 - case $cc_basename in 3205 - xlc*) 3206 - output_verbose_link_cmd='echo' 3207 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' 3208 - _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' 3209 - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds 3210 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' 3211 - _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' 3212 - ;; 3213 - *) 3214 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3215 - ;; 3216 - esac 3217 - fi 3218 - ;; 3219 - 3220 - dgux*) 3221 - case $cc_basename in 3222 - ec++*) 3223 - # FIXME: insert proper C++ library support 3224 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3225 - ;; 3226 - ghcx*) 3227 - # Green Hills C++ Compiler 3228 - # FIXME: insert proper C++ library support 3229 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3230 - ;; 3231 - *) 3232 - # FIXME: insert proper C++ library support 3233 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3234 - ;; 3235 - esac 3236 - ;; 3237 - freebsd[[12]]*) 3238 - # C++ shared libraries reported to be fairly broken before switch to ELF 3239 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3240 - ;; 3241 - freebsd-elf*) 3242 - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no 3243 - ;; 3244 - freebsd* | dragonfly*) 3245 - # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF 3246 - # conventions 3247 - _LT_AC_TAGVAR(ld_shlibs, $1)=yes 3248 - ;; 3249 - gnu*) 3250 - ;; 3251 - hpux9*) 3252 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' 3253 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: 3254 - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 3255 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes 3256 - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, 3257 - # but as the default 3258 - # location of the library. 3259 - 3260 - case $cc_basename in 3261 - CC*) 3262 - # FIXME: insert proper C++ library support 3263 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3264 - ;; 3265 - aCC*) 3266 - _LT_AC_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' 3267 - # Commands to make compiler produce verbose output that lists 3268 - # what "hidden" libraries, object files and flags are used when 3269 - # linking a shared library. 3270 - # 3271 - # There doesn't appear to be a way to prevent this compiler from 3272 - # explicitly linking system object files so we need to strip them 3273 - # from the output so that they don't get included in the library 3274 - # dependencies. 3275 - 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 $list' 3276 - ;; 3277 - *) 3278 - if test "$GXX" = yes; then 3279 - _LT_AC_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' 3280 - else 3281 - # FIXME: insert proper C++ library support 3282 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3283 - fi 3284 - ;; 3285 - esac 3286 - ;; 3287 - hpux10*|hpux11*) 3288 - if test $with_gnu_ld = no; then 3289 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' 3290 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: 3291 - 3292 - case $host_cpu in 3293 - hppa*64*|ia64*) ;; 3294 - *) 3295 - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 3296 - ;; 3297 - esac 3298 - fi 3299 - case $host_cpu in 3300 - hppa*64*|ia64*) 3301 - _LT_AC_TAGVAR(hardcode_direct, $1)=no 3302 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 3303 - ;; 3304 - *) 3305 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes 3306 - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, 3307 - # but as the default 3308 - # location of the library. 3309 - ;; 3310 - esac 3311 - 3312 - case $cc_basename in 3313 - CC*) 3314 - # FIXME: insert proper C++ library support 3315 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3316 - ;; 3317 - aCC*) 3318 - case $host_cpu in 3319 - hppa*64*) 3320 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' 3321 - ;; 3322 - ia64*) 3323 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' 3324 - ;; 3325 - *) 3326 - _LT_AC_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' 3327 - ;; 3328 - esac 3329 - # Commands to make compiler produce verbose output that lists 3330 - # what "hidden" libraries, object files and flags are used when 3331 - # linking a shared library. 3332 - # 3333 - # There doesn't appear to be a way to prevent this compiler from 3334 - # explicitly linking system object files so we need to strip them 3335 - # from the output so that they don't get included in the library 3336 - # dependencies. 3337 - 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 $list' 3338 - ;; 3339 - *) 3340 - if test "$GXX" = yes; then 3341 - if test $with_gnu_ld = no; then 3342 - case $host_cpu in 3343 - hppa*64*) 3344 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' 3345 - ;; 3346 - ia64*) 3347 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' 3348 - ;; 3349 - *) 3350 - _LT_AC_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' 3351 - ;; 3352 - esac 3353 - fi 3354 - else 3355 - # FIXME: insert proper C++ library support 3356 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3357 - fi 3358 - ;; 3359 - esac 3360 - ;; 3361 - interix[[3-9]]*) 3362 - _LT_AC_TAGVAR(hardcode_direct, $1)=no 3363 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 3364 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' 3365 - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 3366 - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. 3367 - # Instead, shared libraries are loaded at an image base (0x10000000 by 3368 - # default) and relocated if they conflict, which is a slow very memory 3369 - # consuming and fragmenting process. To avoid this, we pick a random, 3370 - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link 3371 - # time. Moving up from 0x10000000 also allows more sbrk(2) space. 3372 - _LT_AC_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' 3373 - _LT_AC_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' 3374 - ;; 3375 - irix5* | irix6*) 3376 - case $cc_basename in 3377 - CC*) 3378 - # SGI C++ 3379 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' 3380 - 3381 - # Archives containing C++ object files must be created using 3382 - # "CC -ar", where "CC" is the IRIX C++ compiler. This is 3383 - # necessary to make sure instantiated templates are included 3384 - # in the archive. 3385 - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' 3386 - ;; 3387 - *) 3388 - if test "$GXX" = yes; then 3389 - if test "$with_gnu_ld" = no; then 3390 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' 3391 - else 3392 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' 3393 - fi 3394 - fi 3395 - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes 3396 - ;; 3397 - esac 3398 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 3399 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: 3400 - ;; 3401 - linux* | k*bsd*-gnu) 3402 - case $cc_basename in 3403 - KCC*) 3404 - # Kuck and Associates, Inc. (KAI) C++ Compiler 3405 - 3406 - # KCC will only create a shared library if the output file 3407 - # ends with ".so" (or ".sl" for HP-UX), so rename the library 3408 - # to its proper name (with version) after linking. 3409 - _LT_AC_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' 3410 - _LT_AC_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' 3411 - # Commands to make compiler produce verbose output that lists 3412 - # what "hidden" libraries, object files and flags are used when 3413 - # linking a shared library. 3414 - # 3415 - # There doesn't appear to be a way to prevent this compiler from 3416 - # explicitly linking system object files so we need to strip them 3417 - # from the output so that they don't get included in the library 3418 - # dependencies. 3419 - 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 $list' 3420 - 3421 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' 3422 - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' 3423 - 3424 - # Archives containing C++ object files must be created using 3425 - # "CC -Bstatic", where "CC" is the KAI C++ compiler. 3426 - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' 3427 - ;; 3428 - icpc*) 3429 - # Intel C++ 3430 - with_gnu_ld=yes 3431 - # version 8.0 and above of icpc choke on multiply defined symbols 3432 - # if we add $predep_objects and $postdep_objects, however 7.1 and 3433 - # earlier do not add the objects themselves. 3434 - case `$CC -V 2>&1` in 3435 - *"Version 7."*) 3436 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' 3437 - _LT_AC_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' 3438 - ;; 3439 - *) # Version 8.0 or newer 3440 - tmp_idyn= 3441 - case $host_cpu in 3442 - ia64*) tmp_idyn=' -i_dynamic';; 3443 - esac 3444 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 3445 - _LT_AC_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' 3446 - ;; 3447 - esac 3448 - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no 3449 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' 3450 - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' 3451 - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' 3452 - ;; 3453 - pgCC* | pgcpp*) 3454 - # Portland Group C++ compiler 3455 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' 3456 - _LT_AC_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' 3457 - 3458 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' 3459 - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' 3460 - _LT_AC_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' 3461 - ;; 3462 - cxx*) 3463 - # Compaq C++ 3464 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' 3465 - _LT_AC_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' 3466 - 3467 - runpath_var=LD_RUN_PATH 3468 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' 3469 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: 3470 - 3471 - # Commands to make compiler produce verbose output that lists 3472 - # what "hidden" libraries, object files and flags are used when 3473 - # linking a shared library. 3474 - # 3475 - # There doesn't appear to be a way to prevent this compiler from 3476 - # explicitly linking system object files so we need to strip them 3477 - # from the output so that they don't get included in the library 3478 - # dependencies. 3479 - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "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 $list' 3480 - ;; 3481 - *) 3482 - case `$CC -V 2>&1 | sed 5q` in 3483 - *Sun\ C*) 3484 - # Sun C++ 5.9 3485 - _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' 3486 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' 3487 - _LT_AC_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' 3488 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' 3489 - _LT_AC_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' 3490 - 3491 - # Not sure whether something based on 3492 - # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 3493 - # would be better. 3494 - output_verbose_link_cmd='echo' 3495 - 3496 - # Archives containing C++ object files must be created using 3497 - # "CC -xar", where "CC" is the Sun C++ compiler. This is 3498 - # necessary to make sure instantiated templates are included 3499 - # in the archive. 3500 - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' 3501 - ;; 3502 - esac 3503 - ;; 3504 - esac 3505 - ;; 3506 - lynxos*) 3507 - # FIXME: insert proper C++ library support 3508 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3509 - ;; 3510 - m88k*) 3511 - # FIXME: insert proper C++ library support 3512 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3513 - ;; 3514 - mvs*) 3515 - case $cc_basename in 3516 - cxx*) 3517 - # FIXME: insert proper C++ library support 3518 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3519 - ;; 3520 - *) 3521 - # FIXME: insert proper C++ library support 3522 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3523 - ;; 3524 - esac 3525 - ;; 3526 - netbsd* | netbsdelf*-gnu) 3527 - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then 3528 - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' 3529 - wlarc= 3530 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' 3531 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes 3532 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 3533 - fi 3534 - # Workaround some broken pre-1.5 toolchains 3535 - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' 3536 - ;; 3537 - openbsd2*) 3538 - # C++ shared libraries are fairly broken 3539 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3540 - ;; 3541 - openbsd*) 3542 - if test -f /usr/libexec/ld.so; then 3543 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes 3544 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 3545 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' 3546 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' 3547 - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then 3548 - _LT_AC_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' 3549 - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 3550 - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' 3551 - fi 3552 - output_verbose_link_cmd='echo' 3553 - else 3554 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3555 - fi 3556 - ;; 3557 - osf3*) 3558 - case $cc_basename in 3559 - KCC*) 3560 - # Kuck and Associates, Inc. (KAI) C++ Compiler 3561 - 3562 - # KCC will only create a shared library if the output file 3563 - # ends with ".so" (or ".sl" for HP-UX), so rename the library 3564 - # to its proper name (with version) after linking. 3565 - _LT_AC_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' 3566 - 3567 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' 3568 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: 3569 - 3570 - # Archives containing C++ object files must be created using 3571 - # "CC -Bstatic", where "CC" is the KAI C++ compiler. 3572 - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' 3573 - 3574 - ;; 3575 - RCC*) 3576 - # Rational C++ 2.4.1 3577 - # FIXME: insert proper C++ library support 3578 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3579 - ;; 3580 - cxx*) 3581 - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' 3582 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' 3583 - 3584 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 3585 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: 3586 - 3587 - # Commands to make compiler produce verbose output that lists 3588 - # what "hidden" libraries, object files and flags are used when 3589 - # linking a shared library. 3590 - # 3591 - # There doesn't appear to be a way to prevent this compiler from 3592 - # explicitly linking system object files so we need to strip them 3593 - # from the output so that they don't get included in the library 3594 - # dependencies. 3595 - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "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 $list' 3596 - ;; 3597 - *) 3598 - if test "$GXX" = yes && test "$with_gnu_ld" = no; then 3599 - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' 3600 - _LT_AC_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 ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' 3601 - 3602 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 3603 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: 3604 - 3605 - # Commands to make compiler produce verbose output that lists 3606 - # what "hidden" libraries, object files and flags are used when 3607 - # linking a shared library. 3608 - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' 3609 - 3610 - else 3611 - # FIXME: insert proper C++ library support 3612 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3613 - fi 3614 - ;; 3615 - esac 3616 - ;; 3617 - osf4* | osf5*) 3618 - case $cc_basename in 3619 - KCC*) 3620 - # Kuck and Associates, Inc. (KAI) C++ Compiler 3621 - 3622 - # KCC will only create a shared library if the output file 3623 - # ends with ".so" (or ".sl" for HP-UX), so rename the library 3624 - # to its proper name (with version) after linking. 3625 - _LT_AC_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' 3626 - 3627 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' 3628 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: 3629 - 3630 - # Archives containing C++ object files must be created using 3631 - # the KAI C++ compiler. 3632 - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' 3633 - ;; 3634 - RCC*) 3635 - # Rational C++ 2.4.1 3636 - # FIXME: insert proper C++ library support 3637 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3638 - ;; 3639 - cxx*) 3640 - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' 3641 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' 3642 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ 3643 - echo "-hidden">> $lib.exp~ 3644 - $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 -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ 3645 - $rm $lib.exp' 3646 - 3647 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' 3648 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: 3649 - 3650 - # Commands to make compiler produce verbose output that lists 3651 - # what "hidden" libraries, object files and flags are used when 3652 - # linking a shared library. 3653 - # 3654 - # There doesn't appear to be a way to prevent this compiler from 3655 - # explicitly linking system object files so we need to strip them 3656 - # from the output so that they don't get included in the library 3657 - # dependencies. 3658 - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "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 $list' 3659 - ;; 3660 - *) 3661 - if test "$GXX" = yes && test "$with_gnu_ld" = no; then 3662 - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' 3663 - _LT_AC_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` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' 3664 - 3665 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 3666 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: 3667 - 3668 - # Commands to make compiler produce verbose output that lists 3669 - # what "hidden" libraries, object files and flags are used when 3670 - # linking a shared library. 3671 - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' 3672 - 3673 - else 3674 - # FIXME: insert proper C++ library support 3675 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3676 - fi 3677 - ;; 3678 - esac 3679 - ;; 3680 - psos*) 3681 - # FIXME: insert proper C++ library support 3682 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3683 - ;; 3684 - sunos4*) 3685 - case $cc_basename in 3686 - CC*) 3687 - # Sun C++ 4.x 3688 - # FIXME: insert proper C++ library support 3689 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3690 - ;; 3691 - lcc*) 3692 - # Lucid 3693 - # FIXME: insert proper C++ library support 3694 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3695 - ;; 3696 - *) 3697 - # FIXME: insert proper C++ library support 3698 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3699 - ;; 3700 - esac 3701 - ;; 3702 - solaris*) 3703 - case $cc_basename in 3704 - CC*) 3705 - # Sun C++ 4.2, 5.x and Centerline C++ 3706 - _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes 3707 - _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' 3708 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' 3709 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ 3710 - $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' 3711 - 3712 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' 3713 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 3714 - case $host_os in 3715 - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; 3716 - *) 3717 - # The compiler driver will combine and reorder linker options, 3718 - # but understands `-z linker_flag'. 3719 - # Supported since Solaris 2.6 (maybe 2.5.1?) 3720 - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' 3721 - ;; 3722 - esac 3723 - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes 3724 - 3725 - output_verbose_link_cmd='echo' 3726 - 3727 - # Archives containing C++ object files must be created using 3728 - # "CC -xar", where "CC" is the Sun C++ compiler. This is 3729 - # necessary to make sure instantiated templates are included 3730 - # in the archive. 3731 - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' 3732 - ;; 3733 - gcx*) 3734 - # Green Hills C++ Compiler 3735 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' 3736 - 3737 - # The C++ compiler must be used to create the archive. 3738 - _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' 3739 - ;; 3740 - *) 3741 - # GNU C++ compiler with Solaris linker 3742 - if test "$GXX" = yes && test "$with_gnu_ld" = no; then 3743 - _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' 3744 - if $CC --version | grep -v '^2\.7' > /dev/null; then 3745 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' 3746 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ 3747 - $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' 3748 - 3749 - # Commands to make compiler produce verbose output that lists 3750 - # what "hidden" libraries, object files and flags are used when 3751 - # linking a shared library. 3752 - output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" 3753 - else 3754 - # g++ 2.7 appears to require `-G' NOT `-shared' on this 3755 - # platform. 3756 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' 3757 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ 3758 - $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' 3759 - 3760 - # Commands to make compiler produce verbose output that lists 3761 - # what "hidden" libraries, object files and flags are used when 3762 - # linking a shared library. 3763 - output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" 3764 - fi 3765 - 3766 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' 3767 - case $host_os in 3768 - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; 3769 - *) 3770 - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' 3771 - ;; 3772 - esac 3773 - fi 3774 - ;; 3775 - esac 3776 - ;; 3777 - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) 3778 - _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' 3779 - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no 3780 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 3781 - runpath_var='LD_RUN_PATH' 3782 - 3783 - case $cc_basename in 3784 - CC*) 3785 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 3786 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 3787 - ;; 3788 - *) 3789 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 3790 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 3791 - ;; 3792 - esac 3793 - ;; 3794 - sysv5* | sco3.2v5* | sco5v6*) 3795 - # Note: We can NOT use -z defs as we might desire, because we do not 3796 - # link with -lc, and that would cause any symbols used from libc to 3797 - # always be unresolved, which means just about no library would 3798 - # ever link correctly. If we're not using GNU ld we use -z text 3799 - # though, which does catch some bad symbols but isn't as heavy-handed 3800 - # as -z defs. 3801 - # For security reasons, it is highly recommended that you always 3802 - # use absolute paths for naming shared libraries, and exclude the 3803 - # DT_RUNPATH tag from executables and libraries. But doing so 3804 - # requires that you compile everything twice, which is a pain. 3805 - # So that behaviour is only enabled if SCOABSPATH is set to a 3806 - # non-empty value in the environment. Most likely only useful for 3807 - # creating official distributions of packages. 3808 - # This is a hack until libtool officially supports absolute path 3809 - # names for shared libraries. 3810 - _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' 3811 - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' 3812 - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no 3813 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 3814 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' 3815 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' 3816 - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes 3817 - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' 3818 - runpath_var='LD_RUN_PATH' 3819 - 3820 - case $cc_basename in 3821 - CC*) 3822 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' 3823 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' 3824 - ;; 3825 - *) 3826 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' 3827 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' 3828 - ;; 3829 - esac 3830 - ;; 3831 - tandem*) 3832 - case $cc_basename in 3833 - NCC*) 3834 - # NonStop-UX NCC 3.20 3835 - # FIXME: insert proper C++ library support 3836 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3837 - ;; 3838 - *) 3839 - # FIXME: insert proper C++ library support 3840 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3841 - ;; 3842 - esac 3843 - ;; 3844 - vxworks*) 3845 - # FIXME: insert proper C++ library support 3846 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3847 - ;; 3848 - *) 3849 - # FIXME: insert proper C++ library support 3850 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 3851 - ;; 3852 -esac 3853 -AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) 3854 -test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no 3855 - 3856 -_LT_AC_TAGVAR(GCC, $1)="$GXX" 3857 -_LT_AC_TAGVAR(LD, $1)="$LD" 3858 - 3859 -AC_LIBTOOL_POSTDEP_PREDEP($1) 3860 -AC_LIBTOOL_PROG_COMPILER_PIC($1) 3861 -AC_LIBTOOL_PROG_CC_C_O($1) 3862 -AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) 3863 -AC_LIBTOOL_PROG_LD_SHLIBS($1) 3864 -AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) 3865 -AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) 3866 - 3867 -AC_LIBTOOL_CONFIG($1) 3868 - 3869 -AC_LANG_POP 3870 -CC=$lt_save_CC 3871 -LDCXX=$LD 3872 -LD=$lt_save_LD 3873 -GCC=$lt_save_GCC 3874 -with_gnu_ldcxx=$with_gnu_ld 3875 -with_gnu_ld=$lt_save_with_gnu_ld 3876 -lt_cv_path_LDCXX=$lt_cv_path_LD 3877 -lt_cv_path_LD=$lt_save_path_LD 3878 -lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld 3879 -lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld 3880 -])# AC_LIBTOOL_LANG_CXX_CONFIG 3881 - 3882 -# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME]) 3883 -# ------------------------------------ 3884 -# Figure out "hidden" library dependencies from verbose 3885 -# compiler output when linking a shared library. 3886 -# Parse the compiler output and extract the necessary 3887 -# objects, libraries and library flags. 3888 -AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP], 3889 -[AC_REQUIRE([LT_AC_PROG_SED])dnl 3890 -dnl we can't use the lt_simple_compile_test_code here, 3891 -dnl because it contains code intended for an executable, 3892 -dnl not a library. It's possible we should let each 3893 -dnl tag define a new lt_????_link_test_code variable, 3894 -dnl but it's only used here... 3895 -ifelse([$1],[],[cat > conftest.$ac_ext <<EOF 3896 -int a; 3897 -void foo (void) { a = 0; } 3898 -EOF 3899 -],[$1],[CXX],[cat > conftest.$ac_ext <<EOF 3900 -class Foo 3901 -{ 3902 -public: 3903 - Foo (void) { a = 0; } 3904 -private: 3905 - int a; 3906 -}; 3907 -EOF 3908 -],[$1],[F77],[cat > conftest.$ac_ext <<EOF 3909 - subroutine foo 3910 - implicit none 3911 - integer*4 a 3912 - a=0 3913 - return 3914 - end 3915 -EOF 3916 -],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF 3917 -public class foo { 3918 - private int a; 3919 - public void bar (void) { 3920 - a = 0; 3921 - } 3922 -}; 3923 -EOF 3924 -]) 3925 -dnl Parse the compiler output and extract the necessary 3926 -dnl objects, libraries and library flags. 3927 -if AC_TRY_EVAL(ac_compile); then 3928 - # Parse the compiler output and extract the necessary 3929 - # objects, libraries and library flags. 3930 - 3931 - # Sentinel used to keep track of whether or not we are before 3932 - # the conftest object file. 3933 - pre_test_object_deps_done=no 3934 - 3935 - # The `*' in the case matches for architectures that use `case' in 3936 - # $output_verbose_cmd can trigger glob expansion during the loop 3937 - # eval without this substitution. 3938 - output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` 3939 - 3940 - for p in `eval $output_verbose_link_cmd`; do 3941 - case $p in 3942 - 3943 - -L* | -R* | -l*) 3944 - # Some compilers place space between "-{L,R}" and the path. 3945 - # Remove the space. 3946 - if test $p = "-L" \ 3947 - || test $p = "-R"; then 3948 - prev=$p 3949 - continue 3950 - else 3951 - prev= 3952 - fi 3953 - 3954 - if test "$pre_test_object_deps_done" = no; then 3955 - case $p in 3956 - -L* | -R*) 3957 - # Internal compiler library paths should come after those 3958 - # provided the user. The postdeps already come after the 3959 - # user supplied libs so there is no need to process them. 3960 - if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then 3961 - _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" 3962 - else 3963 - _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" 3964 - fi 3965 - ;; 3966 - # The "-l" case would never come before the object being 3967 - # linked, so don't bother handling this case. 3968 - esac 3969 - else 3970 - if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then 3971 - _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}" 3972 - else 3973 - _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}" 3974 - fi 3975 - fi 3976 - ;; 3977 - 3978 - *.$objext) 3979 - # This assumes that the test object file only shows up 3980 - # once in the compiler output. 3981 - if test "$p" = "conftest.$objext"; then 3982 - pre_test_object_deps_done=yes 3983 - continue 3984 - fi 3985 - 3986 - if test "$pre_test_object_deps_done" = no; then 3987 - if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then 3988 - _LT_AC_TAGVAR(predep_objects, $1)="$p" 3989 - else 3990 - _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p" 3991 - fi 3992 - else 3993 - if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then 3994 - _LT_AC_TAGVAR(postdep_objects, $1)="$p" 3995 - else 3996 - _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p" 3997 - fi 3998 - fi 3999 - ;; 4000 - 4001 - *) ;; # Ignore the rest. 4002 - 4003 - esac 4004 - done 4005 - 4006 - # Clean up. 4007 - rm -f a.out a.exe 4008 -else 4009 - echo "libtool.m4: error: problem compiling $1 test program" 4010 -fi 4011 - 4012 -$rm -f confest.$objext 4013 - 4014 -_LT_AC_TAGVAR(compiler_lib_search_dirs, $1)= 4015 -if test -n "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then 4016 - _LT_AC_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_AC_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` 4017 -fi 4018 - 4019 -# PORTME: override above test on systems where it is broken 4020 -ifelse([$1],[CXX], 4021 -[case $host_os in 4022 -interix[[3-9]]*) 4023 - # Interix 3.5 installs completely hosed .la files for C++, so rather than 4024 - # hack all around it, let's just trust "g++" to DTRT. 4025 - _LT_AC_TAGVAR(predep_objects,$1)= 4026 - _LT_AC_TAGVAR(postdep_objects,$1)= 4027 - _LT_AC_TAGVAR(postdeps,$1)= 4028 - ;; 4029 - 4030 -linux*) 4031 - case `$CC -V 2>&1 | sed 5q` in 4032 - *Sun\ C*) 4033 - # Sun C++ 5.9 4034 - # 4035 - # The more standards-conforming stlport4 library is 4036 - # incompatible with the Cstd library. Avoid specifying 4037 - # it if it's in CXXFLAGS. Ignore libCrun as 4038 - # -library=stlport4 depends on it. 4039 - case " $CXX $CXXFLAGS " in 4040 - *" -library=stlport4 "*) 4041 - solaris_use_stlport4=yes 4042 - ;; 4043 - esac 4044 - if test "$solaris_use_stlport4" != yes; then 4045 - _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' 4046 - fi 4047 - ;; 4048 - esac 4049 - ;; 4050 - 4051 -solaris*) 4052 - case $cc_basename in 4053 - CC*) 4054 - # The more standards-conforming stlport4 library is 4055 - # incompatible with the Cstd library. Avoid specifying 4056 - # it if it's in CXXFLAGS. Ignore libCrun as 4057 - # -library=stlport4 depends on it. 4058 - case " $CXX $CXXFLAGS " in 4059 - *" -library=stlport4 "*) 4060 - solaris_use_stlport4=yes 4061 - ;; 4062 - esac 4063 - 4064 - # Adding this requires a known-good setup of shared libraries for 4065 - # Sun compiler versions before 5.6, else PIC objects from an old 4066 - # archive will be linked into the output, leading to subtle bugs. 4067 - if test "$solaris_use_stlport4" != yes; then 4068 - _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' 4069 - fi 4070 - ;; 4071 - esac 4072 - ;; 4073 -esac 4074 -]) 4075 -case " $_LT_AC_TAGVAR(postdeps, $1) " in 4076 -*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; 4077 -esac 4078 -])# AC_LIBTOOL_POSTDEP_PREDEP 4079 - 4080 -# AC_LIBTOOL_LANG_F77_CONFIG 4081 -# -------------------------- 4082 -# Ensure that the configuration vars for the C compiler are 4083 -# suitably defined. Those variables are subsequently used by 4084 -# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. 4085 -AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)]) 4086 -AC_DEFUN([_LT_AC_LANG_F77_CONFIG], 4087 -[AC_REQUIRE([AC_PROG_F77]) 4088 -AC_LANG_PUSH(Fortran 77) 4089 - 4090 -_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no 4091 -_LT_AC_TAGVAR(allow_undefined_flag, $1)= 4092 -_LT_AC_TAGVAR(always_export_symbols, $1)=no 4093 -_LT_AC_TAGVAR(archive_expsym_cmds, $1)= 4094 -_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= 4095 -_LT_AC_TAGVAR(hardcode_direct, $1)=no 4096 -_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= 4097 -_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= 4098 -_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= 4099 -_LT_AC_TAGVAR(hardcode_minus_L, $1)=no 4100 -_LT_AC_TAGVAR(hardcode_automatic, $1)=no 4101 -_LT_AC_TAGVAR(module_cmds, $1)= 4102 -_LT_AC_TAGVAR(module_expsym_cmds, $1)= 4103 -_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown 4104 -_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds 4105 -_LT_AC_TAGVAR(no_undefined_flag, $1)= 4106 -_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= 4107 -_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no 4108 - 4109 -# Source file extension for f77 test sources. 4110 -ac_ext=f 4111 - 4112 -# Object file extension for compiled f77 test sources. 4113 -objext=o 4114 -_LT_AC_TAGVAR(objext, $1)=$objext 4115 - 4116 -# Code to be used in simple compile tests 4117 -lt_simple_compile_test_code="\ 4118 - subroutine t 4119 - return 4120 - end 4121 -" 4122 - 4123 -# Code to be used in simple link tests 4124 -lt_simple_link_test_code="\ 4125 - program t 4126 - end 4127 -" 4128 - 4129 -# ltmain only uses $CC for tagged configurations so make sure $CC is set. 4130 -_LT_AC_SYS_COMPILER 4131 - 4132 -# save warnings/boilerplate of simple test code 4133 -_LT_COMPILER_BOILERPLATE 4134 -_LT_LINKER_BOILERPLATE 4135 - 4136 -# Allow CC to be a program name with arguments. 4137 -lt_save_CC="$CC" 4138 -CC=${F77-"f77"} 4139 -compiler=$CC 4140 -_LT_AC_TAGVAR(compiler, $1)=$CC 4141 -_LT_CC_BASENAME([$compiler]) 4142 - 4143 -AC_MSG_CHECKING([if libtool supports shared libraries]) 4144 -AC_MSG_RESULT([$can_build_shared]) 4145 - 4146 -AC_MSG_CHECKING([whether to build shared libraries]) 4147 -test "$can_build_shared" = "no" && enable_shared=no 4148 - 4149 -# On AIX, shared libraries and static libraries use the same namespace, and 4150 -# are all built from PIC. 4151 -case $host_os in 4152 -aix3*) 4153 - test "$enable_shared" = yes && enable_static=no 4154 - if test -n "$RANLIB"; then 4155 - archive_cmds="$archive_cmds~\$RANLIB \$lib" 4156 - postinstall_cmds='$RANLIB $lib' 4157 - fi 4158 - ;; 4159 -aix[[4-9]]*) 4160 - if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then 4161 - test "$enable_shared" = yes && enable_static=no 4162 - fi 4163 - ;; 4164 -esac 4165 -AC_MSG_RESULT([$enable_shared]) 4166 - 4167 -AC_MSG_CHECKING([whether to build static libraries]) 4168 -# Make sure either enable_shared or enable_static is yes. 4169 -test "$enable_shared" = yes || enable_static=yes 4170 -AC_MSG_RESULT([$enable_static]) 4171 - 4172 -_LT_AC_TAGVAR(GCC, $1)="$G77" 4173 -_LT_AC_TAGVAR(LD, $1)="$LD" 4174 - 4175 -AC_LIBTOOL_PROG_COMPILER_PIC($1) 4176 -AC_LIBTOOL_PROG_CC_C_O($1) 4177 -AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) 4178 -AC_LIBTOOL_PROG_LD_SHLIBS($1) 4179 -AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) 4180 -AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) 4181 - 4182 -AC_LIBTOOL_CONFIG($1) 4183 - 4184 -AC_LANG_POP 4185 -CC="$lt_save_CC" 4186 -])# AC_LIBTOOL_LANG_F77_CONFIG 4187 - 4188 - 4189 -# AC_LIBTOOL_LANG_GCJ_CONFIG 4190 -# -------------------------- 4191 -# Ensure that the configuration vars for the C compiler are 4192 -# suitably defined. Those variables are subsequently used by 4193 -# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. 4194 -AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)]) 4195 -AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG], 4196 -[AC_LANG_SAVE 4197 - 4198 -# Source file extension for Java test sources. 4199 -ac_ext=java 4200 - 4201 -# Object file extension for compiled Java test sources. 4202 -objext=o 4203 -_LT_AC_TAGVAR(objext, $1)=$objext 4204 - 4205 -# Code to be used in simple compile tests 4206 -lt_simple_compile_test_code="class foo {}" 4207 - 4208 -# Code to be used in simple link tests 4209 -lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' 4210 - 4211 -# ltmain only uses $CC for tagged configurations so make sure $CC is set. 4212 -_LT_AC_SYS_COMPILER 4213 - 4214 -# save warnings/boilerplate of simple test code 4215 -_LT_COMPILER_BOILERPLATE 4216 -_LT_LINKER_BOILERPLATE 4217 - 4218 -# Allow CC to be a program name with arguments. 4219 -lt_save_CC="$CC" 4220 -CC=${GCJ-"gcj"} 4221 -compiler=$CC 4222 -_LT_AC_TAGVAR(compiler, $1)=$CC 4223 -_LT_CC_BASENAME([$compiler]) 4224 - 4225 -# GCJ did not exist at the time GCC didn't implicitly link libc in. 4226 -_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no 4227 - 4228 -_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds 4229 - 4230 -AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) 4231 -AC_LIBTOOL_PROG_COMPILER_PIC($1) 4232 -AC_LIBTOOL_PROG_CC_C_O($1) 4233 -AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) 4234 -AC_LIBTOOL_PROG_LD_SHLIBS($1) 4235 -AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) 4236 -AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) 4237 - 4238 -AC_LIBTOOL_CONFIG($1) 4239 - 4240 -AC_LANG_RESTORE 4241 -CC="$lt_save_CC" 4242 -])# AC_LIBTOOL_LANG_GCJ_CONFIG 4243 - 4244 - 4245 -# AC_LIBTOOL_LANG_RC_CONFIG 4246 -# ------------------------- 4247 -# Ensure that the configuration vars for the Windows resource compiler are 4248 -# suitably defined. Those variables are subsequently used by 4249 -# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. 4250 -AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)]) 4251 -AC_DEFUN([_LT_AC_LANG_RC_CONFIG], 4252 -[AC_LANG_SAVE 4253 - 4254 -# Source file extension for RC test sources. 4255 -ac_ext=rc 4256 - 4257 -# Object file extension for compiled RC test sources. 4258 -objext=o 4259 -_LT_AC_TAGVAR(objext, $1)=$objext 4260 - 4261 -# Code to be used in simple compile tests 4262 -lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' 4263 - 4264 -# Code to be used in simple link tests 4265 -lt_simple_link_test_code="$lt_simple_compile_test_code" 4266 - 4267 -# ltmain only uses $CC for tagged configurations so make sure $CC is set. 4268 -_LT_AC_SYS_COMPILER 4269 - 4270 -# save warnings/boilerplate of simple test code 4271 -_LT_COMPILER_BOILERPLATE 4272 -_LT_LINKER_BOILERPLATE 4273 - 4274 -# Allow CC to be a program name with arguments. 4275 -lt_save_CC="$CC" 4276 -CC=${RC-"windres"} 4277 -compiler=$CC 4278 -_LT_AC_TAGVAR(compiler, $1)=$CC 4279 -_LT_CC_BASENAME([$compiler]) 4280 -_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes 4281 - 4282 -AC_LIBTOOL_CONFIG($1) 4283 - 4284 -AC_LANG_RESTORE 4285 -CC="$lt_save_CC" 4286 -])# AC_LIBTOOL_LANG_RC_CONFIG 4287 - 4288 - 4289 -# AC_LIBTOOL_CONFIG([TAGNAME]) 4290 -# ---------------------------- 4291 -# If TAGNAME is not passed, then create an initial libtool script 4292 -# with a default configuration from the untagged config vars. Otherwise 4293 -# add code to config.status for appending the configuration named by 4294 -# TAGNAME from the matching tagged config vars. 4295 -AC_DEFUN([AC_LIBTOOL_CONFIG], 4296 -[# The else clause should only fire when bootstrapping the 4297 -# libtool distribution, otherwise you forgot to ship ltmain.sh 4298 -# with your package, and you will get complaints that there are 4299 -# no rules to generate ltmain.sh. 4300 -if test -f "$ltmain"; then 4301 - # See if we are running on zsh, and set the options which allow our commands through 4302 - # without removal of \ escapes. 4303 - if test -n "${ZSH_VERSION+set}" ; then 4304 - setopt NO_GLOB_SUBST 4305 - fi 4306 - # Now quote all the things that may contain metacharacters while being 4307 - # careful not to overquote the AC_SUBSTed values. We take copies of the 4308 - # variables and quote the copies for generation of the libtool script. 4309 - for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ 4310 - SED SHELL STRIP \ 4311 - libname_spec library_names_spec soname_spec extract_expsyms_cmds \ 4312 - old_striplib striplib file_magic_cmd finish_cmds finish_eval \ 4313 - deplibs_check_method reload_flag reload_cmds need_locks \ 4314 - lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ 4315 - lt_cv_sys_global_symbol_to_c_name_address \ 4316 - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ 4317 - old_postinstall_cmds old_postuninstall_cmds \ 4318 - _LT_AC_TAGVAR(compiler, $1) \ 4319 - _LT_AC_TAGVAR(CC, $1) \ 4320 - _LT_AC_TAGVAR(LD, $1) \ 4321 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \ 4322 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \ 4323 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \ 4324 - _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \ 4325 - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \ 4326 - _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \ 4327 - _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \ 4328 - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \ 4329 - _LT_AC_TAGVAR(old_archive_cmds, $1) \ 4330 - _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \ 4331 - _LT_AC_TAGVAR(predep_objects, $1) \ 4332 - _LT_AC_TAGVAR(postdep_objects, $1) \ 4333 - _LT_AC_TAGVAR(predeps, $1) \ 4334 - _LT_AC_TAGVAR(postdeps, $1) \ 4335 - _LT_AC_TAGVAR(compiler_lib_search_path, $1) \ 4336 - _LT_AC_TAGVAR(compiler_lib_search_dirs, $1) \ 4337 - _LT_AC_TAGVAR(archive_cmds, $1) \ 4338 - _LT_AC_TAGVAR(archive_expsym_cmds, $1) \ 4339 - _LT_AC_TAGVAR(postinstall_cmds, $1) \ 4340 - _LT_AC_TAGVAR(postuninstall_cmds, $1) \ 4341 - _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \ 4342 - _LT_AC_TAGVAR(allow_undefined_flag, $1) \ 4343 - _LT_AC_TAGVAR(no_undefined_flag, $1) \ 4344 - _LT_AC_TAGVAR(export_symbols_cmds, $1) \ 4345 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \ 4346 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \ 4347 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \ 4348 - _LT_AC_TAGVAR(hardcode_automatic, $1) \ 4349 - _LT_AC_TAGVAR(module_cmds, $1) \ 4350 - _LT_AC_TAGVAR(module_expsym_cmds, $1) \ 4351 - _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \ 4352 - _LT_AC_TAGVAR(fix_srcfile_path, $1) \ 4353 - _LT_AC_TAGVAR(exclude_expsyms, $1) \ 4354 - _LT_AC_TAGVAR(include_expsyms, $1); do 4355 - 4356 - case $var in 4357 - _LT_AC_TAGVAR(old_archive_cmds, $1) | \ 4358 - _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \ 4359 - _LT_AC_TAGVAR(archive_cmds, $1) | \ 4360 - _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \ 4361 - _LT_AC_TAGVAR(module_cmds, $1) | \ 4362 - _LT_AC_TAGVAR(module_expsym_cmds, $1) | \ 4363 - _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \ 4364 - _LT_AC_TAGVAR(export_symbols_cmds, $1) | \ 4365 - extract_expsyms_cmds | reload_cmds | finish_cmds | \ 4366 - postinstall_cmds | postuninstall_cmds | \ 4367 - old_postinstall_cmds | old_postuninstall_cmds | \ 4368 - sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) 4369 - # Double-quote double-evaled strings. 4370 - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" 4371 - ;; 4372 - *) 4373 - eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" 4374 - ;; 4375 - esac 4376 - done 4377 - 4378 - case $lt_echo in 4379 - *'\[$]0 --fallback-echo"') 4380 - lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'` 4381 - ;; 4382 - esac 4383 - 4384 -ifelse([$1], [], 4385 - [cfgfile="${ofile}T" 4386 - trap "$rm \"$cfgfile\"; exit 1" 1 2 15 4387 - $rm -f "$cfgfile" 4388 - AC_MSG_NOTICE([creating $ofile])], 4389 - [cfgfile="$ofile"]) 4390 - 4391 - cat <<__EOF__ >> "$cfgfile" 4392 -ifelse([$1], [], 4393 -[#! $SHELL 4394 - 4395 -# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. 4396 -# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) 4397 -# NOTE: Changes made to this file will be lost: look at ltmain.sh. 4398 -# 4399 -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 4400 -# Free Software Foundation, Inc. 4401 -# 4402 -# This file is part of GNU Libtool: 4403 -# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 4404 -# 4405 -# This program is free software; you can redistribute it and/or modify 4406 -# it under the terms of the GNU General Public License as published by 4407 -# the Free Software Foundation; either version 2 of the License, or 4408 -# (at your option) any later version. 4409 -# 4410 -# This program is distributed in the hope that it will be useful, but 4411 -# WITHOUT ANY WARRANTY; without even the implied warranty of 4412 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4413 -# General Public License for more details. 4414 -# 4415 -# You should have received a copy of the GNU General Public License 4416 -# along with this program; if not, write to the Free Software 4417 -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 4418 -# 4419 -# As a special exception to the GNU General Public License, if you 4420 -# distribute this file as part of a program that contains a 4421 -# configuration script generated by Autoconf, you may include it under 4422 -# the same distribution terms that you use for the rest of that program. 4423 - 4424 -# A sed program that does not truncate output. 4425 -SED=$lt_SED 4426 - 4427 -# Sed that helps us avoid accidentally triggering echo(1) options like -n. 4428 -Xsed="$SED -e 1s/^X//" 4429 - 4430 -# The HP-UX ksh and POSIX shell print the target directory to stdout 4431 -# if CDPATH is set. 4432 -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 4433 - 4434 -# The names of the tagged configurations supported by this script. 4435 -available_tags= 4436 - 4437 -# ### BEGIN LIBTOOL CONFIG], 4438 -[# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) 4439 - 4440 -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: 4441 - 4442 -# Shell to use when invoking shell scripts. 4443 -SHELL=$lt_SHELL 4444 - 4445 -# Whether or not to build shared libraries. 4446 -build_libtool_libs=$enable_shared 4447 - 4448 -# Whether or not to build static libraries. 4449 -build_old_libs=$enable_static 4450 - 4451 -# Whether or not to add -lc for building shared libraries. 4452 -build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) 4453 - 4454 -# Whether or not to disallow shared libs when runtime libs are static 4455 -allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) 4456 - 4457 -# Whether or not to optimize for fast installation. 4458 -fast_install=$enable_fast_install 4459 - 4460 -# The host system. 4461 -host_alias=$host_alias 4462 -host=$host 4463 -host_os=$host_os 4464 - 4465 -# The build system. 4466 -build_alias=$build_alias 4467 -build=$build 4468 -build_os=$build_os 4469 - 4470 -# An echo program that does not interpret backslashes. 4471 -echo=$lt_echo 4472 - 4473 -# The archiver. 4474 -AR=$lt_AR 4475 -AR_FLAGS=$lt_AR_FLAGS 4476 - 4477 -# A C compiler. 4478 -LTCC=$lt_LTCC 4479 - 4480 -# LTCC compiler flags. 4481 -LTCFLAGS=$lt_LTCFLAGS 4482 - 4483 -# A language-specific compiler. 4484 -CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) 4485 - 4486 -# Is the compiler the GNU C compiler? 4487 -with_gcc=$_LT_AC_TAGVAR(GCC, $1) 4488 - 4489 -# An ERE matcher. 4490 -EGREP=$lt_EGREP 4491 - 4492 -# The linker used to build libraries. 4493 -LD=$lt_[]_LT_AC_TAGVAR(LD, $1) 4494 - 4495 -# Whether we need hard or soft links. 4496 -LN_S=$lt_LN_S 4497 - 4498 -# A BSD-compatible nm program. 4499 -NM=$lt_NM 4500 - 4501 -# A symbol stripping program 4502 -STRIP=$lt_STRIP 4503 - 4504 -# Used to examine libraries when file_magic_cmd begins "file" 4505 -MAGIC_CMD=$MAGIC_CMD 4506 - 4507 -# Used on cygwin: DLL creation program. 4508 -DLLTOOL="$DLLTOOL" 4509 - 4510 -# Used on cygwin: object dumper. 4511 -OBJDUMP="$OBJDUMP" 4512 - 4513 -# Used on cygwin: assembler. 4514 -AS="$AS" 4515 - 4516 -# The name of the directory that contains temporary libtool files. 4517 -objdir=$objdir 4518 - 4519 -# How to create reloadable object files. 4520 -reload_flag=$lt_reload_flag 4521 -reload_cmds=$lt_reload_cmds 4522 - 4523 -# How to pass a linker flag through the compiler. 4524 -wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) 4525 - 4526 -# Object file suffix (normally "o"). 4527 -objext="$ac_objext" 4528 - 4529 -# Old archive suffix (normally "a"). 4530 -libext="$libext" 4531 - 4532 -# Shared library suffix (normally ".so"). 4533 -shrext_cmds='$shrext_cmds' 4534 - 4535 -# Executable file suffix (normally ""). 4536 -exeext="$exeext" 4537 - 4538 -# Additional compiler flags for building library objects. 4539 -pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) 4540 -pic_mode=$pic_mode 4541 - 4542 -# What is the maximum length of a command? 4543 -max_cmd_len=$lt_cv_sys_max_cmd_len 4544 - 4545 -# Does compiler simultaneously support -c and -o options? 4546 -compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) 4547 - 4548 -# Must we lock files when doing compilation? 4549 -need_locks=$lt_need_locks 4550 - 4551 -# Do we need the lib prefix for modules? 4552 -need_lib_prefix=$need_lib_prefix 4553 - 4554 -# Do we need a version for libraries? 4555 -need_version=$need_version 4556 - 4557 -# Whether dlopen is supported. 4558 -dlopen_support=$enable_dlopen 4559 - 4560 -# Whether dlopen of programs is supported. 4561 -dlopen_self=$enable_dlopen_self 4562 - 4563 -# Whether dlopen of statically linked programs is supported. 4564 -dlopen_self_static=$enable_dlopen_self_static 4565 - 4566 -# Compiler flag to prevent dynamic linking. 4567 -link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) 4568 - 4569 -# Compiler flag to turn off builtin functions. 4570 -no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) 4571 - 4572 -# Compiler flag to allow reflexive dlopens. 4573 -export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) 4574 - 4575 -# Compiler flag to generate shared objects directly from archives. 4576 -whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) 4577 - 4578 -# Compiler flag to generate thread-safe objects. 4579 -thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) 4580 - 4581 -# Library versioning type. 4582 -version_type=$version_type 4583 - 4584 -# Format of library name prefix. 4585 -libname_spec=$lt_libname_spec 4586 - 4587 -# List of archive names. First name is the real one, the rest are links. 4588 -# The last name is the one that the linker finds with -lNAME. 4589 -library_names_spec=$lt_library_names_spec 4590 - 4591 -# The coded name of the library, if different from the real name. 4592 -soname_spec=$lt_soname_spec 4593 - 4594 -# Commands used to build and install an old-style archive. 4595 -RANLIB=$lt_RANLIB 4596 -old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) 4597 -old_postinstall_cmds=$lt_old_postinstall_cmds 4598 -old_postuninstall_cmds=$lt_old_postuninstall_cmds 4599 - 4600 -# Create an old-style archive from a shared archive. 4601 -old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) 4602 - 4603 -# Create a temporary old-style archive to link instead of a shared archive. 4604 -old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) 4605 - 4606 -# Commands used to build and install a shared archive. 4607 -archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) 4608 -archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) 4609 -postinstall_cmds=$lt_postinstall_cmds 4610 -postuninstall_cmds=$lt_postuninstall_cmds 4611 - 4612 -# Commands used to build a loadable module (assumed same as above if empty) 4613 -module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) 4614 -module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) 4615 - 4616 -# Commands to strip libraries. 4617 -old_striplib=$lt_old_striplib 4618 -striplib=$lt_striplib 4619 - 4620 -# Dependencies to place before the objects being linked to create a 4621 -# shared library. 4622 -predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) 4623 - 4624 -# Dependencies to place after the objects being linked to create a 4625 -# shared library. 4626 -postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) 4627 - 4628 -# Dependencies to place before the objects being linked to create a 4629 -# shared library. 4630 -predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) 4631 - 4632 -# Dependencies to place after the objects being linked to create a 4633 -# shared library. 4634 -postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) 4635 - 4636 -# The directories searched by this compiler when creating a shared 4637 -# library 4638 -compiler_lib_search_dirs=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_dirs, $1) 4639 - 4640 -# The library search path used internally by the compiler when linking 4641 -# a shared library. 4642 -compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) 4643 - 4644 -# Method to check whether dependent libraries are shared objects. 4645 -deplibs_check_method=$lt_deplibs_check_method 4646 - 4647 -# Command to use when deplibs_check_method == file_magic. 4648 -file_magic_cmd=$lt_file_magic_cmd 4649 - 4650 -# Flag that allows shared libraries with undefined symbols to be built. 4651 -allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) 4652 - 4653 -# Flag that forces no undefined symbols. 4654 -no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) 4655 - 4656 -# Commands used to finish a libtool library installation in a directory. 4657 -finish_cmds=$lt_finish_cmds 4658 - 4659 -# Same as above, but a single script fragment to be evaled but not shown. 4660 -finish_eval=$lt_finish_eval 4661 - 4662 -# Take the output of nm and produce a listing of raw symbols and C names. 4663 -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe 4664 - 4665 -# Transform the output of nm in a proper C declaration 4666 -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl 4667 - 4668 -# Transform the output of nm in a C name address pair 4669 -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address 4670 - 4671 -# This is the shared library runtime path variable. 4672 -runpath_var=$runpath_var 4673 - 4674 -# This is the shared library path variable. 4675 -shlibpath_var=$shlibpath_var 4676 - 4677 -# Is shlibpath searched before the hard-coded library search path? 4678 -shlibpath_overrides_runpath=$shlibpath_overrides_runpath 4679 - 4680 -# How to hardcode a shared library path into an executable. 4681 -hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) 4682 - 4683 -# Whether we should hardcode library paths into libraries. 4684 -hardcode_into_libs=$hardcode_into_libs 4685 - 4686 -# Flag to hardcode \$libdir into a binary during linking. 4687 -# This must work even if \$libdir does not exist. 4688 -hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) 4689 - 4690 -# If ld is used when linking, flag to hardcode \$libdir into 4691 -# a binary during linking. This must work even if \$libdir does 4692 -# not exist. 4693 -hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) 4694 - 4695 -# Whether we need a single -rpath flag with a separated argument. 4696 -hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) 4697 - 4698 -# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the 4699 -# resulting binary. 4700 -hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) 4701 - 4702 -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the 4703 -# resulting binary. 4704 -hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) 4705 - 4706 -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into 4707 -# the resulting binary. 4708 -hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) 4709 - 4710 -# Set to yes if building a shared library automatically hardcodes DIR into the library 4711 -# and all subsequent libraries and executables linked against it. 4712 -hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1) 4713 - 4714 -# Variables whose values should be saved in libtool wrapper scripts and 4715 -# restored at relink time. 4716 -variables_saved_for_relink="$variables_saved_for_relink" 4717 - 4718 -# Whether libtool must link a program against all its dependency libraries. 4719 -link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) 4720 - 4721 -# Compile-time system search path for libraries 4722 -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec 4723 - 4724 -# Run-time system search path for libraries 4725 -sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec 4726 - 4727 -# Fix the shell variable \$srcfile for the compiler. 4728 -fix_srcfile_path=$lt_fix_srcfile_path 4729 - 4730 -# Set to yes if exported symbols are required. 4731 -always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) 4732 - 4733 -# The commands to list exported symbols. 4734 -export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) 4735 - 4736 -# The commands to extract the exported symbol list from a shared archive. 4737 -extract_expsyms_cmds=$lt_extract_expsyms_cmds 4738 - 4739 -# Symbols that should not be listed in the preloaded symbols. 4740 -exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) 4741 - 4742 -# Symbols that must always be exported. 4743 -include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) 4744 - 4745 -ifelse([$1],[], 4746 -[# ### END LIBTOOL CONFIG], 4747 -[# ### END LIBTOOL TAG CONFIG: $tagname]) 4748 - 4749 -__EOF__ 4750 - 4751 -ifelse([$1],[], [ 4752 - case $host_os in 4753 - aix3*) 4754 - cat <<\EOF >> "$cfgfile" 4755 - 4756 -# AIX sometimes has problems with the GCC collect2 program. For some 4757 -# reason, if we set the COLLECT_NAMES environment variable, the problems 4758 -# vanish in a puff of smoke. 4759 -if test "X${COLLECT_NAMES+set}" != Xset; then 4760 - COLLECT_NAMES= 4761 - export COLLECT_NAMES 4762 -fi 4763 -EOF 4764 - ;; 4765 - esac 4766 - 4767 - # We use sed instead of cat because bash on DJGPP gets confused if 4768 - # if finds mixed CR/LF and LF-only lines. Since sed operates in 4769 - # text mode, it properly converts lines to CR/LF. This bash problem 4770 - # is reportedly fixed, but why not run on old versions too? 4771 - sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) 4772 - 4773 - mv -f "$cfgfile" "$ofile" || \ 4774 - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") 4775 - chmod +x "$ofile" 4776 -]) 4777 -else 4778 - # If there is no Makefile yet, we rely on a make rule to execute 4779 - # `config.status --recheck' to rerun these tests and create the 4780 - # libtool script then. 4781 - ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` 4782 - if test -f "$ltmain_in"; then 4783 - test -f Makefile && make "$ltmain" 4784 - fi 4785 -fi 4786 -])# AC_LIBTOOL_CONFIG 4787 - 4788 - 4789 -# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) 4790 -# ------------------------------------------- 4791 -AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], 4792 -[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl 4793 - 4794 -_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= 3297 +AC_SUBST([LIBM]) 3298 +])# LT_LIB_M 3299 + 3300 +# Old name: 3301 +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) 3302 +dnl aclocal-1.4 backwards compatibility: 3303 +dnl AC_DEFUN([AC_CHECK_LIBM], []) 3304 + 3305 + 3306 +# _LT_COMPILER_NO_RTTI([TAGNAME]) 3307 +# ------------------------------- 3308 +m4_defun([_LT_COMPILER_NO_RTTI], 3309 +[m4_require([_LT_TAG_COMPILER])dnl 3310 + 3311 +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= 4795 3312 4796 3313 if test "$GCC" = yes; then 4797 - _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' 3314 + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' 4798 3315 4799 - AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], 3316 + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], 4800 3317 lt_cv_prog_compiler_rtti_exceptions, 4801 3318 [-fno-rtti -fno-exceptions], [], 4802 - [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) 3319 + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) 4803 3320 fi 4804 -])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI 3321 +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], 3322 + [Compiler flag to turn off builtin functions]) 3323 +])# _LT_COMPILER_NO_RTTI 4805 3324 4806 3325 4807 -# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE 4808 -# --------------------------------- 4809 -AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], 4810 -[AC_REQUIRE([AC_CANONICAL_HOST]) 4811 -AC_REQUIRE([LT_AC_PROG_SED]) 4812 -AC_REQUIRE([AC_PROG_NM]) 4813 -AC_REQUIRE([AC_OBJEXT]) 3326 +# _LT_CMD_GLOBAL_SYMBOLS 3327 +# ---------------------- 3328 +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], 3329 +[AC_REQUIRE([AC_CANONICAL_HOST])dnl 3330 +AC_REQUIRE([AC_PROG_CC])dnl 3331 +AC_REQUIRE([LT_PATH_NM])dnl 3332 +AC_REQUIRE([LT_PATH_LD])dnl 3333 +m4_require([_LT_DECL_SED])dnl 3334 +m4_require([_LT_DECL_EGREP])dnl 3335 +m4_require([_LT_TAG_COMPILER])dnl 3336 + 4814 3337 # Check for command to grab the raw symbol name followed by C symbol from nm. 4815 3338 AC_MSG_CHECKING([command to parse $NM output from $compiler object]) 4816 3339 AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], 4817 3340 [ 4818 3341 # These are sane defaults that work on at least a few old systems. 4819 3342 # [They come from Ultrix. What could be older than Ultrix?!! ;)] 4820 3343 4821 3344 # Character class describing NM global symbol codes. 4822 3345 symcode='[[BCDEGRST]]' 4823 3346 4824 3347 # Regexp to match symbols that can be accessed directly from C. 4825 3348 sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' 4826 3349 4827 -# Transform an extracted symbol line into a proper C declaration 4828 -lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" 4829 - 4830 -# Transform an extracted symbol line into symbol name and symbol address 4831 -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" 4832 - 4833 3350 # Define system-specific variables. 4834 3351 case $host_os in 4835 3352 aix*) 4836 3353 symcode='[[BCDT]]' 4837 3354 ;; 4838 -cygwin* | mingw* | pw32*) 3355 +cygwin* | mingw* | pw32* | cegcc*) 4839 3356 symcode='[[ABCDGISTW]]' 4840 3357 ;; 4841 -hpux*) # Its linker distinguishes data from code symbols 3358 +hpux*) 4842 3359 if test "$host_cpu" = ia64; then 4843 3360 symcode='[[ABCDEGRST]]' 4844 3361 fi 4845 - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" 4846 - lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" 4847 - ;; 4848 -linux* | k*bsd*-gnu) 4849 - if test "$host_cpu" = ia64; then 4850 - symcode='[[ABCDGIRSTW]]' 4851 - lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" 4852 - lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" 4853 - fi 4854 3362 ;; 4855 3363 irix* | nonstopux*) 4856 3364 symcode='[[BCDEGRST]]' 4857 3365 ;; 4858 3366 osf*) 4859 3367 symcode='[[BCDEGQRST]]' 4860 3368 ;; ................................................................................ 4871 3379 symcode='[[ABDT]]' 4872 3380 ;; 4873 3381 sysv4) 4874 3382 symcode='[[DFNSTU]]' 4875 3383 ;; 4876 3384 esac 4877 3385 4878 -# Handle CRLF in mingw tool chain 4879 -opt_cr= 4880 -case $build_os in 4881 -mingw*) 4882 - opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp 4883 - ;; 4884 -esac 4885 - 4886 3386 # If we're using GNU nm, then use its standard symbol codes. 4887 3387 case `$NM -V 2>&1` in 4888 3388 *GNU* | *'with BFD'*) 4889 3389 symcode='[[ABCDGIRSTW]]' ;; 4890 3390 esac 4891 3391 4892 -# Try without a prefix undercore, then with it. 3392 +# Transform an extracted symbol line into a proper C declaration. 3393 +# Some systems (esp. on ia64) link data and code symbols differently, 3394 +# so use this general approach. 3395 +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" 3396 + 3397 +# Transform an extracted symbol line into symbol name and symbol address 3398 +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" 3399 +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'" 3400 + 3401 +# Handle CRLF in mingw tool chain 3402 +opt_cr= 3403 +case $build_os in 3404 +mingw*) 3405 + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp 3406 + ;; 3407 +esac 3408 + 3409 +# Try without a prefix underscore, then with it. 4893 3410 for ac_symprfx in "" "_"; do 4894 3411 4895 3412 # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. 4896 3413 symxfrm="\\1 $ac_symprfx\\2 \\2" 4897 3414 4898 3415 # Write the raw and C identifiers. 4899 - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" 3416 + if test "$lt_cv_nm_interface" = "MS dumpbin"; then 3417 + # Fake it for dumpbin and say T for any non-static function 3418 + # and D for any global variable. 3419 + # Also find C++ and __fastcall symbols from MSVC++, 3420 + # which start with @ or ?. 3421 + lt_cv_sys_global_symbol_pipe="$AWK ['"\ 3422 +" {last_section=section; section=\$ 3};"\ 3423 +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ 3424 +" \$ 0!~/External *\|/{next};"\ 3425 +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ 3426 +" {if(hide[section]) next};"\ 3427 +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ 3428 +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ 3429 +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ 3430 +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ 3431 +" ' prfx=^$ac_symprfx]" 3432 + else 3433 + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" 3434 + fi 4900 3435 4901 3436 # Check to see that the pipe works correctly. 4902 3437 pipe_works=no 4903 3438 4904 3439 rm -f conftest* 4905 - cat > conftest.$ac_ext <<EOF 3440 + cat > conftest.$ac_ext <<_LT_EOF 4906 3441 #ifdef __cplusplus 4907 3442 extern "C" { 4908 3443 #endif 4909 3444 char nm_test_var; 4910 -void nm_test_func(){} 3445 +void nm_test_func(void); 3446 +void nm_test_func(void){} 4911 3447 #ifdef __cplusplus 4912 3448 } 4913 3449 #endif 4914 3450 int main(){nm_test_var='a';nm_test_func();return(0);} 4915 -EOF 3451 +_LT_EOF 4916 3452 4917 3453 if AC_TRY_EVAL(ac_compile); then 4918 3454 # Now try to grab the symbols. 4919 3455 nlist=conftest.nm 4920 3456 if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then 4921 3457 # Try sorting and uniquifying the output. 4922 3458 if sort "$nlist" | uniq > "$nlist"T; then 4923 3459 mv -f "$nlist"T "$nlist" 4924 3460 else 4925 3461 rm -f "$nlist"T 4926 3462 fi 4927 3463 4928 3464 # Make sure that we snagged all the symbols we need. 4929 - if grep ' nm_test_var$' "$nlist" >/dev/null; then 4930 - if grep ' nm_test_func$' "$nlist" >/dev/null; then 4931 - cat <<EOF > conftest.$ac_ext 3465 + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then 3466 + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then 3467 + cat <<_LT_EOF > conftest.$ac_ext 4932 3468 #ifdef __cplusplus 4933 3469 extern "C" { 4934 3470 #endif 4935 3471 4936 -EOF 3472 +_LT_EOF 4937 3473 # Now generate the symbol file. 4938 - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' 3474 + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' 4939 3475 4940 - cat <<EOF >> conftest.$ac_ext 4941 -#if defined (__STDC__) && __STDC__ 4942 -# define lt_ptr_t void * 4943 -#else 4944 -# define lt_ptr_t char * 4945 -# define const 4946 -#endif 3476 + cat <<_LT_EOF >> conftest.$ac_ext 4947 3477 4948 -/* The mapping between symbol names and symbols. */ 3478 +/* The mapping between symbol names and symbols. */ 4949 3479 const struct { 4950 3480 const char *name; 4951 - lt_ptr_t address; 3481 + void *address; 4952 3482 } 4953 -lt_preloaded_symbols[[]] = 3483 +lt__PROGRAM__LTX_preloaded_symbols[[]] = 4954 3484 { 4955 -EOF 4956 - $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext 4957 - cat <<\EOF >> conftest.$ac_ext 4958 - {0, (lt_ptr_t) 0} 3485 + { "@PROGRAM@", (void *) 0 }, 3486 +_LT_EOF 3487 + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext 3488 + cat <<\_LT_EOF >> conftest.$ac_ext 3489 + {0, (void *) 0} 4959 3490 }; 3491 + 3492 +/* This works around a problem in FreeBSD linker */ 3493 +#ifdef FREEBSD_WORKAROUND 3494 +static const void *lt_preloaded_setup() { 3495 + return lt__PROGRAM__LTX_preloaded_symbols; 3496 +} 3497 +#endif 4960 3498 4961 3499 #ifdef __cplusplus 4962 3500 } 4963 3501 #endif 4964 -EOF 3502 +_LT_EOF 4965 3503 # Now try linking the two files. 4966 3504 mv conftest.$ac_objext conftstm.$ac_objext 4967 3505 lt_save_LIBS="$LIBS" 4968 3506 lt_save_CFLAGS="$CFLAGS" 4969 3507 LIBS="conftstm.$ac_objext" 4970 - CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" 3508 + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" 4971 3509 if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then 4972 3510 pipe_works=yes 4973 3511 fi 4974 3512 LIBS="$lt_save_LIBS" 4975 3513 CFLAGS="$lt_save_CFLAGS" 4976 3514 else 4977 3515 echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD ................................................................................ 5000 3538 lt_cv_sys_global_symbol_to_cdecl= 5001 3539 fi 5002 3540 if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then 5003 3541 AC_MSG_RESULT(failed) 5004 3542 else 5005 3543 AC_MSG_RESULT(ok) 5006 3544 fi 5007 -]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE 3545 + 3546 +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], 3547 + [Take the output of nm and produce a listing of raw symbols and C names]) 3548 +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], 3549 + [Transform the output of nm in a proper C declaration]) 3550 +_LT_DECL([global_symbol_to_c_name_address], 3551 + [lt_cv_sys_global_symbol_to_c_name_address], [1], 3552 + [Transform the output of nm in a C name address pair]) 3553 +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], 3554 + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], 3555 + [Transform the output of nm in a C name address pair when lib prefix is needed]) 3556 +]) # _LT_CMD_GLOBAL_SYMBOLS 5008 3557 5009 3558 5010 -# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) 5011 -# --------------------------------------- 5012 -AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], 5013 -[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= 5014 -_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= 5015 -_LT_AC_TAGVAR(lt_prog_compiler_static, $1)= 3559 +# _LT_COMPILER_PIC([TAGNAME]) 3560 +# --------------------------- 3561 +m4_defun([_LT_COMPILER_PIC], 3562 +[m4_require([_LT_TAG_COMPILER])dnl 3563 +_LT_TAGVAR(lt_prog_compiler_wl, $1)= 3564 +_LT_TAGVAR(lt_prog_compiler_pic, $1)= 3565 +_LT_TAGVAR(lt_prog_compiler_static, $1)= 5016 3566 5017 3567 AC_MSG_CHECKING([for $compiler option to produce PIC]) 5018 - ifelse([$1],[CXX],[ 3568 +m4_if([$1], [CXX], [ 5019 3569 # C++ specific cases for pic, static, wl, etc. 5020 3570 if test "$GXX" = yes; then 5021 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 5022 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' 3571 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 3572 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' 5023 3573 5024 3574 case $host_os in 5025 3575 aix*) 5026 3576 # All AIX code is PIC. 5027 3577 if test "$host_cpu" = ia64; then 5028 3578 # AIX 5 now supports IA64 processor 5029 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 3579 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 5030 3580 fi 5031 3581 ;; 3582 + 5032 3583 amigaos*) 5033 - # FIXME: we need at least 68020 code to build shared libraries, but 5034 - # adding the `-m68020' flag to GCC prevents building anything better, 5035 - # like `-m68040'. 5036 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' 3584 + case $host_cpu in 3585 + powerpc) 3586 + # see comment about AmigaOS4 .so support 3587 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 3588 + ;; 3589 + m68k) 3590 + # FIXME: we need at least 68020 code to build shared libraries, but 3591 + # adding the `-m68020' flag to GCC prevents building anything better, 3592 + # like `-m68040'. 3593 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' 3594 + ;; 3595 + esac 5037 3596 ;; 3597 + 5038 3598 beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) 5039 3599 # PIC is the default for these OSes. 5040 3600 ;; 5041 - mingw* | cygwin* | os2* | pw32*) 3601 + mingw* | cygwin* | os2* | pw32* | cegcc*) 5042 3602 # This hack is so that the source file can tell whether it is being 5043 3603 # built for inclusion in a dll (and should export symbols for example). 5044 3604 # Although the cygwin gcc ignores -fPIC, still need this for old-style 5045 3605 # (--disable-auto-import) libraries 5046 3606 m4_if([$1], [GCJ], [], 5047 - [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) 3607 + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) 5048 3608 ;; 5049 3609 darwin* | rhapsody*) 5050 3610 # PIC is the default on this platform 5051 3611 # Common symbols not allowed in MH_DYLIB files 5052 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' 3612 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' 5053 3613 ;; 5054 3614 *djgpp*) 5055 3615 # DJGPP does not support shared libraries at all 5056 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= 3616 + _LT_TAGVAR(lt_prog_compiler_pic, $1)= 5057 3617 ;; 5058 3618 interix[[3-9]]*) 5059 3619 # Interix 3.x gcc -fpic/-fPIC options generate broken code. 5060 3620 # Instead, we relocate shared libraries at runtime. 5061 3621 ;; 5062 3622 sysv4*MP*) 5063 3623 if test -d /usr/nec; then 5064 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic 3624 + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic 5065 3625 fi 5066 3626 ;; 5067 3627 hpux*) 5068 - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but 5069 - # not for PA HP-UX. 3628 + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit 3629 + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag 3630 + # sets the default TLS model and affects inlining. 5070 3631 case $host_cpu in 5071 - hppa*64*|ia64*) 3632 + hppa*64*) 5072 3633 ;; 5073 3634 *) 5074 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 3635 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 5075 3636 ;; 5076 3637 esac 5077 3638 ;; 3639 + *qnx* | *nto*) 3640 + # QNX uses GNU C++, but need to define -shared option too, otherwise 3641 + # it will coredump. 3642 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' 3643 + ;; 5078 3644 *) 5079 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 3645 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 5080 3646 ;; 5081 3647 esac 5082 3648 else 5083 3649 case $host_os in 5084 3650 aix[[4-9]]*) 5085 3651 # All AIX code is PIC. 5086 3652 if test "$host_cpu" = ia64; then 5087 3653 # AIX 5 now supports IA64 processor 5088 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 3654 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 5089 3655 else 5090 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' 3656 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' 5091 3657 fi 5092 3658 ;; 5093 3659 chorus*) 5094 3660 case $cc_basename in 5095 3661 cxch68*) 5096 3662 # Green Hills C++ Compiler 5097 - # _LT_AC_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" 3663 + # _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" 5098 3664 ;; 5099 3665 esac 5100 3666 ;; 5101 - darwin*) 5102 - # PIC is the default on this platform 5103 - # Common symbols not allowed in MH_DYLIB files 5104 - case $cc_basename in 5105 - xlc*) 5106 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' 5107 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 5108 - ;; 5109 - esac 5110 - ;; 5111 3667 dgux*) 5112 3668 case $cc_basename in 5113 3669 ec++*) 5114 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 3670 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 5115 3671 ;; 5116 3672 ghcx*) 5117 3673 # Green Hills C++ Compiler 5118 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' 3674 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' 5119 3675 ;; 5120 3676 *) 5121 3677 ;; 5122 3678 esac 5123 3679 ;; 5124 3680 freebsd* | dragonfly*) 5125 3681 # FreeBSD uses GNU C++ 5126 3682 ;; 5127 3683 hpux9* | hpux10* | hpux11*) 5128 3684 case $cc_basename in 5129 3685 CC*) 5130 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 5131 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' 3686 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 3687 + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' 5132 3688 if test "$host_cpu" != ia64; then 5133 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' 3689 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' 5134 3690 fi 5135 3691 ;; 5136 3692 aCC*) 5137 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 5138 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' 3693 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 3694 + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' 5139 3695 case $host_cpu in 5140 3696 hppa*64*|ia64*) 5141 3697 # +Z the default 5142 3698 ;; 5143 3699 *) 5144 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' 3700 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' 5145 3701 ;; 5146 3702 esac 5147 3703 ;; 5148 3704 *) 5149 3705 ;; 5150 3706 esac 5151 3707 ;; ................................................................................ 5152 3708 interix*) 5153 3709 # This is c89, which is MS Visual C++ (no shared libs) 5154 3710 # Anyone wants to do a port? 5155 3711 ;; 5156 3712 irix5* | irix6* | nonstopux*) 5157 3713 case $cc_basename in 5158 3714 CC*) 5159 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 5160 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' 3715 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 3716 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' 5161 3717 # CC pic flag -KPIC is the default. 5162 3718 ;; 5163 3719 *) 5164 3720 ;; 5165 3721 esac 5166 3722 ;; 5167 - linux* | k*bsd*-gnu) 3723 + linux* | k*bsd*-gnu | kopensolaris*-gnu) 5168 3724 case $cc_basename in 5169 3725 KCC*) 5170 3726 # KAI C++ Compiler 5171 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' 5172 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 3727 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' 3728 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 5173 3729 ;; 5174 - icpc* | ecpc*) 5175 - # Intel C++ 5176 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 5177 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 5178 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' 3730 + ecpc* ) 3731 + # old Intel C++ for x86_64 which still supported -KPIC. 3732 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 3733 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 3734 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' 3735 + ;; 3736 + icpc* ) 3737 + # Intel C++, used to be incompatible with GCC. 3738 + # ICC 10 doesn't accept -KPIC any more. 3739 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 3740 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 3741 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' 5179 3742 ;; 5180 3743 pgCC* | pgcpp*) 5181 - # Portland Group C++ compiler. 5182 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 5183 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' 5184 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 3744 + # Portland Group C++ compiler 3745 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 3746 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' 3747 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 5185 3748 ;; 5186 3749 cxx*) 5187 3750 # Compaq C++ 5188 3751 # Make sure the PIC flag is empty. It appears that all Alpha 5189 3752 # Linux and Compaq Tru64 Unix objects are PIC. 5190 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= 5191 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' 3753 + _LT_TAGVAR(lt_prog_compiler_pic, $1)= 3754 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' 3755 + ;; 3756 + xlc* | xlC*) 3757 + # IBM XL 8.0 on PPC 3758 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 3759 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' 3760 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' 5192 3761 ;; 5193 3762 *) 5194 3763 case `$CC -V 2>&1 | sed 5q` in 5195 3764 *Sun\ C*) 5196 3765 # Sun C++ 5.9 5197 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 5198 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 5199 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' 3766 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 3767 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 3768 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' 5200 3769 ;; 5201 3770 esac 5202 3771 ;; 5203 3772 esac 5204 3773 ;; 5205 3774 lynxos*) 5206 3775 ;; 5207 3776 m88k*) 5208 3777 ;; 5209 3778 mvs*) 5210 3779 case $cc_basename in 5211 3780 cxx*) 5212 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' 3781 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' 5213 3782 ;; 5214 3783 *) 5215 3784 ;; 5216 3785 esac 5217 3786 ;; 5218 3787 netbsd* | netbsdelf*-gnu) 5219 3788 ;; 3789 + *qnx* | *nto*) 3790 + # QNX uses GNU C++, but need to define -shared option too, otherwise 3791 + # it will coredump. 3792 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' 3793 + ;; 5220 3794 osf3* | osf4* | osf5*) 5221 3795 case $cc_basename in 5222 3796 KCC*) 5223 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' 3797 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' 5224 3798 ;; 5225 3799 RCC*) 5226 3800 # Rational C++ 2.4.1 5227 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' 3801 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' 5228 3802 ;; 5229 3803 cxx*) 5230 3804 # Digital/Compaq C++ 5231 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 3805 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 5232 3806 # Make sure the PIC flag is empty. It appears that all Alpha 5233 3807 # Linux and Compaq Tru64 Unix objects are PIC. 5234 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= 5235 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' 3808 + _LT_TAGVAR(lt_prog_compiler_pic, $1)= 3809 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' 5236 3810 ;; 5237 3811 *) 5238 3812 ;; 5239 3813 esac 5240 3814 ;; 5241 3815 psos*) 5242 3816 ;; 5243 3817 solaris*) 5244 3818 case $cc_basename in 5245 3819 CC*) 5246 3820 # Sun C++ 4.2, 5.x and Centerline C++ 5247 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 5248 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 5249 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' 3821 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 3822 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 3823 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' 5250 3824 ;; 5251 3825 gcx*) 5252 3826 # Green Hills C++ Compiler 5253 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' 3827 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' 5254 3828 ;; 5255 3829 *) 5256 3830 ;; 5257 3831 esac 5258 3832 ;; 5259 3833 sunos4*) 5260 3834 case $cc_basename in 5261 3835 CC*) 5262 3836 # Sun C++ 4.x 5263 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' 5264 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 3837 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' 3838 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 5265 3839 ;; 5266 3840 lcc*) 5267 3841 # Lucid 5268 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' 5269 - ;; 5270 - *) 5271 - ;; 5272 - esac 5273 - ;; 5274 - tandem*) 5275 - case $cc_basename in 5276 - NCC*) 5277 - # NonStop-UX NCC 3.20 5278 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 3842 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' 5279 3843 ;; 5280 3844 *) 5281 3845 ;; 5282 3846 esac 5283 3847 ;; 5284 3848 sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) 5285 3849 case $cc_basename in 5286 3850 CC*) 5287 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 5288 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 5289 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 3851 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 3852 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 3853 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 3854 + ;; 3855 + esac 3856 + ;; 3857 + tandem*) 3858 + case $cc_basename in 3859 + NCC*) 3860 + # NonStop-UX NCC 3.20 3861 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 3862 + ;; 3863 + *) 5290 3864 ;; 5291 3865 esac 5292 3866 ;; 5293 3867 vxworks*) 5294 3868 ;; 5295 3869 *) 5296 - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no 3870 + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no 5297 3871 ;; 5298 3872 esac 5299 3873 fi 5300 3874 ], 5301 3875 [ 5302 3876 if test "$GCC" = yes; then 5303 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 5304 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' 3877 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 3878 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' 5305 3879 5306 3880 case $host_os in 5307 3881 aix*) 5308 3882 # All AIX code is PIC. 5309 3883 if test "$host_cpu" = ia64; then 5310 3884 # AIX 5 now supports IA64 processor 5311 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 3885 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 5312 3886 fi 5313 3887 ;; 5314 3888 5315 3889 amigaos*) 5316 - # FIXME: we need at least 68020 code to build shared libraries, but 5317 - # adding the `-m68020' flag to GCC prevents building anything better, 5318 - # like `-m68040'. 5319 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' 3890 + case $host_cpu in 3891 + powerpc) 3892 + # see comment about AmigaOS4 .so support 3893 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 3894 + ;; 3895 + m68k) 3896 + # FIXME: we need at least 68020 code to build shared libraries, but 3897 + # adding the `-m68020' flag to GCC prevents building anything better, 3898 + # like `-m68040'. 3899 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' 3900 + ;; 3901 + esac 5320 3902 ;; 5321 3903 5322 3904 beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) 5323 3905 # PIC is the default for these OSes. 5324 3906 ;; 5325 3907 5326 - mingw* | cygwin* | pw32* | os2*) 3908 + mingw* | cygwin* | pw32* | os2* | cegcc*) 5327 3909 # This hack is so that the source file can tell whether it is being 5328 3910 # built for inclusion in a dll (and should export symbols for example). 5329 3911 # Although the cygwin gcc ignores -fPIC, still need this for old-style 5330 3912 # (--disable-auto-import) libraries 5331 3913 m4_if([$1], [GCJ], [], 5332 - [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) 3914 + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) 5333 3915 ;; 5334 3916 5335 3917 darwin* | rhapsody*) 5336 3918 # PIC is the default on this platform 5337 3919 # Common symbols not allowed in MH_DYLIB files 5338 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' 3920 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' 3921 + ;; 3922 + 3923 + hpux*) 3924 + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit 3925 + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag 3926 + # sets the default TLS model and affects inlining. 3927 + case $host_cpu in 3928 + hppa*64*) 3929 + # +Z the default 3930 + ;; 3931 + *) 3932 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 3933 + ;; 3934 + esac 5339 3935 ;; 5340 3936 5341 3937 interix[[3-9]]*) 5342 3938 # Interix 3.x gcc -fpic/-fPIC options generate broken code. 5343 3939 # Instead, we relocate shared libraries at runtime. 5344 3940 ;; 5345 3941 5346 3942 msdosdjgpp*) 5347 3943 # Just because we use GCC doesn't mean we suddenly get shared libraries 5348 3944 # on systems that don't support them. 5349 - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no 3945 + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no 5350 3946 enable_shared=no 5351 3947 ;; 3948 + 3949 + *nto* | *qnx*) 3950 + # QNX uses GNU C++, but need to define -shared option too, otherwise 3951 + # it will coredump. 3952 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' 3953 + ;; 5352 3954 5353 3955 sysv4*MP*) 5354 3956 if test -d /usr/nec; then 5355 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic 3957 + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic 5356 3958 fi 5357 3959 ;; 5358 3960 5359 - hpux*) 5360 - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but 5361 - # not for PA HP-UX. 5362 - case $host_cpu in 5363 - hppa*64*|ia64*) 5364 - # +Z the default 5365 - ;; 5366 - *) 5367 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 5368 - ;; 5369 - esac 5370 - ;; 5371 - 5372 3961 *) 5373 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 3962 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 5374 3963 ;; 5375 3964 esac 5376 3965 else 5377 3966 # PORTME Check for flag to pass linker flags through the system compiler. 5378 3967 case $host_os in 5379 3968 aix*) 5380 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 3969 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 5381 3970 if test "$host_cpu" = ia64; then 5382 3971 # AIX 5 now supports IA64 processor 5383 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 3972 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 5384 3973 else 5385 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' 3974 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' 5386 3975 fi 5387 3976 ;; 5388 - darwin*) 5389 - # PIC is the default on this platform 5390 - # Common symbols not allowed in MH_DYLIB files 5391 - case $cc_basename in 5392 - xlc*) 5393 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' 5394 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 5395 - ;; 5396 - esac 5397 - ;; 5398 3977 5399 - mingw* | cygwin* | pw32* | os2*) 3978 + mingw* | cygwin* | pw32* | os2* | cegcc*) 5400 3979 # This hack is so that the source file can tell whether it is being 5401 3980 # built for inclusion in a dll (and should export symbols for example). 5402 3981 m4_if([$1], [GCJ], [], 5403 - [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) 3982 + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) 5404 3983 ;; 5405 3984 5406 3985 hpux9* | hpux10* | hpux11*) 5407 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 3986 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 5408 3987 # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but 5409 3988 # not for PA HP-UX. 5410 3989 case $host_cpu in 5411 3990 hppa*64*|ia64*) 5412 3991 # +Z the default 5413 3992 ;; 5414 3993 *) 5415 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' 3994 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' 5416 3995 ;; 5417 3996 esac 5418 3997 # Is there a better lt_prog_compiler_static that works with the bundled CC? 5419 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' 3998 + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' 5420 3999 ;; 5421 4000 5422 4001 irix5* | irix6* | nonstopux*) 5423 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4002 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 5424 4003 # PIC (with -KPIC) is the default. 5425 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' 4004 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' 5426 4005 ;; 5427 4006 5428 - newsos6) 5429 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 5430 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 5431 - ;; 5432 - 5433 - linux* | k*bsd*-gnu) 4007 + linux* | k*bsd*-gnu | kopensolaris*-gnu) 5434 4008 case $cc_basename in 5435 - icc* | ecc*) 5436 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 5437 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 5438 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' 4009 + # old Intel for x86_64 which still supported -KPIC. 4010 + ecc*) 4011 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4012 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 4013 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' 5439 4014 ;; 4015 + # icc used to be incompatible with GCC. 4016 + # ICC 10 doesn't accept -KPIC any more. 4017 + icc* | ifort*) 4018 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4019 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' 4020 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' 4021 + ;; 4022 + # Lahey Fortran 8.1. 4023 + lf95*) 4024 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4025 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' 4026 + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' 4027 + ;; 5440 4028 pgcc* | pgf77* | pgf90* | pgf95*) 5441 4029 # Portland Group compilers (*not* the Pentium gcc compiler, 5442 4030 # which looks to be a dead project) 5443 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 5444 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' 5445 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4031 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4032 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' 4033 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 5446 4034 ;; 5447 4035 ccc*) 5448 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4036 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 5449 4037 # All Alpha code is PIC. 5450 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' 4038 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' 5451 4039 ;; 4040 + xl*) 4041 + # IBM XL C 8.0/Fortran 10.1 on PPC 4042 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4043 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' 4044 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' 4045 + ;; 5452 4046 *) 5453 - case `$CC -V 2>&1 | sed 5q` in 4047 + case `$CC -V 2>&1 | sed 5q` in 5454 4048 *Sun\ C*) 5455 4049 # Sun C 5.9 5456 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 5457 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 5458 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4050 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 4051 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4052 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 5459 4053 ;; 5460 4054 *Sun\ F*) 5461 4055 # Sun Fortran 8.3 passes all unrecognized flags to the linker 5462 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 5463 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 5464 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='' 4056 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 4057 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4058 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' 5465 4059 ;; 5466 4060 esac 5467 4061 ;; 5468 4062 esac 5469 4063 ;; 4064 + 4065 + newsos6) 4066 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 4067 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4068 + ;; 4069 + 4070 + *nto* | *qnx*) 4071 + # QNX uses GNU C++, but need to define -shared option too, otherwise 4072 + # it will coredump. 4073 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' 4074 + ;; 5470 4075 5471 4076 osf3* | osf4* | osf5*) 5472 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4077 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 5473 4078 # All OSF/1 code is PIC. 5474 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' 4079 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' 5475 4080 ;; 5476 4081 5477 4082 rdos*) 5478 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' 4083 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' 5479 4084 ;; 5480 4085 5481 4086 solaris*) 5482 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 5483 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4087 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 4088 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 5484 4089 case $cc_basename in 5485 4090 f77* | f90* | f95*) 5486 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; 4091 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; 5487 4092 *) 5488 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; 4093 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; 5489 4094 esac 5490 4095 ;; 5491 4096 5492 4097 sunos4*) 5493 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' 5494 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' 5495 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4098 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' 4099 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' 4100 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 5496 4101 ;; 5497 4102 5498 4103 sysv4 | sysv4.2uw2* | sysv4.3*) 5499 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 5500 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 5501 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4104 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4105 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 4106 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 5502 4107 ;; 5503 4108 5504 4109 sysv4*MP*) 5505 4110 if test -d /usr/nec ;then 5506 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' 5507 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4111 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' 4112 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 5508 4113 fi 5509 4114 ;; 5510 4115 5511 4116 sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) 5512 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 5513 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 5514 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4117 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4118 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' 4119 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 5515 4120 ;; 5516 4121 5517 4122 unicos*) 5518 - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 5519 - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no 4123 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' 4124 + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no 5520 4125 ;; 5521 4126 5522 4127 uts4*) 5523 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' 5524 - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 4128 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' 4129 + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' 5525 4130 ;; 5526 4131 5527 4132 *) 5528 - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no 4133 + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no 5529 4134 ;; 5530 4135 esac 5531 4136 fi 5532 4137 ]) 5533 -AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) 4138 +case $host_os in 4139 + # For platforms which do not support PIC, -DPIC is meaningless: 4140 + *djgpp*) 4141 + _LT_TAGVAR(lt_prog_compiler_pic, $1)= 4142 + ;; 4143 + *) 4144 + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" 4145 + ;; 4146 +esac 4147 +AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) 4148 +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], 4149 + [How to pass a linker flag through the compiler]) 5534 4150 5535 4151 # 5536 4152 # Check to make sure the PIC flag actually works. 5537 4153 # 5538 -if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then 5539 - AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], 5540 - _LT_AC_TAGVAR(lt_cv_prog_compiler_pic_works, $1), 5541 - [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], 5542 - [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in 4154 +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then 4155 + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], 4156 + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], 4157 + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], 4158 + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in 5543 4159 "" | " "*) ;; 5544 - *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; 4160 + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; 5545 4161 esac], 5546 - [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= 5547 - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) 4162 + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= 4163 + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) 5548 4164 fi 5549 -case $host_os in 5550 - # For platforms which do not support PIC, -DPIC is meaningless: 5551 - *djgpp*) 5552 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= 5553 - ;; 5554 - *) 5555 - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" 5556 - ;; 5557 -esac 4165 +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], 4166 + [Additional compiler flags for building library objects]) 5558 4167 5559 4168 # 5560 4169 # Check to make sure the static flag actually works. 5561 4170 # 5562 -wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\" 5563 -AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], 5564 - _LT_AC_TAGVAR(lt_cv_prog_compiler_static_works, $1), 4171 +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" 4172 +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], 4173 + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), 5565 4174 $lt_tmp_static_flag, 5566 4175 [], 5567 - [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) 5568 -]) 4176 + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) 4177 +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], 4178 + [Compiler flag to prevent dynamic linking]) 4179 +])# _LT_COMPILER_PIC 5569 4180 5570 4181 5571 -# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) 5572 -# ------------------------------------ 4182 +# _LT_LINKER_SHLIBS([TAGNAME]) 4183 +# ---------------------------- 5573 4184 # See if the linker supports building shared libraries. 5574 -AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], 5575 -[AC_REQUIRE([LT_AC_PROG_SED])dnl 4185 +m4_defun([_LT_LINKER_SHLIBS], 4186 +[AC_REQUIRE([LT_PATH_LD])dnl 4187 +AC_REQUIRE([LT_PATH_NM])dnl 4188 +m4_require([_LT_FILEUTILS_DEFAULTS])dnl 4189 +m4_require([_LT_DECL_EGREP])dnl 4190 +m4_require([_LT_DECL_SED])dnl 4191 +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl 4192 +m4_require([_LT_TAG_COMPILER])dnl 5576 4193 AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) 5577 -ifelse([$1],[CXX],[ 5578 - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' 4194 +m4_if([$1], [CXX], [ 4195 + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' 5579 4196 case $host_os in 5580 4197 aix[[4-9]]*) 5581 4198 # If we're using GNU nm, then we don't want the "-C" option. 5582 4199 # -C means demangle to AIX nm, but means don't demangle with GNU nm 5583 - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then 5584 - _LT_AC_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' 4200 + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then 4201 + _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' 5585 4202 else 5586 - _LT_AC_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' 4203 + _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' 5587 4204 fi 5588 4205 ;; 5589 4206 pw32*) 5590 - _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" 4207 + _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" 5591 4208 ;; 5592 - cygwin* | mingw*) 5593 - _LT_AC_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' 4209 + cygwin* | mingw* | cegcc*) 4210 + _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' 5594 4211 ;; 5595 4212 linux* | k*bsd*-gnu) 5596 - _LT_AC_TAGVAR(link_all_deplibs, $1)=no 4213 + _LT_TAGVAR(link_all_deplibs, $1)=no 5597 4214 ;; 5598 4215 *) 5599 - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' 4216 + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' 5600 4217 ;; 5601 4218 esac 5602 - _LT_AC_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] 5603 -],[ 4219 + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] 4220 +], [ 5604 4221 runpath_var= 5605 - _LT_AC_TAGVAR(allow_undefined_flag, $1)= 5606 - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no 5607 - _LT_AC_TAGVAR(archive_cmds, $1)= 5608 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)= 5609 - _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= 5610 - _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= 5611 - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= 5612 - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= 5613 - _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= 5614 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= 5615 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= 5616 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= 5617 - _LT_AC_TAGVAR(hardcode_direct, $1)=no 5618 - _LT_AC_TAGVAR(hardcode_minus_L, $1)=no 5619 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported 5620 - _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown 5621 - _LT_AC_TAGVAR(hardcode_automatic, $1)=no 5622 - _LT_AC_TAGVAR(module_cmds, $1)= 5623 - _LT_AC_TAGVAR(module_expsym_cmds, $1)= 5624 - _LT_AC_TAGVAR(always_export_symbols, $1)=no 5625 - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' 4222 + _LT_TAGVAR(allow_undefined_flag, $1)= 4223 + _LT_TAGVAR(always_export_symbols, $1)=no 4224 + _LT_TAGVAR(archive_cmds, $1)= 4225 + _LT_TAGVAR(archive_expsym_cmds, $1)= 4226 + _LT_TAGVAR(compiler_needs_object, $1)=no 4227 + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no 4228 + _LT_TAGVAR(export_dynamic_flag_spec, $1)= 4229 + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' 4230 + _LT_TAGVAR(hardcode_automatic, $1)=no 4231 + _LT_TAGVAR(hardcode_direct, $1)=no 4232 + _LT_TAGVAR(hardcode_direct_absolute, $1)=no 4233 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= 4234 + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= 4235 + _LT_TAGVAR(hardcode_libdir_separator, $1)= 4236 + _LT_TAGVAR(hardcode_minus_L, $1)=no 4237 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported 4238 + _LT_TAGVAR(inherit_rpath, $1)=no 4239 + _LT_TAGVAR(link_all_deplibs, $1)=unknown 4240 + _LT_TAGVAR(module_cmds, $1)= 4241 + _LT_TAGVAR(module_expsym_cmds, $1)= 4242 + _LT_TAGVAR(old_archive_from_new_cmds, $1)= 4243 + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= 4244 + _LT_TAGVAR(thread_safe_flag_spec, $1)= 4245 + _LT_TAGVAR(whole_archive_flag_spec, $1)= 5626 4246 # include_expsyms should be a list of space-separated symbols to be *always* 5627 4247 # included in the symbol list 5628 - _LT_AC_TAGVAR(include_expsyms, $1)= 4248 + _LT_TAGVAR(include_expsyms, $1)= 5629 4249 # exclude_expsyms can be an extended regexp of symbols to exclude 5630 4250 # it will be wrapped by ` (' and `)$', so one must not match beginning or 5631 4251 # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', 5632 4252 # as well as any symbol that contains `d'. 5633 - _LT_AC_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] 4253 + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] 5634 4254 # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out 5635 4255 # platforms (ab)use it in PIC code, but their linkers get confused if 5636 4256 # the symbol is explicitly referenced. Since portable code cannot 5637 4257 # rely on this symbol name, it's probably fine to never include it in 5638 4258 # preloaded symbol tables. 5639 4259 # Exclude shared library initialization/finalization symbols. 5640 4260 dnl Note also adjust exclude_expsyms for C++ above. 5641 4261 extract_expsyms_cmds= 5642 - # Just being paranoid about ensuring that cc_basename is set. 5643 - _LT_CC_BASENAME([$compiler]) 4262 + 5644 4263 case $host_os in 5645 - cygwin* | mingw* | pw32*) 4264 + cygwin* | mingw* | pw32* | cegcc*) 5646 4265 # FIXME: the MSVC++ port hasn't been tested in a loooong time 5647 4266 # When not using gcc, we currently assume that we are using 5648 4267 # Microsoft Visual C++. 5649 4268 if test "$GCC" != yes; then 5650 4269 with_gnu_ld=no 5651 4270 fi 5652 4271 ;; ................................................................................ 5653 4272 interix*) 5654 4273 # we just hope/assume this is gcc and not c89 (= MSVC++) 5655 4274 with_gnu_ld=yes 5656 4275 ;; 5657 4276 openbsd*) 5658 4277 with_gnu_ld=no 5659 4278 ;; 4279 + linux* | k*bsd*-gnu) 4280 + _LT_TAGVAR(link_all_deplibs, $1)=no 4281 + ;; 5660 4282 esac 5661 4283 5662 - _LT_AC_TAGVAR(ld_shlibs, $1)=yes 4284 + _LT_TAGVAR(ld_shlibs, $1)=yes 5663 4285 if test "$with_gnu_ld" = yes; then 5664 4286 # If archive_cmds runs LD, not CC, wlarc should be empty 5665 4287 wlarc='${wl}' 5666 4288 5667 4289 # Set some defaults for GNU ld with shared library support. These 5668 4290 # are reset later if shared libraries are not supported. Putting them 5669 4291 # here allows them to be overridden if necessary. 5670 4292 runpath_var=LD_RUN_PATH 5671 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' 5672 - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' 4293 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 4294 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' 5673 4295 # ancient GNU ld didn't support --whole-archive et. al. 5674 - if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then 5675 - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' 5676 - else 5677 - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= 4296 + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then 4297 + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' 4298 + else 4299 + _LT_TAGVAR(whole_archive_flag_spec, $1)= 5678 4300 fi 5679 4301 supports_anon_versioning=no 5680 - case `$LD -v 2>/dev/null` in 4302 + case `$LD -v 2>&1` in 4303 + *GNU\ gold*) supports_anon_versioning=yes ;; 5681 4304 *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 5682 4305 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... 5683 4306 *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... 5684 4307 *\ 2.11.*) ;; # other 2.11 versions 5685 4308 *) supports_anon_versioning=yes ;; 5686 4309 esac 5687 4310 5688 4311 # See if GNU ld supports shared libraries. 5689 4312 case $host_os in 5690 4313 aix[[3-9]]*) 5691 4314 # On AIX/PPC, the GNU linker is very broken 5692 4315 if test "$host_cpu" != ia64; then 5693 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 5694 - cat <<EOF 1>&2 4316 + _LT_TAGVAR(ld_shlibs, $1)=no 4317 + cat <<_LT_EOF 1>&2 5695 4318 5696 4319 *** Warning: the GNU linker, at least up to release 2.9.1, is reported 5697 4320 *** to be unable to reliably create shared libraries on AIX. 5698 4321 *** Therefore, libtool is disabling shared libraries support. If you 5699 4322 *** really care for shared libraries, you may want to modify your PATH 5700 4323 *** so that a non-GNU linker is found, and then restart. 5701 4324 5702 -EOF 4325 +_LT_EOF 5703 4326 fi 5704 4327 ;; 5705 4328 5706 4329 amigaos*) 5707 - _LT_AC_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)' 5708 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 5709 - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes 5710 - 5711 - # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports 5712 - # that the semantics of dynamic libraries on AmigaOS, at least up 5713 - # to version 4, is to share data among multiple programs linked 5714 - # with the same dynamic library. Since this doesn't match the 5715 - # behavior of shared libraries on other platforms, we can't use 5716 - # them. 5717 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 4330 + case $host_cpu in 4331 + powerpc) 4332 + # see comment about AmigaOS4 .so support 4333 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 4334 + _LT_TAGVAR(archive_expsym_cmds, $1)='' 4335 + ;; 4336 + m68k) 4337 + _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)' 4338 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 4339 + _LT_TAGVAR(hardcode_minus_L, $1)=yes 4340 + ;; 4341 + esac 5718 4342 ;; 5719 4343 5720 4344 beos*) 5721 - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then 5722 - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported 4345 + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then 4346 + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported 5723 4347 # Joseph Beckenbach <jrb3@best.com> says some releases of gcc 5724 4348 # support --undefined. This deserves some investigation. FIXME 5725 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 4349 + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 5726 4350 else 5727 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 4351 + _LT_TAGVAR(ld_shlibs, $1)=no 5728 4352 fi 5729 4353 ;; 5730 4354 5731 - cygwin* | mingw* | pw32*) 5732 - # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, 4355 + cygwin* | mingw* | pw32* | cegcc*) 4356 + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, 5733 4357 # as there is no search path for DLLs. 5734 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 5735 - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported 5736 - _LT_AC_TAGVAR(always_export_symbols, $1)=no 5737 - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes 5738 - _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' 4358 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 4359 + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported 4360 + _LT_TAGVAR(always_export_symbols, $1)=no 4361 + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes 4362 + _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' 5739 4363 5740 - if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then 5741 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' 4364 + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then 4365 + _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' 5742 4366 # If the export-symbols file already is a .def file (1st line 5743 4367 # is EXPORTS), use it as is; otherwise, prepend... 5744 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then 4368 + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then 5745 4369 cp $export_symbols $output_objdir/$soname.def; 5746 4370 else 5747 4371 echo EXPORTS > $output_objdir/$soname.def; 5748 4372 cat $export_symbols >> $output_objdir/$soname.def; 5749 4373 fi~ 5750 4374 $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' 5751 4375 else 5752 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 4376 + _LT_TAGVAR(ld_shlibs, $1)=no 5753 4377 fi 5754 4378 ;; 5755 4379 5756 4380 interix[[3-9]]*) 5757 - _LT_AC_TAGVAR(hardcode_direct, $1)=no 5758 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 5759 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' 5760 - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 4381 + _LT_TAGVAR(hardcode_direct, $1)=no 4382 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 4383 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' 4384 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 5761 4385 # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. 5762 4386 # Instead, shared libraries are loaded at an image base (0x10000000 by 5763 4387 # default) and relocated if they conflict, which is a slow very memory 5764 4388 # consuming and fragmenting process. To avoid this, we pick a random, 5765 4389 # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link 5766 4390 # time. Moving up from 0x10000000 also allows more sbrk(2) space. 5767 - _LT_AC_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' 5768 - _LT_AC_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' 4391 + _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' 4392 + _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' 5769 4393 ;; 5770 4394 5771 - gnu* | linux* | k*bsd*-gnu) 5772 - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then 4395 + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) 4396 + tmp_diet=no 4397 + if test "$host_os" = linux-dietlibc; then 4398 + case $cc_basename in 4399 + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) 4400 + esac 4401 + fi 4402 + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ 4403 + && test "$tmp_diet" = no 4404 + then 5773 4405 tmp_addflag= 4406 + tmp_sharedflag='-shared' 5774 4407 case $cc_basename,$host_cpu in 5775 - pgcc*) # Portland Group C compiler 5776 - _LT_AC_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' 4408 + pgcc*) # Portland Group C compiler 4409 + _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' 5777 4410 tmp_addflag=' $pic_flag' 5778 4411 ;; 5779 4412 pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers 5780 - _LT_AC_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' 4413 + _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' 5781 4414 tmp_addflag=' $pic_flag -Mnomain' ;; 5782 - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 4415 + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 5783 4416 tmp_addflag=' -i_dynamic' ;; 5784 4417 efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 5785 4418 tmp_addflag=' -i_dynamic -nofor_main' ;; 5786 4419 ifc* | ifort*) # Intel Fortran compiler 5787 4420 tmp_addflag=' -nofor_main' ;; 4421 + lf95*) # Lahey Fortran 8.1 4422 + _LT_TAGVAR(whole_archive_flag_spec, $1)= 4423 + tmp_sharedflag='--shared' ;; 4424 + xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) 4425 + tmp_sharedflag='-qmkshrobj' 4426 + tmp_addflag= ;; 5788 4427 esac 5789 4428 case `$CC -V 2>&1 | sed 5q` in 5790 4429 *Sun\ C*) # Sun C 5.9 5791 - _LT_AC_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' 4430 + _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' 4431 + _LT_TAGVAR(compiler_needs_object, $1)=yes 5792 4432 tmp_sharedflag='-G' ;; 5793 4433 *Sun\ F*) # Sun Fortran 8.3 5794 4434 tmp_sharedflag='-G' ;; 5795 - *) 5796 - tmp_sharedflag='-shared' ;; 4435 + esac 4436 + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 4437 + 4438 + if test "x$supports_anon_versioning" = xyes; then 4439 + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ 4440 + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ 4441 + echo "local: *; };" >> $output_objdir/$libname.ver~ 4442 + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' 4443 + fi 4444 + 4445 + case $cc_basename in 4446 + xlf*) 4447 + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself 4448 + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' 4449 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= 4450 + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' 4451 + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' 4452 + if test "x$supports_anon_versioning" = xyes; then 4453 + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ 4454 + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ 4455 + echo "local: *; };" >> $output_objdir/$libname.ver~ 4456 + $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' 4457 + fi 4458 + ;; 5797 4459 esac 5798 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 5799 - 5800 - if test $supports_anon_versioning = yes; then 5801 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~ 5802 - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ 5803 - $echo "local: *; };" >> $output_objdir/$libname.ver~ 5804 - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' 5805 - fi 5806 - _LT_AC_TAGVAR(link_all_deplibs, $1)=no 5807 4460 else 5808 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 4461 + _LT_TAGVAR(ld_shlibs, $1)=no 5809 4462 fi 5810 4463 ;; 5811 4464 5812 4465 netbsd* | netbsdelf*-gnu) 5813 - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then 5814 - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' 4466 + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then 4467 + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' 5815 4468 wlarc= 5816 4469 else 5817 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 5818 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' 4470 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 4471 + _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' 5819 4472 fi 5820 4473 ;; 5821 4474 5822 4475 solaris*) 5823 - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then 5824 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 5825 - cat <<EOF 1>&2 4476 + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then 4477 + _LT_TAGVAR(ld_shlibs, $1)=no 4478 + cat <<_LT_EOF 1>&2 5826 4479 5827 4480 *** Warning: The releases 2.8.* of the GNU linker cannot reliably 5828 4481 *** create shared libraries on Solaris systems. Therefore, libtool 5829 4482 *** is disabling shared libraries support. We urge you to upgrade GNU 5830 4483 *** binutils to release 2.9.1 or newer. Another option is to modify 5831 4484 *** your PATH or compiler configuration so that the native linker is 5832 4485 *** used, and then restart. 5833 4486 5834 -EOF 5835 - elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then 5836 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 5837 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' 4487 +_LT_EOF 4488 + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then 4489 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 4490 + _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' 5838 4491 else 5839 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 4492 + _LT_TAGVAR(ld_shlibs, $1)=no 5840 4493 fi 5841 4494 ;; 5842 4495 5843 4496 sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) 5844 4497 case `$LD -v 2>&1` in 5845 4498 *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) 5846 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 4499 + _LT_TAGVAR(ld_shlibs, $1)=no 5847 4500 cat <<_LT_EOF 1>&2 5848 4501 5849 4502 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not 5850 4503 *** reliably create shared libraries on SCO systems. Therefore, libtool 5851 4504 *** is disabling shared libraries support. We urge you to upgrade GNU 5852 4505 *** binutils to release 2.16.91.0.3 or newer. Another option is to modify 5853 4506 *** your PATH or compiler configuration so that the native linker is 5854 4507 *** used, and then restart. 5855 4508 5856 4509 _LT_EOF 5857 4510 ;; 5858 4511 *) 5859 - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then 5860 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' 5861 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' 5862 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' 4512 + # For security reasons, it is highly recommended that you always 4513 + # use absolute paths for naming shared libraries, and exclude the 4514 + # DT_RUNPATH tag from executables and libraries. But doing so 4515 + # requires that you compile everything twice, which is a pain. 4516 + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then 4517 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 4518 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 4519 + _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' 5863 4520 else 5864 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 4521 + _LT_TAGVAR(ld_shlibs, $1)=no 5865 4522 fi 5866 4523 ;; 5867 4524 esac 5868 4525 ;; 5869 4526 5870 4527 sunos4*) 5871 - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' 4528 + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' 5872 4529 wlarc= 5873 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes 5874 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 4530 + _LT_TAGVAR(hardcode_direct, $1)=yes 4531 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 5875 4532 ;; 5876 4533 5877 4534 *) 5878 - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then 5879 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 5880 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' 4535 + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then 4536 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 4537 + _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' 5881 4538 else 5882 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 4539 + _LT_TAGVAR(ld_shlibs, $1)=no 5883 4540 fi 5884 4541 ;; 5885 4542 esac 5886 4543 5887 - if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then 4544 + if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then 5888 4545 runpath_var= 5889 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= 5890 - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= 5891 - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= 4546 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= 4547 + _LT_TAGVAR(export_dynamic_flag_spec, $1)= 4548 + _LT_TAGVAR(whole_archive_flag_spec, $1)= 5892 4549 fi 5893 4550 else 5894 4551 # PORTME fill in a description of your system's linker (not GNU ld) 5895 4552 case $host_os in 5896 4553 aix3*) 5897 - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported 5898 - _LT_AC_TAGVAR(always_export_symbols, $1)=yes 5899 - _LT_AC_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' 4554 + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported 4555 + _LT_TAGVAR(always_export_symbols, $1)=yes 4556 + _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' 5900 4557 # Note: this linker hardcodes the directories in LIBPATH if there 5901 4558 # are no directories specified by -L. 5902 - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes 4559 + _LT_TAGVAR(hardcode_minus_L, $1)=yes 5903 4560 if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then 5904 4561 # Neither direct hardcoding nor static linking is supported with a 5905 4562 # broken collect2. 5906 - _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported 4563 + _LT_TAGVAR(hardcode_direct, $1)=unsupported 5907 4564 fi 5908 4565 ;; 5909 4566 5910 4567 aix[[4-9]]*) 5911 4568 if test "$host_cpu" = ia64; then 5912 4569 # On IA64, the linker does run time linking by default, so we don't 5913 4570 # have to do anything special. 5914 4571 aix_use_runtimelinking=no 5915 4572 exp_sym_flag='-Bexport' 5916 4573 no_entry_flag="" 5917 4574 else 5918 4575 # If we're using GNU nm, then we don't want the "-C" option. 5919 4576 # -C means demangle to AIX nm, but means don't demangle with GNU nm 5920 - if $NM -V 2>&1 | grep 'GNU' > /dev/null; then 5921 - _LT_AC_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' 4577 + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then 4578 + _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' 5922 4579 else 5923 - _LT_AC_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' 4580 + _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' 5924 4581 fi 5925 4582 aix_use_runtimelinking=no 5926 4583 5927 4584 # Test if we are trying to use run time linking or normal 5928 4585 # AIX style linking. If -brtl is somewhere in LDFLAGS, we 5929 4586 # need to do runtime linking. 5930 4587 case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) 5931 4588 for ld_flag in $LDFLAGS; do 5932 - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then 5933 - aix_use_runtimelinking=yes 5934 - break 5935 - fi 4589 + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then 4590 + aix_use_runtimelinking=yes 4591 + break 4592 + fi 5936 4593 done 5937 4594 ;; 5938 4595 esac 5939 4596 5940 4597 exp_sym_flag='-bexport' 5941 4598 no_entry_flag='-bnoentry' 5942 4599 fi ................................................................................ 5943 4600 5944 4601 # When large executables or shared objects are built, AIX ld can 5945 4602 # have problems creating the table of contents. If linking a library 5946 4603 # or program results in "error TOC overflow" add -mminimal-toc to 5947 4604 # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not 5948 4605 # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. 5949 4606 5950 - _LT_AC_TAGVAR(archive_cmds, $1)='' 5951 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes 5952 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' 5953 - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes 4607 + _LT_TAGVAR(archive_cmds, $1)='' 4608 + _LT_TAGVAR(hardcode_direct, $1)=yes 4609 + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes 4610 + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' 4611 + _LT_TAGVAR(link_all_deplibs, $1)=yes 4612 + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' 5954 4613 5955 4614 if test "$GCC" = yes; then 5956 4615 case $host_os in aix4.[[012]]|aix4.[[012]].*) 5957 4616 # We only want to do this on AIX 4.2 and lower, the check 5958 4617 # below for broken collect2 doesn't work under 4.3+ 5959 4618 collect2name=`${CC} -print-prog-name=collect2` 5960 - if test -f "$collect2name" && \ 5961 - strings "$collect2name" | grep resolve_lib_name >/dev/null 4619 + if test -f "$collect2name" && 4620 + strings "$collect2name" | $GREP resolve_lib_name >/dev/null 5962 4621 then 5963 - # We have reworked collect2 5964 - : 4622 + # We have reworked collect2 4623 + : 5965 4624 else 5966 - # We have old collect2 5967 - _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported 5968 - # It fails to find uninstalled libraries when the uninstalled 5969 - # path is not listed in the libpath. Setting hardcode_minus_L 5970 - # to unsupported forces relinking 5971 - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes 5972 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 5973 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= 4625 + # We have old collect2 4626 + _LT_TAGVAR(hardcode_direct, $1)=unsupported 4627 + # It fails to find uninstalled libraries when the uninstalled 4628 + # path is not listed in the libpath. Setting hardcode_minus_L 4629 + # to unsupported forces relinking 4630 + _LT_TAGVAR(hardcode_minus_L, $1)=yes 4631 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 4632 + _LT_TAGVAR(hardcode_libdir_separator, $1)= 5974 4633 fi 5975 4634 ;; 5976 4635 esac 5977 4636 shared_flag='-shared' 5978 4637 if test "$aix_use_runtimelinking" = yes; then 5979 4638 shared_flag="$shared_flag "'${wl}-G' 5980 4639 fi 4640 + _LT_TAGVAR(link_all_deplibs, $1)=no 5981 4641 else 5982 4642 # not using gcc 5983 4643 if test "$host_cpu" = ia64; then 5984 - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release 5985 - # chokes on -Wl,-G. The following line is correct: 4644 + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release 4645 + # chokes on -Wl,-G. The following line is correct: 5986 4646 shared_flag='-G' 5987 4647 else 5988 4648 if test "$aix_use_runtimelinking" = yes; then 5989 4649 shared_flag='${wl}-G' 5990 4650 else 5991 4651 shared_flag='${wl}-bM:SRE' 5992 4652 fi 5993 4653 fi 5994 4654 fi 5995 4655 4656 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' 5996 4657 # It seems that -bexpall does not export symbols beginning with 5997 4658 # underscore (_), so it is better to generate a list of symbols to export. 5998 - _LT_AC_TAGVAR(always_export_symbols, $1)=yes 4659 + _LT_TAGVAR(always_export_symbols, $1)=yes 5999 4660 if test "$aix_use_runtimelinking" = yes; then 6000 4661 # Warning - without using the other runtime loading flags (-brtl), 6001 4662 # -berok will link without error, but may produce a broken library. 6002 - _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' 6003 - # Determine the default libpath from the value encoded in an empty executable. 6004 - _LT_AC_SYS_LIBPATH_AIX 6005 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" 6006 - _LT_AC_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 "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" 6007 - else 4663 + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' 4664 + # Determine the default libpath from the value encoded in an 4665 + # empty executable. 4666 + _LT_SYS_MODULE_PATH_AIX 4667 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" 4668 + _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" 4669 + else 6008 4670 if test "$host_cpu" = ia64; then 6009 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' 6010 - _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" 6011 - _LT_AC_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" 4671 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' 4672 + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" 4673 + _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" 6012 4674 else 6013 - # Determine the default libpath from the value encoded in an empty executable. 6014 - _LT_AC_SYS_LIBPATH_AIX 6015 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" 4675 + # Determine the default libpath from the value encoded in an 4676 + # empty executable. 4677 + _LT_SYS_MODULE_PATH_AIX 4678 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" 6016 4679 # Warning - without using the other run time loading flags, 6017 4680 # -berok will link without error, but may produce a broken library. 6018 - _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' 6019 - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' 4681 + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' 4682 + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' 6020 4683 # Exported symbols can be pulled into shared objects from archives 6021 - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' 6022 - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes 4684 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' 4685 + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes 6023 4686 # This is similar to how AIX traditionally builds its shared libraries. 6024 - _LT_AC_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' 4687 + _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' 6025 4688 fi 6026 4689 fi 6027 4690 ;; 6028 4691 6029 4692 amigaos*) 6030 - _LT_AC_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)' 6031 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 6032 - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes 6033 - # see comment about different semantics on the GNU ld section 6034 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 4693 + case $host_cpu in 4694 + powerpc) 4695 + # see comment about AmigaOS4 .so support 4696 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 4697 + _LT_TAGVAR(archive_expsym_cmds, $1)='' 4698 + ;; 4699 + m68k) 4700 + _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)' 4701 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 4702 + _LT_TAGVAR(hardcode_minus_L, $1)=yes 4703 + ;; 4704 + esac 6035 4705 ;; 6036 4706 6037 4707 bsdi[[45]]*) 6038 - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic 4708 + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic 6039 4709 ;; 6040 4710 6041 - cygwin* | mingw* | pw32*) 4711 + cygwin* | mingw* | pw32* | cegcc*) 6042 4712 # When not using gcc, we currently assume that we are using 6043 4713 # Microsoft Visual C++. 6044 4714 # hardcode_libdir_flag_spec is actually meaningless, as there is 6045 4715 # no search path for DLLs. 6046 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' 6047 - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported 4716 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' 4717 + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported 6048 4718 # Tell ltmain to make .lib files, not .a files. 6049 4719 libext=lib 6050 4720 # Tell ltmain to make .dll files, not .so files. 6051 4721 shrext_cmds=".dll" 6052 4722 # FIXME: Setting linknames here is a bad hack. 6053 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' 4723 + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' 6054 4724 # The linker will automatically build a .lib file if we build a DLL. 6055 - _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' 4725 + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' 6056 4726 # FIXME: Should let the user specify the lib program. 6057 - _LT_AC_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' 6058 - _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' 6059 - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes 4727 + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' 4728 + _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' 4729 + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes 6060 4730 ;; 6061 4731 6062 4732 darwin* | rhapsody*) 6063 - case $host_os in 6064 - rhapsody* | darwin1.[[012]]) 6065 - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' 6066 - ;; 6067 - *) # Darwin 1.3 on 6068 - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then 6069 - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' 6070 - else 6071 - case ${MACOSX_DEPLOYMENT_TARGET} in 6072 - 10.[[012]]) 6073 - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' 6074 - ;; 6075 - 10.*) 6076 - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' 6077 - ;; 6078 - esac 6079 - fi 6080 - ;; 6081 - esac 6082 - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no 6083 - _LT_AC_TAGVAR(hardcode_direct, $1)=no 6084 - _LT_AC_TAGVAR(hardcode_automatic, $1)=yes 6085 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported 6086 - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' 6087 - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes 6088 - if test "$GCC" = yes ; then 6089 - output_verbose_link_cmd='echo' 6090 - _LT_AC_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}" 6091 - _LT_AC_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" 6092 - _LT_AC_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}" 6093 - _LT_AC_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}" 6094 - else 6095 - case $cc_basename in 6096 - xlc*) 6097 - output_verbose_link_cmd='echo' 6098 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' 6099 - _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' 6100 - # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds 6101 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' 6102 - _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' 6103 - ;; 6104 - *) 6105 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 6106 - ;; 6107 - esac 6108 - fi 4733 + _LT_DARWIN_LINKER_FEATURES($1) 6109 4734 ;; 6110 4735 6111 4736 dgux*) 6112 - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 6113 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 6114 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 4737 + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 4738 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 4739 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 6115 4740 ;; 6116 4741 6117 4742 freebsd1*) 6118 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 4743 + _LT_TAGVAR(ld_shlibs, $1)=no 6119 4744 ;; 6120 4745 6121 4746 # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor 6122 4747 # support. Future versions do this automatically, but an explicit c++rt0.o 6123 4748 # does not break anything, and helps significantly (at the cost of a little 6124 4749 # extra space). 6125 4750 freebsd2.2*) 6126 - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' 6127 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' 6128 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes 6129 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 4751 + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' 4752 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' 4753 + _LT_TAGVAR(hardcode_direct, $1)=yes 4754 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 6130 4755 ;; 6131 4756 6132 4757 # Unfortunately, older versions of FreeBSD 2 do not have this feature. 6133 4758 freebsd2*) 6134 - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' 6135 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes 6136 - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes 6137 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 4759 + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' 4760 + _LT_TAGVAR(hardcode_direct, $1)=yes 4761 + _LT_TAGVAR(hardcode_minus_L, $1)=yes 4762 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 6138 4763 ;; 6139 4764 6140 4765 # FreeBSD 3 and greater uses gcc -shared to do shared libraries. 6141 4766 freebsd* | dragonfly*) 6142 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' 6143 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' 6144 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes 6145 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 4767 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' 4768 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' 4769 + _LT_TAGVAR(hardcode_direct, $1)=yes 4770 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 6146 4771 ;; 6147 4772 6148 4773 hpux9*) 6149 4774 if test "$GCC" = yes; then 6150 - _LT_AC_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' 4775 + _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' 6151 4776 else 6152 - _LT_AC_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' 4777 + _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' 6153 4778 fi 6154 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' 6155 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: 6156 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes 4779 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' 4780 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 4781 + _LT_TAGVAR(hardcode_direct, $1)=yes 6157 4782 6158 4783 # hardcode_minus_L: Not really in the search PATH, 6159 4784 # but as the default location of the library. 6160 - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes 6161 - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 4785 + _LT_TAGVAR(hardcode_minus_L, $1)=yes 4786 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 6162 4787 ;; 6163 4788 6164 4789 hpux10*) 6165 4790 if test "$GCC" = yes -a "$with_gnu_ld" = no; then 6166 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' 4791 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' 6167 4792 else 6168 - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' 4793 + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' 6169 4794 fi 6170 4795 if test "$with_gnu_ld" = no; then 6171 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' 6172 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: 6173 - 6174 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes 6175 - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 6176 - 4796 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' 4797 + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' 4798 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 4799 + _LT_TAGVAR(hardcode_direct, $1)=yes 4800 + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes 4801 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 6177 4802 # hardcode_minus_L: Not really in the search PATH, 6178 4803 # but as the default location of the library. 6179 - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes 4804 + _LT_TAGVAR(hardcode_minus_L, $1)=yes 6180 4805 fi 6181 4806 ;; 6182 4807 6183 4808 hpux11*) 6184 4809 if test "$GCC" = yes -a "$with_gnu_ld" = no; then 6185 4810 case $host_cpu in 6186 4811 hppa*64*) 6187 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' 4812 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' 6188 4813 ;; 6189 4814 ia64*) 6190 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' 4815 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' 6191 4816 ;; 6192 4817 *) 6193 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' 4818 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' 6194 4819 ;; 6195 4820 esac 6196 4821 else 6197 4822 case $host_cpu in 6198 4823 hppa*64*) 6199 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' 4824 + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' 6200 4825 ;; 6201 4826 ia64*) 6202 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' 4827 + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' 6203 4828 ;; 6204 4829 *) 6205 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' 4830 + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' 6206 4831 ;; 6207 4832 esac 6208 4833 fi 6209 4834 if test "$with_gnu_ld" = no; then 6210 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' 6211 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: 4835 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' 4836 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 6212 4837 6213 4838 case $host_cpu in 6214 4839 hppa*64*|ia64*) 6215 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' 6216 - _LT_AC_TAGVAR(hardcode_direct, $1)=no 6217 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 4840 + _LT_TAGVAR(hardcode_direct, $1)=no 4841 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 6218 4842 ;; 6219 4843 *) 6220 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes 6221 - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 4844 + _LT_TAGVAR(hardcode_direct, $1)=yes 4845 + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes 4846 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 6222 4847 6223 4848 # hardcode_minus_L: Not really in the search PATH, 6224 4849 # but as the default location of the library. 6225 - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes 4850 + _LT_TAGVAR(hardcode_minus_L, $1)=yes 6226 4851 ;; 6227 4852 esac 6228 4853 fi 6229 4854 ;; 6230 4855 6231 4856 irix5* | irix6* | nonstopux*) 6232 4857 if test "$GCC" = yes; then 6233 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' 4858 + _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' 4859 + # Try to use the -exported_symbol ld option, if it does not 4860 + # work, assume that -exports_file does not work either and 4861 + # implicitly export all symbols. 4862 + save_LDFLAGS="$LDFLAGS" 4863 + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" 4864 + AC_LINK_IFELSE(int foo(void) {}, 4865 + _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' 4866 + ) 4867 + LDFLAGS="$save_LDFLAGS" 6234 4868 else 6235 - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' 6236 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' 4869 + _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' 4870 + _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' 6237 4871 fi 6238 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 6239 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: 6240 - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes 4872 + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' 4873 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 4874 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 4875 + _LT_TAGVAR(inherit_rpath, $1)=yes 4876 + _LT_TAGVAR(link_all_deplibs, $1)=yes 6241 4877 ;; 6242 4878 6243 4879 netbsd* | netbsdelf*-gnu) 6244 - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then 6245 - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out 4880 + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then 4881 + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out 6246 4882 else 6247 - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF 4883 + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF 6248 4884 fi 6249 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' 6250 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes 6251 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 4885 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' 4886 + _LT_TAGVAR(hardcode_direct, $1)=yes 4887 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 6252 4888 ;; 6253 4889 6254 4890 newsos6) 6255 - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 6256 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes 6257 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 6258 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: 6259 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 4891 + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 4892 + _LT_TAGVAR(hardcode_direct, $1)=yes 4893 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 4894 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 4895 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 4896 + ;; 4897 + 4898 + *nto* | *qnx*) 6260 4899 ;; 6261 4900 6262 4901 openbsd*) 6263 4902 if test -f /usr/libexec/ld.so; then 6264 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes 6265 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 6266 - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then 6267 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' 6268 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' 6269 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' 6270 - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 4903 + _LT_TAGVAR(hardcode_direct, $1)=yes 4904 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 4905 + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes 4906 + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then 4907 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' 4908 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' 4909 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' 4910 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 6271 4911 else 6272 4912 case $host_os in 6273 4913 openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) 6274 - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' 6275 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' 4914 + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' 4915 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' 6276 4916 ;; 6277 4917 *) 6278 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' 6279 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' 4918 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' 4919 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' 6280 4920 ;; 6281 4921 esac 6282 - fi 4922 + fi 6283 4923 else 6284 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 4924 + _LT_TAGVAR(ld_shlibs, $1)=no 6285 4925 fi 6286 4926 ;; 6287 4927 6288 4928 os2*) 6289 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 6290 - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes 6291 - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported 6292 - _LT_AC_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' 6293 - _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' 4929 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 4930 + _LT_TAGVAR(hardcode_minus_L, $1)=yes 4931 + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported 4932 + _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' 4933 + _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' 6294 4934 ;; 6295 4935 6296 4936 osf3*) 6297 4937 if test "$GCC" = yes; then 6298 - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' 6299 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' 4938 + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' 4939 + _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' 6300 4940 else 6301 - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' 6302 - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' 4941 + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' 4942 + _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' 6303 4943 fi 6304 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 6305 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: 4944 + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' 4945 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 4946 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 6306 4947 ;; 6307 4948 6308 4949 osf4* | osf5*) # as osf3* with the addition of -msym flag 6309 4950 if test "$GCC" = yes; then 6310 - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' 6311 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' 6312 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 4951 + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' 4952 + _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' 4953 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 6313 4954 else 6314 - _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' 6315 - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' 6316 - _LT_AC_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~ 6317 - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' 4955 + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' 4956 + _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' 4957 + _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~ 4958 + $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' 6318 4959 6319 4960 # Both c and cxx compiler support -rpath directly 6320 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' 4961 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' 6321 4962 fi 6322 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: 4963 + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' 4964 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 6323 4965 ;; 6324 4966 6325 4967 solaris*) 6326 - _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' 4968 + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' 6327 4969 if test "$GCC" = yes; then 6328 4970 wlarc='${wl}' 6329 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' 6330 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ 6331 - $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' 4971 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' 4972 + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ 4973 + $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' 6332 4974 else 6333 - wlarc='' 6334 - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' 6335 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ 6336 - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' 4975 + case `$CC -V 2>&1` in 4976 + *"Compilers 5.0"*) 4977 + wlarc='' 4978 + _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' 4979 + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ 4980 + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' 4981 + ;; 4982 + *) 4983 + wlarc='${wl}' 4984 + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' 4985 + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ 4986 + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' 4987 + ;; 4988 + esac 6337 4989 fi 6338 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' 6339 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 4990 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' 4991 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 6340 4992 case $host_os in 6341 4993 solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; 6342 4994 *) 6343 4995 # The compiler driver will combine and reorder linker options, 6344 4996 # but understands `-z linker_flag'. GCC discards it without `$wl', 6345 4997 # but is careful enough not to reorder. 6346 - # Supported since Solaris 2.6 (maybe 2.5.1?) 4998 + # Supported since Solaris 2.6 (maybe 2.5.1?) 6347 4999 if test "$GCC" = yes; then 6348 - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' 5000 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' 6349 5001 else 6350 - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' 5002 + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' 6351 5003 fi 6352 5004 ;; 6353 5005 esac 6354 - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes 5006 + _LT_TAGVAR(link_all_deplibs, $1)=yes 6355 5007 ;; 6356 5008 6357 5009 sunos4*) 6358 5010 if test "x$host_vendor" = xsequent; then 6359 5011 # Use $CC to link under sequent, because it throws in some extra .o 6360 5012 # files that make .init and .fini sections work. 6361 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' 5013 + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' 6362 5014 else 6363 - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' 5015 + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' 6364 5016 fi 6365 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 6366 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes 6367 - _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes 6368 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 5017 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 5018 + _LT_TAGVAR(hardcode_direct, $1)=yes 5019 + _LT_TAGVAR(hardcode_minus_L, $1)=yes 5020 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 6369 5021 ;; 6370 5022 6371 5023 sysv4) 6372 5024 case $host_vendor in 6373 5025 sni) 6374 - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 6375 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? 5026 + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 5027 + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? 6376 5028 ;; 6377 5029 siemens) 6378 5030 ## LD is ld it makes a PLAMLIB 6379 5031 ## CC just makes a GrossModule. 6380 - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' 6381 - _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' 6382 - _LT_AC_TAGVAR(hardcode_direct, $1)=no 5032 + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' 5033 + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' 5034 + _LT_TAGVAR(hardcode_direct, $1)=no 6383 5035 ;; 6384 5036 motorola) 6385 - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 6386 - _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie 5037 + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 5038 + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie 6387 5039 ;; 6388 5040 esac 6389 5041 runpath_var='LD_RUN_PATH' 6390 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 5042 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 6391 5043 ;; 6392 5044 6393 5045 sysv4.3*) 6394 - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 6395 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 6396 - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' 5046 + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 5047 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 5048 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' 6397 5049 ;; 6398 5050 6399 5051 sysv4*MP*) 6400 5052 if test -d /usr/nec; then 6401 - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 6402 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 5053 + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 5054 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 6403 5055 runpath_var=LD_RUN_PATH 6404 5056 hardcode_runpath_var=yes 6405 - _LT_AC_TAGVAR(ld_shlibs, $1)=yes 5057 + _LT_TAGVAR(ld_shlibs, $1)=yes 6406 5058 fi 6407 5059 ;; 6408 5060 6409 5061 sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) 6410 - _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' 6411 - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no 6412 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 5062 + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' 5063 + _LT_TAGVAR(archive_cmds_need_lc, $1)=no 5064 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 6413 5065 runpath_var='LD_RUN_PATH' 6414 5066 6415 5067 if test "$GCC" = yes; then 6416 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 6417 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 5068 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 5069 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 6418 5070 else 6419 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 6420 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 5071 + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 5072 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 6421 5073 fi 6422 5074 ;; 6423 5075 6424 5076 sysv5* | sco3.2v5* | sco5v6*) 6425 5077 # Note: We can NOT use -z defs as we might desire, because we do not 6426 5078 # link with -lc, and that would cause any symbols used from libc to 6427 5079 # always be unresolved, which means just about no library would 6428 5080 # ever link correctly. If we're not using GNU ld we use -z text 6429 5081 # though, which does catch some bad symbols but isn't as heavy-handed 6430 5082 # as -z defs. 6431 - _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' 6432 - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' 6433 - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no 6434 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 6435 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' 6436 - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' 6437 - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes 6438 - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' 5083 + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' 5084 + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' 5085 + _LT_TAGVAR(archive_cmds_need_lc, $1)=no 5086 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 5087 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' 5088 + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' 5089 + _LT_TAGVAR(link_all_deplibs, $1)=yes 5090 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' 6439 5091 runpath_var='LD_RUN_PATH' 6440 5092 6441 5093 if test "$GCC" = yes; then 6442 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' 6443 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' 5094 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 5095 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 6444 5096 else 6445 - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' 6446 - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' 5097 + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 5098 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 6447 5099 fi 6448 5100 ;; 6449 5101 6450 5102 uts4*) 6451 - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 6452 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 6453 - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no 5103 + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' 5104 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 5105 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 6454 5106 ;; 6455 5107 6456 5108 *) 6457 - _LT_AC_TAGVAR(ld_shlibs, $1)=no 5109 + _LT_TAGVAR(ld_shlibs, $1)=no 6458 5110 ;; 6459 5111 esac 5112 + 5113 + if test x$host_vendor = xsni; then 5114 + case $host in 5115 + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) 5116 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' 5117 + ;; 5118 + esac 5119 + fi 6460 5120 fi 6461 5121 ]) 6462 -AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) 6463 -test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no 5122 +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) 5123 +test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no 5124 + 5125 +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld 5126 + 5127 +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl 5128 +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl 5129 +_LT_DECL([], [extract_expsyms_cmds], [2], 5130 + [The commands to extract the exported symbol list from a shared archive]) 6464 5131 6465 5132 # 6466 5133 # Do we need to explicitly link libc? 6467 5134 # 6468 -case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in 5135 +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in 6469 5136 x|xyes) 6470 5137 # Assume -lc should be added 6471 - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes 5138 + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes 6472 5139 6473 5140 if test "$enable_shared" = yes && test "$GCC" = yes; then 6474 - case $_LT_AC_TAGVAR(archive_cmds, $1) in 5141 + case $_LT_TAGVAR(archive_cmds, $1) in 6475 5142 *'~'*) 6476 5143 # FIXME: we may have to deal with multi-command sequences. 6477 5144 ;; 6478 5145 '$CC '*) 6479 5146 # Test whether the compiler implicitly links with -lc since on some 6480 5147 # systems, -lgcc has to come before -lc. If gcc already passes -lc 6481 5148 # to ld, don't add -lc before -lgcc. 6482 5149 AC_MSG_CHECKING([whether -lc should be explicitly linked in]) 6483 - $rm conftest* 5150 + $RM conftest* 6484 5151 echo "$lt_simple_compile_test_code" > conftest.$ac_ext 6485 5152 6486 5153 if AC_TRY_EVAL(ac_compile) 2>conftest.err; then 6487 5154 soname=conftest 6488 5155 lib=conftest 6489 5156 libobjs=conftest.$ac_objext 6490 5157 deplibs= 6491 - wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) 6492 - pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) 5158 + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) 5159 + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) 6493 5160 compiler_flags=-v 6494 5161 linker_flags=-v 6495 5162 verstring= 6496 5163 output_objdir=. 6497 5164 libname=conftest 6498 - lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) 6499 - _LT_AC_TAGVAR(allow_undefined_flag, $1)= 6500 - if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 5165 + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) 5166 + _LT_TAGVAR(allow_undefined_flag, $1)= 5167 + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 6501 5168 then 6502 - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no 5169 + _LT_TAGVAR(archive_cmds_need_lc, $1)=no 6503 5170 else 6504 - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes 5171 + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes 6505 5172 fi 6506 - _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag 5173 + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag 6507 5174 else 6508 5175 cat conftest.err 1>&5 6509 5176 fi 6510 - $rm conftest* 6511 - AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) 5177 + $RM conftest* 5178 + AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) 5179 + ;; 5180 + esac 5181 + fi 5182 + ;; 5183 +esac 5184 + 5185 +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], 5186 + [Whether or not to add -lc for building shared libraries]) 5187 +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], 5188 + [enable_shared_with_static_runtimes], [0], 5189 + [Whether or not to disallow shared libs when runtime libs are static]) 5190 +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], 5191 + [Compiler flag to allow reflexive dlopens]) 5192 +_LT_TAGDECL([], [whole_archive_flag_spec], [1], 5193 + [Compiler flag to generate shared objects directly from archives]) 5194 +_LT_TAGDECL([], [compiler_needs_object], [1], 5195 + [Whether the compiler copes with passing no objects directly]) 5196 +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], 5197 + [Create an old-style archive from a shared archive]) 5198 +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], 5199 + [Create a temporary old-style archive to link instead of a shared archive]) 5200 +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) 5201 +_LT_TAGDECL([], [archive_expsym_cmds], [2]) 5202 +_LT_TAGDECL([], [module_cmds], [2], 5203 + [Commands used to build a loadable module if different from building 5204 + a shared archive.]) 5205 +_LT_TAGDECL([], [module_expsym_cmds], [2]) 5206 +_LT_TAGDECL([], [with_gnu_ld], [1], 5207 + [Whether we are building with GNU ld or not]) 5208 +_LT_TAGDECL([], [allow_undefined_flag], [1], 5209 + [Flag that allows shared libraries with undefined symbols to be built]) 5210 +_LT_TAGDECL([], [no_undefined_flag], [1], 5211 + [Flag that enforces no undefined symbols]) 5212 +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], 5213 + [Flag to hardcode $libdir into a binary during linking. 5214 + This must work even if $libdir does not exist]) 5215 +_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], 5216 + [[If ld is used when linking, flag to hardcode $libdir into a binary 5217 + during linking. This must work even if $libdir does not exist]]) 5218 +_LT_TAGDECL([], [hardcode_libdir_separator], [1], 5219 + [Whether we need a single "-rpath" flag with a separated argument]) 5220 +_LT_TAGDECL([], [hardcode_direct], [0], 5221 + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes 5222 + DIR into the resulting binary]) 5223 +_LT_TAGDECL([], [hardcode_direct_absolute], [0], 5224 + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes 5225 + DIR into the resulting binary and the resulting library dependency is 5226 + "absolute", i.e impossible to change by setting ${shlibpath_var} if the 5227 + library is relocated]) 5228 +_LT_TAGDECL([], [hardcode_minus_L], [0], 5229 + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR 5230 + into the resulting binary]) 5231 +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], 5232 + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR 5233 + into the resulting binary]) 5234 +_LT_TAGDECL([], [hardcode_automatic], [0], 5235 + [Set to "yes" if building a shared library automatically hardcodes DIR 5236 + into the library and all subsequent libraries and executables linked 5237 + against it]) 5238 +_LT_TAGDECL([], [inherit_rpath], [0], 5239 + [Set to yes if linker adds runtime paths of dependent libraries 5240 + to runtime path list]) 5241 +_LT_TAGDECL([], [link_all_deplibs], [0], 5242 + [Whether libtool must link a program against all its dependency libraries]) 5243 +_LT_TAGDECL([], [fix_srcfile_path], [1], 5244 + [Fix the shell variable $srcfile for the compiler]) 5245 +_LT_TAGDECL([], [always_export_symbols], [0], 5246 + [Set to "yes" if exported symbols are required]) 5247 +_LT_TAGDECL([], [export_symbols_cmds], [2], 5248 + [The commands to list exported symbols]) 5249 +_LT_TAGDECL([], [exclude_expsyms], [1], 5250 + [Symbols that should not be listed in the preloaded symbols]) 5251 +_LT_TAGDECL([], [include_expsyms], [1], 5252 + [Symbols that must always be exported]) 5253 +_LT_TAGDECL([], [prelink_cmds], [2], 5254 + [Commands necessary for linking programs (against libraries) with templates]) 5255 +_LT_TAGDECL([], [file_list_spec], [1], 5256 + [Specify filename containing input files]) 5257 +dnl FIXME: Not yet implemented 5258 +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], 5259 +dnl [Compiler flag to generate thread safe objects]) 5260 +])# _LT_LINKER_SHLIBS 5261 + 5262 + 5263 +# _LT_LANG_C_CONFIG([TAG]) 5264 +# ------------------------ 5265 +# Ensure that the configuration variables for a C compiler are suitably 5266 +# defined. These variables are subsequently used by _LT_CONFIG to write 5267 +# the compiler configuration to `libtool'. 5268 +m4_defun([_LT_LANG_C_CONFIG], 5269 +[m4_require([_LT_DECL_EGREP])dnl 5270 +lt_save_CC="$CC" 5271 +AC_LANG_PUSH(C) 5272 + 5273 +# Source file extension for C test sources. 5274 +ac_ext=c 5275 + 5276 +# Object file extension for compiled C test sources. 5277 +objext=o 5278 +_LT_TAGVAR(objext, $1)=$objext 5279 + 5280 +# Code to be used in simple compile tests 5281 +lt_simple_compile_test_code="int some_variable = 0;" 5282 + 5283 +# Code to be used in simple link tests 5284 +lt_simple_link_test_code='int main(){return(0);}' 5285 + 5286 +_LT_TAG_COMPILER 5287 +# Save the default compiler, since it gets overwritten when the other 5288 +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. 5289 +compiler_DEFAULT=$CC 5290 + 5291 +# save warnings/boilerplate of simple test code 5292 +_LT_COMPILER_BOILERPLATE 5293 +_LT_LINKER_BOILERPLATE 5294 + 5295 +if test -n "$compiler"; then 5296 + _LT_COMPILER_NO_RTTI($1) 5297 + _LT_COMPILER_PIC($1) 5298 + _LT_COMPILER_C_O($1) 5299 + _LT_COMPILER_FILE_LOCKS($1) 5300 + _LT_LINKER_SHLIBS($1) 5301 + _LT_SYS_DYNAMIC_LINKER($1) 5302 + _LT_LINKER_HARDCODE_LIBPATH($1) 5303 + LT_SYS_DLOPEN_SELF 5304 + _LT_CMD_STRIPLIB 5305 + 5306 + # Report which library types will actually be built 5307 + AC_MSG_CHECKING([if libtool supports shared libraries]) 5308 + AC_MSG_RESULT([$can_build_shared]) 5309 + 5310 + AC_MSG_CHECKING([whether to build shared libraries]) 5311 + test "$can_build_shared" = "no" && enable_shared=no 5312 + 5313 + # On AIX, shared libraries and static libraries use the same namespace, and 5314 + # are all built from PIC. 5315 + case $host_os in 5316 + aix3*) 5317 + test "$enable_shared" = yes && enable_static=no 5318 + if test -n "$RANLIB"; then 5319 + archive_cmds="$archive_cmds~\$RANLIB \$lib" 5320 + postinstall_cmds='$RANLIB $lib' 5321 + fi 5322 + ;; 5323 + 5324 + aix[[4-9]]*) 5325 + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then 5326 + test "$enable_shared" = yes && enable_static=no 5327 + fi 5328 + ;; 5329 + esac 5330 + AC_MSG_RESULT([$enable_shared]) 5331 + 5332 + AC_MSG_CHECKING([whether to build static libraries]) 5333 + # Make sure either enable_shared or enable_static is yes. 5334 + test "$enable_shared" = yes || enable_static=yes 5335 + AC_MSG_RESULT([$enable_static]) 5336 + 5337 + _LT_CONFIG($1) 5338 +fi 5339 +AC_LANG_POP 5340 +CC="$lt_save_CC" 5341 +])# _LT_LANG_C_CONFIG 5342 + 5343 + 5344 +# _LT_PROG_CXX 5345 +# ------------ 5346 +# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ 5347 +# compiler, we have our own version here. 5348 +m4_defun([_LT_PROG_CXX], 5349 +[ 5350 +pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) 5351 +AC_PROG_CXX 5352 +if test -n "$CXX" && ( test "X$CXX" != "Xno" && 5353 + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || 5354 + (test "X$CXX" != "Xg++"))) ; then 5355 + AC_PROG_CXXCPP 5356 +else 5357 + _lt_caught_CXX_error=yes 5358 +fi 5359 +popdef([AC_MSG_ERROR]) 5360 +])# _LT_PROG_CXX 5361 + 5362 +dnl aclocal-1.4 backwards compatibility: 5363 +dnl AC_DEFUN([_LT_PROG_CXX], []) 5364 + 5365 + 5366 +# _LT_LANG_CXX_CONFIG([TAG]) 5367 +# -------------------------- 5368 +# Ensure that the configuration variables for a C++ compiler are suitably 5369 +# defined. These variables are subsequently used by _LT_CONFIG to write 5370 +# the compiler configuration to `libtool'. 5371 +m4_defun([_LT_LANG_CXX_CONFIG], 5372 +[AC_REQUIRE([_LT_PROG_CXX])dnl 5373 +m4_require([_LT_FILEUTILS_DEFAULTS])dnl 5374 +m4_require([_LT_DECL_EGREP])dnl 5375 + 5376 +AC_LANG_PUSH(C++) 5377 +_LT_TAGVAR(archive_cmds_need_lc, $1)=no 5378 +_LT_TAGVAR(allow_undefined_flag, $1)= 5379 +_LT_TAGVAR(always_export_symbols, $1)=no 5380 +_LT_TAGVAR(archive_expsym_cmds, $1)= 5381 +_LT_TAGVAR(compiler_needs_object, $1)=no 5382 +_LT_TAGVAR(export_dynamic_flag_spec, $1)= 5383 +_LT_TAGVAR(hardcode_direct, $1)=no 5384 +_LT_TAGVAR(hardcode_direct_absolute, $1)=no 5385 +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= 5386 +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= 5387 +_LT_TAGVAR(hardcode_libdir_separator, $1)= 5388 +_LT_TAGVAR(hardcode_minus_L, $1)=no 5389 +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported 5390 +_LT_TAGVAR(hardcode_automatic, $1)=no 5391 +_LT_TAGVAR(inherit_rpath, $1)=no 5392 +_LT_TAGVAR(module_cmds, $1)= 5393 +_LT_TAGVAR(module_expsym_cmds, $1)= 5394 +_LT_TAGVAR(link_all_deplibs, $1)=unknown 5395 +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds 5396 +_LT_TAGVAR(no_undefined_flag, $1)= 5397 +_LT_TAGVAR(whole_archive_flag_spec, $1)= 5398 +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no 5399 + 5400 +# Source file extension for C++ test sources. 5401 +ac_ext=cpp 5402 + 5403 +# Object file extension for compiled C++ test sources. 5404 +objext=o 5405 +_LT_TAGVAR(objext, $1)=$objext 5406 + 5407 +# No sense in running all these tests if we already determined that 5408 +# the CXX compiler isn't working. Some variables (like enable_shared) 5409 +# are currently assumed to apply to all compilers on this platform, 5410 +# and will be corrupted by setting them based on a non-working compiler. 5411 +if test "$_lt_caught_CXX_error" != yes; then 5412 + # Code to be used in simple compile tests 5413 + lt_simple_compile_test_code="int some_variable = 0;" 5414 + 5415 + # Code to be used in simple link tests 5416 + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' 5417 + 5418 + # ltmain only uses $CC for tagged configurations so make sure $CC is set. 5419 + _LT_TAG_COMPILER 5420 + 5421 + # save warnings/boilerplate of simple test code 5422 + _LT_COMPILER_BOILERPLATE 5423 + _LT_LINKER_BOILERPLATE 5424 + 5425 + # Allow CC to be a program name with arguments. 5426 + lt_save_CC=$CC 5427 + lt_save_LD=$LD 5428 + lt_save_GCC=$GCC 5429 + GCC=$GXX 5430 + lt_save_with_gnu_ld=$with_gnu_ld 5431 + lt_save_path_LD=$lt_cv_path_LD 5432 + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then 5433 + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx 5434 + else 5435 + $as_unset lt_cv_prog_gnu_ld 5436 + fi 5437 + if test -n "${lt_cv_path_LDCXX+set}"; then 5438 + lt_cv_path_LD=$lt_cv_path_LDCXX 5439 + else 5440 + $as_unset lt_cv_path_LD 5441 + fi 5442 + test -z "${LDCXX+set}" || LD=$LDCXX 5443 + CC=${CXX-"c++"} 5444 + compiler=$CC 5445 + _LT_TAGVAR(compiler, $1)=$CC 5446 + _LT_CC_BASENAME([$compiler]) 5447 + 5448 + if test -n "$compiler"; then 5449 + # We don't want -fno-exception when compiling C++ code, so set the 5450 + # no_builtin_flag separately 5451 + if test "$GXX" = yes; then 5452 + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' 5453 + else 5454 + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= 5455 + fi 5456 + 5457 + if test "$GXX" = yes; then 5458 + # Set up default GNU C++ configuration 5459 + 5460 + LT_PATH_LD 5461 + 5462 + # Check if GNU C++ uses GNU ld as the underlying linker, since the 5463 + # archiving commands below assume that GNU ld is being used. 5464 + if test "$with_gnu_ld" = yes; then 5465 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' 5466 + _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' 5467 + 5468 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 5469 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' 5470 + 5471 + # If archive_cmds runs LD, not CC, wlarc should be empty 5472 + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to 5473 + # investigate it a little bit more. (MM) 5474 + wlarc='${wl}' 5475 + 5476 + # ancient GNU ld didn't support --whole-archive et. al. 5477 + if eval "`$CC -print-prog-name=ld` --help 2>&1" | 5478 + $GREP 'no-whole-archive' > /dev/null; then 5479 + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' 5480 + else 5481 + _LT_TAGVAR(whole_archive_flag_spec, $1)= 5482 + fi 5483 + else 5484 + with_gnu_ld=no 5485 + wlarc= 5486 + 5487 + # A generic and very simple default shared library creation 5488 + # command for GNU C++ for the case where it uses the native 5489 + # linker, instead of GNU ld. If possible, this setting should 5490 + # overridden to take advantage of the native linker features on 5491 + # the platform it is being used on. 5492 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' 5493 + fi 5494 + 5495 + # Commands to make compiler produce verbose output that lists 5496 + # what "hidden" libraries, object files and flags are used when 5497 + # linking a shared library. 5498 + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' 5499 + 5500 + else 5501 + GXX=no 5502 + with_gnu_ld=no 5503 + wlarc= 5504 + fi 5505 + 5506 + # PORTME: fill in a description of your system's C++ link characteristics 5507 + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) 5508 + _LT_TAGVAR(ld_shlibs, $1)=yes 5509 + case $host_os in 5510 + aix3*) 5511 + # FIXME: insert proper C++ library support 5512 + _LT_TAGVAR(ld_shlibs, $1)=no 5513 + ;; 5514 + aix[[4-9]]*) 5515 + if test "$host_cpu" = ia64; then 5516 + # On IA64, the linker does run time linking by default, so we don't 5517 + # have to do anything special. 5518 + aix_use_runtimelinking=no 5519 + exp_sym_flag='-Bexport' 5520 + no_entry_flag="" 5521 + else 5522 + aix_use_runtimelinking=no 5523 + 5524 + # Test if we are trying to use run time linking or normal 5525 + # AIX style linking. If -brtl is somewhere in LDFLAGS, we 5526 + # need to do runtime linking. 5527 + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) 5528 + for ld_flag in $LDFLAGS; do 5529 + case $ld_flag in 5530 + *-brtl*) 5531 + aix_use_runtimelinking=yes 5532 + break 5533 + ;; 5534 + esac 5535 + done 5536 + ;; 5537 + esac 5538 + 5539 + exp_sym_flag='-bexport' 5540 + no_entry_flag='-bnoentry' 5541 + fi 5542 + 5543 + # When large executables or shared objects are built, AIX ld can 5544 + # have problems creating the table of contents. If linking a library 5545 + # or program results in "error TOC overflow" add -mminimal-toc to 5546 + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not 5547 + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. 5548 + 5549 + _LT_TAGVAR(archive_cmds, $1)='' 5550 + _LT_TAGVAR(hardcode_direct, $1)=yes 5551 + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes 5552 + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' 5553 + _LT_TAGVAR(link_all_deplibs, $1)=yes 5554 + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' 5555 + 5556 + if test "$GXX" = yes; then 5557 + case $host_os in aix4.[[012]]|aix4.[[012]].*) 5558 + # We only want to do this on AIX 4.2 and lower, the check 5559 + # below for broken collect2 doesn't work under 4.3+ 5560 + collect2name=`${CC} -print-prog-name=collect2` 5561 + if test -f "$collect2name" && 5562 + strings "$collect2name" | $GREP resolve_lib_name >/dev/null 5563 + then 5564 + # We have reworked collect2 5565 + : 5566 + else 5567 + # We have old collect2 5568 + _LT_TAGVAR(hardcode_direct, $1)=unsupported 5569 + # It fails to find uninstalled libraries when the uninstalled 5570 + # path is not listed in the libpath. Setting hardcode_minus_L 5571 + # to unsupported forces relinking 5572 + _LT_TAGVAR(hardcode_minus_L, $1)=yes 5573 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 5574 + _LT_TAGVAR(hardcode_libdir_separator, $1)= 5575 + fi 5576 + esac 5577 + shared_flag='-shared' 5578 + if test "$aix_use_runtimelinking" = yes; then 5579 + shared_flag="$shared_flag "'${wl}-G' 5580 + fi 5581 + else 5582 + # not using gcc 5583 + if test "$host_cpu" = ia64; then 5584 + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release 5585 + # chokes on -Wl,-G. The following line is correct: 5586 + shared_flag='-G' 5587 + else 5588 + if test "$aix_use_runtimelinking" = yes; then 5589 + shared_flag='${wl}-G' 5590 + else 5591 + shared_flag='${wl}-bM:SRE' 5592 + fi 5593 + fi 5594 + fi 5595 + 5596 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' 5597 + # It seems that -bexpall does not export symbols beginning with 5598 + # underscore (_), so it is better to generate a list of symbols to 5599 + # export. 5600 + _LT_TAGVAR(always_export_symbols, $1)=yes 5601 + if test "$aix_use_runtimelinking" = yes; then 5602 + # Warning - without using the other runtime loading flags (-brtl), 5603 + # -berok will link without error, but may produce a broken library. 5604 + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' 5605 + # Determine the default libpath from the value encoded in an empty 5606 + # executable. 5607 + _LT_SYS_MODULE_PATH_AIX 5608 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" 5609 + 5610 + _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" 5611 + else 5612 + if test "$host_cpu" = ia64; then 5613 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' 5614 + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" 5615 + _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" 5616 + else 5617 + # Determine the default libpath from the value encoded in an 5618 + # empty executable. 5619 + _LT_SYS_MODULE_PATH_AIX 5620 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" 5621 + # Warning - without using the other run time loading flags, 5622 + # -berok will link without error, but may produce a broken library. 5623 + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' 5624 + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' 5625 + # Exported symbols can be pulled into shared objects from archives 5626 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' 5627 + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes 5628 + # This is similar to how AIX traditionally builds its shared 5629 + # libraries. 5630 + _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' 5631 + fi 5632 + fi 5633 + ;; 5634 + 5635 + beos*) 5636 + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then 5637 + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported 5638 + # Joseph Beckenbach <jrb3@best.com> says some releases of gcc 5639 + # support --undefined. This deserves some investigation. FIXME 5640 + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 5641 + else 5642 + _LT_TAGVAR(ld_shlibs, $1)=no 5643 + fi 5644 + ;; 5645 + 5646 + chorus*) 5647 + case $cc_basename in 5648 + *) 5649 + # FIXME: insert proper C++ library support 5650 + _LT_TAGVAR(ld_shlibs, $1)=no 5651 + ;; 5652 + esac 5653 + ;; 5654 + 5655 + cygwin* | mingw* | pw32* | cegcc*) 5656 + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, 5657 + # as there is no search path for DLLs. 5658 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' 5659 + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported 5660 + _LT_TAGVAR(always_export_symbols, $1)=no 5661 + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes 5662 + 5663 + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then 5664 + _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' 5665 + # If the export-symbols file already is a .def file (1st line 5666 + # is EXPORTS), use it as is; otherwise, prepend... 5667 + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then 5668 + cp $export_symbols $output_objdir/$soname.def; 5669 + else 5670 + echo EXPORTS > $output_objdir/$soname.def; 5671 + cat $export_symbols >> $output_objdir/$soname.def; 5672 + fi~ 5673 + $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' 5674 + else 5675 + _LT_TAGVAR(ld_shlibs, $1)=no 5676 + fi 5677 + ;; 5678 + darwin* | rhapsody*) 5679 + _LT_DARWIN_LINKER_FEATURES($1) 5680 + ;; 5681 + 5682 + dgux*) 5683 + case $cc_basename in 5684 + ec++*) 5685 + # FIXME: insert proper C++ library support 5686 + _LT_TAGVAR(ld_shlibs, $1)=no 5687 + ;; 5688 + ghcx*) 5689 + # Green Hills C++ Compiler 5690 + # FIXME: insert proper C++ library support 5691 + _LT_TAGVAR(ld_shlibs, $1)=no 5692 + ;; 5693 + *) 5694 + # FIXME: insert proper C++ library support 5695 + _LT_TAGVAR(ld_shlibs, $1)=no 5696 + ;; 5697 + esac 5698 + ;; 5699 + 5700 + freebsd[[12]]*) 5701 + # C++ shared libraries reported to be fairly broken before 5702 + # switch to ELF 5703 + _LT_TAGVAR(ld_shlibs, $1)=no 5704 + ;; 5705 + 5706 + freebsd-elf*) 5707 + _LT_TAGVAR(archive_cmds_need_lc, $1)=no 5708 + ;; 5709 + 5710 + freebsd* | dragonfly*) 5711 + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF 5712 + # conventions 5713 + _LT_TAGVAR(ld_shlibs, $1)=yes 5714 + ;; 5715 + 5716 + gnu*) 5717 + ;; 5718 + 5719 + hpux9*) 5720 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' 5721 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 5722 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 5723 + _LT_TAGVAR(hardcode_direct, $1)=yes 5724 + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, 5725 + # but as the default 5726 + # location of the library. 5727 + 5728 + case $cc_basename in 5729 + CC*) 5730 + # FIXME: insert proper C++ library support 5731 + _LT_TAGVAR(ld_shlibs, $1)=no 5732 + ;; 5733 + aCC*) 5734 + _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' 5735 + # Commands to make compiler produce verbose output that lists 5736 + # what "hidden" libraries, object files and flags are used when 5737 + # linking a shared library. 5738 + # 5739 + # There doesn't appear to be a way to prevent this compiler from 5740 + # explicitly linking system object files so we need to strip them 5741 + # from the output so that they don't get included in the library 5742 + # dependencies. 5743 + 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' 5744 + ;; 5745 + *) 5746 + if test "$GXX" = yes; then 5747 + _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' 5748 + else 5749 + # FIXME: insert proper C++ library support 5750 + _LT_TAGVAR(ld_shlibs, $1)=no 5751 + fi 5752 + ;; 5753 + esac 5754 + ;; 5755 + 5756 + hpux10*|hpux11*) 5757 + if test $with_gnu_ld = no; then 5758 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' 5759 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 5760 + 5761 + case $host_cpu in 5762 + hppa*64*|ia64*) 5763 + ;; 5764 + *) 5765 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 5766 + ;; 5767 + esac 5768 + fi 5769 + case $host_cpu in 5770 + hppa*64*|ia64*) 5771 + _LT_TAGVAR(hardcode_direct, $1)=no 5772 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 5773 + ;; 5774 + *) 5775 + _LT_TAGVAR(hardcode_direct, $1)=yes 5776 + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes 5777 + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, 5778 + # but as the default 5779 + # location of the library. 5780 + ;; 5781 + esac 5782 + 5783 + case $cc_basename in 5784 + CC*) 5785 + # FIXME: insert proper C++ library support 5786 + _LT_TAGVAR(ld_shlibs, $1)=no 5787 + ;; 5788 + aCC*) 5789 + case $host_cpu in 5790 + hppa*64*) 5791 + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' 5792 + ;; 5793 + ia64*) 5794 + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' 5795 + ;; 5796 + *) 5797 + _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' 5798 + ;; 5799 + esac 5800 + # Commands to make compiler produce verbose output that lists 5801 + # what "hidden" libraries, object files and flags are used when 5802 + # linking a shared library. 5803 + # 5804 + # There doesn't appear to be a way to prevent this compiler from 5805 + # explicitly linking system object files so we need to strip them 5806 + # from the output so that they don't get included in the library 5807 + # dependencies. 5808 + 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' 5809 + ;; 5810 + *) 5811 + if test "$GXX" = yes; then 5812 + if test $with_gnu_ld = no; then 5813 + case $host_cpu in 5814 + hppa*64*) 5815 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' 5816 + ;; 5817 + ia64*) 5818 + _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' 5819 + ;; 5820 + *) 5821 + _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' 5822 + ;; 5823 + esac 5824 + fi 5825 + else 5826 + # FIXME: insert proper C++ library support 5827 + _LT_TAGVAR(ld_shlibs, $1)=no 5828 + fi 5829 + ;; 5830 + esac 5831 + ;; 5832 + 5833 + interix[[3-9]]*) 5834 + _LT_TAGVAR(hardcode_direct, $1)=no 5835 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 5836 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' 5837 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 5838 + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. 5839 + # Instead, shared libraries are loaded at an image base (0x10000000 by 5840 + # default) and relocated if they conflict, which is a slow very memory 5841 + # consuming and fragmenting process. To avoid this, we pick a random, 5842 + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link 5843 + # time. Moving up from 0x10000000 also allows more sbrk(2) space. 5844 + _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' 5845 + _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' 5846 + ;; 5847 + irix5* | irix6*) 5848 + case $cc_basename in 5849 + CC*) 5850 + # SGI C++ 5851 + _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' 5852 + 5853 + # Archives containing C++ object files must be created using 5854 + # "CC -ar", where "CC" is the IRIX C++ compiler. This is 5855 + # necessary to make sure instantiated templates are included 5856 + # in the archive. 5857 + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' 5858 + ;; 5859 + *) 5860 + if test "$GXX" = yes; then 5861 + if test "$with_gnu_ld" = no; then 5862 + _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' 5863 + else 5864 + _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' 5865 + fi 5866 + fi 5867 + _LT_TAGVAR(link_all_deplibs, $1)=yes 5868 + ;; 5869 + esac 5870 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 5871 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 5872 + _LT_TAGVAR(inherit_rpath, $1)=yes 5873 + ;; 5874 + 5875 + linux* | k*bsd*-gnu | kopensolaris*-gnu) 5876 + case $cc_basename in 5877 + KCC*) 5878 + # Kuck and Associates, Inc. (KAI) C++ Compiler 5879 + 5880 + # KCC will only create a shared library if the output file 5881 + # ends with ".so" (or ".sl" for HP-UX), so rename the library 5882 + # to its proper name (with version) after linking. 5883 + _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' 5884 + _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' 5885 + # Commands to make compiler produce verbose output that lists 5886 + # what "hidden" libraries, object files and flags are used when 5887 + # linking a shared library. 5888 + # 5889 + # There doesn't appear to be a way to prevent this compiler from 5890 + # explicitly linking system object files so we need to strip them 5891 + # from the output so that they don't get included in the library 5892 + # dependencies. 5893 + 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' 5894 + 5895 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' 5896 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' 5897 + 5898 + # Archives containing C++ object files must be created using 5899 + # "CC -Bstatic", where "CC" is the KAI C++ compiler. 5900 + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' 5901 + ;; 5902 + icpc* | ecpc* ) 5903 + # Intel C++ 5904 + with_gnu_ld=yes 5905 + # version 8.0 and above of icpc choke on multiply defined symbols 5906 + # if we add $predep_objects and $postdep_objects, however 7.1 and 5907 + # earlier do not add the objects themselves. 5908 + case `$CC -V 2>&1` in 5909 + *"Version 7."*) 5910 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' 5911 + _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' 5912 + ;; 5913 + *) # Version 8.0 or newer 5914 + tmp_idyn= 5915 + case $host_cpu in 5916 + ia64*) tmp_idyn=' -i_dynamic';; 5917 + esac 5918 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 5919 + _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' 5920 + ;; 5921 + esac 5922 + _LT_TAGVAR(archive_cmds_need_lc, $1)=no 5923 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' 5924 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' 5925 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' 5926 + ;; 5927 + pgCC* | pgcpp*) 5928 + # Portland Group C++ compiler 5929 + case `$CC -V` in 5930 + *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) 5931 + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ 5932 + rm -rf $tpldir~ 5933 + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ 5934 + compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' 5935 + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ 5936 + rm -rf $tpldir~ 5937 + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ 5938 + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ 5939 + $RANLIB $oldlib' 5940 + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ 5941 + rm -rf $tpldir~ 5942 + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ 5943 + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' 5944 + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ 5945 + rm -rf $tpldir~ 5946 + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ 5947 + $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' 5948 + ;; 5949 + *) # Version 6 will use weak symbols 5950 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' 5951 + _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' 5952 + ;; 5953 + esac 5954 + 5955 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' 5956 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' 5957 + _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' 5958 + ;; 5959 + cxx*) 5960 + # Compaq C++ 5961 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' 5962 + _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' 5963 + 5964 + runpath_var=LD_RUN_PATH 5965 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' 5966 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 5967 + 5968 + # Commands to make compiler produce verbose output that lists 5969 + # what "hidden" libraries, object files and flags are used when 5970 + # linking a shared library. 5971 + # 5972 + # There doesn't appear to be a way to prevent this compiler from 5973 + # explicitly linking system object files so we need to strip them 5974 + # from the output so that they don't get included in the library 5975 + # dependencies. 5976 + 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' 5977 + ;; 5978 + xl*) 5979 + # IBM XL 8.0 on PPC, with GNU ld 5980 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 5981 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' 5982 + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' 5983 + if test "x$supports_anon_versioning" = xyes; then 5984 + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ 5985 + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ 5986 + echo "local: *; };" >> $output_objdir/$libname.ver~ 5987 + $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' 5988 + fi 5989 + ;; 5990 + *) 5991 + case `$CC -V 2>&1 | sed 5q` in 5992 + *Sun\ C*) 5993 + # Sun C++ 5.9 5994 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' 5995 + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' 5996 + _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' 5997 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' 5998 + _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' 5999 + _LT_TAGVAR(compiler_needs_object, $1)=yes 6000 + 6001 + # Not sure whether something based on 6002 + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 6003 + # would be better. 6004 + output_verbose_link_cmd='echo' 6005 + 6006 + # Archives containing C++ object files must be created using 6007 + # "CC -xar", where "CC" is the Sun C++ compiler. This is 6008 + # necessary to make sure instantiated templates are included 6009 + # in the archive. 6010 + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' 6011 + ;; 6012 + esac 6013 + ;; 6014 + esac 6015 + ;; 6016 + 6017 + lynxos*) 6018 + # FIXME: insert proper C++ library support 6019 + _LT_TAGVAR(ld_shlibs, $1)=no 6020 + ;; 6021 + 6022 + m88k*) 6023 + # FIXME: insert proper C++ library support 6024 + _LT_TAGVAR(ld_shlibs, $1)=no 6025 + ;; 6026 + 6027 + mvs*) 6028 + case $cc_basename in 6029 + cxx*) 6030 + # FIXME: insert proper C++ library support 6031 + _LT_TAGVAR(ld_shlibs, $1)=no 6032 + ;; 6033 + *) 6034 + # FIXME: insert proper C++ library support 6035 + _LT_TAGVAR(ld_shlibs, $1)=no 6036 + ;; 6037 + esac 6038 + ;; 6039 + 6040 + netbsd*) 6041 + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then 6042 + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' 6043 + wlarc= 6044 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' 6045 + _LT_TAGVAR(hardcode_direct, $1)=yes 6046 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 6047 + fi 6048 + # Workaround some broken pre-1.5 toolchains 6049 + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' 6050 + ;; 6051 + 6052 + *nto* | *qnx*) 6053 + _LT_TAGVAR(ld_shlibs, $1)=yes 6054 + ;; 6055 + 6056 + openbsd2*) 6057 + # C++ shared libraries are fairly broken 6058 + _LT_TAGVAR(ld_shlibs, $1)=no 6059 + ;; 6060 + 6061 + openbsd*) 6062 + if test -f /usr/libexec/ld.so; then 6063 + _LT_TAGVAR(hardcode_direct, $1)=yes 6064 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 6065 + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes 6066 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' 6067 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' 6068 + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then 6069 + _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' 6070 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' 6071 + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' 6072 + fi 6073 + output_verbose_link_cmd=echo 6074 + else 6075 + _LT_TAGVAR(ld_shlibs, $1)=no 6076 + fi 6077 + ;; 6078 + 6079 + osf3* | osf4* | osf5*) 6080 + case $cc_basename in 6081 + KCC*) 6082 + # Kuck and Associates, Inc. (KAI) C++ Compiler 6083 + 6084 + # KCC will only create a shared library if the output file 6085 + # ends with ".so" (or ".sl" for HP-UX), so rename the library 6086 + # to its proper name (with version) after linking. 6087 + _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' 6088 + 6089 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' 6090 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 6091 + 6092 + # Archives containing C++ object files must be created using 6093 + # the KAI C++ compiler. 6094 + case $host in 6095 + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; 6096 + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; 6097 + esac 6098 + ;; 6099 + RCC*) 6100 + # Rational C++ 2.4.1 6101 + # FIXME: insert proper C++ library support 6102 + _LT_TAGVAR(ld_shlibs, $1)=no 6103 + ;; 6104 + cxx*) 6105 + case $host in 6106 + osf3*) 6107 + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' 6108 + _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' 6109 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 6110 + ;; 6111 + *) 6112 + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' 6113 + _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' 6114 + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ 6115 + echo "-hidden">> $lib.exp~ 6116 + $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~ 6117 + $RM $lib.exp' 6118 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' 6119 + ;; 6120 + esac 6121 + 6122 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 6123 + 6124 + # Commands to make compiler produce verbose output that lists 6125 + # what "hidden" libraries, object files and flags are used when 6126 + # linking a shared library. 6127 + # 6128 + # There doesn't appear to be a way to prevent this compiler from 6129 + # explicitly linking system object files so we need to strip them 6130 + # from the output so that they don't get included in the library 6131 + # dependencies. 6132 + 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' 6133 + ;; 6134 + *) 6135 + if test "$GXX" = yes && test "$with_gnu_ld" = no; then 6136 + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' 6137 + case $host in 6138 + osf3*) 6139 + _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' 6140 + ;; 6141 + *) 6142 + _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' 6143 + ;; 6144 + esac 6145 + 6146 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' 6147 + _LT_TAGVAR(hardcode_libdir_separator, $1)=: 6148 + 6149 + # Commands to make compiler produce verbose output that lists 6150 + # what "hidden" libraries, object files and flags are used when 6151 + # linking a shared library. 6152 + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' 6153 + 6154 + else 6155 + # FIXME: insert proper C++ library support 6156 + _LT_TAGVAR(ld_shlibs, $1)=no 6157 + fi 6158 + ;; 6159 + esac 6160 + ;; 6161 + 6162 + psos*) 6163 + # FIXME: insert proper C++ library support 6164 + _LT_TAGVAR(ld_shlibs, $1)=no 6165 + ;; 6166 + 6167 + sunos4*) 6168 + case $cc_basename in 6169 + CC*) 6170 + # Sun C++ 4.x 6171 + # FIXME: insert proper C++ library support 6172 + _LT_TAGVAR(ld_shlibs, $1)=no 6173 + ;; 6174 + lcc*) 6175 + # Lucid 6176 + # FIXME: insert proper C++ library support 6177 + _LT_TAGVAR(ld_shlibs, $1)=no 6178 + ;; 6179 + *) 6180 + # FIXME: insert proper C++ library support 6181 + _LT_TAGVAR(ld_shlibs, $1)=no 6182 + ;; 6183 + esac 6184 + ;; 6185 + 6186 + solaris*) 6187 + case $cc_basename in 6188 + CC*) 6189 + # Sun C++ 4.2, 5.x and Centerline C++ 6190 + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes 6191 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' 6192 + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' 6193 + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ 6194 + $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' 6195 + 6196 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' 6197 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 6198 + case $host_os in 6199 + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; 6200 + *) 6201 + # The compiler driver will combine and reorder linker options, 6202 + # but understands `-z linker_flag'. 6203 + # Supported since Solaris 2.6 (maybe 2.5.1?) 6204 + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' 6205 + ;; 6206 + esac 6207 + _LT_TAGVAR(link_all_deplibs, $1)=yes 6208 + 6209 + output_verbose_link_cmd='echo' 6210 + 6211 + # Archives containing C++ object files must be created using 6212 + # "CC -xar", where "CC" is the Sun C++ compiler. This is 6213 + # necessary to make sure instantiated templates are included 6214 + # in the archive. 6215 + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' 6216 + ;; 6217 + gcx*) 6218 + # Green Hills C++ Compiler 6219 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' 6220 + 6221 + # The C++ compiler must be used to create the archive. 6222 + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' 6223 + ;; 6224 + *) 6225 + # GNU C++ compiler with Solaris linker 6226 + if test "$GXX" = yes && test "$with_gnu_ld" = no; then 6227 + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' 6228 + if $CC --version | $GREP -v '^2\.7' > /dev/null; then 6229 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' 6230 + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ 6231 + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' 6232 + 6233 + # Commands to make compiler produce verbose output that lists 6234 + # what "hidden" libraries, object files and flags are used when 6235 + # linking a shared library. 6236 + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' 6237 + else 6238 + # g++ 2.7 appears to require `-G' NOT `-shared' on this 6239 + # platform. 6240 + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' 6241 + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ 6242 + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' 6243 + 6244 + # Commands to make compiler produce verbose output that lists 6245 + # what "hidden" libraries, object files and flags are used when 6246 + # linking a shared library. 6247 + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' 6248 + fi 6249 + 6250 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' 6251 + case $host_os in 6252 + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; 6253 + *) 6254 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' 6255 + ;; 6256 + esac 6257 + fi 6258 + ;; 6259 + esac 6260 + ;; 6261 + 6262 + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) 6263 + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' 6264 + _LT_TAGVAR(archive_cmds_need_lc, $1)=no 6265 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 6266 + runpath_var='LD_RUN_PATH' 6267 + 6268 + case $cc_basename in 6269 + CC*) 6270 + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 6271 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 6272 + ;; 6273 + *) 6274 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 6275 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 6276 + ;; 6277 + esac 6278 + ;; 6279 + 6280 + sysv5* | sco3.2v5* | sco5v6*) 6281 + # Note: We can NOT use -z defs as we might desire, because we do not 6282 + # link with -lc, and that would cause any symbols used from libc to 6283 + # always be unresolved, which means just about no library would 6284 + # ever link correctly. If we're not using GNU ld we use -z text 6285 + # though, which does catch some bad symbols but isn't as heavy-handed 6286 + # as -z defs. 6287 + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' 6288 + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' 6289 + _LT_TAGVAR(archive_cmds_need_lc, $1)=no 6290 + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no 6291 + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' 6292 + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' 6293 + _LT_TAGVAR(link_all_deplibs, $1)=yes 6294 + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' 6295 + runpath_var='LD_RUN_PATH' 6296 + 6297 + case $cc_basename in 6298 + CC*) 6299 + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 6300 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 6301 + ;; 6302 + *) 6303 + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 6304 + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' 6305 + ;; 6306 + esac 6307 + ;; 6308 + 6309 + tandem*) 6310 + case $cc_basename in 6311 + NCC*) 6312 + # NonStop-UX NCC 3.20 6313 + # FIXME: insert proper C++ library support 6314 + _LT_TAGVAR(ld_shlibs, $1)=no 6315 + ;; 6316 + *) 6317 + # FIXME: insert proper C++ library support 6318 + _LT_TAGVAR(ld_shlibs, $1)=no 6319 + ;; 6320 + esac 6321 + ;; 6322 + 6323 + vxworks*) 6324 + # FIXME: insert proper C++ library support 6325 + _LT_TAGVAR(ld_shlibs, $1)=no 6326 + ;; 6327 + 6328 + *) 6329 + # FIXME: insert proper C++ library support 6330 + _LT_TAGVAR(ld_shlibs, $1)=no 6331 + ;; 6332 + esac 6333 + 6334 + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) 6335 + test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no 6336 + 6337 + _LT_TAGVAR(GCC, $1)="$GXX" 6338 + _LT_TAGVAR(LD, $1)="$LD" 6339 + 6340 + ## CAVEAT EMPTOR: 6341 + ## There is no encapsulation within the following macros, do not change 6342 + ## the running order or otherwise move them around unless you know exactly 6343 + ## what you are doing... 6344 + _LT_SYS_HIDDEN_LIBDEPS($1) 6345 + _LT_COMPILER_PIC($1) 6346 + _LT_COMPILER_C_O($1) 6347 + _LT_COMPILER_FILE_LOCKS($1) 6348 + _LT_LINKER_SHLIBS($1) 6349 + _LT_SYS_DYNAMIC_LINKER($1) 6350 + _LT_LINKER_HARDCODE_LIBPATH($1) 6351 + 6352 + _LT_CONFIG($1) 6353 + fi # test -n "$compiler" 6354 + 6355 + CC=$lt_save_CC 6356 + LDCXX=$LD 6357 + LD=$lt_save_LD 6358 + GCC=$lt_save_GCC 6359 + with_gnu_ld=$lt_save_with_gnu_ld 6360 + lt_cv_path_LDCXX=$lt_cv_path_LD 6361 + lt_cv_path_LD=$lt_save_path_LD 6362 + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld 6363 + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld 6364 +fi # test "$_lt_caught_CXX_error" != yes 6365 + 6366 +AC_LANG_POP 6367 +])# _LT_LANG_CXX_CONFIG 6368 + 6369 + 6370 +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) 6371 +# --------------------------------- 6372 +# Figure out "hidden" library dependencies from verbose 6373 +# compiler output when linking a shared library. 6374 +# Parse the compiler output and extract the necessary 6375 +# objects, libraries and library flags. 6376 +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], 6377 +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl 6378 +# Dependencies to place before and after the object being linked: 6379 +_LT_TAGVAR(predep_objects, $1)= 6380 +_LT_TAGVAR(postdep_objects, $1)= 6381 +_LT_TAGVAR(predeps, $1)= 6382 +_LT_TAGVAR(postdeps, $1)= 6383 +_LT_TAGVAR(compiler_lib_search_path, $1)= 6384 + 6385 +dnl we can't use the lt_simple_compile_test_code here, 6386 +dnl because it contains code intended for an executable, 6387 +dnl not a library. It's possible we should let each 6388 +dnl tag define a new lt_????_link_test_code variable, 6389 +dnl but it's only used here... 6390 +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF 6391 +int a; 6392 +void foo (void) { a = 0; } 6393 +_LT_EOF 6394 +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF 6395 +class Foo 6396 +{ 6397 +public: 6398 + Foo (void) { a = 0; } 6399 +private: 6400 + int a; 6401 +}; 6402 +_LT_EOF 6403 +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF 6404 + subroutine foo 6405 + implicit none 6406 + integer*4 a 6407 + a=0 6408 + return 6409 + end 6410 +_LT_EOF 6411 +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF 6412 + subroutine foo 6413 + implicit none 6414 + integer a 6415 + a=0 6416 + return 6417 + end 6418 +_LT_EOF 6419 +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF 6420 +public class foo { 6421 + private int a; 6422 + public void bar (void) { 6423 + a = 0; 6424 + } 6425 +}; 6426 +_LT_EOF 6427 +]) 6428 +dnl Parse the compiler output and extract the necessary 6429 +dnl objects, libraries and library flags. 6430 +if AC_TRY_EVAL(ac_compile); then 6431 + # Parse the compiler output and extract the necessary 6432 + # objects, libraries and library flags. 6433 + 6434 + # Sentinel used to keep track of whether or not we are before 6435 + # the conftest object file. 6436 + pre_test_object_deps_done=no 6437 + 6438 + for p in `eval "$output_verbose_link_cmd"`; do 6439 + case $p in 6440 + 6441 + -L* | -R* | -l*) 6442 + # Some compilers place space between "-{L,R}" and the path. 6443 + # Remove the space. 6444 + if test $p = "-L" || 6445 + test $p = "-R"; then 6446 + prev=$p 6447 + continue 6448 + else 6449 + prev= 6450 + fi 6451 + 6452 + if test "$pre_test_object_deps_done" = no; then 6453 + case $p in 6454 + -L* | -R*) 6455 + # Internal compiler library paths should come after those 6456 + # provided the user. The postdeps already come after the 6457 + # user supplied libs so there is no need to process them. 6458 + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then 6459 + _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" 6460 + else 6461 + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" 6462 + fi 6463 + ;; 6464 + # The "-l" case would never come before the object being 6465 + # linked, so don't bother handling this case. 6466 + esac 6467 + else 6468 + if test -z "$_LT_TAGVAR(postdeps, $1)"; then 6469 + _LT_TAGVAR(postdeps, $1)="${prev}${p}" 6470 + else 6471 + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" 6472 + fi 6473 + fi 6474 + ;; 6475 + 6476 + *.$objext) 6477 + # This assumes that the test object file only shows up 6478 + # once in the compiler output. 6479 + if test "$p" = "conftest.$objext"; then 6480 + pre_test_object_deps_done=yes 6481 + continue 6482 + fi 6483 + 6484 + if test "$pre_test_object_deps_done" = no; then 6485 + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then 6486 + _LT_TAGVAR(predep_objects, $1)="$p" 6487 + else 6488 + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" 6489 + fi 6490 + else 6491 + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then 6492 + _LT_TAGVAR(postdep_objects, $1)="$p" 6493 + else 6494 + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" 6495 + fi 6496 + fi 6497 + ;; 6498 + 6499 + *) ;; # Ignore the rest. 6500 + 6501 + esac 6502 + done 6503 + 6504 + # Clean up. 6505 + rm -f a.out a.exe 6506 +else 6507 + echo "libtool.m4: error: problem compiling $1 test program" 6508 +fi 6509 + 6510 +$RM -f confest.$objext 6511 + 6512 +# PORTME: override above test on systems where it is broken 6513 +m4_if([$1], [CXX], 6514 +[case $host_os in 6515 +interix[[3-9]]*) 6516 + # Interix 3.5 installs completely hosed .la files for C++, so rather than 6517 + # hack all around it, let's just trust "g++" to DTRT. 6518 + _LT_TAGVAR(predep_objects,$1)= 6519 + _LT_TAGVAR(postdep_objects,$1)= 6520 + _LT_TAGVAR(postdeps,$1)= 6521 + ;; 6522 + 6523 +linux*) 6524 + case `$CC -V 2>&1 | sed 5q` in 6525 + *Sun\ C*) 6526 + # Sun C++ 5.9 6527 + 6528 + # The more standards-conforming stlport4 library is 6529 + # incompatible with the Cstd library. Avoid specifying 6530 + # it if it's in CXXFLAGS. Ignore libCrun as 6531 + # -library=stlport4 depends on it. 6532 + case " $CXX $CXXFLAGS " in 6533 + *" -library=stlport4 "*) 6534 + solaris_use_stlport4=yes 6535 + ;; 6536 + esac 6537 + 6538 + if test "$solaris_use_stlport4" != yes; then 6539 + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' 6540 + fi 6541 + ;; 6542 + esac 6543 + ;; 6544 + 6545 +solaris*) 6546 + case $cc_basename in 6547 + CC*) 6548 + # The more standards-conforming stlport4 library is 6549 + # incompatible with the Cstd library. Avoid specifying 6550 + # it if it's in CXXFLAGS. Ignore libCrun as 6551 + # -library=stlport4 depends on it. 6552 + case " $CXX $CXXFLAGS " in 6553 + *" -library=stlport4 "*) 6554 + solaris_use_stlport4=yes 6512 6555 ;; 6513 6556 esac 6514 - fi 6557 + 6558 + # Adding this requires a known-good setup of shared libraries for 6559 + # Sun compiler versions before 5.6, else PIC objects from an old 6560 + # archive will be linked into the output, leading to subtle bugs. 6561 + if test "$solaris_use_stlport4" != yes; then 6562 + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' 6563 + fi 6564 + ;; 6565 + esac 6515 6566 ;; 6516 6567 esac 6517 -])# AC_LIBTOOL_PROG_LD_SHLIBS 6518 - 6519 - 6520 -# _LT_AC_FILE_LTDLL_C 6521 -# ------------------- 6522 -# Be careful that the start marker always follows a newline. 6523 -AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ 6524 -# /* ltdll.c starts here */ 6525 -# #define WIN32_LEAN_AND_MEAN 6526 -# #include <windows.h> 6527 -# #undef WIN32_LEAN_AND_MEAN 6528 -# #include <stdio.h> 6529 -# 6530 -# #ifndef __CYGWIN__ 6531 -# # ifdef __CYGWIN32__ 6532 -# # define __CYGWIN__ __CYGWIN32__ 6533 -# # endif 6534 -# #endif 6535 -# 6536 -# #ifdef __cplusplus 6537 -# extern "C" { 6538 -# #endif 6539 -# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); 6540 -# #ifdef __cplusplus 6541 -# } 6542 -# #endif 6543 -# 6544 -# #ifdef __CYGWIN__ 6545 -# #include <cygwin/cygwin_dll.h> 6546 -# DECLARE_CYGWIN_DLL( DllMain ); 6547 -# #endif 6548 -# HINSTANCE __hDllInstance_base; 6549 -# 6550 -# BOOL APIENTRY 6551 -# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) 6552 -# { 6553 -# __hDllInstance_base = hInst; 6554 -# return TRUE; 6555 -# } 6556 -# /* ltdll.c ends here */ 6557 -])# _LT_AC_FILE_LTDLL_C 6558 - 6559 - 6560 -# _LT_AC_TAGVAR(VARNAME, [TAGNAME]) 6561 -# --------------------------------- 6562 -AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) 6563 - 6564 - 6565 -# old names 6566 -AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) 6567 -AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) 6568 -AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) 6569 -AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) 6570 -AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) 6571 -AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) 6572 -AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) 6573 - 6574 -# This is just to silence aclocal about the macro not being used 6575 -ifelse([AC_DISABLE_FAST_INSTALL]) 6576 - 6577 -AC_DEFUN([LT_AC_PROG_GCJ], 6578 -[AC_CHECK_TOOL(GCJ, gcj, no) 6579 - test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" 6580 - AC_SUBST(GCJFLAGS) 6581 -]) 6582 - 6583 -AC_DEFUN([LT_AC_PROG_RC], 6584 -[AC_CHECK_TOOL(RC, windres, no) 6585 -]) 6586 - 6587 - 6588 -# Cheap backport of AS_EXECUTABLE_P and required macros 6589 -# from Autoconf 2.59; we should not use $as_executable_p directly. 6590 - 6591 -# _AS_TEST_PREPARE 6592 -# ---------------- 6593 -m4_ifndef([_AS_TEST_PREPARE], 6594 -[m4_defun([_AS_TEST_PREPARE], 6595 -[if test -x / >/dev/null 2>&1; then 6596 - as_executable_p='test -x' 6597 -else 6598 - as_executable_p='test -f' 6599 -fi 6600 -])])# _AS_TEST_PREPARE 6601 - 6602 -# AS_EXECUTABLE_P 6603 -# --------------- 6604 -# Check whether a file is executable. 6605 -m4_ifndef([AS_EXECUTABLE_P], 6606 -[m4_defun([AS_EXECUTABLE_P], 6607 -[AS_REQUIRE([_AS_TEST_PREPARE])dnl 6608 -$as_executable_p $1[]dnl 6609 -])])# AS_EXECUTABLE_P 6610 - 6568 +]) 6569 + 6570 +case " $_LT_TAGVAR(postdeps, $1) " in 6571 +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; 6572 +esac 6573 + _LT_TAGVAR(compiler_lib_search_dirs, $1)= 6574 +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then 6575 + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` 6576 +fi 6577 +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], 6578 + [The directories searched by this compiler when creating a shared library]) 6579 +_LT_TAGDECL([], [predep_objects], [1], 6580 + [Dependencies to place before and after the objects being linked to 6581 + create a shared library]) 6582 +_LT_TAGDECL([], [postdep_objects], [1]) 6583 +_LT_TAGDECL([], [predeps], [1]) 6584 +_LT_TAGDECL([], [postdeps], [1]) 6585 +_LT_TAGDECL([], [compiler_lib_search_path], [1], 6586 + [The library search path used internally by the compiler when linking 6587 + a shared library]) 6588 +])# _LT_SYS_HIDDEN_LIBDEPS 6589 + 6590 + 6591 +# _LT_PROG_F77 6592 +# ------------ 6593 +# Since AC_PROG_F77 is broken, in that it returns the empty string 6594 +# if there is no fortran compiler, we have our own version here. 6595 +m4_defun([_LT_PROG_F77], 6596 +[ 6597 +pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) 6598 +AC_PROG_F77 6599 +if test -z "$F77" || test "X$F77" = "Xno"; then 6600 + _lt_disable_F77=yes 6601 +fi 6602 +popdef([AC_MSG_ERROR]) 6603 +])# _LT_PROG_F77 6604 + 6605 +dnl aclocal-1.4 backwards compatibility: 6606 +dnl AC_DEFUN([_LT_PROG_F77], []) 6607 + 6608 + 6609 +# _LT_LANG_F77_CONFIG([TAG]) 6610 +# -------------------------- 6611 +# Ensure that the configuration variables for a Fortran 77 compiler are 6612 +# suitably defined. These variables are subsequently used by _LT_CONFIG 6613 +# to write the compiler configuration to `libtool'. 6614 +m4_defun([_LT_LANG_F77_CONFIG], 6615 +[AC_REQUIRE([_LT_PROG_F77])dnl 6616 +AC_LANG_PUSH(Fortran 77) 6617 + 6618 +_LT_TAGVAR(archive_cmds_need_lc, $1)=no 6619 +_LT_TAGVAR(allow_undefined_flag, $1)= 6620 +_LT_TAGVAR(always_export_symbols, $1)=no 6621 +_LT_TAGVAR(archive_expsym_cmds, $1)= 6622 +_LT_TAGVAR(export_dynamic_flag_spec, $1)= 6623 +_LT_TAGVAR(hardcode_direct, $1)=no 6624 +_LT_TAGVAR(hardcode_direct_absolute, $1)=no 6625 +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= 6626 +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= 6627 +_LT_TAGVAR(hardcode_libdir_separator, $1)= 6628 +_LT_TAGVAR(hardcode_minus_L, $1)=no 6629 +_LT_TAGVAR(hardcode_automatic, $1)=no 6630 +_LT_TAGVAR(inherit_rpath, $1)=no 6631 +_LT_TAGVAR(module_cmds, $1)= 6632 +_LT_TAGVAR(module_expsym_cmds, $1)= 6633 +_LT_TAGVAR(link_all_deplibs, $1)=unknown 6634 +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds 6635 +_LT_TAGVAR(no_undefined_flag, $1)= 6636 +_LT_TAGVAR(whole_archive_flag_spec, $1)= 6637 +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no 6638 + 6639 +# Source file extension for f77 test sources. 6640 +ac_ext=f 6641 + 6642 +# Object file extension for compiled f77 test sources. 6643 +objext=o 6644 +_LT_TAGVAR(objext, $1)=$objext 6645 + 6646 +# No sense in running all these tests if we already determined that 6647 +# the F77 compiler isn't working. Some variables (like enable_shared) 6648 +# are currently assumed to apply to all compilers on this platform, 6649 +# and will be corrupted by setting them based on a non-working compiler. 6650 +if test "$_lt_disable_F77" != yes; then 6651 + # Code to be used in simple compile tests 6652 + lt_simple_compile_test_code="\ 6653 + subroutine t 6654 + return 6655 + end 6656 +" 6657 + 6658 + # Code to be used in simple link tests 6659 + lt_simple_link_test_code="\ 6660 + program t 6661 + end 6662 +" 6663 + 6664 + # ltmain only uses $CC for tagged configurations so make sure $CC is set. 6665 + _LT_TAG_COMPILER 6666 + 6667 + # save warnings/boilerplate of simple test code 6668 + _LT_COMPILER_BOILERPLATE 6669 + _LT_LINKER_BOILERPLATE 6670 + 6671 + # Allow CC to be a program name with arguments. 6672 + lt_save_CC="$CC" 6673 + lt_save_GCC=$GCC 6674 + CC=${F77-"f77"} 6675 + compiler=$CC 6676 + _LT_TAGVAR(compiler, $1)=$CC 6677 + _LT_CC_BASENAME([$compiler]) 6678 + GCC=$G77 6679 + if test -n "$compiler"; then 6680 + AC_MSG_CHECKING([if libtool supports shared libraries]) 6681 + AC_MSG_RESULT([$can_build_shared]) 6682 + 6683 + AC_MSG_CHECKING([whether to build shared libraries]) 6684 + test "$can_build_shared" = "no" && enable_shared=no 6685 + 6686 + # On AIX, shared libraries and static libraries use the same namespace, and 6687 + # are all built from PIC. 6688 + case $host_os in 6689 + aix3*) 6690 + test "$enable_shared" = yes && enable_static=no 6691 + if test -n "$RANLIB"; then 6692 + archive_cmds="$archive_cmds~\$RANLIB \$lib" 6693 + postinstall_cmds='$RANLIB $lib' 6694 + fi 6695 + ;; 6696 + aix[[4-9]]*) 6697 + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then 6698 + test "$enable_shared" = yes && enable_static=no 6699 + fi 6700 + ;; 6701 + esac 6702 + AC_MSG_RESULT([$enable_shared]) 6703 + 6704 + AC_MSG_CHECKING([whether to build static libraries]) 6705 + # Make sure either enable_shared or enable_static is yes. 6706 + test "$enable_shared" = yes || enable_static=yes 6707 + AC_MSG_RESULT([$enable_static]) 6708 + 6709 + _LT_TAGVAR(GCC, $1)="$G77" 6710 + _LT_TAGVAR(LD, $1)="$LD" 6711 + 6712 + ## CAVEAT EMPTOR: 6713 + ## There is no encapsulation within the following macros, do not change 6714 + ## the running order or otherwise move them around unless you know exactly 6715 + ## what you are doing... 6716 + _LT_COMPILER_PIC($1) 6717 + _LT_COMPILER_C_O($1) 6718 + _LT_COMPILER_FILE_LOCKS($1) 6719 + _LT_LINKER_SHLIBS($1) 6720 + _LT_SYS_DYNAMIC_LINKER($1) 6721 + _LT_LINKER_HARDCODE_LIBPATH($1) 6722 + 6723 + _LT_CONFIG($1) 6724 + fi # test -n "$compiler" 6725 + 6726 + GCC=$lt_save_GCC 6727 + CC="$lt_save_CC" 6728 +fi # test "$_lt_disable_F77" != yes 6729 + 6730 +AC_LANG_POP 6731 +])# _LT_LANG_F77_CONFIG 6732 + 6733 + 6734 +# _LT_PROG_FC 6735 +# ----------- 6736 +# Since AC_PROG_FC is broken, in that it returns the empty string 6737 +# if there is no fortran compiler, we have our own version here. 6738 +m4_defun([_LT_PROG_FC], 6739 +[ 6740 +pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) 6741 +AC_PROG_FC 6742 +if test -z "$FC" || test "X$FC" = "Xno"; then 6743 + _lt_disable_FC=yes 6744 +fi 6745 +popdef([AC_MSG_ERROR]) 6746 +])# _LT_PROG_FC 6747 + 6748 +dnl aclocal-1.4 backwards compatibility: 6749 +dnl AC_DEFUN([_LT_PROG_FC], []) 6750 + 6751 + 6752 +# _LT_LANG_FC_CONFIG([TAG]) 6753 +# ------------------------- 6754 +# Ensure that the configuration variables for a Fortran compiler are 6755 +# suitably defined. These variables are subsequently used by _LT_CONFIG 6756 +# to write the compiler configuration to `libtool'. 6757 +m4_defun([_LT_LANG_FC_CONFIG], 6758 +[AC_REQUIRE([_LT_PROG_FC])dnl 6759 +AC_LANG_PUSH(Fortran) 6760 + 6761 +_LT_TAGVAR(archive_cmds_need_lc, $1)=no 6762 +_LT_TAGVAR(allow_undefined_flag, $1)= 6763 +_LT_TAGVAR(always_export_symbols, $1)=no 6764 +_LT_TAGVAR(archive_expsym_cmds, $1)= 6765 +_LT_TAGVAR(export_dynamic_flag_spec, $1)= 6766 +_LT_TAGVAR(hardcode_direct, $1)=no 6767 +_LT_TAGVAR(hardcode_direct_absolute, $1)=no 6768 +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= 6769 +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= 6770 +_LT_TAGVAR(hardcode_libdir_separator, $1)= 6771 +_LT_TAGVAR(hardcode_minus_L, $1)=no 6772 +_LT_TAGVAR(hardcode_automatic, $1)=no 6773 +_LT_TAGVAR(inherit_rpath, $1)=no 6774 +_LT_TAGVAR(module_cmds, $1)= 6775 +_LT_TAGVAR(module_expsym_cmds, $1)= 6776 +_LT_TAGVAR(link_all_deplibs, $1)=unknown 6777 +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds 6778 +_LT_TAGVAR(no_undefined_flag, $1)= 6779 +_LT_TAGVAR(whole_archive_flag_spec, $1)= 6780 +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no 6781 + 6782 +# Source file extension for fc test sources. 6783 +ac_ext=${ac_fc_srcext-f} 6784 + 6785 +# Object file extension for compiled fc test sources. 6786 +objext=o 6787 +_LT_TAGVAR(objext, $1)=$objext 6788 + 6789 +# No sense in running all these tests if we already determined that 6790 +# the FC compiler isn't working. Some variables (like enable_shared) 6791 +# are currently assumed to apply to all compilers on this platform, 6792 +# and will be corrupted by setting them based on a non-working compiler. 6793 +if test "$_lt_disable_FC" != yes; then 6794 + # Code to be used in simple compile tests 6795 + lt_simple_compile_test_code="\ 6796 + subroutine t 6797 + return 6798 + end 6799 +" 6800 + 6801 + # Code to be used in simple link tests 6802 + lt_simple_link_test_code="\ 6803 + program t 6804 + end 6805 +" 6806 + 6807 + # ltmain only uses $CC for tagged configurations so make sure $CC is set. 6808 + _LT_TAG_COMPILER 6809 + 6810 + # save warnings/boilerplate of simple test code 6811 + _LT_COMPILER_BOILERPLATE 6812 + _LT_LINKER_BOILERPLATE 6813 + 6814 + # Allow CC to be a program name with arguments. 6815 + lt_save_CC="$CC" 6816 + lt_save_GCC=$GCC 6817 + CC=${FC-"f95"} 6818 + compiler=$CC 6819 + GCC=$ac_cv_fc_compiler_gnu 6820 + 6821 + _LT_TAGVAR(compiler, $1)=$CC 6822 + _LT_CC_BASENAME([$compiler]) 6823 + 6824 + if test -n "$compiler"; then 6825 + AC_MSG_CHECKING([if libtool supports shared libraries]) 6826 + AC_MSG_RESULT([$can_build_shared]) 6827 + 6828 + AC_MSG_CHECKING([whether to build shared libraries]) 6829 + test "$can_build_shared" = "no" && enable_shared=no 6830 + 6831 + # On AIX, shared libraries and static libraries use the same namespace, and 6832 + # are all built from PIC. 6833 + case $host_os in 6834 + aix3*) 6835 + test "$enable_shared" = yes && enable_static=no 6836 + if test -n "$RANLIB"; then 6837 + archive_cmds="$archive_cmds~\$RANLIB \$lib" 6838 + postinstall_cmds='$RANLIB $lib' 6839 + fi 6840 + ;; 6841 + aix[[4-9]]*) 6842 + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then 6843 + test "$enable_shared" = yes && enable_static=no 6844 + fi 6845 + ;; 6846 + esac 6847 + AC_MSG_RESULT([$enable_shared]) 6848 + 6849 + AC_MSG_CHECKING([whether to build static libraries]) 6850 + # Make sure either enable_shared or enable_static is yes. 6851 + test "$enable_shared" = yes || enable_static=yes 6852 + AC_MSG_RESULT([$enable_static]) 6853 + 6854 + _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" 6855 + _LT_TAGVAR(LD, $1)="$LD" 6856 + 6857 + ## CAVEAT EMPTOR: 6858 + ## There is no encapsulation within the following macros, do not change 6859 + ## the running order or otherwise move them around unless you know exactly 6860 + ## what you are doing... 6861 + _LT_SYS_HIDDEN_LIBDEPS($1) 6862 + _LT_COMPILER_PIC($1) 6863 + _LT_COMPILER_C_O($1) 6864 + _LT_COMPILER_FILE_LOCKS($1) 6865 + _LT_LINKER_SHLIBS($1) 6866 + _LT_SYS_DYNAMIC_LINKER($1) 6867 + _LT_LINKER_HARDCODE_LIBPATH($1) 6868 + 6869 + _LT_CONFIG($1) 6870 + fi # test -n "$compiler" 6871 + 6872 + GCC=$lt_save_GCC 6873 + CC="$lt_save_CC" 6874 +fi # test "$_lt_disable_FC" != yes 6875 + 6876 +AC_LANG_POP 6877 +])# _LT_LANG_FC_CONFIG 6878 + 6879 + 6880 +# _LT_LANG_GCJ_CONFIG([TAG]) 6881 +# -------------------------- 6882 +# Ensure that the configuration variables for the GNU Java Compiler compiler 6883 +# are suitably defined. These variables are subsequently used by _LT_CONFIG 6884 +# to write the compiler configuration to `libtool'. 6885 +m4_defun([_LT_LANG_GCJ_CONFIG], 6886 +[AC_REQUIRE([LT_PROG_GCJ])dnl 6887 +AC_LANG_SAVE 6888 + 6889 +# Source file extension for Java test sources. 6890 +ac_ext=java 6891 + 6892 +# Object file extension for compiled Java test sources. 6893 +objext=o 6894 +_LT_TAGVAR(objext, $1)=$objext 6895 + 6896 +# Code to be used in simple compile tests 6897 +lt_simple_compile_test_code="class foo {}" 6898 + 6899 +# Code to be used in simple link tests 6900 +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' 6901 + 6902 +# ltmain only uses $CC for tagged configurations so make sure $CC is set. 6903 +_LT_TAG_COMPILER 6904 + 6905 +# save warnings/boilerplate of simple test code 6906 +_LT_COMPILER_BOILERPLATE 6907 +_LT_LINKER_BOILERPLATE 6908 + 6909 +# Allow CC to be a program name with arguments. 6910 +lt_save_CC="$CC" 6911 +lt_save_GCC=$GCC 6912 +GCC=yes 6913 +CC=${GCJ-"gcj"} 6914 +compiler=$CC 6915 +_LT_TAGVAR(compiler, $1)=$CC 6916 +_LT_TAGVAR(LD, $1)="$LD" 6917 +_LT_CC_BASENAME([$compiler]) 6918 + 6919 +# GCJ did not exist at the time GCC didn't implicitly link libc in. 6920 +_LT_TAGVAR(archive_cmds_need_lc, $1)=no 6921 + 6922 +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds 6923 + 6924 +if test -n "$compiler"; then 6925 + _LT_COMPILER_NO_RTTI($1) 6926 + _LT_COMPILER_PIC($1) 6927 + _LT_COMPILER_C_O($1) 6928 + _LT_COMPILER_FILE_LOCKS($1) 6929 + _LT_LINKER_SHLIBS($1) 6930 + _LT_LINKER_HARDCODE_LIBPATH($1) 6931 + 6932 + _LT_CONFIG($1) 6933 +fi 6934 + 6935 +AC_LANG_RESTORE 6936 + 6937 +GCC=$lt_save_GCC 6938 +CC="$lt_save_CC" 6939 +])# _LT_LANG_GCJ_CONFIG 6940 + 6941 + 6942 +# _LT_LANG_RC_CONFIG([TAG]) 6943 +# ------------------------- 6944 +# Ensure that the configuration variables for the Windows resource compiler 6945 +# are suitably defined. These variables are subsequently used by _LT_CONFIG 6946 +# to write the compiler configuration to `libtool'. 6947 +m4_defun([_LT_LANG_RC_CONFIG], 6948 +[AC_REQUIRE([LT_PROG_RC])dnl 6949 +AC_LANG_SAVE 6950 + 6951 +# Source file extension for RC test sources. 6952 +ac_ext=rc 6953 + 6954 +# Object file extension for compiled RC test sources. 6955 +objext=o 6956 +_LT_TAGVAR(objext, $1)=$objext 6957 + 6958 +# Code to be used in simple compile tests 6959 +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' 6960 + 6961 +# Code to be used in simple link tests 6962 +lt_simple_link_test_code="$lt_simple_compile_test_code" 6963 + 6964 +# ltmain only uses $CC for tagged configurations so make sure $CC is set. 6965 +_LT_TAG_COMPILER 6966 + 6967 +# save warnings/boilerplate of simple test code 6968 +_LT_COMPILER_BOILERPLATE 6969 +_LT_LINKER_BOILERPLATE 6970 + 6971 +# Allow CC to be a program name with arguments. 6972 +lt_save_CC="$CC" 6973 +lt_save_GCC=$GCC 6974 +GCC= 6975 +CC=${RC-"windres"} 6976 +compiler=$CC 6977 +_LT_TAGVAR(compiler, $1)=$CC 6978 +_LT_CC_BASENAME([$compiler]) 6979 +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes 6980 + 6981 +if test -n "$compiler"; then 6982 + : 6983 + _LT_CONFIG($1) 6984 +fi 6985 + 6986 +GCC=$lt_save_GCC 6987 +AC_LANG_RESTORE 6988 +CC="$lt_save_CC" 6989 +])# _LT_LANG_RC_CONFIG 6990 + 6991 + 6992 +# LT_PROG_GCJ 6993 +# ----------- 6994 +AC_DEFUN([LT_PROG_GCJ], 6995 +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], 6996 + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], 6997 + [AC_CHECK_TOOL(GCJ, gcj,) 6998 + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" 6999 + AC_SUBST(GCJFLAGS)])])[]dnl 7000 +]) 7001 + 7002 +# Old name: 7003 +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) 7004 +dnl aclocal-1.4 backwards compatibility: 7005 +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) 7006 + 7007 + 7008 +# LT_PROG_RC 7009 +# ---------- 7010 +AC_DEFUN([LT_PROG_RC], 7011 +[AC_CHECK_TOOL(RC, windres,) 7012 +]) 7013 + 7014 +# Old name: 7015 +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) 7016 +dnl aclocal-1.4 backwards compatibility: 7017 +dnl AC_DEFUN([LT_AC_PROG_RC], []) 7018 + 7019 + 7020 +# _LT_DECL_EGREP 7021 +# -------------- 7022 +# If we don't have a new enough Autoconf to choose the best grep 7023 +# available, choose the one first in the user's PATH. 7024 +m4_defun([_LT_DECL_EGREP], 7025 +[AC_REQUIRE([AC_PROG_EGREP])dnl 7026 +AC_REQUIRE([AC_PROG_FGREP])dnl 7027 +test -z "$GREP" && GREP=grep 7028 +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) 7029 +_LT_DECL([], [EGREP], [1], [An ERE matcher]) 7030 +_LT_DECL([], [FGREP], [1], [A literal string matcher]) 7031 +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too 7032 +AC_SUBST([GREP]) 7033 +]) 7034 + 7035 + 7036 +# _LT_DECL_OBJDUMP 7037 +# -------------- 7038 +# If we don't have a new enough Autoconf to choose the best objdump 7039 +# available, choose the one first in the user's PATH. 7040 +m4_defun([_LT_DECL_OBJDUMP], 7041 +[AC_CHECK_TOOL(OBJDUMP, objdump, false) 7042 +test -z "$OBJDUMP" && OBJDUMP=objdump 7043 +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) 7044 +AC_SUBST([OBJDUMP]) 7045 +]) 7046 + 7047 + 7048 +# _LT_DECL_SED 7049 +# ------------ 7050 +# Check for a fully-functional sed program, that truncates 7051 +# as few characters as possible. Prefer GNU sed if found. 7052 +m4_defun([_LT_DECL_SED], 7053 +[AC_PROG_SED 7054 +test -z "$SED" && SED=sed 7055 +Xsed="$SED -e 1s/^X//" 7056 +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) 7057 +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], 7058 + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) 7059 +])# _LT_DECL_SED 7060 + 7061 +m4_ifndef([AC_PROG_SED], [ 6611 7062 # NOTE: This macro has been submitted for inclusion into # 6612 7063 # GNU Autoconf as AC_PROG_SED. When it is available in # 6613 7064 # a released version of Autoconf we should remove this # 6614 7065 # macro and use it instead. # 6615 -# LT_AC_PROG_SED 6616 -# -------------- 6617 -# Check for a fully-functional sed program, that truncates 6618 -# as few characters as possible. Prefer GNU sed if found. 6619 -AC_DEFUN([LT_AC_PROG_SED], 7066 + 7067 +m4_defun([AC_PROG_SED], 6620 7068 [AC_MSG_CHECKING([for a sed that does not truncate output]) 6621 7069 AC_CACHE_VAL(lt_cv_path_SED, 6622 7070 [# Loop through the user's path and test for sed and gsed. 6623 7071 # Then use that list of sed's as ones to test for truncation. 6624 7072 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 6625 7073 for as_dir in $PATH 6626 7074 do 6627 7075 IFS=$as_save_IFS 6628 7076 test -z "$as_dir" && as_dir=. 6629 7077 for lt_ac_prog in sed gsed; do 6630 7078 for ac_exec_ext in '' $ac_executable_extensions; do 6631 - if AS_EXECUTABLE_P(["$as_dir/$lt_ac_prog$ac_exec_ext"]); then 7079 + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then 6632 7080 lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" 6633 7081 fi 6634 7082 done 6635 7083 done 6636 7084 done 6637 7085 IFS=$as_save_IFS 6638 7086 lt_ac_max=0 ................................................................................ 6665 7113 fi 6666 7114 done 6667 7115 done 6668 7116 ]) 6669 7117 SED=$lt_cv_path_SED 6670 7118 AC_SUBST([SED]) 6671 7119 AC_MSG_RESULT([$SED]) 6672 -]) 6673 - 6674 -# Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. 7120 +])#AC_PROG_SED 7121 +])#m4_ifndef 7122 + 7123 +# Old name: 7124 +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) 7125 +dnl aclocal-1.4 backwards compatibility: 7126 +dnl AC_DEFUN([LT_AC_PROG_SED], []) 7127 + 7128 + 7129 +# _LT_CHECK_SHELL_FEATURES 7130 +# ------------------------ 7131 +# Find out whether the shell is Bourne or XSI compatible, 7132 +# or has some other useful features. 7133 +m4_defun([_LT_CHECK_SHELL_FEATURES], 7134 +[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) 7135 +# Try some XSI features 7136 +xsi_shell=no 7137 +( _lt_dummy="a/b/c" 7138 + test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ 7139 + = c,a/b,, \ 7140 + && eval 'test $(( 1 + 1 )) -eq 2 \ 7141 + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ 7142 + && xsi_shell=yes 7143 +AC_MSG_RESULT([$xsi_shell]) 7144 +_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) 7145 + 7146 +AC_MSG_CHECKING([whether the shell understands "+="]) 7147 +lt_shell_append=no 7148 +( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ 7149 + >/dev/null 2>&1 \ 7150 + && lt_shell_append=yes 7151 +AC_MSG_RESULT([$lt_shell_append]) 7152 +_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) 7153 + 7154 +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then 7155 + lt_unset=unset 7156 +else 7157 + lt_unset=false 7158 +fi 7159 +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl 7160 + 7161 +# test EBCDIC or ASCII 7162 +case `echo X|tr X '\101'` in 7163 + A) # ASCII based system 7164 + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr 7165 + lt_SP2NL='tr \040 \012' 7166 + lt_NL2SP='tr \015\012 \040\040' 7167 + ;; 7168 + *) # EBCDIC based system 7169 + lt_SP2NL='tr \100 \n' 7170 + lt_NL2SP='tr \r\n \100\100' 7171 + ;; 7172 +esac 7173 +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl 7174 +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl 7175 +])# _LT_CHECK_SHELL_FEATURES 7176 + 7177 + 7178 +# _LT_PROG_XSI_SHELLFNS 7179 +# --------------------- 7180 +# Bourne and XSI compatible variants of some useful shell functions. 7181 +m4_defun([_LT_PROG_XSI_SHELLFNS], 7182 +[case $xsi_shell in 7183 + yes) 7184 + cat << \_LT_EOF >> "$cfgfile" 7185 + 7186 +# func_dirname file append nondir_replacement 7187 +# Compute the dirname of FILE. If nonempty, add APPEND to the result, 7188 +# otherwise set result to NONDIR_REPLACEMENT. 7189 +func_dirname () 7190 +{ 7191 + case ${1} in 7192 + */*) func_dirname_result="${1%/*}${2}" ;; 7193 + * ) func_dirname_result="${3}" ;; 7194 + esac 7195 +} 7196 + 7197 +# func_basename file 7198 +func_basename () 7199 +{ 7200 + func_basename_result="${1##*/}" 7201 +} 7202 + 7203 +# func_dirname_and_basename file append nondir_replacement 7204 +# perform func_basename and func_dirname in a single function 7205 +# call: 7206 +# dirname: Compute the dirname of FILE. If nonempty, 7207 +# add APPEND to the result, otherwise set result 7208 +# to NONDIR_REPLACEMENT. 7209 +# value returned in "$func_dirname_result" 7210 +# basename: Compute filename of FILE. 7211 +# value retuned in "$func_basename_result" 7212 +# Implementation must be kept synchronized with func_dirname 7213 +# and func_basename. For efficiency, we do not delegate to 7214 +# those functions but instead duplicate the functionality here. 7215 +func_dirname_and_basename () 7216 +{ 7217 + case ${1} in 7218 + */*) func_dirname_result="${1%/*}${2}" ;; 7219 + * ) func_dirname_result="${3}" ;; 7220 + esac 7221 + func_basename_result="${1##*/}" 7222 +} 7223 + 7224 +# func_stripname prefix suffix name 7225 +# strip PREFIX and SUFFIX off of NAME. 7226 +# PREFIX and SUFFIX must not contain globbing or regex special 7227 +# characters, hashes, percent signs, but SUFFIX may contain a leading 7228 +# dot (in which case that matches only a dot). 7229 +func_stripname () 7230 +{ 7231 + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are 7232 + # positional parameters, so assign one to ordinary parameter first. 7233 + func_stripname_result=${3} 7234 + func_stripname_result=${func_stripname_result#"${1}"} 7235 + func_stripname_result=${func_stripname_result%"${2}"} 7236 +} 7237 + 7238 +# func_opt_split 7239 +func_opt_split () 7240 +{ 7241 + func_opt_split_opt=${1%%=*} 7242 + func_opt_split_arg=${1#*=} 7243 +} 7244 + 7245 +# func_lo2o object 7246 +func_lo2o () 7247 +{ 7248 + case ${1} in 7249 + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; 7250 + *) func_lo2o_result=${1} ;; 7251 + esac 7252 +} 7253 + 7254 +# func_xform libobj-or-source 7255 +func_xform () 7256 +{ 7257 + func_xform_result=${1%.*}.lo 7258 +} 7259 + 7260 +# func_arith arithmetic-term... 7261 +func_arith () 7262 +{ 7263 + func_arith_result=$(( $[*] )) 7264 +} 7265 + 7266 +# func_len string 7267 +# STRING may not start with a hyphen. 7268 +func_len () 7269 +{ 7270 + func_len_result=${#1} 7271 +} 7272 + 7273 +_LT_EOF 7274 + ;; 7275 + *) # Bourne compatible functions. 7276 + cat << \_LT_EOF >> "$cfgfile" 7277 + 7278 +# func_dirname file append nondir_replacement 7279 +# Compute the dirname of FILE. If nonempty, add APPEND to the result, 7280 +# otherwise set result to NONDIR_REPLACEMENT. 7281 +func_dirname () 7282 +{ 7283 + # Extract subdirectory from the argument. 7284 + func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` 7285 + if test "X$func_dirname_result" = "X${1}"; then 7286 + func_dirname_result="${3}" 7287 + else 7288 + func_dirname_result="$func_dirname_result${2}" 7289 + fi 7290 +} 7291 + 7292 +# func_basename file 7293 +func_basename () 7294 +{ 7295 + func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` 7296 +} 7297 + 7298 +dnl func_dirname_and_basename 7299 +dnl A portable version of this function is already defined in general.m4sh 7300 +dnl so there is no need for it here. 7301 + 7302 +# func_stripname prefix suffix name 7303 +# strip PREFIX and SUFFIX off of NAME. 7304 +# PREFIX and SUFFIX must not contain globbing or regex special 7305 +# characters, hashes, percent signs, but SUFFIX may contain a leading 7306 +# dot (in which case that matches only a dot). 7307 +# func_strip_suffix prefix name 7308 +func_stripname () 7309 +{ 7310 + case ${2} in 7311 + .*) func_stripname_result=`$ECHO "X${3}" \ 7312 + | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; 7313 + *) func_stripname_result=`$ECHO "X${3}" \ 7314 + | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; 7315 + esac 7316 +} 7317 + 7318 +# sed scripts: 7319 +my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' 7320 +my_sed_long_arg='1s/^-[[^=]]*=//' 7321 + 7322 +# func_opt_split 7323 +func_opt_split () 7324 +{ 7325 + func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` 7326 + func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` 7327 +} 7328 + 7329 +# func_lo2o object 7330 +func_lo2o () 7331 +{ 7332 + func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` 7333 +} 7334 + 7335 +# func_xform libobj-or-source 7336 +func_xform () 7337 +{ 7338 + func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` 7339 +} 7340 + 7341 +# func_arith arithmetic-term... 7342 +func_arith () 7343 +{ 7344 + func_arith_result=`expr "$[@]"` 7345 +} 7346 + 7347 +# func_len string 7348 +# STRING may not start with a hyphen. 7349 +func_len () 7350 +{ 7351 + func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` 7352 +} 7353 + 7354 +_LT_EOF 7355 +esac 7356 + 7357 +case $lt_shell_append in 7358 + yes) 7359 + cat << \_LT_EOF >> "$cfgfile" 7360 + 7361 +# func_append var value 7362 +# Append VALUE to the end of shell variable VAR. 7363 +func_append () 7364 +{ 7365 + eval "$[1]+=\$[2]" 7366 +} 7367 +_LT_EOF 7368 + ;; 7369 + *) 7370 + cat << \_LT_EOF >> "$cfgfile" 7371 + 7372 +# func_append var value 7373 +# Append VALUE to the end of shell variable VAR. 7374 +func_append () 7375 +{ 7376 + eval "$[1]=\$$[1]\$[2]" 7377 +} 7378 + 7379 +_LT_EOF 7380 + ;; 7381 + esac 7382 +]) 7383 + 7384 +# Helper functions for option handling. -*- Autoconf -*- 7385 +# 7386 +# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. 7387 +# Written by Gary V. Vaughan, 2004 7388 +# 7389 +# This file is free software; the Free Software Foundation gives 7390 +# unlimited permission to copy and/or distribute it, with or without 7391 +# modifications, as long as this notice is preserved. 7392 + 7393 +# serial 6 ltoptions.m4 7394 + 7395 +# This is to help aclocal find these macros, as it can't see m4_define. 7396 +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) 7397 + 7398 + 7399 +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) 7400 +# ------------------------------------------ 7401 +m4_define([_LT_MANGLE_OPTION], 7402 +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) 7403 + 7404 + 7405 +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) 7406 +# --------------------------------------- 7407 +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a 7408 +# matching handler defined, dispatch to it. Other OPTION-NAMEs are 7409 +# saved as a flag. 7410 +m4_define([_LT_SET_OPTION], 7411 +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl 7412 +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), 7413 + _LT_MANGLE_DEFUN([$1], [$2]), 7414 + [m4_warning([Unknown $1 option `$2'])])[]dnl 7415 +]) 7416 + 7417 + 7418 +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) 7419 +# ------------------------------------------------------------ 7420 +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. 7421 +m4_define([_LT_IF_OPTION], 7422 +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) 7423 + 7424 + 7425 +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) 7426 +# ------------------------------------------------------- 7427 +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME 7428 +# are set. 7429 +m4_define([_LT_UNLESS_OPTIONS], 7430 +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), 7431 + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), 7432 + [m4_define([$0_found])])])[]dnl 7433 +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 7434 +])[]dnl 7435 +]) 7436 + 7437 + 7438 +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) 7439 +# ---------------------------------------- 7440 +# OPTION-LIST is a space-separated list of Libtool options associated 7441 +# with MACRO-NAME. If any OPTION has a matching handler declared with 7442 +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about 7443 +# the unknown option and exit. 7444 +m4_defun([_LT_SET_OPTIONS], 7445 +[# Set options 7446 +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), 7447 + [_LT_SET_OPTION([$1], _LT_Option)]) 7448 + 7449 +m4_if([$1],[LT_INIT],[ 7450 + dnl 7451 + dnl Simply set some default values (i.e off) if boolean options were not 7452 + dnl specified: 7453 + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no 7454 + ]) 7455 + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no 7456 + ]) 7457 + dnl 7458 + dnl If no reference was made to various pairs of opposing options, then 7459 + dnl we run the default mode handler for the pair. For example, if neither 7460 + dnl `shared' nor `disable-shared' was passed, we enable building of shared 7461 + dnl archives by default: 7462 + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) 7463 + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) 7464 + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) 7465 + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], 7466 + [_LT_ENABLE_FAST_INSTALL]) 7467 + ]) 7468 +])# _LT_SET_OPTIONS 7469 + 7470 + 7471 + 7472 +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) 7473 +# ----------------------------------------- 7474 +m4_define([_LT_MANGLE_DEFUN], 7475 +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) 7476 + 7477 + 7478 +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) 7479 +# ----------------------------------------------- 7480 +m4_define([LT_OPTION_DEFINE], 7481 +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl 7482 +])# LT_OPTION_DEFINE 7483 + 7484 + 7485 +# dlopen 7486 +# ------ 7487 +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes 7488 +]) 7489 + 7490 +AU_DEFUN([AC_LIBTOOL_DLOPEN], 7491 +[_LT_SET_OPTION([LT_INIT], [dlopen]) 7492 +AC_DIAGNOSE([obsolete], 7493 +[$0: Remove this warning and the call to _LT_SET_OPTION when you 7494 +put the `dlopen' option into LT_INIT's first parameter.]) 7495 +]) 7496 + 7497 +dnl aclocal-1.4 backwards compatibility: 7498 +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) 7499 + 7500 + 7501 +# win32-dll 7502 +# --------- 7503 +# Declare package support for building win32 dll's. 7504 +LT_OPTION_DEFINE([LT_INIT], [win32-dll], 7505 +[enable_win32_dll=yes 7506 + 7507 +case $host in 7508 +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) 7509 + AC_CHECK_TOOL(AS, as, false) 7510 + AC_CHECK_TOOL(DLLTOOL, dlltool, false) 7511 + AC_CHECK_TOOL(OBJDUMP, objdump, false) 7512 + ;; 7513 +esac 7514 + 7515 +test -z "$AS" && AS=as 7516 +_LT_DECL([], [AS], [0], [Assembler program])dnl 7517 + 7518 +test -z "$DLLTOOL" && DLLTOOL=dlltool 7519 +_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl 7520 + 7521 +test -z "$OBJDUMP" && OBJDUMP=objdump 7522 +_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl 7523 +])# win32-dll 7524 + 7525 +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], 7526 +[AC_REQUIRE([AC_CANONICAL_HOST])dnl 7527 +_LT_SET_OPTION([LT_INIT], [win32-dll]) 7528 +AC_DIAGNOSE([obsolete], 7529 +[$0: Remove this warning and the call to _LT_SET_OPTION when you 7530 +put the `win32-dll' option into LT_INIT's first parameter.]) 7531 +]) 7532 + 7533 +dnl aclocal-1.4 backwards compatibility: 7534 +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) 7535 + 7536 + 7537 +# _LT_ENABLE_SHARED([DEFAULT]) 7538 +# ---------------------------- 7539 +# implement the --enable-shared flag, and supports the `shared' and 7540 +# `disable-shared' LT_INIT options. 7541 +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. 7542 +m4_define([_LT_ENABLE_SHARED], 7543 +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl 7544 +AC_ARG_ENABLE([shared], 7545 + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], 7546 + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], 7547 + [p=${PACKAGE-default} 7548 + case $enableval in 7549 + yes) enable_shared=yes ;; 7550 + no) enable_shared=no ;; 7551 + *) 7552 + enable_shared=no 7553 + # Look at the argument we got. We use all the common list separators. 7554 + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," 7555 + for pkg in $enableval; do 7556 + IFS="$lt_save_ifs" 7557 + if test "X$pkg" = "X$p"; then 7558 + enable_shared=yes 7559 + fi 7560 + done 7561 + IFS="$lt_save_ifs" 7562 + ;; 7563 + esac], 7564 + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) 7565 + 7566 + _LT_DECL([build_libtool_libs], [enable_shared], [0], 7567 + [Whether or not to build shared libraries]) 7568 +])# _LT_ENABLE_SHARED 7569 + 7570 +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) 7571 +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) 7572 + 7573 +# Old names: 7574 +AC_DEFUN([AC_ENABLE_SHARED], 7575 +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) 7576 +]) 7577 + 7578 +AC_DEFUN([AC_DISABLE_SHARED], 7579 +[_LT_SET_OPTION([LT_INIT], [disable-shared]) 7580 +]) 7581 + 7582 +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) 7583 +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) 7584 + 7585 +dnl aclocal-1.4 backwards compatibility: 7586 +dnl AC_DEFUN([AM_ENABLE_SHARED], []) 7587 +dnl AC_DEFUN([AM_DISABLE_SHARED], []) 7588 + 7589 + 7590 + 7591 +# _LT_ENABLE_STATIC([DEFAULT]) 7592 +# ---------------------------- 7593 +# implement the --enable-static flag, and support the `static' and 7594 +# `disable-static' LT_INIT options. 7595 +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. 7596 +m4_define([_LT_ENABLE_STATIC], 7597 +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl 7598 +AC_ARG_ENABLE([static], 7599 + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], 7600 + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], 7601 + [p=${PACKAGE-default} 7602 + case $enableval in 7603 + yes) enable_static=yes ;; 7604 + no) enable_static=no ;; 7605 + *) 7606 + enable_static=no 7607 + # Look at the argument we got. We use all the common list separators. 7608 + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," 7609 + for pkg in $enableval; do 7610 + IFS="$lt_save_ifs" 7611 + if test "X$pkg" = "X$p"; then 7612 + enable_static=yes 7613 + fi 7614 + done 7615 + IFS="$lt_save_ifs" 7616 + ;; 7617 + esac], 7618 + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) 7619 + 7620 + _LT_DECL([build_old_libs], [enable_static], [0], 7621 + [Whether or not to build static libraries]) 7622 +])# _LT_ENABLE_STATIC 7623 + 7624 +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) 7625 +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) 7626 + 7627 +# Old names: 7628 +AC_DEFUN([AC_ENABLE_STATIC], 7629 +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) 7630 +]) 7631 + 7632 +AC_DEFUN([AC_DISABLE_STATIC], 7633 +[_LT_SET_OPTION([LT_INIT], [disable-static]) 7634 +]) 7635 + 7636 +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) 7637 +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) 7638 + 7639 +dnl aclocal-1.4 backwards compatibility: 7640 +dnl AC_DEFUN([AM_ENABLE_STATIC], []) 7641 +dnl AC_DEFUN([AM_DISABLE_STATIC], []) 7642 + 7643 + 7644 + 7645 +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) 7646 +# ---------------------------------- 7647 +# implement the --enable-fast-install flag, and support the `fast-install' 7648 +# and `disable-fast-install' LT_INIT options. 7649 +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. 7650 +m4_define([_LT_ENABLE_FAST_INSTALL], 7651 +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl 7652 +AC_ARG_ENABLE([fast-install], 7653 + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], 7654 + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], 7655 + [p=${PACKAGE-default} 7656 + case $enableval in 7657 + yes) enable_fast_install=yes ;; 7658 + no) enable_fast_install=no ;; 7659 + *) 7660 + enable_fast_install=no 7661 + # Look at the argument we got. We use all the common list separators. 7662 + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," 7663 + for pkg in $enableval; do 7664 + IFS="$lt_save_ifs" 7665 + if test "X$pkg" = "X$p"; then 7666 + enable_fast_install=yes 7667 + fi 7668 + done 7669 + IFS="$lt_save_ifs" 7670 + ;; 7671 + esac], 7672 + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) 7673 + 7674 +_LT_DECL([fast_install], [enable_fast_install], [0], 7675 + [Whether or not to optimize for fast installation])dnl 7676 +])# _LT_ENABLE_FAST_INSTALL 7677 + 7678 +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) 7679 +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) 7680 + 7681 +# Old names: 7682 +AU_DEFUN([AC_ENABLE_FAST_INSTALL], 7683 +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) 7684 +AC_DIAGNOSE([obsolete], 7685 +[$0: Remove this warning and the call to _LT_SET_OPTION when you put 7686 +the `fast-install' option into LT_INIT's first parameter.]) 7687 +]) 7688 + 7689 +AU_DEFUN([AC_DISABLE_FAST_INSTALL], 7690 +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) 7691 +AC_DIAGNOSE([obsolete], 7692 +[$0: Remove this warning and the call to _LT_SET_OPTION when you put 7693 +the `disable-fast-install' option into LT_INIT's first parameter.]) 7694 +]) 7695 + 7696 +dnl aclocal-1.4 backwards compatibility: 7697 +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) 7698 +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) 7699 + 7700 + 7701 +# _LT_WITH_PIC([MODE]) 7702 +# -------------------- 7703 +# implement the --with-pic flag, and support the `pic-only' and `no-pic' 7704 +# LT_INIT options. 7705 +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. 7706 +m4_define([_LT_WITH_PIC], 7707 +[AC_ARG_WITH([pic], 7708 + [AS_HELP_STRING([--with-pic], 7709 + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], 7710 + [pic_mode="$withval"], 7711 + [pic_mode=default]) 7712 + 7713 +test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) 7714 + 7715 +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl 7716 +])# _LT_WITH_PIC 7717 + 7718 +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) 7719 +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) 7720 + 7721 +# Old name: 7722 +AU_DEFUN([AC_LIBTOOL_PICMODE], 7723 +[_LT_SET_OPTION([LT_INIT], [pic-only]) 7724 +AC_DIAGNOSE([obsolete], 7725 +[$0: Remove this warning and the call to _LT_SET_OPTION when you 7726 +put the `pic-only' option into LT_INIT's first parameter.]) 7727 +]) 7728 + 7729 +dnl aclocal-1.4 backwards compatibility: 7730 +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) 7731 + 7732 + 7733 +m4_define([_LTDL_MODE], []) 7734 +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], 7735 + [m4_define([_LTDL_MODE], [nonrecursive])]) 7736 +LT_OPTION_DEFINE([LTDL_INIT], [recursive], 7737 + [m4_define([_LTDL_MODE], [recursive])]) 7738 +LT_OPTION_DEFINE([LTDL_INIT], [subproject], 7739 + [m4_define([_LTDL_MODE], [subproject])]) 7740 + 7741 +m4_define([_LTDL_TYPE], []) 7742 +LT_OPTION_DEFINE([LTDL_INIT], [installable], 7743 + [m4_define([_LTDL_TYPE], [installable])]) 7744 +LT_OPTION_DEFINE([LTDL_INIT], [convenience], 7745 + [m4_define([_LTDL_TYPE], [convenience])]) 7746 + 7747 +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- 7748 +# 7749 +# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. 7750 +# Written by Gary V. Vaughan, 2004 7751 +# 7752 +# This file is free software; the Free Software Foundation gives 7753 +# unlimited permission to copy and/or distribute it, with or without 7754 +# modifications, as long as this notice is preserved. 7755 + 7756 +# serial 6 ltsugar.m4 7757 + 7758 +# This is to help aclocal find these macros, as it can't see m4_define. 7759 +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) 7760 + 7761 + 7762 +# lt_join(SEP, ARG1, [ARG2...]) 7763 +# ----------------------------- 7764 +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their 7765 +# associated separator. 7766 +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier 7767 +# versions in m4sugar had bugs. 7768 +m4_define([lt_join], 7769 +[m4_if([$#], [1], [], 7770 + [$#], [2], [[$2]], 7771 + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) 7772 +m4_define([_lt_join], 7773 +[m4_if([$#$2], [2], [], 7774 + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) 7775 + 7776 + 7777 +# lt_car(LIST) 7778 +# lt_cdr(LIST) 7779 +# ------------ 7780 +# Manipulate m4 lists. 7781 +# These macros are necessary as long as will still need to support 7782 +# Autoconf-2.59 which quotes differently. 7783 +m4_define([lt_car], [[$1]]) 7784 +m4_define([lt_cdr], 7785 +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], 7786 + [$#], 1, [], 7787 + [m4_dquote(m4_shift($@))])]) 7788 +m4_define([lt_unquote], $1) 7789 + 7790 + 7791 +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) 7792 +# ------------------------------------------ 7793 +# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. 7794 +# Note that neither SEPARATOR nor STRING are expanded; they are appended 7795 +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). 7796 +# No SEPARATOR is output if MACRO-NAME was previously undefined (different 7797 +# than defined and empty). 7798 +# 7799 +# This macro is needed until we can rely on Autoconf 2.62, since earlier 7800 +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. 7801 +m4_define([lt_append], 7802 +[m4_define([$1], 7803 + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) 7804 + 7805 + 7806 + 7807 +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) 7808 +# ---------------------------------------------------------- 7809 +# Produce a SEP delimited list of all paired combinations of elements of 7810 +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list 7811 +# has the form PREFIXmINFIXSUFFIXn. 7812 +# Needed until we can rely on m4_combine added in Autoconf 2.62. 7813 +m4_define([lt_combine], 7814 +[m4_if(m4_eval([$# > 3]), [1], 7815 + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl 7816 +[[m4_foreach([_Lt_prefix], [$2], 7817 + [m4_foreach([_Lt_suffix], 7818 + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, 7819 + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) 7820 + 7821 + 7822 +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) 7823 +# ----------------------------------------------------------------------- 7824 +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited 7825 +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. 7826 +m4_define([lt_if_append_uniq], 7827 +[m4_ifdef([$1], 7828 + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], 7829 + [lt_append([$1], [$2], [$3])$4], 7830 + [$5])], 7831 + [lt_append([$1], [$2], [$3])$4])]) 7832 + 7833 + 7834 +# lt_dict_add(DICT, KEY, VALUE) 7835 +# ----------------------------- 7836 +m4_define([lt_dict_add], 7837 +[m4_define([$1($2)], [$3])]) 7838 + 7839 + 7840 +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) 7841 +# -------------------------------------------- 7842 +m4_define([lt_dict_add_subkey], 7843 +[m4_define([$1($2:$3)], [$4])]) 7844 + 7845 + 7846 +# lt_dict_fetch(DICT, KEY, [SUBKEY]) 7847 +# ---------------------------------- 7848 +m4_define([lt_dict_fetch], 7849 +[m4_ifval([$3], 7850 + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), 7851 + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) 7852 + 7853 + 7854 +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) 7855 +# ----------------------------------------------------------------- 7856 +m4_define([lt_if_dict_fetch], 7857 +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], 7858 + [$5], 7859 + [$6])]) 7860 + 7861 + 7862 +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) 7863 +# -------------------------------------------------------------- 7864 +m4_define([lt_dict_filter], 7865 +[m4_if([$5], [], [], 7866 + [lt_join(m4_quote(m4_default([$4], [[, ]])), 7867 + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), 7868 + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl 7869 +]) 7870 + 7871 +# ltversion.m4 -- version numbers -*- Autoconf -*- 7872 +# 7873 +# Copyright (C) 2004 Free Software Foundation, Inc. 7874 +# Written by Scott James Remnant, 2004 7875 +# 7876 +# This file is free software; the Free Software Foundation gives 7877 +# unlimited permission to copy and/or distribute it, with or without 7878 +# modifications, as long as this notice is preserved. 7879 + 7880 +# Generated from ltversion.in. 7881 + 7882 +# serial 3017 ltversion.m4 7883 +# This file is part of GNU Libtool 7884 + 7885 +m4_define([LT_PACKAGE_VERSION], [2.2.6b]) 7886 +m4_define([LT_PACKAGE_REVISION], [1.3017]) 7887 + 7888 +AC_DEFUN([LTVERSION_VERSION], 7889 +[macro_version='2.2.6b' 7890 +macro_revision='1.3017' 7891 +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) 7892 +_LT_DECL(, macro_revision, 0) 7893 +]) 7894 + 7895 +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- 7896 +# 7897 +# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. 7898 +# Written by Scott James Remnant, 2004. 7899 +# 7900 +# This file is free software; the Free Software Foundation gives 7901 +# unlimited permission to copy and/or distribute it, with or without 7902 +# modifications, as long as this notice is preserved. 7903 + 7904 +# serial 4 lt~obsolete.m4 7905 + 7906 +# These exist entirely to fool aclocal when bootstrapping libtool. 7907 +# 7908 +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) 7909 +# which have later been changed to m4_define as they aren't part of the 7910 +# exported API, or moved to Autoconf or Automake where they belong. 7911 +# 7912 +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN 7913 +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us 7914 +# using a macro with the same name in our local m4/libtool.m4 it'll 7915 +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define 7916 +# and doesn't know about Autoconf macros at all.) 7917 +# 7918 +# So we provide this file, which has a silly filename so it's always 7919 +# included after everything else. This provides aclocal with the 7920 +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything 7921 +# because those macros already exist, or will be overwritten later. 7922 +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. 7923 +# 7924 +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. 7925 +# Yes, that means every name once taken will need to remain here until 7926 +# we give up compatibility with versions before 1.7, at which point 7927 +# we need to keep only those names which we still refer to. 7928 + 7929 +# This is to help aclocal find these macros, as it can't see m4_define. 7930 +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) 7931 + 7932 +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) 7933 +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) 7934 +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) 7935 +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) 7936 +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) 7937 +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) 7938 +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) 7939 +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) 7940 +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) 7941 +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) 7942 +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) 7943 +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) 7944 +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) 7945 +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) 7946 +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) 7947 +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) 7948 +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) 7949 +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) 7950 +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) 7951 +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) 7952 +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) 7953 +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) 7954 +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) 7955 +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) 7956 +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) 7957 +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) 7958 +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) 7959 +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) 7960 +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) 7961 +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) 7962 +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) 7963 +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) 7964 +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) 7965 +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) 7966 +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) 7967 +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) 7968 +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) 7969 +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) 7970 +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) 7971 +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) 7972 +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) 7973 +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) 7974 +m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) 7975 +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) 7976 +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) 7977 +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) 7978 +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) 7979 +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) 7980 +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) 7981 +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) 7982 +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) 7983 +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) 7984 +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) 7985 +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) 7986 +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) 7987 + 7988 +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- 7989 +# serial 1 (pkg-config-0.24) 7990 +# 7991 +# Copyright © 2004 Scott James Remnant <scott@netsplit.com>. 7992 +# 7993 +# This program is free software; you can redistribute it and/or modify 7994 +# it under the terms of the GNU General Public License as published by 7995 +# the Free Software Foundation; either version 2 of the License, or 7996 +# (at your option) any later version. 7997 +# 7998 +# This program is distributed in the hope that it will be useful, but 7999 +# WITHOUT ANY WARRANTY; without even the implied warranty of 8000 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 8001 +# General Public License for more details. 8002 +# 8003 +# You should have received a copy of the GNU General Public License 8004 +# along with this program; if not, write to the Free Software 8005 +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 8006 +# 8007 +# As a special exception to the GNU General Public License, if you 8008 +# distribute this file as part of a program that contains a 8009 +# configuration script generated by Autoconf, you may include it under 8010 +# the same distribution terms that you use for the rest of that program. 8011 + 8012 +# PKG_PROG_PKG_CONFIG([MIN-VERSION]) 8013 +# ---------------------------------- 8014 +AC_DEFUN([PKG_PROG_PKG_CONFIG], 8015 +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) 8016 +m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) 8017 +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) 8018 +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) 8019 +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) 8020 + 8021 +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 8022 + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) 8023 +fi 8024 +if test -n "$PKG_CONFIG"; then 8025 + _pkg_min_version=m4_default([$1], [0.9.0]) 8026 + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) 8027 + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then 8028 + AC_MSG_RESULT([yes]) 8029 + else 8030 + AC_MSG_RESULT([no]) 8031 + PKG_CONFIG="" 8032 + fi 8033 +fi[]dnl 8034 +])# PKG_PROG_PKG_CONFIG 8035 + 8036 +# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) 8037 +# 8038 +# Check to see whether a particular set of modules exists. Similar 8039 +# to PKG_CHECK_MODULES(), but does not set variables or print errors. 8040 +# 8041 +# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) 8042 +# only at the first occurence in configure.ac, so if the first place 8043 +# it's called might be skipped (such as if it is within an "if", you 8044 +# have to call PKG_CHECK_EXISTS manually 8045 +# -------------------------------------------------------------- 8046 +AC_DEFUN([PKG_CHECK_EXISTS], 8047 +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl 8048 +if test -n "$PKG_CONFIG" && \ 8049 + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then 8050 + m4_default([$2], [:]) 8051 +m4_ifvaln([$3], [else 8052 + $3])dnl 8053 +fi]) 8054 + 8055 +# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) 8056 +# --------------------------------------------- 8057 +m4_define([_PKG_CONFIG], 8058 +[if test -n "$$1"; then 8059 + pkg_cv_[]$1="$$1" 8060 + elif test -n "$PKG_CONFIG"; then 8061 + PKG_CHECK_EXISTS([$3], 8062 + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], 8063 + [pkg_failed=yes]) 8064 + else 8065 + pkg_failed=untried 8066 +fi[]dnl 8067 +])# _PKG_CONFIG 8068 + 8069 +# _PKG_SHORT_ERRORS_SUPPORTED 8070 +# ----------------------------- 8071 +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], 8072 +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) 8073 +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 8074 + _pkg_short_errors_supported=yes 8075 +else 8076 + _pkg_short_errors_supported=no 8077 +fi[]dnl 8078 +])# _PKG_SHORT_ERRORS_SUPPORTED 8079 + 8080 + 8081 +# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], 8082 +# [ACTION-IF-NOT-FOUND]) 8083 +# 8084 +# 8085 +# Note that if there is a possibility the first call to 8086 +# PKG_CHECK_MODULES might not happen, you should be sure to include an 8087 +# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac 8088 +# 8089 +# 8090 +# -------------------------------------------------------------- 8091 +AC_DEFUN([PKG_CHECK_MODULES], 8092 +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl 8093 +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl 8094 +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl 8095 + 8096 +pkg_failed=no 8097 +AC_MSG_CHECKING([for $1]) 8098 + 8099 +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) 8100 +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) 8101 + 8102 +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS 8103 +and $1[]_LIBS to avoid the need to call pkg-config. 8104 +See the pkg-config man page for more details.]) 8105 + 8106 +if test $pkg_failed = yes; then 8107 + AC_MSG_RESULT([no]) 8108 + _PKG_SHORT_ERRORS_SUPPORTED 8109 + if test $_pkg_short_errors_supported = yes; then 8110 + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` 8111 + else 8112 + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` 8113 + fi 8114 + # Put the nasty error message in config.log where it belongs 8115 + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD 8116 + 8117 + m4_default([$4], [AC_MSG_ERROR( 8118 +[Package requirements ($2) were not met: 8119 + 8120 +$$1_PKG_ERRORS 8121 + 8122 +Consider adjusting the PKG_CONFIG_PATH environment variable if you 8123 +installed software in a non-standard prefix. 8124 + 8125 +_PKG_TEXT])[]dnl 8126 + ]) 8127 +elif test $pkg_failed = untried; then 8128 + AC_MSG_RESULT([no]) 8129 + m4_default([$4], [AC_MSG_FAILURE( 8130 +[The pkg-config script could not be found or is too old. Make sure it 8131 +is in your PATH or set the PKG_CONFIG environment variable to the full 8132 +path to pkg-config. 8133 + 8134 +_PKG_TEXT 8135 + 8136 +To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl 8137 + ]) 8138 +else 8139 + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS 8140 + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS 8141 + AC_MSG_RESULT([yes]) 8142 + $3 8143 +fi[]dnl 8144 +])# PKG_CHECK_MODULES 8145 + 8146 +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. 6675 8147 # 6676 8148 # This file is free software; the Free Software Foundation 6677 8149 # gives unlimited permission to copy and/or distribute it, 6678 8150 # with or without modifications, as long as this notice is preserved. 6679 8151 6680 8152 # AM_AUTOMAKE_VERSION(VERSION) 6681 8153 # ---------------------------- 6682 8154 # Automake X.Y traces this macro to ensure aclocal.m4 has been 6683 8155 # generated from the m4 files accompanying Automake X.Y. 6684 8156 # (This private macro should not be called outside this file.) 6685 8157 AC_DEFUN([AM_AUTOMAKE_VERSION], 6686 -[am__api_version='1.10' 8158 +[am__api_version='1.11' 6687 8159 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to 6688 8160 dnl require some minimum version. Point them to the right macro. 6689 -m4_if([$1], [1.10.1], [], 8161 +m4_if([$1], [1.11.1], [], 6690 8162 [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl 6691 8163 ]) 6692 8164 6693 8165 # _AM_AUTOCONF_VERSION(VERSION) 6694 8166 # ----------------------------- 6695 8167 # aclocal traces this macro to find the Autoconf version. 6696 8168 # This is a private macro too. Using m4_define simplifies 6697 8169 # the logic in aclocal, which can simply ignore this definition. 6698 8170 m4_define([_AM_AUTOCONF_VERSION], []) 6699 8171 6700 8172 # AM_SET_CURRENT_AUTOMAKE_VERSION 6701 8173 # ------------------------------- 6702 8174 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. 6703 -# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. 8175 +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. 6704 8176 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], 6705 -[AM_AUTOMAKE_VERSION([1.10.1])dnl 8177 +[AM_AUTOMAKE_VERSION([1.11.1])dnl 6706 8178 m4_ifndef([AC_AUTOCONF_VERSION], 6707 8179 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl 6708 -_AM_AUTOCONF_VERSION(AC_AUTOCONF_VERSION)]) 8180 +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) 6709 8181 6710 8182 # AM_AUX_DIR_EXPAND -*- Autoconf -*- 6711 8183 6712 8184 # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. 6713 8185 # 6714 8186 # This file is free software; the Free Software Foundation 6715 8187 # gives unlimited permission to copy and/or distribute it, ................................................................................ 6758 8230 AC_PREREQ([2.50])dnl 6759 8231 # expand $ac_aux_dir to an absolute path 6760 8232 am_aux_dir=`cd $ac_aux_dir && pwd` 6761 8233 ]) 6762 8234 6763 8235 # AM_CONDITIONAL -*- Autoconf -*- 6764 8236 6765 -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006 8237 +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 6766 8238 # Free Software Foundation, Inc. 6767 8239 # 6768 8240 # This file is free software; the Free Software Foundation 6769 8241 # gives unlimited permission to copy and/or distribute it, 6770 8242 # with or without modifications, as long as this notice is preserved. 6771 8243 6772 -# serial 8 8244 +# serial 9 6773 8245 6774 8246 # AM_CONDITIONAL(NAME, SHELL-CONDITION) 6775 8247 # ------------------------------------- 6776 8248 # Define a conditional. 6777 8249 AC_DEFUN([AM_CONDITIONAL], 6778 8250 [AC_PREREQ(2.52)dnl 6779 8251 ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], 6780 8252 [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl 6781 8253 AC_SUBST([$1_TRUE])dnl 6782 8254 AC_SUBST([$1_FALSE])dnl 6783 8255 _AM_SUBST_NOTMAKE([$1_TRUE])dnl 6784 8256 _AM_SUBST_NOTMAKE([$1_FALSE])dnl 8257 +m4_define([_AM_COND_VALUE_$1], [$2])dnl 6785 8258 if $2; then 6786 8259 $1_TRUE= 6787 8260 $1_FALSE='#' 6788 8261 else 6789 8262 $1_TRUE='#' 6790 8263 $1_FALSE= 6791 8264 fi 6792 8265 AC_CONFIG_COMMANDS_PRE( 6793 8266 [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then 6794 8267 AC_MSG_ERROR([[conditional "$1" was never defined. 6795 8268 Usually this means the macro was only invoked conditionally.]]) 6796 8269 fi])]) 6797 8270 6798 -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 8271 +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 6799 8272 # Free Software Foundation, Inc. 6800 8273 # 6801 8274 # This file is free software; the Free Software Foundation 6802 8275 # gives unlimited permission to copy and/or distribute it, 6803 8276 # with or without modifications, as long as this notice is preserved. 6804 8277 6805 -# serial 9 8278 +# serial 10 6806 8279 6807 8280 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be 6808 8281 # written in clear, in which case automake, when reading aclocal.m4, 6809 8282 # will think it sees a *use*, and therefore will trigger all it's 6810 8283 # C support machinery. Also note that it means that autoscan, seeing 6811 8284 # CC etc. in the Makefile, will ask for an AC_PROG_CC use... 6812 8285 ................................................................................ 6855 8328 # directory. 6856 8329 mkdir sub 6857 8330 6858 8331 am_cv_$1_dependencies_compiler_type=none 6859 8332 if test "$am_compiler_list" = ""; then 6860 8333 am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` 6861 8334 fi 8335 + am__universal=false 8336 + m4_case([$1], [CC], 8337 + [case " $depcc " in #( 8338 + *\ -arch\ *\ -arch\ *) am__universal=true ;; 8339 + esac], 8340 + [CXX], 8341 + [case " $depcc " in #( 8342 + *\ -arch\ *\ -arch\ *) am__universal=true ;; 8343 + esac]) 8344 + 6862 8345 for depmode in $am_compiler_list; do 6863 8346 # Setup a source with many dependencies, because some compilers 6864 8347 # like to wrap large dependency lists on column 80 (with \), and 6865 8348 # we should not choose a depcomp mode which is confused by this. 6866 8349 # 6867 8350 # We need to recreate these files for each test, as the compiler may 6868 8351 # overwrite some of them when testing with obscure command lines. ................................................................................ 6872 8355 echo '#include "conftst'$i'.h"' >> sub/conftest.c 6873 8356 # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with 6874 8357 # Solaris 8's {/usr,}/bin/sh. 6875 8358 touch sub/conftst$i.h 6876 8359 done 6877 8360 echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf 6878 8361 8362 + # We check with `-c' and `-o' for the sake of the "dashmstdout" 8363 + # mode. It turns out that the SunPro C++ compiler does not properly 8364 + # handle `-M -o', and we need to detect this. Also, some Intel 8365 + # versions had trouble with output in subdirs 8366 + am__obj=sub/conftest.${OBJEXT-o} 8367 + am__minus_obj="-o $am__obj" 6879 8368 case $depmode in 8369 + gcc) 8370 + # This depmode causes a compiler race in universal mode. 8371 + test "$am__universal" = false || continue 8372 + ;; 6880 8373 nosideeffect) 6881 8374 # after this tag, mechanisms are not by side-effect, so they'll 6882 8375 # only be used when explicitly requested 6883 8376 if test "x$enable_dependency_tracking" = xyes; then 6884 8377 continue 6885 8378 else 6886 8379 break 6887 8380 fi 6888 8381 ;; 8382 + msvisualcpp | msvcmsys) 8383 + # This compiler won't grok `-c -o', but also, the minuso test has 8384 + # not run yet. These depmodes are late enough in the game, and 8385 + # so weak that their functioning should not be impacted. 8386 + am__obj=conftest.${OBJEXT-o} 8387 + am__minus_obj= 8388 + ;; 6889 8389 none) break ;; 6890 8390 esac 6891 - # We check with `-c' and `-o' for the sake of the "dashmstdout" 6892 - # mode. It turns out that the SunPro C++ compiler does not properly 6893 - # handle `-M -o', and we need to detect this. 6894 8391 if depmode=$depmode \ 6895 - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ 8392 + source=sub/conftest.c object=$am__obj \ 6896 8393 depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ 6897 - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ 8394 + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ 6898 8395 >/dev/null 2>conftest.err && 6899 8396 grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && 6900 8397 grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && 6901 - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && 8398 + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && 6902 8399 ${MAKE-make} -s -f confmf > /dev/null 2>&1; then 6903 8400 # icc doesn't choke on unknown options, it will just issue warnings 6904 8401 # or remarks (even with -Werror). So we grep stderr for any message 6905 8402 # that says an option was ignored or not supported. 6906 8403 # When given -MP, icc 7.0 and 7.1 complain thusly: 6907 8404 # icc: Command line warning: ignoring option '-M'; no argument required 6908 8405 # The diagnosis changed in icc 8.0: ................................................................................ 6951 8448 AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) 6952 8449 AC_SUBST([AMDEPBACKSLASH])dnl 6953 8450 _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl 6954 8451 ]) 6955 8452 6956 8453 # Generate code to set up dependency tracking. -*- Autoconf -*- 6957 8454 6958 -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 8455 +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 6959 8456 # Free Software Foundation, Inc. 6960 8457 # 6961 8458 # This file is free software; the Free Software Foundation 6962 8459 # gives unlimited permission to copy and/or distribute it, 6963 8460 # with or without modifications, as long as this notice is preserved. 6964 8461 6965 -#serial 3 8462 +#serial 5 6966 8463 6967 8464 # _AM_OUTPUT_DEPENDENCY_COMMANDS 6968 8465 # ------------------------------ 6969 8466 AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], 6970 -[for mf in $CONFIG_FILES; do 6971 - # Strip MF so we end up with the name of the file. 6972 - mf=`echo "$mf" | sed -e 's/:.*$//'` 6973 - # Check whether this is an Automake generated Makefile or not. 6974 - # We used to match only the files named `Makefile.in', but 6975 - # some people rename them; so instead we look at the file content. 6976 - # Grep'ing the first line is not enough: some people post-process 6977 - # each Makefile.in and add a new line on top of each file to say so. 6978 - # Grep'ing the whole file is not good either: AIX grep has a line 6979 - # limit of 2048, but all sed's we know have understand at least 4000. 6980 - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then 6981 - dirpart=`AS_DIRNAME("$mf")` 6982 - else 6983 - continue 6984 - fi 6985 - # Extract the definition of DEPDIR, am__include, and am__quote 6986 - # from the Makefile without running `make'. 6987 - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` 6988 - test -z "$DEPDIR" && continue 6989 - am__include=`sed -n 's/^am__include = //p' < "$mf"` 6990 - test -z "am__include" && continue 6991 - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` 6992 - # When using ansi2knr, U may be empty or an underscore; expand it 6993 - U=`sed -n 's/^U = //p' < "$mf"` 6994 - # Find all dependency output files, they are included files with 6995 - # $(DEPDIR) in their names. We invoke sed twice because it is the 6996 - # simplest approach to changing $(DEPDIR) to its actual value in the 6997 - # expansion. 6998 - for file in `sed -n " 6999 - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ 7000 - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do 7001 - # Make sure the directory exists. 7002 - test -f "$dirpart/$file" && continue 7003 - fdir=`AS_DIRNAME(["$file"])` 7004 - AS_MKDIR_P([$dirpart/$fdir]) 7005 - # echo "creating $dirpart/$file" 7006 - echo '# dummy' > "$dirpart/$file" 8467 +[{ 8468 + # Autoconf 2.62 quotes --file arguments for eval, but not when files 8469 + # are listed without --file. Let's play safe and only enable the eval 8470 + # if we detect the quoting. 8471 + case $CONFIG_FILES in 8472 + *\'*) eval set x "$CONFIG_FILES" ;; 8473 + *) set x $CONFIG_FILES ;; 8474 + esac 8475 + shift 8476 + for mf 8477 + do 8478 + # Strip MF so we end up with the name of the file. 8479 + mf=`echo "$mf" | sed -e 's/:.*$//'` 8480 + # Check whether this is an Automake generated Makefile or not. 8481 + # We used to match only the files named `Makefile.in', but 8482 + # some people rename them; so instead we look at the file content. 8483 + # Grep'ing the first line is not enough: some people post-process 8484 + # each Makefile.in and add a new line on top of each file to say so. 8485 + # Grep'ing the whole file is not good either: AIX grep has a line 8486 + # limit of 2048, but all sed's we know have understand at least 4000. 8487 + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then 8488 + dirpart=`AS_DIRNAME("$mf")` 8489 + else 8490 + continue 8491 + fi 8492 + # Extract the definition of DEPDIR, am__include, and am__quote 8493 + # from the Makefile without running `make'. 8494 + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` 8495 + test -z "$DEPDIR" && continue 8496 + am__include=`sed -n 's/^am__include = //p' < "$mf"` 8497 + test -z "am__include" && continue 8498 + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` 8499 + # When using ansi2knr, U may be empty or an underscore; expand it 8500 + U=`sed -n 's/^U = //p' < "$mf"` 8501 + # Find all dependency output files, they are included files with 8502 + # $(DEPDIR) in their names. We invoke sed twice because it is the 8503 + # simplest approach to changing $(DEPDIR) to its actual value in the 8504 + # expansion. 8505 + for file in `sed -n " 8506 + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ 8507 + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do 8508 + # Make sure the directory exists. 8509 + test -f "$dirpart/$file" && continue 8510 + fdir=`AS_DIRNAME(["$file"])` 8511 + AS_MKDIR_P([$dirpart/$fdir]) 8512 + # echo "creating $dirpart/$file" 8513 + echo '# dummy' > "$dirpart/$file" 8514 + done 7007 8515 done 7008 -done 8516 +} 7009 8517 ])# _AM_OUTPUT_DEPENDENCY_COMMANDS 7010 8518 7011 8519 7012 8520 # AM_OUTPUT_DEPENDENCY_COMMANDS 7013 8521 # ----------------------------- 7014 8522 # This macro should only be invoked once -- use via AC_REQUIRE. 7015 8523 # ................................................................................ 7021 8529 [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], 7022 8530 [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) 7023 8531 ]) 7024 8532 7025 8533 # Do all the work for Automake. -*- Autoconf -*- 7026 8534 7027 8535 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 7028 -# 2005, 2006, 2008 Free Software Foundation, Inc. 8536 +# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. 7029 8537 # 7030 8538 # This file is free software; the Free Software Foundation 7031 8539 # gives unlimited permission to copy and/or distribute it, 7032 8540 # with or without modifications, as long as this notice is preserved. 7033 8541 7034 -# serial 13 8542 +# serial 16 7035 8543 7036 8544 # This macro actually does too much. Some checks are only needed if 7037 8545 # your package does certain things. But this isn't really a big deal. 7038 8546 7039 8547 # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) 7040 8548 # AM_INIT_AUTOMAKE([OPTIONS]) 7041 8549 # ----------------------------------------------- ................................................................................ 7044 8552 # and VERSION should now be passed to AC_INIT and removed from 7045 8553 # the call to AM_INIT_AUTOMAKE. 7046 8554 # We support both call styles for the transition. After 7047 8555 # the next Automake release, Autoconf can make the AC_INIT 7048 8556 # arguments mandatory, and then we can depend on a new Autoconf 7049 8557 # release and drop the old call support. 7050 8558 AC_DEFUN([AM_INIT_AUTOMAKE], 7051 -[AC_PREREQ([2.60])dnl 8559 +[AC_PREREQ([2.62])dnl 7052 8560 dnl Autoconf wants to disallow AM_ names. We explicitly allow 7053 8561 dnl the ones we care about. 7054 8562 m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl 7055 8563 AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl 7056 8564 AC_REQUIRE([AC_PROG_INSTALL])dnl 7057 8565 if test "`cd $srcdir && pwd`" != "`pwd`"; then 7058 8566 # Use -I$(srcdir) only when $(srcdir) != ., so that make's output ................................................................................ 7095 8603 AC_REQUIRE([AM_SANITY_CHECK])dnl 7096 8604 AC_REQUIRE([AC_ARG_PROGRAM])dnl 7097 8605 AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) 7098 8606 AM_MISSING_PROG(AUTOCONF, autoconf) 7099 8607 AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) 7100 8608 AM_MISSING_PROG(AUTOHEADER, autoheader) 7101 8609 AM_MISSING_PROG(MAKEINFO, makeinfo) 7102 -AM_PROG_INSTALL_SH 7103 -AM_PROG_INSTALL_STRIP 8610 +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl 8611 +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl 7104 8612 AC_REQUIRE([AM_PROG_MKDIR_P])dnl 7105 8613 # We need awk for the "check" target. The system "awk" is bad on 7106 8614 # some platforms. 7107 8615 AC_REQUIRE([AC_PROG_AWK])dnl 7108 8616 AC_REQUIRE([AC_PROG_MAKE_SET])dnl 7109 8617 AC_REQUIRE([AM_SET_LEADING_DOT])dnl 7110 8618 _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], 7111 - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], 7112 - [_AM_PROG_TAR([v7])])]) 8619 + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], 8620 + [_AM_PROG_TAR([v7])])]) 7113 8621 _AM_IF_OPTION([no-dependencies],, 7114 8622 [AC_PROVIDE_IFELSE([AC_PROG_CC], 7115 - [_AM_DEPENDENCIES(CC)], 7116 - [define([AC_PROG_CC], 7117 - defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl 8623 + [_AM_DEPENDENCIES(CC)], 8624 + [define([AC_PROG_CC], 8625 + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl 7118 8626 AC_PROVIDE_IFELSE([AC_PROG_CXX], 7119 - [_AM_DEPENDENCIES(CXX)], 7120 - [define([AC_PROG_CXX], 7121 - defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl 8627 + [_AM_DEPENDENCIES(CXX)], 8628 + [define([AC_PROG_CXX], 8629 + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl 7122 8630 AC_PROVIDE_IFELSE([AC_PROG_OBJC], 7123 - [_AM_DEPENDENCIES(OBJC)], 7124 - [define([AC_PROG_OBJC], 7125 - defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl 8631 + [_AM_DEPENDENCIES(OBJC)], 8632 + [define([AC_PROG_OBJC], 8633 + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl 8634 +]) 8635 +_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl 8636 +dnl The `parallel-tests' driver may need to know about EXEEXT, so add the 8637 +dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro 8638 +dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. 8639 +AC_CONFIG_COMMANDS_PRE(dnl 8640 +[m4_provide_if([_AM_COMPILER_EXEEXT], 8641 + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl 7126 8642 ]) 7127 -]) 8643 + 8644 +dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not 8645 +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further 8646 +dnl mangled by Autoconf and run in a shell conditional statement. 8647 +m4_define([_AC_COMPILER_EXEEXT], 8648 +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) 7128 8649 7129 8650 7130 8651 # When config.status generates a header, we must update the stamp-h file. 7131 8652 # This file resides in the same directory as the config header 7132 8653 # that is generated. The stamp files are numbered to have different names. 7133 8654 7134 8655 # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the ................................................................................ 7144 8665 break ;; 7145 8666 * ) 7146 8667 _am_stamp_count=`expr $_am_stamp_count + 1` ;; 7147 8668 esac 7148 8669 done 7149 8670 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) 7150 8671 7151 -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. 8672 +# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. 7152 8673 # 7153 8674 # This file is free software; the Free Software Foundation 7154 8675 # gives unlimited permission to copy and/or distribute it, 7155 8676 # with or without modifications, as long as this notice is preserved. 7156 8677 7157 8678 # AM_PROG_INSTALL_SH 7158 8679 # ------------------ 7159 8680 # Define $install_sh. 7160 8681 AC_DEFUN([AM_PROG_INSTALL_SH], 7161 8682 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl 7162 -install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} 8683 +if test x"${install_sh}" != xset; then 8684 + case $am_aux_dir in 8685 + *\ * | *\ *) 8686 + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; 8687 + *) 8688 + install_sh="\${SHELL} $am_aux_dir/install-sh" 8689 + esac 8690 +fi 7163 8691 AC_SUBST(install_sh)]) 7164 8692 7165 8693 # Copyright (C) 2003, 2005 Free Software Foundation, Inc. 7166 8694 # 7167 8695 # This file is free software; the Free Software Foundation 7168 8696 # gives unlimited permission to copy and/or distribute it, 7169 8697 # with or without modifications, as long as this notice is preserved. ................................................................................ 7182 8710 fi 7183 8711 rmdir .tst 2>/dev/null 7184 8712 AC_SUBST([am__leading_dot])]) 7185 8713 7186 8714 # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- 7187 8715 # From Jim Meyering 7188 8716 7189 -# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005 8717 +# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008 7190 8718 # Free Software Foundation, Inc. 7191 8719 # 7192 8720 # This file is free software; the Free Software Foundation 7193 8721 # gives unlimited permission to copy and/or distribute it, 7194 8722 # with or without modifications, as long as this notice is preserved. 7195 8723 7196 -# serial 4 8724 +# serial 5 7197 8725 8726 +# AM_MAINTAINER_MODE([DEFAULT-MODE]) 8727 +# ---------------------------------- 8728 +# Control maintainer-specific portions of Makefiles. 8729 +# Default is to disable them, unless `enable' is passed literally. 8730 +# For symmetry, `disable' may be passed as well. Anyway, the user 8731 +# can override the default with the --enable/--disable switch. 7198 8732 AC_DEFUN([AM_MAINTAINER_MODE], 7199 -[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) 7200 - dnl maintainer-mode is disabled by default 7201 - AC_ARG_ENABLE(maintainer-mode, 7202 -[ --enable-maintainer-mode enable make rules and dependencies not useful 8733 +[m4_case(m4_default([$1], [disable]), 8734 + [enable], [m4_define([am_maintainer_other], [disable])], 8735 + [disable], [m4_define([am_maintainer_other], [enable])], 8736 + [m4_define([am_maintainer_other], [enable]) 8737 + m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) 8738 +AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles]) 8739 + dnl maintainer-mode's default is 'disable' unless 'enable' is passed 8740 + AC_ARG_ENABLE([maintainer-mode], 8741 +[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful 7203 8742 (and sometimes confusing) to the casual installer], 7204 - USE_MAINTAINER_MODE=$enableval, 7205 - USE_MAINTAINER_MODE=no) 8743 + [USE_MAINTAINER_MODE=$enableval], 8744 + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) 7206 8745 AC_MSG_RESULT([$USE_MAINTAINER_MODE]) 7207 - AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes]) 8746 + AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) 7208 8747 MAINT=$MAINTAINER_MODE_TRUE 7209 - AC_SUBST(MAINT)dnl 8748 + AC_SUBST([MAINT])dnl 7210 8749 ] 7211 8750 ) 7212 8751 7213 8752 AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) 7214 8753 7215 8754 # Check to see how 'make' treats includes. -*- Autoconf -*- 7216 8755 7217 -# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. 8756 +# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. 7218 8757 # 7219 8758 # This file is free software; the Free Software Foundation 7220 8759 # gives unlimited permission to copy and/or distribute it, 7221 8760 # with or without modifications, as long as this notice is preserved. 7222 8761 7223 -# serial 3 8762 +# serial 4 7224 8763 7225 8764 # AM_MAKE_INCLUDE() 7226 8765 # ----------------- 7227 8766 # Check to see how make treats includes. 7228 8767 AC_DEFUN([AM_MAKE_INCLUDE], 7229 8768 [am_make=${MAKE-make} 7230 8769 cat > confinc << 'END' 7231 8770 am__doit: 7232 - @echo done 8771 + @echo this is the am__doit target 7233 8772 .PHONY: am__doit 7234 8773 END 7235 8774 # If we don't find an include directive, just comment out the code. 7236 8775 AC_MSG_CHECKING([for style of include used by $am_make]) 7237 8776 am__include="#" 7238 8777 am__quote= 7239 8778 _am_result=none 7240 8779 # First try GNU make style include. 7241 8780 echo "include confinc" > confmf 7242 -# We grep out `Entering directory' and `Leaving directory' 7243 -# messages which can occur if `w' ends up in MAKEFLAGS. 7244 -# In particular we don't look at `^make:' because GNU make might 7245 -# be invoked under some other name (usually "gmake"), in which 7246 -# case it prints its new name instead of `make'. 7247 -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then 7248 - am__include=include 7249 - am__quote= 7250 - _am_result=GNU 7251 -fi 8781 +# Ignore all kinds of additional output from `make'. 8782 +case `$am_make -s -f confmf 2> /dev/null` in #( 8783 +*the\ am__doit\ target*) 8784 + am__include=include 8785 + am__quote= 8786 + _am_result=GNU 8787 + ;; 8788 +esac 7252 8789 # Now try BSD make style include. 7253 8790 if test "$am__include" = "#"; then 7254 8791 echo '.include "confinc"' > confmf 7255 - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then 7256 - am__include=.include 7257 - am__quote="\"" 7258 - _am_result=BSD 7259 - fi 8792 + case `$am_make -s -f confmf 2> /dev/null` in #( 8793 + *the\ am__doit\ target*) 8794 + am__include=.include 8795 + am__quote="\"" 8796 + _am_result=BSD 8797 + ;; 8798 + esac 7260 8799 fi 7261 8800 AC_SUBST([am__include]) 7262 8801 AC_SUBST([am__quote]) 7263 8802 AC_MSG_RESULT([$_am_result]) 7264 8803 rm -f confinc confmf 7265 8804 ]) 7266 8805 7267 8806 # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- 7268 8807 7269 -# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005 8808 +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 7270 8809 # Free Software Foundation, Inc. 7271 8810 # 7272 8811 # This file is free software; the Free Software Foundation 7273 8812 # gives unlimited permission to copy and/or distribute it, 7274 8813 # with or without modifications, as long as this notice is preserved. 7275 8814 7276 -# serial 5 8815 +# serial 6 7277 8816 7278 8817 # AM_MISSING_PROG(NAME, PROGRAM) 7279 8818 # ------------------------------ 7280 8819 AC_DEFUN([AM_MISSING_PROG], 7281 8820 [AC_REQUIRE([AM_MISSING_HAS_RUN]) 7282 8821 $1=${$1-"${am_missing_run}$2"} 7283 8822 AC_SUBST($1)]) ................................................................................ 7286 8825 # AM_MISSING_HAS_RUN 7287 8826 # ------------------ 7288 8827 # Define MISSING if not defined so far and test if it supports --run. 7289 8828 # If it does, set am_missing_run to use it, otherwise, to nothing. 7290 8829 AC_DEFUN([AM_MISSING_HAS_RUN], 7291 8830 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl 7292 8831 AC_REQUIRE_AUX_FILE([missing])dnl 7293 -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" 8832 +if test x"${MISSING+set}" != xset; then 8833 + case $am_aux_dir in 8834 + *\ * | *\ *) 8835 + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; 8836 + *) 8837 + MISSING="\${SHELL} $am_aux_dir/missing" ;; 8838 + esac 8839 +fi 7294 8840 # Use eval to expand $SHELL 7295 8841 if eval "$MISSING --run true"; then 7296 8842 am_missing_run="$MISSING --run " 7297 8843 else 7298 8844 am_missing_run= 7299 8845 AC_MSG_WARN([`missing' script is too old or missing]) 7300 8846 fi ................................................................................ 7324 8870 [[\\/$]]* | ?:[[\\/]]*) ;; 7325 8871 */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; 7326 8872 esac 7327 8873 ]) 7328 8874 7329 8875 # Helper functions for option handling. -*- Autoconf -*- 7330 8876 7331 -# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. 8877 +# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. 7332 8878 # 7333 8879 # This file is free software; the Free Software Foundation 7334 8880 # gives unlimited permission to copy and/or distribute it, 7335 8881 # with or without modifications, as long as this notice is preserved. 7336 8882 7337 -# serial 3 8883 +# serial 4 7338 8884 7339 8885 # _AM_MANGLE_OPTION(NAME) 7340 8886 # ----------------------- 7341 8887 AC_DEFUN([_AM_MANGLE_OPTION], 7342 8888 [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) 7343 8889 7344 8890 # _AM_SET_OPTION(NAME) ................................................................................ 7347 8893 AC_DEFUN([_AM_SET_OPTION], 7348 8894 [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) 7349 8895 7350 8896 # _AM_SET_OPTIONS(OPTIONS) 7351 8897 # ---------------------------------- 7352 8898 # OPTIONS is a space-separated list of Automake options. 7353 8899 AC_DEFUN([_AM_SET_OPTIONS], 7354 -[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) 8900 +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) 7355 8901 7356 8902 # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) 7357 8903 # ------------------------------------------- 7358 8904 # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. 7359 8905 AC_DEFUN([_AM_IF_OPTION], 7360 8906 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) 7361 8907 7362 8908 # Check to make sure that the build environment is sane. -*- Autoconf -*- 7363 8909 7364 -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 8910 +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 7365 8911 # Free Software Foundation, Inc. 7366 8912 # 7367 8913 # This file is free software; the Free Software Foundation 7368 8914 # gives unlimited permission to copy and/or distribute it, 7369 8915 # with or without modifications, as long as this notice is preserved. 7370 8916 7371 -# serial 4 8917 +# serial 5 7372 8918 7373 8919 # AM_SANITY_CHECK 7374 8920 # --------------- 7375 8921 AC_DEFUN([AM_SANITY_CHECK], 7376 8922 [AC_MSG_CHECKING([whether build environment is sane]) 7377 8923 # Just in case 7378 8924 sleep 1 7379 8925 echo timestamp > conftest.file 8926 +# Reject unsafe characters in $srcdir or the absolute working directory 8927 +# name. Accept space and tab only in the latter. 8928 +am_lf=' 8929 +' 8930 +case `pwd` in 8931 + *[[\\\"\#\$\&\'\`$am_lf]]*) 8932 + AC_MSG_ERROR([unsafe absolute working directory name]);; 8933 +esac 8934 +case $srcdir in 8935 + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) 8936 + AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; 8937 +esac 8938 + 7380 8939 # Do `set' in a subshell so we don't clobber the current shell's 7381 8940 # arguments. Must try -L first in case configure is actually a 7382 8941 # symlink; some systems play weird games with the mod time of symlinks 7383 8942 # (eg FreeBSD returns the mod time of the symlink's containing 7384 8943 # directory). 7385 8944 if ( 7386 - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` 8945 + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` 7387 8946 if test "$[*]" = "X"; then 7388 8947 # -L didn't work. 7389 - set X `ls -t $srcdir/configure conftest.file` 8948 + set X `ls -t "$srcdir/configure" conftest.file` 7390 8949 fi 7391 8950 rm -f conftest.file 7392 8951 if test "$[*]" != "X $srcdir/configure conftest.file" \ 7393 8952 && test "$[*]" != "X conftest.file $srcdir/configure"; then 7394 8953 7395 8954 # If neither matched, then we have a broken ls. This can happen 7396 8955 # if, for instance, CONFIG_SHELL is bash and it inherits a ................................................................................ 7435 8994 dnl Don't test for $cross_compiling = yes, because it might be `maybe'. 7436 8995 if test "$cross_compiling" != no; then 7437 8996 AC_CHECK_TOOL([STRIP], [strip], :) 7438 8997 fi 7439 8998 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" 7440 8999 AC_SUBST([INSTALL_STRIP_PROGRAM])]) 7441 9000 7442 -# Copyright (C) 2006 Free Software Foundation, Inc. 9001 +# Copyright (C) 2006, 2008 Free Software Foundation, Inc. 7443 9002 # 7444 9003 # This file is free software; the Free Software Foundation 7445 9004 # gives unlimited permission to copy and/or distribute it, 7446 9005 # with or without modifications, as long as this notice is preserved. 9006 + 9007 +# serial 2 7447 9008 7448 9009 # _AM_SUBST_NOTMAKE(VARIABLE) 7449 9010 # --------------------------- 7450 9011 # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. 7451 9012 # This macro is traced by Automake. 7452 9013 AC_DEFUN([_AM_SUBST_NOTMAKE]) 7453 9014 9015 +# AM_SUBST_NOTMAKE(VARIABLE) 9016 +# --------------------------- 9017 +# Public sister of _AM_SUBST_NOTMAKE. 9018 +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) 9019 + 7454 9020 # Check how to create a tarball. -*- Autoconf -*- 7455 9021 7456 9022 # Copyright (C) 2004, 2005 Free Software Foundation, Inc. 7457 9023 # 7458 9024 # This file is free software; the Free Software Foundation 7459 9025 # gives unlimited permission to copy and/or distribute it, 7460 9026 # with or without modifications, as long as this notice is preserved.
Changes to config.guess.
1 -#! /bin/sh 2 -# Attempt to guess a canonical system name. 3 -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 4 -# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, 5 -# Inc. 6 - 7 -timestamp='2007-07-22' 8 - 9 -# This file is free software; you can redistribute it and/or modify it 10 -# under the terms of the GNU General Public License as published by 11 -# the Free Software Foundation; either version 2 of the License, or 12 -# (at your option) any later version. 13 -# 14 -# This program is distributed in the hope that it will be useful, but 15 -# WITHOUT ANY WARRANTY; without even the implied warranty of 16 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 -# General Public License for more details. 18 -# 19 -# You should have received a copy of the GNU General Public License 20 -# along with this program; if not, write to the Free Software 21 -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 22 -# 02110-1301, USA. 23 -# 24 -# As a special exception to the GNU General Public License, if you 25 -# distribute this file as part of a program that contains a 26 -# configuration script generated by Autoconf, you may include it under 27 -# the same distribution terms that you use for the rest of that program. 28 - 29 - 30 -# Originally written by Per Bothner <per@bothner.com>. 31 -# Please send patches to <config-patches@gnu.org>. Submit a context 32 -# diff and a properly formatted ChangeLog entry. 33 -# 34 -# This script attempts to guess a canonical system name similar to 35 -# config.sub. If it succeeds, it prints the system name on stdout, and 36 -# exits with 0. Otherwise, it exits with 1. 37 -# 38 -# The plan is that this can be called by configure scripts if you 39 -# don't specify an explicit build system type. 40 - 41 -me=`echo "$0" | sed -e 's,.*/,,'` 42 - 43 -usage="\ 44 -Usage: $0 [OPTION] 45 - 46 -Output the configuration name of the system \`$me' is run on. 47 - 48 -Operation modes: 49 - -h, --help print this help, then exit 50 - -t, --time-stamp print date of last modification, then exit 51 - -v, --version print version number, then exit 52 - 53 -Report bugs and patches to <config-patches@gnu.org>." 54 - 55 -version="\ 56 -GNU config.guess ($timestamp) 57 - 58 -Originally written by Per Bothner. 59 -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 60 -Free Software Foundation, Inc. 61 - 62 -This is free software; see the source for copying conditions. There is NO 63 -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 64 - 65 -help=" 66 -Try \`$me --help' for more information." 67 - 68 -# Parse command line 69 -while test $# -gt 0 ; do 70 - case $1 in 71 - --time-stamp | --time* | -t ) 72 - echo "$timestamp" ; exit ;; 73 - --version | -v ) 74 - echo "$version" ; exit ;; 75 - --help | --h* | -h ) 76 - echo "$usage"; exit ;; 77 - -- ) # Stop option processing 78 - shift; break ;; 79 - - ) # Use stdin as input. 80 - break ;; 81 - -* ) 82 - echo "$me: invalid option $1$help" >&2 83 - exit 1 ;; 84 - * ) 85 - break ;; 86 - esac 87 -done 88 - 89 -if test $# != 0; then 90 - echo "$me: too many arguments$help" >&2 91 - exit 1 92 -fi 93 - 94 -trap 'exit 1' 1 2 15 95 - 96 -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a 97 -# compiler to aid in system detection is discouraged as it requires 98 -# temporary files to be created and, as you can see below, it is a 99 -# headache to deal with in a portable fashion. 100 - 101 -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still 102 -# use `HOST_CC' if defined, but it is deprecated. 103 - 104 -# Portable tmp directory creation inspired by the Autoconf team. 105 - 106 -set_cc_for_build=' 107 -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; 108 -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; 109 -: ${TMPDIR=/tmp} ; 110 - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || 111 - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || 112 - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || 113 - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; 114 -dummy=$tmp/dummy ; 115 -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; 116 -case $CC_FOR_BUILD,$HOST_CC,$CC in 117 - ,,) echo "int x;" > $dummy.c ; 118 - for c in cc gcc c89 c99 ; do 119 - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then 120 - CC_FOR_BUILD="$c"; break ; 121 - fi ; 122 - done ; 123 - if test x"$CC_FOR_BUILD" = x ; then 124 - CC_FOR_BUILD=no_compiler_found ; 125 - fi 126 - ;; 127 - ,,*) CC_FOR_BUILD=$CC ;; 128 - ,*,*) CC_FOR_BUILD=$HOST_CC ;; 129 -esac ; set_cc_for_build= ;' 130 - 131 -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. 132 -# (ghazi@noc.rutgers.edu 1994-08-24) 133 -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then 134 - PATH=$PATH:/.attbin ; export PATH 135 -fi 136 - 137 -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown 138 -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown 139 -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown 140 -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown 141 - 142 -# Note: order is significant - the case branches are not exclusive. 143 - 144 -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in 145 - *:NetBSD:*:*) 146 - # NetBSD (nbsd) targets should (where applicable) match one or 147 - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, 148 - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently 149 - # switched to ELF, *-*-netbsd* would select the old 150 - # object file format. This provides both forward 151 - # compatibility and a consistent mechanism for selecting the 152 - # object file format. 153 - # 154 - # Note: NetBSD doesn't particularly care about the vendor 155 - # portion of the name. We always set it to "unknown". 156 - sysctl="sysctl -n hw.machine_arch" 157 - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ 158 - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` 159 - case "${UNAME_MACHINE_ARCH}" in 160 - armeb) machine=armeb-unknown ;; 161 - arm*) machine=arm-unknown ;; 162 - sh3el) machine=shl-unknown ;; 163 - sh3eb) machine=sh-unknown ;; 164 - sh5el) machine=sh5le-unknown ;; 165 - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; 166 - esac 167 - # The Operating System including object format, if it has switched 168 - # to ELF recently, or will in the future. 169 - case "${UNAME_MACHINE_ARCH}" in 170 - arm*|i386|m68k|ns32k|sh3*|sparc|vax) 171 - eval $set_cc_for_build 172 - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ 173 - | grep __ELF__ >/dev/null 174 - then 175 - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). 176 - # Return netbsd for either. FIX? 177 - os=netbsd 178 - else 179 - os=netbsdelf 180 - fi 181 - ;; 182 - *) 183 - os=netbsd 184 - ;; 185 - esac 186 - # The OS release 187 - # Debian GNU/NetBSD machines have a different userland, and 188 - # thus, need a distinct triplet. However, they do not need 189 - # kernel version information, so it can be replaced with a 190 - # suitable tag, in the style of linux-gnu. 191 - case "${UNAME_VERSION}" in 192 - Debian*) 193 - release='-gnu' 194 - ;; 195 - *) 196 - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` 197 - ;; 198 - esac 199 - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: 200 - # contains redundant information, the shorter form: 201 - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. 202 - echo "${machine}-${os}${release}" 203 - exit ;; 204 - *:OpenBSD:*:*) 205 - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` 206 - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} 207 - exit ;; 208 - *:ekkoBSD:*:*) 209 - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} 210 - exit ;; 211 - *:SolidBSD:*:*) 212 - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} 213 - exit ;; 214 - macppc:MirBSD:*:*) 215 - echo powerpc-unknown-mirbsd${UNAME_RELEASE} 216 - exit ;; 217 - *:MirBSD:*:*) 218 - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} 219 - exit ;; 220 - alpha:OSF1:*:*) 221 - case $UNAME_RELEASE in 222 - *4.0) 223 - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` 224 - ;; 225 - *5.*) 226 - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` 227 - ;; 228 - esac 229 - # According to Compaq, /usr/sbin/psrinfo has been available on 230 - # OSF/1 and Tru64 systems produced since 1995. I hope that 231 - # covers most systems running today. This code pipes the CPU 232 - # types through head -n 1, so we only detect the type of CPU 0. 233 - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` 234 - case "$ALPHA_CPU_TYPE" in 235 - "EV4 (21064)") 236 - UNAME_MACHINE="alpha" ;; 237 - "EV4.5 (21064)") 238 - UNAME_MACHINE="alpha" ;; 239 - "LCA4 (21066/21068)") 240 - UNAME_MACHINE="alpha" ;; 241 - "EV5 (21164)") 242 - UNAME_MACHINE="alphaev5" ;; 243 - "EV5.6 (21164A)") 244 - UNAME_MACHINE="alphaev56" ;; 245 - "EV5.6 (21164PC)") 246 - UNAME_MACHINE="alphapca56" ;; 247 - "EV5.7 (21164PC)") 248 - UNAME_MACHINE="alphapca57" ;; 249 - "EV6 (21264)") 250 - UNAME_MACHINE="alphaev6" ;; 251 - "EV6.7 (21264A)") 252 - UNAME_MACHINE="alphaev67" ;; 253 - "EV6.8CB (21264C)") 254 - UNAME_MACHINE="alphaev68" ;; 255 - "EV6.8AL (21264B)") 256 - UNAME_MACHINE="alphaev68" ;; 257 - "EV6.8CX (21264D)") 258 - UNAME_MACHINE="alphaev68" ;; 259 - "EV6.9A (21264/EV69A)") 260 - UNAME_MACHINE="alphaev69" ;; 261 - "EV7 (21364)") 262 - UNAME_MACHINE="alphaev7" ;; 263 - "EV7.9 (21364A)") 264 - UNAME_MACHINE="alphaev79" ;; 265 - esac 266 - # A Pn.n version is a patched version. 267 - # A Vn.n version is a released version. 268 - # A Tn.n version is a released field test version. 269 - # A Xn.n version is an unreleased experimental baselevel. 270 - # 1.2 uses "1.2" for uname -r. 271 - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` 272 - exit ;; 273 - Alpha\ *:Windows_NT*:*) 274 - # How do we know it's Interix rather than the generic POSIX subsystem? 275 - # Should we change UNAME_MACHINE based on the output of uname instead 276 - # of the specific Alpha model? 277 - echo alpha-pc-interix 278 - exit ;; 279 - 21064:Windows_NT:50:3) 280 - echo alpha-dec-winnt3.5 281 - exit ;; 282 - Amiga*:UNIX_System_V:4.0:*) 283 - echo m68k-unknown-sysv4 284 - exit ;; 285 - *:[Aa]miga[Oo][Ss]:*:*) 286 - echo ${UNAME_MACHINE}-unknown-amigaos 287 - exit ;; 288 - *:[Mm]orph[Oo][Ss]:*:*) 289 - echo ${UNAME_MACHINE}-unknown-morphos 290 - exit ;; 291 - *:OS/390:*:*) 292 - echo i370-ibm-openedition 293 - exit ;; 294 - *:z/VM:*:*) 295 - echo s390-ibm-zvmoe 296 - exit ;; 297 - *:OS400:*:*) 298 - echo powerpc-ibm-os400 299 - exit ;; 300 - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) 301 - echo arm-acorn-riscix${UNAME_RELEASE} 302 - exit ;; 303 - arm:riscos:*:*|arm:RISCOS:*:*) 304 - echo arm-unknown-riscos 305 - exit ;; 306 - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) 307 - echo hppa1.1-hitachi-hiuxmpp 308 - exit ;; 309 - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) 310 - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. 311 - if test "`(/bin/universe) 2>/dev/null`" = att ; then 312 - echo pyramid-pyramid-sysv3 313 - else 314 - echo pyramid-pyramid-bsd 315 - fi 316 - exit ;; 317 - NILE*:*:*:dcosx) 318 - echo pyramid-pyramid-svr4 319 - exit ;; 320 - DRS?6000:unix:4.0:6*) 321 - echo sparc-icl-nx6 322 - exit ;; 323 - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) 324 - case `/usr/bin/uname -p` in 325 - sparc) echo sparc-icl-nx7; exit ;; 326 - esac ;; 327 - sun4H:SunOS:5.*:*) 328 - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 329 - exit ;; 330 - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) 331 - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 332 - exit ;; 333 - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) 334 - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 335 - exit ;; 336 - sun4*:SunOS:6*:*) 337 - # According to config.sub, this is the proper way to canonicalize 338 - # SunOS6. Hard to guess exactly what SunOS6 will be like, but 339 - # it's likely to be more like Solaris than SunOS4. 340 - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 341 - exit ;; 342 - sun4*:SunOS:*:*) 343 - case "`/usr/bin/arch -k`" in 344 - Series*|S4*) 345 - UNAME_RELEASE=`uname -v` 346 - ;; 347 - esac 348 - # Japanese Language versions have a version number like `4.1.3-JL'. 349 - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` 350 - exit ;; 351 - sun3*:SunOS:*:*) 352 - echo m68k-sun-sunos${UNAME_RELEASE} 353 - exit ;; 354 - sun*:*:4.2BSD:*) 355 - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` 356 - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 357 - case "`/bin/arch`" in 358 - sun3) 359 - echo m68k-sun-sunos${UNAME_RELEASE} 360 - ;; 361 - sun4) 362 - echo sparc-sun-sunos${UNAME_RELEASE} 363 - ;; 364 - esac 365 - exit ;; 366 - aushp:SunOS:*:*) 367 - echo sparc-auspex-sunos${UNAME_RELEASE} 368 - exit ;; 369 - # The situation for MiNT is a little confusing. The machine name 370 - # can be virtually everything (everything which is not 371 - # "atarist" or "atariste" at least should have a processor 372 - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" 373 - # to the lowercase version "mint" (or "freemint"). Finally 374 - # the system name "TOS" denotes a system which is actually not 375 - # MiNT. But MiNT is downward compatible to TOS, so this should 376 - # be no problem. 377 - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) 378 - echo m68k-atari-mint${UNAME_RELEASE} 379 - exit ;; 380 - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) 381 - echo m68k-atari-mint${UNAME_RELEASE} 382 - exit ;; 383 - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) 384 - echo m68k-atari-mint${UNAME_RELEASE} 385 - exit ;; 386 - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) 387 - echo m68k-milan-mint${UNAME_RELEASE} 388 - exit ;; 389 - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) 390 - echo m68k-hades-mint${UNAME_RELEASE} 391 - exit ;; 392 - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) 393 - echo m68k-unknown-mint${UNAME_RELEASE} 394 - exit ;; 395 - m68k:machten:*:*) 396 - echo m68k-apple-machten${UNAME_RELEASE} 397 - exit ;; 398 - powerpc:machten:*:*) 399 - echo powerpc-apple-machten${UNAME_RELEASE} 400 - exit ;; 401 - RISC*:Mach:*:*) 402 - echo mips-dec-mach_bsd4.3 403 - exit ;; 404 - RISC*:ULTRIX:*:*) 405 - echo mips-dec-ultrix${UNAME_RELEASE} 406 - exit ;; 407 - VAX*:ULTRIX*:*:*) 408 - echo vax-dec-ultrix${UNAME_RELEASE} 409 - exit ;; 410 - 2020:CLIX:*:* | 2430:CLIX:*:*) 411 - echo clipper-intergraph-clix${UNAME_RELEASE} 412 - exit ;; 413 - mips:*:*:UMIPS | mips:*:*:RISCos) 414 - eval $set_cc_for_build 415 - sed 's/^ //' << EOF >$dummy.c 416 -#ifdef __cplusplus 417 -#include <stdio.h> /* for printf() prototype */ 418 - int main (int argc, char *argv[]) { 419 -#else 420 - int main (argc, argv) int argc; char *argv[]; { 421 -#endif 422 - #if defined (host_mips) && defined (MIPSEB) 423 - #if defined (SYSTYPE_SYSV) 424 - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); 425 - #endif 426 - #if defined (SYSTYPE_SVR4) 427 - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); 428 - #endif 429 - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) 430 - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); 431 - #endif 432 - #endif 433 - exit (-1); 434 - } 435 -EOF 436 - $CC_FOR_BUILD -o $dummy $dummy.c && 437 - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && 438 - SYSTEM_NAME=`$dummy $dummyarg` && 439 - { echo "$SYSTEM_NAME"; exit; } 440 - echo mips-mips-riscos${UNAME_RELEASE} 441 - exit ;; 442 - Motorola:PowerMAX_OS:*:*) 443 - echo powerpc-motorola-powermax 444 - exit ;; 445 - Motorola:*:4.3:PL8-*) 446 - echo powerpc-harris-powermax 447 - exit ;; 448 - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) 449 - echo powerpc-harris-powermax 450 - exit ;; 451 - Night_Hawk:Power_UNIX:*:*) 452 - echo powerpc-harris-powerunix 453 - exit ;; 454 - m88k:CX/UX:7*:*) 455 - echo m88k-harris-cxux7 456 - exit ;; 457 - m88k:*:4*:R4*) 458 - echo m88k-motorola-sysv4 459 - exit ;; 460 - m88k:*:3*:R3*) 461 - echo m88k-motorola-sysv3 462 - exit ;; 463 - AViiON:dgux:*:*) 464 - # DG/UX returns AViiON for all architectures 465 - UNAME_PROCESSOR=`/usr/bin/uname -p` 466 - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] 467 - then 468 - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ 469 - [ ${TARGET_BINARY_INTERFACE}x = x ] 470 - then 471 - echo m88k-dg-dgux${UNAME_RELEASE} 472 - else 473 - echo m88k-dg-dguxbcs${UNAME_RELEASE} 474 - fi 475 - else 476 - echo i586-dg-dgux${UNAME_RELEASE} 477 - fi 478 - exit ;; 479 - M88*:DolphinOS:*:*) # DolphinOS (SVR3) 480 - echo m88k-dolphin-sysv3 481 - exit ;; 482 - M88*:*:R3*:*) 483 - # Delta 88k system running SVR3 484 - echo m88k-motorola-sysv3 485 - exit ;; 486 - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) 487 - echo m88k-tektronix-sysv3 488 - exit ;; 489 - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) 490 - echo m68k-tektronix-bsd 491 - exit ;; 492 - *:IRIX*:*:*) 493 - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` 494 - exit ;; 495 - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. 496 - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id 497 - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' 498 - i*86:AIX:*:*) 499 - echo i386-ibm-aix 500 - exit ;; 501 - ia64:AIX:*:*) 502 - if [ -x /usr/bin/oslevel ] ; then 503 - IBM_REV=`/usr/bin/oslevel` 504 - else 505 - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} 506 - fi 507 - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} 508 - exit ;; 509 - *:AIX:2:3) 510 - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then 511 - eval $set_cc_for_build 512 - sed 's/^ //' << EOF >$dummy.c 513 - #include <sys/systemcfg.h> 514 - 515 - main() 516 - { 517 - if (!__power_pc()) 518 - exit(1); 519 - puts("powerpc-ibm-aix3.2.5"); 520 - exit(0); 521 - } 522 -EOF 523 - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` 524 - then 525 - echo "$SYSTEM_NAME" 526 - else 527 - echo rs6000-ibm-aix3.2.5 528 - fi 529 - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then 530 - echo rs6000-ibm-aix3.2.4 531 - else 532 - echo rs6000-ibm-aix3.2 533 - fi 534 - exit ;; 535 - *:AIX:*:[45]) 536 - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` 537 - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then 538 - IBM_ARCH=rs6000 539 - else 540 - IBM_ARCH=powerpc 541 - fi 542 - if [ -x /usr/bin/oslevel ] ; then 543 - IBM_REV=`/usr/bin/oslevel` 544 - else 545 - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} 546 - fi 547 - echo ${IBM_ARCH}-ibm-aix${IBM_REV} 548 - exit ;; 549 - *:AIX:*:*) 550 - echo rs6000-ibm-aix 551 - exit ;; 552 - ibmrt:4.4BSD:*|romp-ibm:BSD:*) 553 - echo romp-ibm-bsd4.4 554 - exit ;; 555 - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and 556 - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to 557 - exit ;; # report: romp-ibm BSD 4.3 558 - *:BOSX:*:*) 559 - echo rs6000-bull-bosx 560 - exit ;; 561 - DPX/2?00:B.O.S.:*:*) 562 - echo m68k-bull-sysv3 563 - exit ;; 564 - 9000/[34]??:4.3bsd:1.*:*) 565 - echo m68k-hp-bsd 566 - exit ;; 567 - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) 568 - echo m68k-hp-bsd4.4 569 - exit ;; 570 - 9000/[34678]??:HP-UX:*:*) 571 - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` 572 - case "${UNAME_MACHINE}" in 573 - 9000/31? ) HP_ARCH=m68000 ;; 574 - 9000/[34]?? ) HP_ARCH=m68k ;; 575 - 9000/[678][0-9][0-9]) 576 - if [ -x /usr/bin/getconf ]; then 577 - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` 578 - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` 579 - case "${sc_cpu_version}" in 580 - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 581 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 582 - 532) # CPU_PA_RISC2_0 583 - case "${sc_kernel_bits}" in 584 - 32) HP_ARCH="hppa2.0n" ;; 585 - 64) HP_ARCH="hppa2.0w" ;; 586 - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 587 - esac ;; 588 - esac 589 - fi 590 - if [ "${HP_ARCH}" = "" ]; then 591 - eval $set_cc_for_build 592 - sed 's/^ //' << EOF >$dummy.c 593 - 594 - #define _HPUX_SOURCE 595 - #include <stdlib.h> 596 - #include <unistd.h> 597 - 598 - int main () 599 - { 600 - #if defined(_SC_KERNEL_BITS) 601 - long bits = sysconf(_SC_KERNEL_BITS); 602 - #endif 603 - long cpu = sysconf (_SC_CPU_VERSION); 604 - 605 - switch (cpu) 606 - { 607 - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; 608 - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; 609 - case CPU_PA_RISC2_0: 610 - #if defined(_SC_KERNEL_BITS) 611 - switch (bits) 612 - { 613 - case 64: puts ("hppa2.0w"); break; 614 - case 32: puts ("hppa2.0n"); break; 615 - default: puts ("hppa2.0"); break; 616 - } break; 617 - #else /* !defined(_SC_KERNEL_BITS) */ 618 - puts ("hppa2.0"); break; 619 - #endif 620 - default: puts ("hppa1.0"); break; 621 - } 622 - exit (0); 623 - } 624 -EOF 625 - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` 626 - test -z "$HP_ARCH" && HP_ARCH=hppa 627 - fi ;; 628 - esac 629 - if [ ${HP_ARCH} = "hppa2.0w" ] 630 - then 631 - eval $set_cc_for_build 632 - 633 - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating 634 - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler 635 - # generating 64-bit code. GNU and HP use different nomenclature: 636 - # 637 - # $ CC_FOR_BUILD=cc ./config.guess 638 - # => hppa2.0w-hp-hpux11.23 639 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess 640 - # => hppa64-hp-hpux11.23 641 - 642 - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | 643 - grep __LP64__ >/dev/null 644 - then 645 - HP_ARCH="hppa2.0w" 646 - else 647 - HP_ARCH="hppa64" 648 - fi 649 - fi 650 - echo ${HP_ARCH}-hp-hpux${HPUX_REV} 651 - exit ;; 652 - ia64:HP-UX:*:*) 653 - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` 654 - echo ia64-hp-hpux${HPUX_REV} 655 - exit ;; 656 - 3050*:HI-UX:*:*) 657 - eval $set_cc_for_build 658 - sed 's/^ //' << EOF >$dummy.c 659 - #include <unistd.h> 660 - int 661 - main () 662 - { 663 - long cpu = sysconf (_SC_CPU_VERSION); 664 - /* The order matters, because CPU_IS_HP_MC68K erroneously returns 665 - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct 666 - results, however. */ 667 - if (CPU_IS_PA_RISC (cpu)) 668 - { 669 - switch (cpu) 670 - { 671 - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; 672 - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; 673 - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; 674 - default: puts ("hppa-hitachi-hiuxwe2"); break; 675 - } 676 - } 677 - else if (CPU_IS_HP_MC68K (cpu)) 678 - puts ("m68k-hitachi-hiuxwe2"); 679 - else puts ("unknown-hitachi-hiuxwe2"); 680 - exit (0); 681 - } 682 -EOF 683 - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && 684 - { echo "$SYSTEM_NAME"; exit; } 685 - echo unknown-hitachi-hiuxwe2 686 - exit ;; 687 - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) 688 - echo hppa1.1-hp-bsd 689 - exit ;; 690 - 9000/8??:4.3bsd:*:*) 691 - echo hppa1.0-hp-bsd 692 - exit ;; 693 - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) 694 - echo hppa1.0-hp-mpeix 695 - exit ;; 696 - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) 697 - echo hppa1.1-hp-osf 698 - exit ;; 699 - hp8??:OSF1:*:*) 700 - echo hppa1.0-hp-osf 701 - exit ;; 702 - i*86:OSF1:*:*) 703 - if [ -x /usr/sbin/sysversion ] ; then 704 - echo ${UNAME_MACHINE}-unknown-osf1mk 705 - else 706 - echo ${UNAME_MACHINE}-unknown-osf1 707 - fi 708 - exit ;; 709 - parisc*:Lites*:*:*) 710 - echo hppa1.1-hp-lites 711 - exit ;; 712 - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) 713 - echo c1-convex-bsd 714 - exit ;; 715 - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) 716 - if getsysinfo -f scalar_acc 717 - then echo c32-convex-bsd 718 - else echo c2-convex-bsd 719 - fi 720 - exit ;; 721 - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) 722 - echo c34-convex-bsd 723 - exit ;; 724 - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) 725 - echo c38-convex-bsd 726 - exit ;; 727 - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) 728 - echo c4-convex-bsd 729 - exit ;; 730 - CRAY*Y-MP:*:*:*) 731 - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 732 - exit ;; 733 - CRAY*[A-Z]90:*:*:*) 734 - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ 735 - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ 736 - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ 737 - -e 's/\.[^.]*$/.X/' 738 - exit ;; 739 - CRAY*TS:*:*:*) 740 - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 741 - exit ;; 742 - CRAY*T3E:*:*:*) 743 - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 744 - exit ;; 745 - CRAY*SV1:*:*:*) 746 - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 747 - exit ;; 748 - *:UNICOS/mp:*:*) 749 - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 750 - exit ;; 751 - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) 752 - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` 753 - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` 754 - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` 755 - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" 756 - exit ;; 757 - 5000:UNIX_System_V:4.*:*) 758 - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` 759 - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` 760 - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" 761 - exit ;; 762 - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) 763 - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} 764 - exit ;; 765 - sparc*:BSD/OS:*:*) 766 - echo sparc-unknown-bsdi${UNAME_RELEASE} 767 - exit ;; 768 - *:BSD/OS:*:*) 769 - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} 770 - exit ;; 771 - *:FreeBSD:*:*) 772 - case ${UNAME_MACHINE} in 773 - pc98) 774 - echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; 775 - amd64) 776 - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; 777 - *) 778 - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; 779 - esac 780 - exit ;; 781 - i*:CYGWIN*:*) 782 - echo ${UNAME_MACHINE}-pc-cygwin 783 - exit ;; 784 - *:MINGW*:*) 785 - echo ${UNAME_MACHINE}-pc-mingw32 786 - exit ;; 787 - i*:windows32*:*) 788 - # uname -m includes "-pc" on this system. 789 - echo ${UNAME_MACHINE}-mingw32 790 - exit ;; 791 - i*:PW*:*) 792 - echo ${UNAME_MACHINE}-pc-pw32 793 - exit ;; 794 - *:Interix*:[3456]*) 795 - case ${UNAME_MACHINE} in 796 - x86) 797 - echo i586-pc-interix${UNAME_RELEASE} 798 - exit ;; 799 - EM64T | authenticamd) 800 - echo x86_64-unknown-interix${UNAME_RELEASE} 801 - exit ;; 802 - esac ;; 803 - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) 804 - echo i${UNAME_MACHINE}-pc-mks 805 - exit ;; 806 - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) 807 - # How do we know it's Interix rather than the generic POSIX subsystem? 808 - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we 809 - # UNAME_MACHINE based on the output of uname instead of i386? 810 - echo i586-pc-interix 811 - exit ;; 812 - i*:UWIN*:*) 813 - echo ${UNAME_MACHINE}-pc-uwin 814 - exit ;; 815 - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) 816 - echo x86_64-unknown-cygwin 817 - exit ;; 818 - p*:CYGWIN*:*) 819 - echo powerpcle-unknown-cygwin 820 - exit ;; 821 - prep*:SunOS:5.*:*) 822 - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 823 - exit ;; 824 - *:GNU:*:*) 825 - # the GNU system 826 - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` 827 - exit ;; 828 - *:GNU/*:*:*) 829 - # other systems with GNU libc and userland 830 - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu 831 - exit ;; 832 - i*86:Minix:*:*) 833 - echo ${UNAME_MACHINE}-pc-minix 834 - exit ;; 835 - arm*:Linux:*:*) 836 - echo ${UNAME_MACHINE}-unknown-linux-gnu 837 - exit ;; 838 - avr32*:Linux:*:*) 839 - echo ${UNAME_MACHINE}-unknown-linux-gnu 840 - exit ;; 841 - cris:Linux:*:*) 842 - echo cris-axis-linux-gnu 843 - exit ;; 844 - crisv32:Linux:*:*) 845 - echo crisv32-axis-linux-gnu 846 - exit ;; 847 - frv:Linux:*:*) 848 - echo frv-unknown-linux-gnu 849 - exit ;; 850 - ia64:Linux:*:*) 851 - echo ${UNAME_MACHINE}-unknown-linux-gnu 852 - exit ;; 853 - m32r*:Linux:*:*) 854 - echo ${UNAME_MACHINE}-unknown-linux-gnu 855 - exit ;; 856 - m68*:Linux:*:*) 857 - echo ${UNAME_MACHINE}-unknown-linux-gnu 858 - exit ;; 859 - mips:Linux:*:*) 860 - eval $set_cc_for_build 861 - sed 's/^ //' << EOF >$dummy.c 862 - #undef CPU 863 - #undef mips 864 - #undef mipsel 865 - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) 866 - CPU=mipsel 867 - #else 868 - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) 869 - CPU=mips 870 - #else 871 - CPU= 872 - #endif 873 - #endif 874 -EOF 875 - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' 876 - /^CPU/{ 877 - s: ::g 878 - p 879 - }'`" 880 - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } 881 - ;; 882 - mips64:Linux:*:*) 883 - eval $set_cc_for_build 884 - sed 's/^ //' << EOF >$dummy.c 885 - #undef CPU 886 - #undef mips64 887 - #undef mips64el 888 - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) 889 - CPU=mips64el 890 - #else 891 - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) 892 - CPU=mips64 893 - #else 894 - CPU= 895 - #endif 896 - #endif 897 -EOF 898 - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' 899 - /^CPU/{ 900 - s: ::g 901 - p 902 - }'`" 903 - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } 904 - ;; 905 - or32:Linux:*:*) 906 - echo or32-unknown-linux-gnu 907 - exit ;; 908 - ppc:Linux:*:*) 909 - echo powerpc-unknown-linux-gnu 910 - exit ;; 911 - ppc64:Linux:*:*) 912 - echo powerpc64-unknown-linux-gnu 913 - exit ;; 914 - alpha:Linux:*:*) 915 - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in 916 - EV5) UNAME_MACHINE=alphaev5 ;; 917 - EV56) UNAME_MACHINE=alphaev56 ;; 918 - PCA56) UNAME_MACHINE=alphapca56 ;; 919 - PCA57) UNAME_MACHINE=alphapca56 ;; 920 - EV6) UNAME_MACHINE=alphaev6 ;; 921 - EV67) UNAME_MACHINE=alphaev67 ;; 922 - EV68*) UNAME_MACHINE=alphaev68 ;; 923 - esac 924 - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null 925 - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi 926 - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} 927 - exit ;; 928 - parisc:Linux:*:* | hppa:Linux:*:*) 929 - # Look for CPU level 930 - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in 931 - PA7*) echo hppa1.1-unknown-linux-gnu ;; 932 - PA8*) echo hppa2.0-unknown-linux-gnu ;; 933 - *) echo hppa-unknown-linux-gnu ;; 934 - esac 935 - exit ;; 936 - parisc64:Linux:*:* | hppa64:Linux:*:*) 937 - echo hppa64-unknown-linux-gnu 938 - exit ;; 939 - s390:Linux:*:* | s390x:Linux:*:*) 940 - echo ${UNAME_MACHINE}-ibm-linux 941 - exit ;; 942 - sh64*:Linux:*:*) 943 - echo ${UNAME_MACHINE}-unknown-linux-gnu 944 - exit ;; 945 - sh*:Linux:*:*) 946 - echo ${UNAME_MACHINE}-unknown-linux-gnu 947 - exit ;; 948 - sparc:Linux:*:* | sparc64:Linux:*:*) 949 - echo ${UNAME_MACHINE}-unknown-linux-gnu 950 - exit ;; 951 - vax:Linux:*:*) 952 - echo ${UNAME_MACHINE}-dec-linux-gnu 953 - exit ;; 954 - x86_64:Linux:*:*) 955 - echo x86_64-unknown-linux-gnu 956 - exit ;; 957 - xtensa:Linux:*:*) 958 - echo xtensa-unknown-linux-gnu 959 - exit ;; 960 - i*86:Linux:*:*) 961 - # The BFD linker knows what the default object file format is, so 962 - # first see if it will tell us. cd to the root directory to prevent 963 - # problems with other programs or directories called `ld' in the path. 964 - # Set LC_ALL=C to ensure ld outputs messages in English. 965 - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ 966 - | sed -ne '/supported targets:/!d 967 - s/[ ][ ]*/ /g 968 - s/.*supported targets: *// 969 - s/ .*// 970 - p'` 971 - case "$ld_supported_targets" in 972 - elf32-i386) 973 - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" 974 - ;; 975 - a.out-i386-linux) 976 - echo "${UNAME_MACHINE}-pc-linux-gnuaout" 977 - exit ;; 978 - coff-i386) 979 - echo "${UNAME_MACHINE}-pc-linux-gnucoff" 980 - exit ;; 981 - "") 982 - # Either a pre-BFD a.out linker (linux-gnuoldld) or 983 - # one that does not give us useful --help. 984 - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" 985 - exit ;; 986 - esac 987 - # Determine whether the default compiler is a.out or elf 988 - eval $set_cc_for_build 989 - sed 's/^ //' << EOF >$dummy.c 990 - #include <features.h> 991 - #ifdef __ELF__ 992 - # ifdef __GLIBC__ 993 - # if __GLIBC__ >= 2 994 - LIBC=gnu 995 - # else 996 - LIBC=gnulibc1 997 - # endif 998 - # else 999 - LIBC=gnulibc1 1000 - # endif 1001 - #else 1002 - #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) 1003 - LIBC=gnu 1004 - #else 1005 - LIBC=gnuaout 1006 - #endif 1007 - #endif 1008 - #ifdef __dietlibc__ 1009 - LIBC=dietlibc 1010 - #endif 1011 -EOF 1012 - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' 1013 - /^LIBC/{ 1014 - s: ::g 1015 - p 1016 - }'`" 1017 - test x"${LIBC}" != x && { 1018 - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" 1019 - exit 1020 - } 1021 - test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } 1022 - ;; 1023 - i*86:DYNIX/ptx:4*:*) 1024 - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. 1025 - # earlier versions are messed up and put the nodename in both 1026 - # sysname and nodename. 1027 - echo i386-sequent-sysv4 1028 - exit ;; 1029 - i*86:UNIX_SV:4.2MP:2.*) 1030 - # Unixware is an offshoot of SVR4, but it has its own version 1031 - # number series starting with 2... 1032 - # I am not positive that other SVR4 systems won't match this, 1033 - # I just have to hope. -- rms. 1034 - # Use sysv4.2uw... so that sysv4* matches it. 1035 - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} 1036 - exit ;; 1037 - i*86:OS/2:*:*) 1038 - # If we were able to find `uname', then EMX Unix compatibility 1039 - # is probably installed. 1040 - echo ${UNAME_MACHINE}-pc-os2-emx 1041 - exit ;; 1042 - i*86:XTS-300:*:STOP) 1043 - echo ${UNAME_MACHINE}-unknown-stop 1044 - exit ;; 1045 - i*86:atheos:*:*) 1046 - echo ${UNAME_MACHINE}-unknown-atheos 1047 - exit ;; 1048 - i*86:syllable:*:*) 1049 - echo ${UNAME_MACHINE}-pc-syllable 1050 - exit ;; 1051 - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) 1052 - echo i386-unknown-lynxos${UNAME_RELEASE} 1053 - exit ;; 1054 - i*86:*DOS:*:*) 1055 - echo ${UNAME_MACHINE}-pc-msdosdjgpp 1056 - exit ;; 1057 - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) 1058 - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` 1059 - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then 1060 - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} 1061 - else 1062 - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} 1063 - fi 1064 - exit ;; 1065 - i*86:*:5:[678]*) 1066 - # UnixWare 7.x, OpenUNIX and OpenServer 6. 1067 - case `/bin/uname -X | grep "^Machine"` in 1068 - *486*) UNAME_MACHINE=i486 ;; 1069 - *Pentium) UNAME_MACHINE=i586 ;; 1070 - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; 1071 - esac 1072 - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} 1073 - exit ;; 1074 - i*86:*:3.2:*) 1075 - if test -f /usr/options/cb.name; then 1076 - UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` 1077 - echo ${UNAME_MACHINE}-pc-isc$UNAME_REL 1078 - elif /bin/uname -X 2>/dev/null >/dev/null ; then 1079 - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` 1080 - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 1081 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ 1082 - && UNAME_MACHINE=i586 1083 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ 1084 - && UNAME_MACHINE=i686 1085 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ 1086 - && UNAME_MACHINE=i686 1087 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL 1088 - else 1089 - echo ${UNAME_MACHINE}-pc-sysv32 1090 - fi 1091 - exit ;; 1092 - pc:*:*:*) 1093 - # Left here for compatibility: 1094 - # uname -m prints for DJGPP always 'pc', but it prints nothing about 1095 - # the processor, so we play safe by assuming i386. 1096 - echo i386-pc-msdosdjgpp 1097 - exit ;; 1098 - Intel:Mach:3*:*) 1099 - echo i386-pc-mach3 1100 - exit ;; 1101 - paragon:*:*:*) 1102 - echo i860-intel-osf1 1103 - exit ;; 1104 - i860:*:4.*:*) # i860-SVR4 1105 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then 1106 - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 1107 - else # Add other i860-SVR4 vendors below as they are discovered. 1108 - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 1109 - fi 1110 - exit ;; 1111 - mini*:CTIX:SYS*5:*) 1112 - # "miniframe" 1113 - echo m68010-convergent-sysv 1114 - exit ;; 1115 - mc68k:UNIX:SYSTEM5:3.51m) 1116 - echo m68k-convergent-sysv 1117 - exit ;; 1118 - M680?0:D-NIX:5.3:*) 1119 - echo m68k-diab-dnix 1120 - exit ;; 1121 - M68*:*:R3V[5678]*:*) 1122 - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 1123 - 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) 1124 - OS_REL='' 1125 - test -r /etc/.relid \ 1126 - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` 1127 - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ 1128 - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } 1129 - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ 1130 - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 1131 - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) 1132 - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ 1133 - && { echo i486-ncr-sysv4; exit; } ;; 1134 - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) 1135 - echo m68k-unknown-lynxos${UNAME_RELEASE} 1136 - exit ;; 1137 - mc68030:UNIX_System_V:4.*:*) 1138 - echo m68k-atari-sysv4 1139 - exit ;; 1140 - TSUNAMI:LynxOS:2.*:*) 1141 - echo sparc-unknown-lynxos${UNAME_RELEASE} 1142 - exit ;; 1143 - rs6000:LynxOS:2.*:*) 1144 - echo rs6000-unknown-lynxos${UNAME_RELEASE} 1145 - exit ;; 1146 - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) 1147 - echo powerpc-unknown-lynxos${UNAME_RELEASE} 1148 - exit ;; 1149 - SM[BE]S:UNIX_SV:*:*) 1150 - echo mips-dde-sysv${UNAME_RELEASE} 1151 - exit ;; 1152 - RM*:ReliantUNIX-*:*:*) 1153 - echo mips-sni-sysv4 1154 - exit ;; 1155 - RM*:SINIX-*:*:*) 1156 - echo mips-sni-sysv4 1157 - exit ;; 1158 - *:SINIX-*:*:*) 1159 - if uname -p 2>/dev/null >/dev/null ; then 1160 - UNAME_MACHINE=`(uname -p) 2>/dev/null` 1161 - echo ${UNAME_MACHINE}-sni-sysv4 1162 - else 1163 - echo ns32k-sni-sysv 1164 - fi 1165 - exit ;; 1166 - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort 1167 - # says <Richard.M.Bartel@ccMail.Census.GOV> 1168 - echo i586-unisys-sysv4 1169 - exit ;; 1170 - *:UNIX_System_V:4*:FTX*) 1171 - # From Gerald Hewes <hewes@openmarket.com>. 1172 - # How about differentiating between stratus architectures? -djm 1173 - echo hppa1.1-stratus-sysv4 1174 - exit ;; 1175 - *:*:*:FTX*) 1176 - # From seanf@swdc.stratus.com. 1177 - echo i860-stratus-sysv4 1178 - exit ;; 1179 - i*86:VOS:*:*) 1180 - # From Paul.Green@stratus.com. 1181 - echo ${UNAME_MACHINE}-stratus-vos 1182 - exit ;; 1183 - *:VOS:*:*) 1184 - # From Paul.Green@stratus.com. 1185 - echo hppa1.1-stratus-vos 1186 - exit ;; 1187 - mc68*:A/UX:*:*) 1188 - echo m68k-apple-aux${UNAME_RELEASE} 1189 - exit ;; 1190 - news*:NEWS-OS:6*:*) 1191 - echo mips-sony-newsos6 1192 - exit ;; 1193 - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) 1194 - if [ -d /usr/nec ]; then 1195 - echo mips-nec-sysv${UNAME_RELEASE} 1196 - else 1197 - echo mips-unknown-sysv${UNAME_RELEASE} 1198 - fi 1199 - exit ;; 1200 - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. 1201 - echo powerpc-be-beos 1202 - exit ;; 1203 - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. 1204 - echo powerpc-apple-beos 1205 - exit ;; 1206 - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. 1207 - echo i586-pc-beos 1208 - exit ;; 1209 - SX-4:SUPER-UX:*:*) 1210 - echo sx4-nec-superux${UNAME_RELEASE} 1211 - exit ;; 1212 - SX-5:SUPER-UX:*:*) 1213 - echo sx5-nec-superux${UNAME_RELEASE} 1214 - exit ;; 1215 - SX-6:SUPER-UX:*:*) 1216 - echo sx6-nec-superux${UNAME_RELEASE} 1217 - exit ;; 1218 - SX-7:SUPER-UX:*:*) 1219 - echo sx7-nec-superux${UNAME_RELEASE} 1220 - exit ;; 1221 - SX-8:SUPER-UX:*:*) 1222 - echo sx8-nec-superux${UNAME_RELEASE} 1223 - exit ;; 1224 - SX-8R:SUPER-UX:*:*) 1225 - echo sx8r-nec-superux${UNAME_RELEASE} 1226 - exit ;; 1227 - Power*:Rhapsody:*:*) 1228 - echo powerpc-apple-rhapsody${UNAME_RELEASE} 1229 - exit ;; 1230 - *:Rhapsody:*:*) 1231 - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} 1232 - exit ;; 1233 - *:Darwin:*:*) 1234 - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown 1235 - case $UNAME_PROCESSOR in 1236 - unknown) UNAME_PROCESSOR=powerpc ;; 1237 - esac 1238 - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} 1239 - exit ;; 1240 - *:procnto*:*:* | *:QNX:[0123456789]*:*) 1241 - UNAME_PROCESSOR=`uname -p` 1242 - if test "$UNAME_PROCESSOR" = "x86"; then 1243 - UNAME_PROCESSOR=i386 1244 - UNAME_MACHINE=pc 1245 - fi 1246 - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} 1247 - exit ;; 1248 - *:QNX:*:4*) 1249 - echo i386-pc-qnx 1250 - exit ;; 1251 - NSE-?:NONSTOP_KERNEL:*:*) 1252 - echo nse-tandem-nsk${UNAME_RELEASE} 1253 - exit ;; 1254 - NSR-?:NONSTOP_KERNEL:*:*) 1255 - echo nsr-tandem-nsk${UNAME_RELEASE} 1256 - exit ;; 1257 - *:NonStop-UX:*:*) 1258 - echo mips-compaq-nonstopux 1259 - exit ;; 1260 - BS2000:POSIX*:*:*) 1261 - echo bs2000-siemens-sysv 1262 - exit ;; 1263 - DS/*:UNIX_System_V:*:*) 1264 - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} 1265 - exit ;; 1266 - *:Plan9:*:*) 1267 - # "uname -m" is not consistent, so use $cputype instead. 386 1268 - # is converted to i386 for consistency with other x86 1269 - # operating systems. 1270 - if test "$cputype" = "386"; then 1271 - UNAME_MACHINE=i386 1272 - else 1273 - UNAME_MACHINE="$cputype" 1274 - fi 1275 - echo ${UNAME_MACHINE}-unknown-plan9 1276 - exit ;; 1277 - *:TOPS-10:*:*) 1278 - echo pdp10-unknown-tops10 1279 - exit ;; 1280 - *:TENEX:*:*) 1281 - echo pdp10-unknown-tenex 1282 - exit ;; 1283 - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) 1284 - echo pdp10-dec-tops20 1285 - exit ;; 1286 - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) 1287 - echo pdp10-xkl-tops20 1288 - exit ;; 1289 - *:TOPS-20:*:*) 1290 - echo pdp10-unknown-tops20 1291 - exit ;; 1292 - *:ITS:*:*) 1293 - echo pdp10-unknown-its 1294 - exit ;; 1295 - SEI:*:*:SEIUX) 1296 - echo mips-sei-seiux${UNAME_RELEASE} 1297 - exit ;; 1298 - *:DragonFly:*:*) 1299 - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` 1300 - exit ;; 1301 - *:*VMS:*:*) 1302 - UNAME_MACHINE=`(uname -p) 2>/dev/null` 1303 - case "${UNAME_MACHINE}" in 1304 - A*) echo alpha-dec-vms ; exit ;; 1305 - I*) echo ia64-dec-vms ; exit ;; 1306 - V*) echo vax-dec-vms ; exit ;; 1307 - esac ;; 1308 - *:XENIX:*:SysV) 1309 - echo i386-pc-xenix 1310 - exit ;; 1311 - i*86:skyos:*:*) 1312 - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' 1313 - exit ;; 1314 - i*86:rdos:*:*) 1315 - echo ${UNAME_MACHINE}-pc-rdos 1316 - exit ;; 1317 -esac 1318 - 1319 -#echo '(No uname command or uname output not recognized.)' 1>&2 1320 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 1321 - 1322 -eval $set_cc_for_build 1323 -cat >$dummy.c <<EOF 1324 -#ifdef _SEQUENT_ 1325 -# include <sys/types.h> 1326 -# include <sys/utsname.h> 1327 -#endif 1328 -main () 1329 -{ 1330 -#if defined (sony) 1331 -#if defined (MIPSEB) 1332 - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, 1333 - I don't know.... */ 1334 - printf ("mips-sony-bsd\n"); exit (0); 1335 -#else 1336 -#include <sys/param.h> 1337 - printf ("m68k-sony-newsos%s\n", 1338 -#ifdef NEWSOS4 1339 - "4" 1340 -#else 1341 - "" 1342 -#endif 1343 - ); exit (0); 1344 -#endif 1345 -#endif 1346 - 1347 -#if defined (__arm) && defined (__acorn) && defined (__unix) 1348 - printf ("arm-acorn-riscix\n"); exit (0); 1349 -#endif 1350 - 1351 -#if defined (hp300) && !defined (hpux) 1352 - printf ("m68k-hp-bsd\n"); exit (0); 1353 -#endif 1354 - 1355 -#if defined (NeXT) 1356 -#if !defined (__ARCHITECTURE__) 1357 -#define __ARCHITECTURE__ "m68k" 1358 -#endif 1359 - int version; 1360 - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; 1361 - if (version < 4) 1362 - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); 1363 - else 1364 - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); 1365 - exit (0); 1366 -#endif 1367 - 1368 -#if defined (MULTIMAX) || defined (n16) 1369 -#if defined (UMAXV) 1370 - printf ("ns32k-encore-sysv\n"); exit (0); 1371 -#else 1372 -#if defined (CMU) 1373 - printf ("ns32k-encore-mach\n"); exit (0); 1374 -#else 1375 - printf ("ns32k-encore-bsd\n"); exit (0); 1376 -#endif 1377 -#endif 1378 -#endif 1379 - 1380 -#if defined (__386BSD__) 1381 - printf ("i386-pc-bsd\n"); exit (0); 1382 -#endif 1383 - 1384 -#if defined (sequent) 1385 -#if defined (i386) 1386 - printf ("i386-sequent-dynix\n"); exit (0); 1387 -#endif 1388 -#if defined (ns32000) 1389 - printf ("ns32k-sequent-dynix\n"); exit (0); 1390 -#endif 1391 -#endif 1392 - 1393 -#if defined (_SEQUENT_) 1394 - struct utsname un; 1395 - 1396 - uname(&un); 1397 - 1398 - if (strncmp(un.version, "V2", 2) == 0) { 1399 - printf ("i386-sequent-ptx2\n"); exit (0); 1400 - } 1401 - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ 1402 - printf ("i386-sequent-ptx1\n"); exit (0); 1403 - } 1404 - printf ("i386-sequent-ptx\n"); exit (0); 1405 - 1406 -#endif 1407 - 1408 -#if defined (vax) 1409 -# if !defined (ultrix) 1410 -# include <sys/param.h> 1411 -# if defined (BSD) 1412 -# if BSD == 43 1413 - printf ("vax-dec-bsd4.3\n"); exit (0); 1414 -# else 1415 -# if BSD == 199006 1416 - printf ("vax-dec-bsd4.3reno\n"); exit (0); 1417 -# else 1418 - printf ("vax-dec-bsd\n"); exit (0); 1419 -# endif 1420 -# endif 1421 -# else 1422 - printf ("vax-dec-bsd\n"); exit (0); 1423 -# endif 1424 -# else 1425 - printf ("vax-dec-ultrix\n"); exit (0); 1426 -# endif 1427 -#endif 1428 - 1429 -#if defined (alliant) && defined (i860) 1430 - printf ("i860-alliant-bsd\n"); exit (0); 1431 -#endif 1432 - 1433 - exit (1); 1434 -} 1435 -EOF 1436 - 1437 -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && 1438 - { echo "$SYSTEM_NAME"; exit; } 1439 - 1440 -# Apollos put the system type in the environment. 1441 - 1442 -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } 1443 - 1444 -# Convex versions that predate uname can use getsysinfo(1) 1445 - 1446 -if [ -x /usr/convex/getsysinfo ] 1447 -then 1448 - case `getsysinfo -f cpu_type` in 1449 - c1*) 1450 - echo c1-convex-bsd 1451 - exit ;; 1452 - c2*) 1453 - if getsysinfo -f scalar_acc 1454 - then echo c32-convex-bsd 1455 - else echo c2-convex-bsd 1456 - fi 1457 - exit ;; 1458 - c34*) 1459 - echo c34-convex-bsd 1460 - exit ;; 1461 - c38*) 1462 - echo c38-convex-bsd 1463 - exit ;; 1464 - c4*) 1465 - echo c4-convex-bsd 1466 - exit ;; 1467 - esac 1468 -fi 1469 - 1470 -cat >&2 <<EOF 1471 -$0: unable to guess system type 1472 - 1473 -This script, last modified $timestamp, has failed to recognize 1474 -the operating system you are using. It is advised that you 1475 -download the most up to date version of the config scripts from 1476 - 1477 - http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess 1478 -and 1479 - http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub 1480 - 1481 -If the version you run ($0) is already up to date, please 1482 -send the following data and any information you think might be 1483 -pertinent to <config-patches@gnu.org> in order to provide the needed 1484 -information to handle your system. 1485 - 1486 -config.guess timestamp = $timestamp 1487 - 1488 -uname -m = `(uname -m) 2>/dev/null || echo unknown` 1489 -uname -r = `(uname -r) 2>/dev/null || echo unknown` 1490 -uname -s = `(uname -s) 2>/dev/null || echo unknown` 1491 -uname -v = `(uname -v) 2>/dev/null || echo unknown` 1492 - 1493 -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` 1494 -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` 1495 - 1496 -hostinfo = `(hostinfo) 2>/dev/null` 1497 -/bin/universe = `(/bin/universe) 2>/dev/null` 1498 -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` 1499 -/bin/arch = `(/bin/arch) 2>/dev/null` 1500 -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` 1501 -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` 1502 - 1503 -UNAME_MACHINE = ${UNAME_MACHINE} 1504 -UNAME_RELEASE = ${UNAME_RELEASE} 1505 -UNAME_SYSTEM = ${UNAME_SYSTEM} 1506 -UNAME_VERSION = ${UNAME_VERSION} 1507 -EOF 1508 - 1509 -exit 1 1510 - 1511 -# Local variables: 1512 -# eval: (add-hook 'write-file-hooks 'time-stamp) 1513 -# time-stamp-start: "timestamp='" 1514 -# time-stamp-format: "%:y-%02m-%02d" 1515 -# time-stamp-end: "'" 1516 -# End: 1 +/usr/share/automake-1.11/config.guess
Changes to config.sub.
1 -#! /bin/sh 2 -# Configuration validation subroutine script. 3 -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 4 -# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, 5 -# Inc. 6 - 7 -timestamp='2007-06-28' 8 - 9 -# This file is (in principle) common to ALL GNU software. 10 -# The presence of a machine in this file suggests that SOME GNU software 11 -# can handle that machine. It does not imply ALL GNU software can. 12 -# 13 -# This file is free software; you can redistribute it and/or modify 14 -# it under the terms of the GNU General Public License as published by 15 -# the Free Software Foundation; either version 2 of the License, or 16 -# (at your option) any later version. 17 -# 18 -# This program is distributed in the hope that it will be useful, 19 -# but WITHOUT ANY WARRANTY; without even the implied warranty of 20 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 -# GNU General Public License for more details. 22 -# 23 -# You should have received a copy of the GNU General Public License 24 -# along with this program; if not, write to the Free Software 25 -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 26 -# 02110-1301, USA. 27 -# 28 -# As a special exception to the GNU General Public License, if you 29 -# distribute this file as part of a program that contains a 30 -# configuration script generated by Autoconf, you may include it under 31 -# the same distribution terms that you use for the rest of that program. 32 - 33 - 34 -# Please send patches to <config-patches@gnu.org>. Submit a context 35 -# diff and a properly formatted ChangeLog entry. 36 -# 37 -# Configuration subroutine to validate and canonicalize a configuration type. 38 -# Supply the specified configuration type as an argument. 39 -# If it is invalid, we print an error message on stderr and exit with code 1. 40 -# Otherwise, we print the canonical config type on stdout and succeed. 41 - 42 -# This file is supposed to be the same for all GNU packages 43 -# and recognize all the CPU types, system types and aliases 44 -# that are meaningful with *any* GNU software. 45 -# Each package is responsible for reporting which valid configurations 46 -# it does not support. The user should be able to distinguish 47 -# a failure to support a valid configuration from a meaningless 48 -# configuration. 49 - 50 -# The goal of this file is to map all the various variations of a given 51 -# machine specification into a single specification in the form: 52 -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM 53 -# or in some cases, the newer four-part form: 54 -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM 55 -# It is wrong to echo any other type of specification. 56 - 57 -me=`echo "$0" | sed -e 's,.*/,,'` 58 - 59 -usage="\ 60 -Usage: $0 [OPTION] CPU-MFR-OPSYS 61 - $0 [OPTION] ALIAS 62 - 63 -Canonicalize a configuration name. 64 - 65 -Operation modes: 66 - -h, --help print this help, then exit 67 - -t, --time-stamp print date of last modification, then exit 68 - -v, --version print version number, then exit 69 - 70 -Report bugs and patches to <config-patches@gnu.org>." 71 - 72 -version="\ 73 -GNU config.sub ($timestamp) 74 - 75 -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 76 -Free Software Foundation, Inc. 77 - 78 -This is free software; see the source for copying conditions. There is NO 79 -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 80 - 81 -help=" 82 -Try \`$me --help' for more information." 83 - 84 -# Parse command line 85 -while test $# -gt 0 ; do 86 - case $1 in 87 - --time-stamp | --time* | -t ) 88 - echo "$timestamp" ; exit ;; 89 - --version | -v ) 90 - echo "$version" ; exit ;; 91 - --help | --h* | -h ) 92 - echo "$usage"; exit ;; 93 - -- ) # Stop option processing 94 - shift; break ;; 95 - - ) # Use stdin as input. 96 - break ;; 97 - -* ) 98 - echo "$me: invalid option $1$help" 99 - exit 1 ;; 100 - 101 - *local*) 102 - # First pass through any local machine types. 103 - echo $1 104 - exit ;; 105 - 106 - * ) 107 - break ;; 108 - esac 109 -done 110 - 111 -case $# in 112 - 0) echo "$me: missing argument$help" >&2 113 - exit 1;; 114 - 1) ;; 115 - *) echo "$me: too many arguments$help" >&2 116 - exit 1;; 117 -esac 118 - 119 -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). 120 -# Here we must recognize all the valid KERNEL-OS combinations. 121 -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` 122 -case $maybe_os in 123 - nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ 124 - uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ 125 - storm-chaos* | os2-emx* | rtmk-nova*) 126 - os=-$maybe_os 127 - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` 128 - ;; 129 - *) 130 - basic_machine=`echo $1 | sed 's/-[^-]*$//'` 131 - if [ $basic_machine != $1 ] 132 - then os=`echo $1 | sed 's/.*-/-/'` 133 - else os=; fi 134 - ;; 135 -esac 136 - 137 -### Let's recognize common machines as not being operating systems so 138 -### that things like config.sub decstation-3100 work. We also 139 -### recognize some manufacturers as not being operating systems, so we 140 -### can provide default operating systems below. 141 -case $os in 142 - -sun*os*) 143 - # Prevent following clause from handling this invalid input. 144 - ;; 145 - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ 146 - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ 147 - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ 148 - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ 149 - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ 150 - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ 151 - -apple | -axis | -knuth | -cray) 152 - os= 153 - basic_machine=$1 154 - ;; 155 - -sim | -cisco | -oki | -wec | -winbond) 156 - os= 157 - basic_machine=$1 158 - ;; 159 - -scout) 160 - ;; 161 - -wrs) 162 - os=-vxworks 163 - basic_machine=$1 164 - ;; 165 - -chorusos*) 166 - os=-chorusos 167 - basic_machine=$1 168 - ;; 169 - -chorusrdb) 170 - os=-chorusrdb 171 - basic_machine=$1 172 - ;; 173 - -hiux*) 174 - os=-hiuxwe2 175 - ;; 176 - -sco6) 177 - os=-sco5v6 178 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 179 - ;; 180 - -sco5) 181 - os=-sco3.2v5 182 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 183 - ;; 184 - -sco4) 185 - os=-sco3.2v4 186 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 187 - ;; 188 - -sco3.2.[4-9]*) 189 - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` 190 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 191 - ;; 192 - -sco3.2v[4-9]*) 193 - # Don't forget version if it is 3.2v4 or newer. 194 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 195 - ;; 196 - -sco5v6*) 197 - # Don't forget version if it is 3.2v4 or newer. 198 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 199 - ;; 200 - -sco*) 201 - os=-sco3.2v2 202 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 203 - ;; 204 - -udk*) 205 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 206 - ;; 207 - -isc) 208 - os=-isc2.2 209 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 210 - ;; 211 - -clix*) 212 - basic_machine=clipper-intergraph 213 - ;; 214 - -isc*) 215 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` 216 - ;; 217 - -lynx*) 218 - os=-lynxos 219 - ;; 220 - -ptx*) 221 - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` 222 - ;; 223 - -windowsnt*) 224 - os=`echo $os | sed -e 's/windowsnt/winnt/'` 225 - ;; 226 - -psos*) 227 - os=-psos 228 - ;; 229 - -mint | -mint[0-9]*) 230 - basic_machine=m68k-atari 231 - os=-mint 232 - ;; 233 -esac 234 - 235 -# Decode aliases for certain CPU-COMPANY combinations. 236 -case $basic_machine in 237 - # Recognize the basic CPU types without company name. 238 - # Some are omitted here because they have special meanings below. 239 - 1750a | 580 \ 240 - | a29k \ 241 - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ 242 - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ 243 - | am33_2.0 \ 244 - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ 245 - | bfin \ 246 - | c4x | clipper \ 247 - | d10v | d30v | dlx | dsp16xx \ 248 - | fido | fr30 | frv \ 249 - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ 250 - | i370 | i860 | i960 | ia64 \ 251 - | ip2k | iq2000 \ 252 - | m32c | m32r | m32rle | m68000 | m68k | m88k \ 253 - | maxq | mb | microblaze | mcore | mep \ 254 - | mips | mipsbe | mipseb | mipsel | mipsle \ 255 - | mips16 \ 256 - | mips64 | mips64el \ 257 - | mips64vr | mips64vrel \ 258 - | mips64orion | mips64orionel \ 259 - | mips64vr4100 | mips64vr4100el \ 260 - | mips64vr4300 | mips64vr4300el \ 261 - | mips64vr5000 | mips64vr5000el \ 262 - | mips64vr5900 | mips64vr5900el \ 263 - | mipsisa32 | mipsisa32el \ 264 - | mipsisa32r2 | mipsisa32r2el \ 265 - | mipsisa64 | mipsisa64el \ 266 - | mipsisa64r2 | mipsisa64r2el \ 267 - | mipsisa64sb1 | mipsisa64sb1el \ 268 - | mipsisa64sr71k | mipsisa64sr71kel \ 269 - | mipstx39 | mipstx39el \ 270 - | mn10200 | mn10300 \ 271 - | mt \ 272 - | msp430 \ 273 - | nios | nios2 \ 274 - | ns16k | ns32k \ 275 - | or32 \ 276 - | pdp10 | pdp11 | pj | pjl \ 277 - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ 278 - | pyramid \ 279 - | score \ 280 - | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ 281 - | sh64 | sh64le \ 282 - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ 283 - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ 284 - | spu | strongarm \ 285 - | tahoe | thumb | tic4x | tic80 | tron \ 286 - | v850 | v850e \ 287 - | we32k \ 288 - | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ 289 - | z8k) 290 - basic_machine=$basic_machine-unknown 291 - ;; 292 - m6811 | m68hc11 | m6812 | m68hc12) 293 - # Motorola 68HC11/12. 294 - basic_machine=$basic_machine-unknown 295 - os=-none 296 - ;; 297 - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) 298 - ;; 299 - ms1) 300 - basic_machine=mt-unknown 301 - ;; 302 - 303 - # We use `pc' rather than `unknown' 304 - # because (1) that's what they normally are, and 305 - # (2) the word "unknown" tends to confuse beginning users. 306 - i*86 | x86_64) 307 - basic_machine=$basic_machine-pc 308 - ;; 309 - # Object if more than one company name word. 310 - *-*-*) 311 - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 312 - exit 1 313 - ;; 314 - # Recognize the basic CPU types with company name. 315 - 580-* \ 316 - | a29k-* \ 317 - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ 318 - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ 319 - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ 320 - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ 321 - | avr-* | avr32-* \ 322 - | bfin-* | bs2000-* \ 323 - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ 324 - | clipper-* | craynv-* | cydra-* \ 325 - | d10v-* | d30v-* | dlx-* \ 326 - | elxsi-* \ 327 - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ 328 - | h8300-* | h8500-* \ 329 - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ 330 - | i*86-* | i860-* | i960-* | ia64-* \ 331 - | ip2k-* | iq2000-* \ 332 - | m32c-* | m32r-* | m32rle-* \ 333 - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ 334 - | m88110-* | m88k-* | maxq-* | mcore-* \ 335 - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ 336 - | mips16-* \ 337 - | mips64-* | mips64el-* \ 338 - | mips64vr-* | mips64vrel-* \ 339 - | mips64orion-* | mips64orionel-* \ 340 - | mips64vr4100-* | mips64vr4100el-* \ 341 - | mips64vr4300-* | mips64vr4300el-* \ 342 - | mips64vr5000-* | mips64vr5000el-* \ 343 - | mips64vr5900-* | mips64vr5900el-* \ 344 - | mipsisa32-* | mipsisa32el-* \ 345 - | mipsisa32r2-* | mipsisa32r2el-* \ 346 - | mipsisa64-* | mipsisa64el-* \ 347 - | mipsisa64r2-* | mipsisa64r2el-* \ 348 - | mipsisa64sb1-* | mipsisa64sb1el-* \ 349 - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ 350 - | mipstx39-* | mipstx39el-* \ 351 - | mmix-* \ 352 - | mt-* \ 353 - | msp430-* \ 354 - | nios-* | nios2-* \ 355 - | none-* | np1-* | ns16k-* | ns32k-* \ 356 - | orion-* \ 357 - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ 358 - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ 359 - | pyramid-* \ 360 - | romp-* | rs6000-* \ 361 - | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ 362 - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ 363 - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ 364 - | sparclite-* \ 365 - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ 366 - | tahoe-* | thumb-* \ 367 - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ 368 - | tron-* \ 369 - | v850-* | v850e-* | vax-* \ 370 - | we32k-* \ 371 - | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ 372 - | xstormy16-* | xtensa-* \ 373 - | ymp-* \ 374 - | z8k-*) 375 - ;; 376 - # Recognize the various machine names and aliases which stand 377 - # for a CPU type and a company and sometimes even an OS. 378 - 386bsd) 379 - basic_machine=i386-unknown 380 - os=-bsd 381 - ;; 382 - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) 383 - basic_machine=m68000-att 384 - ;; 385 - 3b*) 386 - basic_machine=we32k-att 387 - ;; 388 - a29khif) 389 - basic_machine=a29k-amd 390 - os=-udi 391 - ;; 392 - abacus) 393 - basic_machine=abacus-unknown 394 - ;; 395 - adobe68k) 396 - basic_machine=m68010-adobe 397 - os=-scout 398 - ;; 399 - alliant | fx80) 400 - basic_machine=fx80-alliant 401 - ;; 402 - altos | altos3068) 403 - basic_machine=m68k-altos 404 - ;; 405 - am29k) 406 - basic_machine=a29k-none 407 - os=-bsd 408 - ;; 409 - amd64) 410 - basic_machine=x86_64-pc 411 - ;; 412 - amd64-*) 413 - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` 414 - ;; 415 - amdahl) 416 - basic_machine=580-amdahl 417 - os=-sysv 418 - ;; 419 - amiga | amiga-*) 420 - basic_machine=m68k-unknown 421 - ;; 422 - amigaos | amigados) 423 - basic_machine=m68k-unknown 424 - os=-amigaos 425 - ;; 426 - amigaunix | amix) 427 - basic_machine=m68k-unknown 428 - os=-sysv4 429 - ;; 430 - apollo68) 431 - basic_machine=m68k-apollo 432 - os=-sysv 433 - ;; 434 - apollo68bsd) 435 - basic_machine=m68k-apollo 436 - os=-bsd 437 - ;; 438 - aux) 439 - basic_machine=m68k-apple 440 - os=-aux 441 - ;; 442 - balance) 443 - basic_machine=ns32k-sequent 444 - os=-dynix 445 - ;; 446 - c90) 447 - basic_machine=c90-cray 448 - os=-unicos 449 - ;; 450 - convex-c1) 451 - basic_machine=c1-convex 452 - os=-bsd 453 - ;; 454 - convex-c2) 455 - basic_machine=c2-convex 456 - os=-bsd 457 - ;; 458 - convex-c32) 459 - basic_machine=c32-convex 460 - os=-bsd 461 - ;; 462 - convex-c34) 463 - basic_machine=c34-convex 464 - os=-bsd 465 - ;; 466 - convex-c38) 467 - basic_machine=c38-convex 468 - os=-bsd 469 - ;; 470 - cray | j90) 471 - basic_machine=j90-cray 472 - os=-unicos 473 - ;; 474 - craynv) 475 - basic_machine=craynv-cray 476 - os=-unicosmp 477 - ;; 478 - cr16) 479 - basic_machine=cr16-unknown 480 - os=-elf 481 - ;; 482 - crds | unos) 483 - basic_machine=m68k-crds 484 - ;; 485 - crisv32 | crisv32-* | etraxfs*) 486 - basic_machine=crisv32-axis 487 - ;; 488 - cris | cris-* | etrax*) 489 - basic_machine=cris-axis 490 - ;; 491 - crx) 492 - basic_machine=crx-unknown 493 - os=-elf 494 - ;; 495 - da30 | da30-*) 496 - basic_machine=m68k-da30 497 - ;; 498 - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) 499 - basic_machine=mips-dec 500 - ;; 501 - decsystem10* | dec10*) 502 - basic_machine=pdp10-dec 503 - os=-tops10 504 - ;; 505 - decsystem20* | dec20*) 506 - basic_machine=pdp10-dec 507 - os=-tops20 508 - ;; 509 - delta | 3300 | motorola-3300 | motorola-delta \ 510 - | 3300-motorola | delta-motorola) 511 - basic_machine=m68k-motorola 512 - ;; 513 - delta88) 514 - basic_machine=m88k-motorola 515 - os=-sysv3 516 - ;; 517 - djgpp) 518 - basic_machine=i586-pc 519 - os=-msdosdjgpp 520 - ;; 521 - dpx20 | dpx20-*) 522 - basic_machine=rs6000-bull 523 - os=-bosx 524 - ;; 525 - dpx2* | dpx2*-bull) 526 - basic_machine=m68k-bull 527 - os=-sysv3 528 - ;; 529 - ebmon29k) 530 - basic_machine=a29k-amd 531 - os=-ebmon 532 - ;; 533 - elxsi) 534 - basic_machine=elxsi-elxsi 535 - os=-bsd 536 - ;; 537 - encore | umax | mmax) 538 - basic_machine=ns32k-encore 539 - ;; 540 - es1800 | OSE68k | ose68k | ose | OSE) 541 - basic_machine=m68k-ericsson 542 - os=-ose 543 - ;; 544 - fx2800) 545 - basic_machine=i860-alliant 546 - ;; 547 - genix) 548 - basic_machine=ns32k-ns 549 - ;; 550 - gmicro) 551 - basic_machine=tron-gmicro 552 - os=-sysv 553 - ;; 554 - go32) 555 - basic_machine=i386-pc 556 - os=-go32 557 - ;; 558 - h3050r* | hiux*) 559 - basic_machine=hppa1.1-hitachi 560 - os=-hiuxwe2 561 - ;; 562 - h8300hms) 563 - basic_machine=h8300-hitachi 564 - os=-hms 565 - ;; 566 - h8300xray) 567 - basic_machine=h8300-hitachi 568 - os=-xray 569 - ;; 570 - h8500hms) 571 - basic_machine=h8500-hitachi 572 - os=-hms 573 - ;; 574 - harris) 575 - basic_machine=m88k-harris 576 - os=-sysv3 577 - ;; 578 - hp300-*) 579 - basic_machine=m68k-hp 580 - ;; 581 - hp300bsd) 582 - basic_machine=m68k-hp 583 - os=-bsd 584 - ;; 585 - hp300hpux) 586 - basic_machine=m68k-hp 587 - os=-hpux 588 - ;; 589 - hp3k9[0-9][0-9] | hp9[0-9][0-9]) 590 - basic_machine=hppa1.0-hp 591 - ;; 592 - hp9k2[0-9][0-9] | hp9k31[0-9]) 593 - basic_machine=m68000-hp 594 - ;; 595 - hp9k3[2-9][0-9]) 596 - basic_machine=m68k-hp 597 - ;; 598 - hp9k6[0-9][0-9] | hp6[0-9][0-9]) 599 - basic_machine=hppa1.0-hp 600 - ;; 601 - hp9k7[0-79][0-9] | hp7[0-79][0-9]) 602 - basic_machine=hppa1.1-hp 603 - ;; 604 - hp9k78[0-9] | hp78[0-9]) 605 - # FIXME: really hppa2.0-hp 606 - basic_machine=hppa1.1-hp 607 - ;; 608 - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) 609 - # FIXME: really hppa2.0-hp 610 - basic_machine=hppa1.1-hp 611 - ;; 612 - hp9k8[0-9][13679] | hp8[0-9][13679]) 613 - basic_machine=hppa1.1-hp 614 - ;; 615 - hp9k8[0-9][0-9] | hp8[0-9][0-9]) 616 - basic_machine=hppa1.0-hp 617 - ;; 618 - hppa-next) 619 - os=-nextstep3 620 - ;; 621 - hppaosf) 622 - basic_machine=hppa1.1-hp 623 - os=-osf 624 - ;; 625 - hppro) 626 - basic_machine=hppa1.1-hp 627 - os=-proelf 628 - ;; 629 - i370-ibm* | ibm*) 630 - basic_machine=i370-ibm 631 - ;; 632 -# I'm not sure what "Sysv32" means. Should this be sysv3.2? 633 - i*86v32) 634 - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` 635 - os=-sysv32 636 - ;; 637 - i*86v4*) 638 - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` 639 - os=-sysv4 640 - ;; 641 - i*86v) 642 - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` 643 - os=-sysv 644 - ;; 645 - i*86sol2) 646 - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` 647 - os=-solaris2 648 - ;; 649 - i386mach) 650 - basic_machine=i386-mach 651 - os=-mach 652 - ;; 653 - i386-vsta | vsta) 654 - basic_machine=i386-unknown 655 - os=-vsta 656 - ;; 657 - iris | iris4d) 658 - basic_machine=mips-sgi 659 - case $os in 660 - -irix*) 661 - ;; 662 - *) 663 - os=-irix4 664 - ;; 665 - esac 666 - ;; 667 - isi68 | isi) 668 - basic_machine=m68k-isi 669 - os=-sysv 670 - ;; 671 - m88k-omron*) 672 - basic_machine=m88k-omron 673 - ;; 674 - magnum | m3230) 675 - basic_machine=mips-mips 676 - os=-sysv 677 - ;; 678 - merlin) 679 - basic_machine=ns32k-utek 680 - os=-sysv 681 - ;; 682 - mingw32) 683 - basic_machine=i386-pc 684 - os=-mingw32 685 - ;; 686 - mingw32ce) 687 - basic_machine=arm-unknown 688 - os=-mingw32ce 689 - ;; 690 - miniframe) 691 - basic_machine=m68000-convergent 692 - ;; 693 - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) 694 - basic_machine=m68k-atari 695 - os=-mint 696 - ;; 697 - mips3*-*) 698 - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` 699 - ;; 700 - mips3*) 701 - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown 702 - ;; 703 - monitor) 704 - basic_machine=m68k-rom68k 705 - os=-coff 706 - ;; 707 - morphos) 708 - basic_machine=powerpc-unknown 709 - os=-morphos 710 - ;; 711 - msdos) 712 - basic_machine=i386-pc 713 - os=-msdos 714 - ;; 715 - ms1-*) 716 - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` 717 - ;; 718 - mvs) 719 - basic_machine=i370-ibm 720 - os=-mvs 721 - ;; 722 - ncr3000) 723 - basic_machine=i486-ncr 724 - os=-sysv4 725 - ;; 726 - netbsd386) 727 - basic_machine=i386-unknown 728 - os=-netbsd 729 - ;; 730 - netwinder) 731 - basic_machine=armv4l-rebel 732 - os=-linux 733 - ;; 734 - news | news700 | news800 | news900) 735 - basic_machine=m68k-sony 736 - os=-newsos 737 - ;; 738 - news1000) 739 - basic_machine=m68030-sony 740 - os=-newsos 741 - ;; 742 - news-3600 | risc-news) 743 - basic_machine=mips-sony 744 - os=-newsos 745 - ;; 746 - necv70) 747 - basic_machine=v70-nec 748 - os=-sysv 749 - ;; 750 - next | m*-next ) 751 - basic_machine=m68k-next 752 - case $os in 753 - -nextstep* ) 754 - ;; 755 - -ns2*) 756 - os=-nextstep2 757 - ;; 758 - *) 759 - os=-nextstep3 760 - ;; 761 - esac 762 - ;; 763 - nh3000) 764 - basic_machine=m68k-harris 765 - os=-cxux 766 - ;; 767 - nh[45]000) 768 - basic_machine=m88k-harris 769 - os=-cxux 770 - ;; 771 - nindy960) 772 - basic_machine=i960-intel 773 - os=-nindy 774 - ;; 775 - mon960) 776 - basic_machine=i960-intel 777 - os=-mon960 778 - ;; 779 - nonstopux) 780 - basic_machine=mips-compaq 781 - os=-nonstopux 782 - ;; 783 - np1) 784 - basic_machine=np1-gould 785 - ;; 786 - nsr-tandem) 787 - basic_machine=nsr-tandem 788 - ;; 789 - op50n-* | op60c-*) 790 - basic_machine=hppa1.1-oki 791 - os=-proelf 792 - ;; 793 - openrisc | openrisc-*) 794 - basic_machine=or32-unknown 795 - ;; 796 - os400) 797 - basic_machine=powerpc-ibm 798 - os=-os400 799 - ;; 800 - OSE68000 | ose68000) 801 - basic_machine=m68000-ericsson 802 - os=-ose 803 - ;; 804 - os68k) 805 - basic_machine=m68k-none 806 - os=-os68k 807 - ;; 808 - pa-hitachi) 809 - basic_machine=hppa1.1-hitachi 810 - os=-hiuxwe2 811 - ;; 812 - paragon) 813 - basic_machine=i860-intel 814 - os=-osf 815 - ;; 816 - pbd) 817 - basic_machine=sparc-tti 818 - ;; 819 - pbb) 820 - basic_machine=m68k-tti 821 - ;; 822 - pc532 | pc532-*) 823 - basic_machine=ns32k-pc532 824 - ;; 825 - pc98) 826 - basic_machine=i386-pc 827 - ;; 828 - pc98-*) 829 - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` 830 - ;; 831 - pentium | p5 | k5 | k6 | nexgen | viac3) 832 - basic_machine=i586-pc 833 - ;; 834 - pentiumpro | p6 | 6x86 | athlon | athlon_*) 835 - basic_machine=i686-pc 836 - ;; 837 - pentiumii | pentium2 | pentiumiii | pentium3) 838 - basic_machine=i686-pc 839 - ;; 840 - pentium4) 841 - basic_machine=i786-pc 842 - ;; 843 - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) 844 - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` 845 - ;; 846 - pentiumpro-* | p6-* | 6x86-* | athlon-*) 847 - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` 848 - ;; 849 - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) 850 - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` 851 - ;; 852 - pentium4-*) 853 - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` 854 - ;; 855 - pn) 856 - basic_machine=pn-gould 857 - ;; 858 - power) basic_machine=power-ibm 859 - ;; 860 - ppc) basic_machine=powerpc-unknown 861 - ;; 862 - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` 863 - ;; 864 - ppcle | powerpclittle | ppc-le | powerpc-little) 865 - basic_machine=powerpcle-unknown 866 - ;; 867 - ppcle-* | powerpclittle-*) 868 - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` 869 - ;; 870 - ppc64) basic_machine=powerpc64-unknown 871 - ;; 872 - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` 873 - ;; 874 - ppc64le | powerpc64little | ppc64-le | powerpc64-little) 875 - basic_machine=powerpc64le-unknown 876 - ;; 877 - ppc64le-* | powerpc64little-*) 878 - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` 879 - ;; 880 - ps2) 881 - basic_machine=i386-ibm 882 - ;; 883 - pw32) 884 - basic_machine=i586-unknown 885 - os=-pw32 886 - ;; 887 - rdos) 888 - basic_machine=i386-pc 889 - os=-rdos 890 - ;; 891 - rom68k) 892 - basic_machine=m68k-rom68k 893 - os=-coff 894 - ;; 895 - rm[46]00) 896 - basic_machine=mips-siemens 897 - ;; 898 - rtpc | rtpc-*) 899 - basic_machine=romp-ibm 900 - ;; 901 - s390 | s390-*) 902 - basic_machine=s390-ibm 903 - ;; 904 - s390x | s390x-*) 905 - basic_machine=s390x-ibm 906 - ;; 907 - sa29200) 908 - basic_machine=a29k-amd 909 - os=-udi 910 - ;; 911 - sb1) 912 - basic_machine=mipsisa64sb1-unknown 913 - ;; 914 - sb1el) 915 - basic_machine=mipsisa64sb1el-unknown 916 - ;; 917 - sde) 918 - basic_machine=mipsisa32-sde 919 - os=-elf 920 - ;; 921 - sei) 922 - basic_machine=mips-sei 923 - os=-seiux 924 - ;; 925 - sequent) 926 - basic_machine=i386-sequent 927 - ;; 928 - sh) 929 - basic_machine=sh-hitachi 930 - os=-hms 931 - ;; 932 - sh5el) 933 - basic_machine=sh5le-unknown 934 - ;; 935 - sh64) 936 - basic_machine=sh64-unknown 937 - ;; 938 - sparclite-wrs | simso-wrs) 939 - basic_machine=sparclite-wrs 940 - os=-vxworks 941 - ;; 942 - sps7) 943 - basic_machine=m68k-bull 944 - os=-sysv2 945 - ;; 946 - spur) 947 - basic_machine=spur-unknown 948 - ;; 949 - st2000) 950 - basic_machine=m68k-tandem 951 - ;; 952 - stratus) 953 - basic_machine=i860-stratus 954 - os=-sysv4 955 - ;; 956 - sun2) 957 - basic_machine=m68000-sun 958 - ;; 959 - sun2os3) 960 - basic_machine=m68000-sun 961 - os=-sunos3 962 - ;; 963 - sun2os4) 964 - basic_machine=m68000-sun 965 - os=-sunos4 966 - ;; 967 - sun3os3) 968 - basic_machine=m68k-sun 969 - os=-sunos3 970 - ;; 971 - sun3os4) 972 - basic_machine=m68k-sun 973 - os=-sunos4 974 - ;; 975 - sun4os3) 976 - basic_machine=sparc-sun 977 - os=-sunos3 978 - ;; 979 - sun4os4) 980 - basic_machine=sparc-sun 981 - os=-sunos4 982 - ;; 983 - sun4sol2) 984 - basic_machine=sparc-sun 985 - os=-solaris2 986 - ;; 987 - sun3 | sun3-*) 988 - basic_machine=m68k-sun 989 - ;; 990 - sun4) 991 - basic_machine=sparc-sun 992 - ;; 993 - sun386 | sun386i | roadrunner) 994 - basic_machine=i386-sun 995 - ;; 996 - sv1) 997 - basic_machine=sv1-cray 998 - os=-unicos 999 - ;; 1000 - symmetry) 1001 - basic_machine=i386-sequent 1002 - os=-dynix 1003 - ;; 1004 - t3e) 1005 - basic_machine=alphaev5-cray 1006 - os=-unicos 1007 - ;; 1008 - t90) 1009 - basic_machine=t90-cray 1010 - os=-unicos 1011 - ;; 1012 - tic54x | c54x*) 1013 - basic_machine=tic54x-unknown 1014 - os=-coff 1015 - ;; 1016 - tic55x | c55x*) 1017 - basic_machine=tic55x-unknown 1018 - os=-coff 1019 - ;; 1020 - tic6x | c6x*) 1021 - basic_machine=tic6x-unknown 1022 - os=-coff 1023 - ;; 1024 - tx39) 1025 - basic_machine=mipstx39-unknown 1026 - ;; 1027 - tx39el) 1028 - basic_machine=mipstx39el-unknown 1029 - ;; 1030 - toad1) 1031 - basic_machine=pdp10-xkl 1032 - os=-tops20 1033 - ;; 1034 - tower | tower-32) 1035 - basic_machine=m68k-ncr 1036 - ;; 1037 - tpf) 1038 - basic_machine=s390x-ibm 1039 - os=-tpf 1040 - ;; 1041 - udi29k) 1042 - basic_machine=a29k-amd 1043 - os=-udi 1044 - ;; 1045 - ultra3) 1046 - basic_machine=a29k-nyu 1047 - os=-sym1 1048 - ;; 1049 - v810 | necv810) 1050 - basic_machine=v810-nec 1051 - os=-none 1052 - ;; 1053 - vaxv) 1054 - basic_machine=vax-dec 1055 - os=-sysv 1056 - ;; 1057 - vms) 1058 - basic_machine=vax-dec 1059 - os=-vms 1060 - ;; 1061 - vpp*|vx|vx-*) 1062 - basic_machine=f301-fujitsu 1063 - ;; 1064 - vxworks960) 1065 - basic_machine=i960-wrs 1066 - os=-vxworks 1067 - ;; 1068 - vxworks68) 1069 - basic_machine=m68k-wrs 1070 - os=-vxworks 1071 - ;; 1072 - vxworks29k) 1073 - basic_machine=a29k-wrs 1074 - os=-vxworks 1075 - ;; 1076 - w65*) 1077 - basic_machine=w65-wdc 1078 - os=-none 1079 - ;; 1080 - w89k-*) 1081 - basic_machine=hppa1.1-winbond 1082 - os=-proelf 1083 - ;; 1084 - xbox) 1085 - basic_machine=i686-pc 1086 - os=-mingw32 1087 - ;; 1088 - xps | xps100) 1089 - basic_machine=xps100-honeywell 1090 - ;; 1091 - ymp) 1092 - basic_machine=ymp-cray 1093 - os=-unicos 1094 - ;; 1095 - z8k-*-coff) 1096 - basic_machine=z8k-unknown 1097 - os=-sim 1098 - ;; 1099 - none) 1100 - basic_machine=none-none 1101 - os=-none 1102 - ;; 1103 - 1104 -# Here we handle the default manufacturer of certain CPU types. It is in 1105 -# some cases the only manufacturer, in others, it is the most popular. 1106 - w89k) 1107 - basic_machine=hppa1.1-winbond 1108 - ;; 1109 - op50n) 1110 - basic_machine=hppa1.1-oki 1111 - ;; 1112 - op60c) 1113 - basic_machine=hppa1.1-oki 1114 - ;; 1115 - romp) 1116 - basic_machine=romp-ibm 1117 - ;; 1118 - mmix) 1119 - basic_machine=mmix-knuth 1120 - ;; 1121 - rs6000) 1122 - basic_machine=rs6000-ibm 1123 - ;; 1124 - vax) 1125 - basic_machine=vax-dec 1126 - ;; 1127 - pdp10) 1128 - # there are many clones, so DEC is not a safe bet 1129 - basic_machine=pdp10-unknown 1130 - ;; 1131 - pdp11) 1132 - basic_machine=pdp11-dec 1133 - ;; 1134 - we32k) 1135 - basic_machine=we32k-att 1136 - ;; 1137 - sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) 1138 - basic_machine=sh-unknown 1139 - ;; 1140 - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) 1141 - basic_machine=sparc-sun 1142 - ;; 1143 - cydra) 1144 - basic_machine=cydra-cydrome 1145 - ;; 1146 - orion) 1147 - basic_machine=orion-highlevel 1148 - ;; 1149 - orion105) 1150 - basic_machine=clipper-highlevel 1151 - ;; 1152 - mac | mpw | mac-mpw) 1153 - basic_machine=m68k-apple 1154 - ;; 1155 - pmac | pmac-mpw) 1156 - basic_machine=powerpc-apple 1157 - ;; 1158 - *-unknown) 1159 - # Make sure to match an already-canonicalized machine name. 1160 - ;; 1161 - *) 1162 - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 1163 - exit 1 1164 - ;; 1165 -esac 1166 - 1167 -# Here we canonicalize certain aliases for manufacturers. 1168 -case $basic_machine in 1169 - *-digital*) 1170 - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` 1171 - ;; 1172 - *-commodore*) 1173 - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` 1174 - ;; 1175 - *) 1176 - ;; 1177 -esac 1178 - 1179 -# Decode manufacturer-specific aliases for certain operating systems. 1180 - 1181 -if [ x"$os" != x"" ] 1182 -then 1183 -case $os in 1184 - # First match some system type aliases 1185 - # that might get confused with valid system types. 1186 - # -solaris* is a basic system type, with this one exception. 1187 - -solaris1 | -solaris1.*) 1188 - os=`echo $os | sed -e 's|solaris1|sunos4|'` 1189 - ;; 1190 - -solaris) 1191 - os=-solaris2 1192 - ;; 1193 - -svr4*) 1194 - os=-sysv4 1195 - ;; 1196 - -unixware*) 1197 - os=-sysv4.2uw 1198 - ;; 1199 - -gnu/linux*) 1200 - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` 1201 - ;; 1202 - # First accept the basic system types. 1203 - # The portable systems comes first. 1204 - # Each alternative MUST END IN A *, to match a version number. 1205 - # -sysv* is not here because it comes later, after sysvr4. 1206 - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ 1207 - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ 1208 - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ 1209 - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ 1210 - | -aos* \ 1211 - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ 1212 - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ 1213 - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ 1214 - | -openbsd* | -solidbsd* \ 1215 - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ 1216 - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ 1217 - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ 1218 - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ 1219 - | -chorusos* | -chorusrdb* \ 1220 - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ 1221 - | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ 1222 - | -uxpv* | -beos* | -mpeix* | -udk* \ 1223 - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ 1224 - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ 1225 - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ 1226 - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ 1227 - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ 1228 - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ 1229 - | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) 1230 - # Remember, each alternative MUST END IN *, to match a version number. 1231 - ;; 1232 - -qnx*) 1233 - case $basic_machine in 1234 - x86-* | i*86-*) 1235 - ;; 1236 - *) 1237 - os=-nto$os 1238 - ;; 1239 - esac 1240 - ;; 1241 - -nto-qnx*) 1242 - ;; 1243 - -nto*) 1244 - os=`echo $os | sed -e 's|nto|nto-qnx|'` 1245 - ;; 1246 - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ 1247 - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ 1248 - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) 1249 - ;; 1250 - -mac*) 1251 - os=`echo $os | sed -e 's|mac|macos|'` 1252 - ;; 1253 - -linux-dietlibc) 1254 - os=-linux-dietlibc 1255 - ;; 1256 - -linux*) 1257 - os=`echo $os | sed -e 's|linux|linux-gnu|'` 1258 - ;; 1259 - -sunos5*) 1260 - os=`echo $os | sed -e 's|sunos5|solaris2|'` 1261 - ;; 1262 - -sunos6*) 1263 - os=`echo $os | sed -e 's|sunos6|solaris3|'` 1264 - ;; 1265 - -opened*) 1266 - os=-openedition 1267 - ;; 1268 - -os400*) 1269 - os=-os400 1270 - ;; 1271 - -wince*) 1272 - os=-wince 1273 - ;; 1274 - -osfrose*) 1275 - os=-osfrose 1276 - ;; 1277 - -osf*) 1278 - os=-osf 1279 - ;; 1280 - -utek*) 1281 - os=-bsd 1282 - ;; 1283 - -dynix*) 1284 - os=-bsd 1285 - ;; 1286 - -acis*) 1287 - os=-aos 1288 - ;; 1289 - -atheos*) 1290 - os=-atheos 1291 - ;; 1292 - -syllable*) 1293 - os=-syllable 1294 - ;; 1295 - -386bsd) 1296 - os=-bsd 1297 - ;; 1298 - -ctix* | -uts*) 1299 - os=-sysv 1300 - ;; 1301 - -nova*) 1302 - os=-rtmk-nova 1303 - ;; 1304 - -ns2 ) 1305 - os=-nextstep2 1306 - ;; 1307 - -nsk*) 1308 - os=-nsk 1309 - ;; 1310 - # Preserve the version number of sinix5. 1311 - -sinix5.*) 1312 - os=`echo $os | sed -e 's|sinix|sysv|'` 1313 - ;; 1314 - -sinix*) 1315 - os=-sysv4 1316 - ;; 1317 - -tpf*) 1318 - os=-tpf 1319 - ;; 1320 - -triton*) 1321 - os=-sysv3 1322 - ;; 1323 - -oss*) 1324 - os=-sysv3 1325 - ;; 1326 - -svr4) 1327 - os=-sysv4 1328 - ;; 1329 - -svr3) 1330 - os=-sysv3 1331 - ;; 1332 - -sysvr4) 1333 - os=-sysv4 1334 - ;; 1335 - # This must come after -sysvr4. 1336 - -sysv*) 1337 - ;; 1338 - -ose*) 1339 - os=-ose 1340 - ;; 1341 - -es1800*) 1342 - os=-ose 1343 - ;; 1344 - -xenix) 1345 - os=-xenix 1346 - ;; 1347 - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) 1348 - os=-mint 1349 - ;; 1350 - -aros*) 1351 - os=-aros 1352 - ;; 1353 - -kaos*) 1354 - os=-kaos 1355 - ;; 1356 - -zvmoe) 1357 - os=-zvmoe 1358 - ;; 1359 - -none) 1360 - ;; 1361 - *) 1362 - # Get rid of the `-' at the beginning of $os. 1363 - os=`echo $os | sed 's/[^-]*-//'` 1364 - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 1365 - exit 1 1366 - ;; 1367 -esac 1368 -else 1369 - 1370 -# Here we handle the default operating systems that come with various machines. 1371 -# The value should be what the vendor currently ships out the door with their 1372 -# machine or put another way, the most popular os provided with the machine. 1373 - 1374 -# Note that if you're going to try to match "-MANUFACTURER" here (say, 1375 -# "-sun"), then you have to tell the case statement up towards the top 1376 -# that MANUFACTURER isn't an operating system. Otherwise, code above 1377 -# will signal an error saying that MANUFACTURER isn't an operating 1378 -# system, and we'll never get to this point. 1379 - 1380 -case $basic_machine in 1381 - score-*) 1382 - os=-elf 1383 - ;; 1384 - spu-*) 1385 - os=-elf 1386 - ;; 1387 - *-acorn) 1388 - os=-riscix1.2 1389 - ;; 1390 - arm*-rebel) 1391 - os=-linux 1392 - ;; 1393 - arm*-semi) 1394 - os=-aout 1395 - ;; 1396 - c4x-* | tic4x-*) 1397 - os=-coff 1398 - ;; 1399 - # This must come before the *-dec entry. 1400 - pdp10-*) 1401 - os=-tops20 1402 - ;; 1403 - pdp11-*) 1404 - os=-none 1405 - ;; 1406 - *-dec | vax-*) 1407 - os=-ultrix4.2 1408 - ;; 1409 - m68*-apollo) 1410 - os=-domain 1411 - ;; 1412 - i386-sun) 1413 - os=-sunos4.0.2 1414 - ;; 1415 - m68000-sun) 1416 - os=-sunos3 1417 - # This also exists in the configure program, but was not the 1418 - # default. 1419 - # os=-sunos4 1420 - ;; 1421 - m68*-cisco) 1422 - os=-aout 1423 - ;; 1424 - mep-*) 1425 - os=-elf 1426 - ;; 1427 - mips*-cisco) 1428 - os=-elf 1429 - ;; 1430 - mips*-*) 1431 - os=-elf 1432 - ;; 1433 - or32-*) 1434 - os=-coff 1435 - ;; 1436 - *-tti) # must be before sparc entry or we get the wrong os. 1437 - os=-sysv3 1438 - ;; 1439 - sparc-* | *-sun) 1440 - os=-sunos4.1.1 1441 - ;; 1442 - *-be) 1443 - os=-beos 1444 - ;; 1445 - *-haiku) 1446 - os=-haiku 1447 - ;; 1448 - *-ibm) 1449 - os=-aix 1450 - ;; 1451 - *-knuth) 1452 - os=-mmixware 1453 - ;; 1454 - *-wec) 1455 - os=-proelf 1456 - ;; 1457 - *-winbond) 1458 - os=-proelf 1459 - ;; 1460 - *-oki) 1461 - os=-proelf 1462 - ;; 1463 - *-hp) 1464 - os=-hpux 1465 - ;; 1466 - *-hitachi) 1467 - os=-hiux 1468 - ;; 1469 - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) 1470 - os=-sysv 1471 - ;; 1472 - *-cbm) 1473 - os=-amigaos 1474 - ;; 1475 - *-dg) 1476 - os=-dgux 1477 - ;; 1478 - *-dolphin) 1479 - os=-sysv3 1480 - ;; 1481 - m68k-ccur) 1482 - os=-rtu 1483 - ;; 1484 - m88k-omron*) 1485 - os=-luna 1486 - ;; 1487 - *-next ) 1488 - os=-nextstep 1489 - ;; 1490 - *-sequent) 1491 - os=-ptx 1492 - ;; 1493 - *-crds) 1494 - os=-unos 1495 - ;; 1496 - *-ns) 1497 - os=-genix 1498 - ;; 1499 - i370-*) 1500 - os=-mvs 1501 - ;; 1502 - *-next) 1503 - os=-nextstep3 1504 - ;; 1505 - *-gould) 1506 - os=-sysv 1507 - ;; 1508 - *-highlevel) 1509 - os=-bsd 1510 - ;; 1511 - *-encore) 1512 - os=-bsd 1513 - ;; 1514 - *-sgi) 1515 - os=-irix 1516 - ;; 1517 - *-siemens) 1518 - os=-sysv4 1519 - ;; 1520 - *-masscomp) 1521 - os=-rtu 1522 - ;; 1523 - f30[01]-fujitsu | f700-fujitsu) 1524 - os=-uxpv 1525 - ;; 1526 - *-rom68k) 1527 - os=-coff 1528 - ;; 1529 - *-*bug) 1530 - os=-coff 1531 - ;; 1532 - *-apple) 1533 - os=-macos 1534 - ;; 1535 - *-atari*) 1536 - os=-mint 1537 - ;; 1538 - *) 1539 - os=-none 1540 - ;; 1541 -esac 1542 -fi 1543 - 1544 -# Here we handle the case where we know the os, and the CPU type, but not the 1545 -# manufacturer. We pick the logical manufacturer. 1546 -vendor=unknown 1547 -case $basic_machine in 1548 - *-unknown) 1549 - case $os in 1550 - -riscix*) 1551 - vendor=acorn 1552 - ;; 1553 - -sunos*) 1554 - vendor=sun 1555 - ;; 1556 - -aix*) 1557 - vendor=ibm 1558 - ;; 1559 - -beos*) 1560 - vendor=be 1561 - ;; 1562 - -hpux*) 1563 - vendor=hp 1564 - ;; 1565 - -mpeix*) 1566 - vendor=hp 1567 - ;; 1568 - -hiux*) 1569 - vendor=hitachi 1570 - ;; 1571 - -unos*) 1572 - vendor=crds 1573 - ;; 1574 - -dgux*) 1575 - vendor=dg 1576 - ;; 1577 - -luna*) 1578 - vendor=omron 1579 - ;; 1580 - -genix*) 1581 - vendor=ns 1582 - ;; 1583 - -mvs* | -opened*) 1584 - vendor=ibm 1585 - ;; 1586 - -os400*) 1587 - vendor=ibm 1588 - ;; 1589 - -ptx*) 1590 - vendor=sequent 1591 - ;; 1592 - -tpf*) 1593 - vendor=ibm 1594 - ;; 1595 - -vxsim* | -vxworks* | -windiss*) 1596 - vendor=wrs 1597 - ;; 1598 - -aux*) 1599 - vendor=apple 1600 - ;; 1601 - -hms*) 1602 - vendor=hitachi 1603 - ;; 1604 - -mpw* | -macos*) 1605 - vendor=apple 1606 - ;; 1607 - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) 1608 - vendor=atari 1609 - ;; 1610 - -vos*) 1611 - vendor=stratus 1612 - ;; 1613 - esac 1614 - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` 1615 - ;; 1616 -esac 1617 - 1618 -echo $basic_machine$os 1619 -exit 1620 - 1621 -# Local variables: 1622 -# eval: (add-hook 'write-file-hooks 'time-stamp) 1623 -# time-stamp-start: "timestamp='" 1624 -# time-stamp-format: "%:y-%02m-%02d" 1625 -# time-stamp-end: "'" 1626 -# End: 1 +/usr/share/automake-1.11/config.sub
Changes to configure.
more than 10,000 changes
Changes to configure.ac.
1 1 # -*- Autoconf -*- 2 2 # Process this file with autoconf to produce a configure script. 3 3 4 4 AC_PREREQ(2.61) 5 -AC_INIT(librasterlite, 1.0, a.furieri @ lqt.it) 5 +AC_INIT(librasterlite, 1.1a, a.furieri @ lqt.it) 6 6 AC_LANG(C) 7 +AC_CONFIG_AUX_DIR([.]) 8 +AC_CONFIG_MACRO_DIR([m4]) 7 9 8 10 AM_INIT_AUTOMAKE 9 11 AM_MAINTAINER_MODE 10 12 11 13 # Checks for header files. 12 14 AC_CHECK_HEADERS(stdlib.h,, [AC_MSG_ERROR([cannot find stdlib.h, bailing out])]) 13 15 AC_CHECK_HEADERS(stdio.h,,[AC_MSG_ERROR([cannot find stdio.h, bailing out])]) ................................................................................ 44 46 AC_FUNC_LSTAT 45 47 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK 46 48 AC_FUNC_MEMCMP 47 49 AC_FUNC_STAT 48 50 AC_FUNC_STRFTIME 49 51 AC_CHECK_FUNCS([memset sqrt strcasecmp strerror strncasecmp strstr fdatasync ftruncate getcwd gettimeofday localtime_r memmove strerror]) 50 52 53 +# Checks for required libraries 54 +AC_CHECK_HEADERS(geotiff/geotiff.h) 55 +AC_CHECK_HEADERS(libgeotiff/geotiff.h) 56 +AC_CHECK_HEADERS(geotiff.h) 57 +if test x"$ac_cv_header_geotiff_geotiff_h" != x"yes" && test x"$ac_cv_header_libgeotiff_geotiff_h" != x"yes" && test x"$ac_cv_header_geotiff_h" != x"yes"; then 58 + AC_MSG_ERROR(['libgeotiff' is required but the header (geotiff.h) doesn't seem to be installed on this system]) 59 +fi 60 +AC_CHECK_LIB(geotiff,GTIFWriteKeys,,AC_MSG_ERROR(['libgeotiff' is required but it doesn't seems to be installed on this system.]),) 61 + 62 +PKG_CHECK_MODULES([LIBSPATIALITE], [spatialite], , AC_MSG_ERROR(['libspatialite' is required but it doesn't seem to be installed on this system.])) 63 +AC_SUBST(LIBSPATIALITE_CFLAGS) 64 +AC_SUBST(LIBSPATIALITE_LIBS) 65 + 51 66 AC_CONFIG_FILES([Makefile \ 52 67 headers/Makefile \ 53 - epsilon/Makefile \ 54 68 lib/Makefile \ 55 69 src/Makefile \ 56 70 rasterlite.pc]) 57 71 58 72 AC_OUTPUT
Changes to depcomp.
1 -#! /bin/sh 2 -# depcomp - compile a program generating dependencies as side-effects 3 - 4 -scriptversion=2007-03-29.01 5 - 6 -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software 7 -# Foundation, Inc. 8 - 9 -# This program is free software; you can redistribute it and/or modify 10 -# it under the terms of the GNU General Public License as published by 11 -# the Free Software Foundation; either version 2, or (at your option) 12 -# any later version. 13 - 14 -# This program is distributed in the hope that it will be useful, 15 -# but WITHOUT ANY WARRANTY; without even the implied warranty of 16 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 -# GNU General Public License for more details. 18 - 19 -# You should have received a copy of the GNU General Public License 20 -# along with this program; if not, write to the Free Software 21 -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 22 -# 02110-1301, USA. 23 - 24 -# As a special exception to the GNU General Public License, if you 25 -# distribute this file as part of a program that contains a 26 -# configuration script generated by Autoconf, you may include it under 27 -# the same distribution terms that you use for the rest of that program. 28 - 29 -# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. 30 - 31 -case $1 in 32 - '') 33 - echo "$0: No command. Try \`$0 --help' for more information." 1>&2 34 - exit 1; 35 - ;; 36 - -h | --h*) 37 - cat <<\EOF 38 -Usage: depcomp [--help] [--version] PROGRAM [ARGS] 39 - 40 -Run PROGRAMS ARGS to compile a file, generating dependencies 41 -as side-effects. 42 - 43 -Environment variables: 44 - depmode Dependency tracking mode. 45 - source Source file read by `PROGRAMS ARGS'. 46 - object Object file output by `PROGRAMS ARGS'. 47 - DEPDIR directory where to store dependencies. 48 - depfile Dependency file to output. 49 - tmpdepfile Temporary file to use when outputing dependencies. 50 - libtool Whether libtool is used (yes/no). 51 - 52 -Report bugs to <bug-automake@gnu.org>. 53 -EOF 54 - exit $? 55 - ;; 56 - -v | --v*) 57 - echo "depcomp $scriptversion" 58 - exit $? 59 - ;; 60 -esac 61 - 62 -if test -z "$depmode" || test -z "$source" || test -z "$object"; then 63 - echo "depcomp: Variables source, object and depmode must be set" 1>&2 64 - exit 1 65 -fi 66 - 67 -# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. 68 -depfile=${depfile-`echo "$object" | 69 - sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} 70 -tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} 71 - 72 -rm -f "$tmpdepfile" 73 - 74 -# Some modes work just like other modes, but use different flags. We 75 -# parameterize here, but still list the modes in the big case below, 76 -# to make depend.m4 easier to write. Note that we *cannot* use a case 77 -# here, because this file can only contain one case statement. 78 -if test "$depmode" = hp; then 79 - # HP compiler uses -M and no extra arg. 80 - gccflag=-M 81 - depmode=gcc 82 -fi 83 - 84 -if test "$depmode" = dashXmstdout; then 85 - # This is just like dashmstdout with a different argument. 86 - dashmflag=-xM 87 - depmode=dashmstdout 88 -fi 89 - 90 -case "$depmode" in 91 -gcc3) 92 -## gcc 3 implements dependency tracking that does exactly what 93 -## we want. Yay! Note: for some reason libtool 1.4 doesn't like 94 -## it if -MD -MP comes after the -MF stuff. Hmm. 95 -## Unfortunately, FreeBSD c89 acceptance of flags depends upon 96 -## the command line argument order; so add the flags where they 97 -## appear in depend2.am. Note that the slowdown incurred here 98 -## affects only configure: in makefiles, %FASTDEP% shortcuts this. 99 - for arg 100 - do 101 - case $arg in 102 - -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; 103 - *) set fnord "$@" "$arg" ;; 104 - esac 105 - shift # fnord 106 - shift # $arg 107 - done 108 - "$@" 109 - stat=$? 110 - if test $stat -eq 0; then : 111 - else 112 - rm -f "$tmpdepfile" 113 - exit $stat 114 - fi 115 - mv "$tmpdepfile" "$depfile" 116 - ;; 117 - 118 -gcc) 119 -## There are various ways to get dependency output from gcc. Here's 120 -## why we pick this rather obscure method: 121 -## - Don't want to use -MD because we'd like the dependencies to end 122 -## up in a subdir. Having to rename by hand is ugly. 123 -## (We might end up doing this anyway to support other compilers.) 124 -## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like 125 -## -MM, not -M (despite what the docs say). 126 -## - Using -M directly means running the compiler twice (even worse 127 -## than renaming). 128 - if test -z "$gccflag"; then 129 - gccflag=-MD, 130 - fi 131 - "$@" -Wp,"$gccflag$tmpdepfile" 132 - stat=$? 133 - if test $stat -eq 0; then : 134 - else 135 - rm -f "$tmpdepfile" 136 - exit $stat 137 - fi 138 - rm -f "$depfile" 139 - echo "$object : \\" > "$depfile" 140 - alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 141 -## The second -e expression handles DOS-style file names with drive letters. 142 - sed -e 's/^[^:]*: / /' \ 143 - -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" 144 -## This next piece of magic avoids the `deleted header file' problem. 145 -## The problem is that when a header file which appears in a .P file 146 -## is deleted, the dependency causes make to die (because there is 147 -## typically no way to rebuild the header). We avoid this by adding 148 -## dummy dependencies for each header file. Too bad gcc doesn't do 149 -## this for us directly. 150 - tr ' ' ' 151 -' < "$tmpdepfile" | 152 -## Some versions of gcc put a space before the `:'. On the theory 153 -## that the space means something, we add a space to the output as 154 -## well. 155 -## Some versions of the HPUX 10.20 sed can't process this invocation 156 -## correctly. Breaking it into two sed invocations is a workaround. 157 - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" 158 - rm -f "$tmpdepfile" 159 - ;; 160 - 161 -hp) 162 - # This case exists only to let depend.m4 do its work. It works by 163 - # looking at the text of this script. This case will never be run, 164 - # since it is checked for above. 165 - exit 1 166 - ;; 167 - 168 -sgi) 169 - if test "$libtool" = yes; then 170 - "$@" "-Wp,-MDupdate,$tmpdepfile" 171 - else 172 - "$@" -MDupdate "$tmpdepfile" 173 - fi 174 - stat=$? 175 - if test $stat -eq 0; then : 176 - else 177 - rm -f "$tmpdepfile" 178 - exit $stat 179 - fi 180 - rm -f "$depfile" 181 - 182 - if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files 183 - echo "$object : \\" > "$depfile" 184 - 185 - # Clip off the initial element (the dependent). Don't try to be 186 - # clever and replace this with sed code, as IRIX sed won't handle 187 - # lines with more than a fixed number of characters (4096 in 188 - # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; 189 - # the IRIX cc adds comments like `#:fec' to the end of the 190 - # dependency line. 191 - tr ' ' ' 192 -' < "$tmpdepfile" \ 193 - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ 194 - tr ' 195 -' ' ' >> $depfile 196 - echo >> $depfile 197 - 198 - # The second pass generates a dummy entry for each header file. 199 - tr ' ' ' 200 -' < "$tmpdepfile" \ 201 - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ 202 - >> $depfile 203 - else 204 - # The sourcefile does not contain any dependencies, so just 205 - # store a dummy comment line, to avoid errors with the Makefile 206 - # "include basename.Plo" scheme. 207 - echo "#dummy" > "$depfile" 208 - fi 209 - rm -f "$tmpdepfile" 210 - ;; 211 - 212 -aix) 213 - # The C for AIX Compiler uses -M and outputs the dependencies 214 - # in a .u file. In older versions, this file always lives in the 215 - # current directory. Also, the AIX compiler puts `$object:' at the 216 - # start of each line; $object doesn't have directory information. 217 - # Version 6 uses the directory in both cases. 218 - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` 219 - test "x$dir" = "x$object" && dir= 220 - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` 221 - if test "$libtool" = yes; then 222 - tmpdepfile1=$dir$base.u 223 - tmpdepfile2=$base.u 224 - tmpdepfile3=$dir.libs/$base.u 225 - "$@" -Wc,-M 226 - else 227 - tmpdepfile1=$dir$base.u 228 - tmpdepfile2=$dir$base.u 229 - tmpdepfile3=$dir$base.u 230 - "$@" -M 231 - fi 232 - stat=$? 233 - 234 - if test $stat -eq 0; then : 235 - else 236 - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" 237 - exit $stat 238 - fi 239 - 240 - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" 241 - do 242 - test -f "$tmpdepfile" && break 243 - done 244 - if test -f "$tmpdepfile"; then 245 - # Each line is of the form `foo.o: dependent.h'. 246 - # Do two passes, one to just change these to 247 - # `$object: dependent.h' and one to simply `dependent.h:'. 248 - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" 249 - # That's a tab and a space in the []. 250 - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" 251 - else 252 - # The sourcefile does not contain any dependencies, so just 253 - # store a dummy comment line, to avoid errors with the Makefile 254 - # "include basename.Plo" scheme. 255 - echo "#dummy" > "$depfile" 256 - fi 257 - rm -f "$tmpdepfile" 258 - ;; 259 - 260 -icc) 261 - # Intel's C compiler understands `-MD -MF file'. However on 262 - # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c 263 - # ICC 7.0 will fill foo.d with something like 264 - # foo.o: sub/foo.c 265 - # foo.o: sub/foo.h 266 - # which is wrong. We want: 267 - # sub/foo.o: sub/foo.c 268 - # sub/foo.o: sub/foo.h 269 - # sub/foo.c: 270 - # sub/foo.h: 271 - # ICC 7.1 will output 272 - # foo.o: sub/foo.c sub/foo.h 273 - # and will wrap long lines using \ : 274 - # foo.o: sub/foo.c ... \ 275 - # sub/foo.h ... \ 276 - # ... 277 - 278 - "$@" -MD -MF "$tmpdepfile" 279 - stat=$? 280 - if test $stat -eq 0; then : 281 - else 282 - rm -f "$tmpdepfile" 283 - exit $stat 284 - fi 285 - rm -f "$depfile" 286 - # Each line is of the form `foo.o: dependent.h', 287 - # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. 288 - # Do two passes, one to just change these to 289 - # `$object: dependent.h' and one to simply `dependent.h:'. 290 - sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" 291 - # Some versions of the HPUX 10.20 sed can't process this invocation 292 - # correctly. Breaking it into two sed invocations is a workaround. 293 - sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | 294 - sed -e 's/$/ :/' >> "$depfile" 295 - rm -f "$tmpdepfile" 296 - ;; 297 - 298 -hp2) 299 - # The "hp" stanza above does not work with aCC (C++) and HP's ia64 300 - # compilers, which have integrated preprocessors. The correct option 301 - # to use with these is +Maked; it writes dependencies to a file named 302 - # 'foo.d', which lands next to the object file, wherever that 303 - # happens to be. 304 - # Much of this is similar to the tru64 case; see comments there. 305 - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` 306 - test "x$dir" = "x$object" && dir= 307 - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` 308 - if test "$libtool" = yes; then 309 - tmpdepfile1=$dir$base.d 310 - tmpdepfile2=$dir.libs/$base.d 311 - "$@" -Wc,+Maked 312 - else 313 - tmpdepfile1=$dir$base.d 314 - tmpdepfile2=$dir$base.d 315 - "$@" +Maked 316 - fi 317 - stat=$? 318 - if test $stat -eq 0; then : 319 - else 320 - rm -f "$tmpdepfile1" "$tmpdepfile2" 321 - exit $stat 322 - fi 323 - 324 - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" 325 - do 326 - test -f "$tmpdepfile" && break 327 - done 328 - if test -f "$tmpdepfile"; then 329 - sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" 330 - # Add `dependent.h:' lines. 331 - sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" 332 - else 333 - echo "#dummy" > "$depfile" 334 - fi 335 - rm -f "$tmpdepfile" "$tmpdepfile2" 336 - ;; 337 - 338 -tru64) 339 - # The Tru64 compiler uses -MD to generate dependencies as a side 340 - # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. 341 - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put 342 - # dependencies in `foo.d' instead, so we check for that too. 343 - # Subdirectories are respected. 344 - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` 345 - test "x$dir" = "x$object" && dir= 346 - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` 347 - 348 - if test "$libtool" = yes; then 349 - # With Tru64 cc, shared objects can also be used to make a 350 - # static library. This mechanism is used in libtool 1.4 series to 351 - # handle both shared and static libraries in a single compilation. 352 - # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. 353 - # 354 - # With libtool 1.5 this exception was removed, and libtool now 355 - # generates 2 separate objects for the 2 libraries. These two 356 - # compilations output dependencies in $dir.libs/$base.o.d and 357 - # in $dir$base.o.d. We have to check for both files, because 358 - # one of the two compilations can be disabled. We should prefer 359 - # $dir$base.o.d over $dir.libs/$base.o.d because the latter is 360 - # automatically cleaned when .libs/ is deleted, while ignoring 361 - # the former would cause a distcleancheck panic. 362 - tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 363 - tmpdepfile2=$dir$base.o.d # libtool 1.5 364 - tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 365 - tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 366 - "$@" -Wc,-MD 367 - else 368 - tmpdepfile1=$dir$base.o.d 369 - tmpdepfile2=$dir$base.d 370 - tmpdepfile3=$dir$base.d 371 - tmpdepfile4=$dir$base.d 372 - "$@" -MD 373 - fi 374 - 375 - stat=$? 376 - if test $stat -eq 0; then : 377 - else 378 - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" 379 - exit $stat 380 - fi 381 - 382 - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" 383 - do 384 - test -f "$tmpdepfile" && break 385 - done 386 - if test -f "$tmpdepfile"; then 387 - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" 388 - # That's a tab and a space in the []. 389 - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" 390 - else 391 - echo "#dummy" > "$depfile" 392 - fi 393 - rm -f "$tmpdepfile" 394 - ;; 395 - 396 -#nosideeffect) 397 - # This comment above is used by automake to tell side-effect 398 - # dependency tracking mechanisms from slower ones. 399 - 400 -dashmstdout) 401 - # Important note: in order to support this mode, a compiler *must* 402 - # always write the preprocessed file to stdout, regardless of -o. 403 - "$@" || exit $? 404 - 405 - # Remove the call to Libtool. 406 - if test "$libtool" = yes; then 407 - while test $1 != '--mode=compile'; do 408 - shift 409 - done 410 - shift 411 - fi 412 - 413 - # Remove `-o $object'. 414 - IFS=" " 415 - for arg 416 - do 417 - case $arg in 418 - -o) 419 - shift 420 - ;; 421 - $object) 422 - shift 423 - ;; 424 - *) 425 - set fnord "$@" "$arg" 426 - shift # fnord 427 - shift # $arg 428 - ;; 429 - esac 430 - done 431 - 432 - test -z "$dashmflag" && dashmflag=-M 433 - # Require at least two characters before searching for `:' 434 - # in the target name. This is to cope with DOS-style filenames: 435 - # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. 436 - "$@" $dashmflag | 437 - sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" 438 - rm -f "$depfile" 439 - cat < "$tmpdepfile" > "$depfile" 440 - tr ' ' ' 441 -' < "$tmpdepfile" | \ 442 -## Some versions of the HPUX 10.20 sed can't process this invocation 443 -## correctly. Breaking it into two sed invocations is a workaround. 444 - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" 445 - rm -f "$tmpdepfile" 446 - ;; 447 - 448 -dashXmstdout) 449 - # This case only exists to satisfy depend.m4. It is never actually 450 - # run, as this mode is specially recognized in the preamble. 451 - exit 1 452 - ;; 453 - 454 -makedepend) 455 - "$@" || exit $? 456 - # Remove any Libtool call 457 - if test "$libtool" = yes; then 458 - while test $1 != '--mode=compile'; do 459 - shift 460 - done 461 - shift 462 - fi 463 - # X makedepend 464 - shift 465 - cleared=no 466 - for arg in "$@"; do 467 - case $cleared in 468 - no) 469 - set ""; shift 470 - cleared=yes ;; 471 - esac 472 - case "$arg" in 473 - -D*|-I*) 474 - set fnord "$@" "$arg"; shift ;; 475 - # Strip any option that makedepend may not understand. Remove 476 - # the object too, otherwise makedepend will parse it as a source file. 477 - -*|$object) 478 - ;; 479 - *) 480 - set fnord "$@" "$arg"; shift ;; 481 - esac 482 - done 483 - obj_suffix="`echo $object | sed 's/^.*\././'`" 484 - touch "$tmpdepfile" 485 - ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" 486 - rm -f "$depfile" 487 - cat < "$tmpdepfile" > "$depfile" 488 - sed '1,2d' "$tmpdepfile" | tr ' ' ' 489 -' | \ 490 -## Some versions of the HPUX 10.20 sed can't process this invocation 491 -## correctly. Breaking it into two sed invocations is a workaround. 492 - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" 493 - rm -f "$tmpdepfile" "$tmpdepfile".bak 494 - ;; 495 - 496 -cpp) 497 - # Important note: in order to support this mode, a compiler *must* 498 - # always write the preprocessed file to stdout. 499 - "$@" || exit $? 500 - 501 - # Remove the call to Libtool. 502 - if test "$libtool" = yes; then 503 - while test $1 != '--mode=compile'; do 504 - shift 505 - done 506 - shift 507 - fi 508 - 509 - # Remove `-o $object'. 510 - IFS=" " 511 - for arg 512 - do 513 - case $arg in 514 - -o) 515 - shift 516 - ;; 517 - $object) 518 - shift 519 - ;; 520 - *) 521 - set fnord "$@" "$arg" 522 - shift # fnord 523 - shift # $arg 524 - ;; 525 - esac 526 - done 527 - 528 - "$@" -E | 529 - sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ 530 - -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | 531 - sed '$ s: \\$::' > "$tmpdepfile" 532 - rm -f "$depfile" 533 - echo "$object : \\" > "$depfile" 534 - cat < "$tmpdepfile" >> "$depfile" 535 - sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" 536 - rm -f "$tmpdepfile" 537 - ;; 538 - 539 -msvisualcpp) 540 - # Important note: in order to support this mode, a compiler *must* 541 - # always write the preprocessed file to stdout, regardless of -o, 542 - # because we must use -o when running libtool. 543 - "$@" || exit $? 544 - IFS=" " 545 - for arg 546 - do 547 - case "$arg" in 548 - "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") 549 - set fnord "$@" 550 - shift 551 - shift 552 - ;; 553 - *) 554 - set fnord "$@" "$arg" 555 - shift 556 - shift 557 - ;; 558 - esac 559 - done 560 - "$@" -E | 561 - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" 562 - rm -f "$depfile" 563 - echo "$object : \\" > "$depfile" 564 - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" 565 - echo " " >> "$depfile" 566 - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" 567 - rm -f "$tmpdepfile" 568 - ;; 569 - 570 -none) 571 - exec "$@" 572 - ;; 573 - 574 -*) 575 - echo "Unknown depmode $depmode" 1>&2 576 - exit 1 577 - ;; 578 -esac 579 - 580 -exit 0 581 - 582 -# Local Variables: 583 -# mode: shell-script 584 -# sh-indentation: 2 585 -# eval: (add-hook 'write-file-hooks 'time-stamp) 586 -# time-stamp-start: "scriptversion=" 587 -# time-stamp-format: "%:y-%02m-%02d.%02H" 588 -# time-stamp-end: "$" 589 -# End: 1 +/usr/share/automake-1.11/depcomp
Deleted epsilon/Makefile.am.
1 -INCLUDES = -I$(top_srcdir)/lib 2 -METASOURCES = AUTO 3 -noinst_LTLIBRARIES = libepsilon.la 4 -libepsilon_la_SOURCES = bit_io.c checksum.c cobs.c color.c common.c dc_level.c \ 5 - filter.c filterbank.c libmain.c list.c mem_alloc.c merge_split.c pad.c \ 6 - resample.c speck.c 7 -noinst_HEADERS = bit_io.h checksum.h cobs.h color.h common.h daub97lift.h \ 8 - dc_level.h filter.h filterbank.h libmain.h list.h mem_alloc.h \ 9 - merge_split.h pad.h resample.h speck.h epsilon.h 10 - 11 -EXTRA_DIST = msvc/stdint.h msvc/inttypes.h
Deleted epsilon/Makefile.in.
1 -# Makefile.in generated by automake 1.10.1 from Makefile.am. 2 -# @configure_input@ 3 - 4 -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 5 -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. 6 -# This Makefile.in is free software; the Free Software Foundation 7 -# gives unlimited permission to copy and/or distribute it, 8 -# with or without modifications, as long as this notice is preserved. 9 - 10 -# This program is distributed in the hope that it will be useful, 11 -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without 12 -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A 13 -# PARTICULAR PURPOSE. 14 - 15 -@SET_MAKE@ 16 - 17 - 18 -VPATH = @srcdir@ 19 -pkgdatadir = $(datadir)/@PACKAGE@ 20 -pkglibdir = $(libdir)/@PACKAGE@ 21 -pkgincludedir = $(includedir)/@PACKAGE@ 22 -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd 23 -install_sh_DATA = $(install_sh) -c -m 644 24 -install_sh_PROGRAM = $(install_sh) -c 25 -install_sh_SCRIPT = $(install_sh) -c 26 -INSTALL_HEADER = $(INSTALL_DATA) 27 -transform = $(program_transform_name) 28 -NORMAL_INSTALL = : 29 -PRE_INSTALL = : 30 -POST_INSTALL = : 31 -NORMAL_UNINSTALL = : 32 -PRE_UNINSTALL = : 33 -POST_UNINSTALL = : 34 -build_triplet = @build@ 35 -host_triplet = @host@ 36 -subdir = epsilon 37 -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ 38 - $(srcdir)/Makefile.in 39 -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 40 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac 41 -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 42 - $(ACLOCAL_M4) 43 -mkinstalldirs = $(install_sh) -d 44 -CONFIG_CLEAN_FILES = 45 -LTLIBRARIES = $(noinst_LTLIBRARIES) 46 -libepsilon_la_LIBADD = 47 -am_libepsilon_la_OBJECTS = bit_io.lo checksum.lo cobs.lo color.lo \ 48 - common.lo dc_level.lo filter.lo filterbank.lo libmain.lo \ 49 - list.lo mem_alloc.lo merge_split.lo pad.lo resample.lo \ 50 - speck.lo 51 -libepsilon_la_OBJECTS = $(am_libepsilon_la_OBJECTS) 52 -DEFAULT_INCLUDES = -I.@am__isrc@ 53 -depcomp = $(SHELL) $(top_srcdir)/depcomp 54 -am__depfiles_maybe = depfiles 55 -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ 56 - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) 57 -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ 58 - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ 59 - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) 60 -CCLD = $(CC) 61 -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ 62 - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ 63 - $(LDFLAGS) -o $@ 64 -SOURCES = $(libepsilon_la_SOURCES) 65 -DIST_SOURCES = $(libepsilon_la_SOURCES) 66 -HEADERS = $(noinst_HEADERS) 67 -ETAGS = etags 68 -CTAGS = ctags 69 -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 70 -ACLOCAL = @ACLOCAL@ 71 -AMTAR = @AMTAR@ 72 -AR = @AR@ 73 -AS = @AS@ 74 -AUTOCONF = @AUTOCONF@ 75 -AUTOHEADER = @AUTOHEADER@ 76 -AUTOMAKE = @AUTOMAKE@ 77 -AWK = @AWK@ 78 -CC = @CC@ 79 -CCDEPMODE = @CCDEPMODE@ 80 -CFLAGS = @CFLAGS@ 81 -CPP = @CPP@ 82 -CPPFLAGS = @CPPFLAGS@ 83 -CXX = @CXX@ 84 -CXXCPP = @CXXCPP@ 85 -CXXDEPMODE = @CXXDEPMODE@ 86 -CXXFLAGS = @CXXFLAGS@ 87 -CYGPATH_W = @CYGPATH_W@ 88 -DEFS = @DEFS@ 89 -DEPDIR = @DEPDIR@ 90 -DLLTOOL = @DLLTOOL@ 91 -DSYMUTIL = @DSYMUTIL@ 92 -ECHO = @ECHO@ 93 -ECHO_C = @ECHO_C@ 94 -ECHO_N = @ECHO_N@ 95 -ECHO_T = @ECHO_T@ 96 -EGREP = @EGREP@ 97 -EXEEXT = @EXEEXT@ 98 -F77 = @F77@ 99 -FFLAGS = @FFLAGS@ 100 -GREP = @GREP@ 101 -INSTALL = @INSTALL@ 102 -INSTALL_DATA = @INSTALL_DATA@ 103 -INSTALL_PROGRAM = @INSTALL_PROGRAM@ 104 -INSTALL_SCRIPT = @INSTALL_SCRIPT@ 105 -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ 106 -LDFLAGS = @LDFLAGS@ 107 -LIBOBJS = @LIBOBJS@ 108 -LIBS = @LIBS@ 109 -LIBTOOL = @LIBTOOL@ 110 -LN_S = @LN_S@ 111 -LTLIBOBJS = @LTLIBOBJS@ 112 -MAINT = @MAINT@ 113 -MAKEINFO = @MAKEINFO@ 114 -MKDIR_P = @MKDIR_P@ 115 -NMEDIT = @NMEDIT@ 116 -OBJDUMP = @OBJDUMP@ 117 -OBJEXT = @OBJEXT@ 118 -PACKAGE = @PACKAGE@ 119 -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ 120 -PACKAGE_NAME = @PACKAGE_NAME@ 121 -PACKAGE_STRING = @PACKAGE_STRING@ 122 -PACKAGE_TARNAME = @PACKAGE_TARNAME@ 123 -PACKAGE_VERSION = @PACKAGE_VERSION@ 124 -PATH_SEPARATOR = @PATH_SEPARATOR@ 125 -RANLIB = @RANLIB@ 126 -SED = @SED@ 127 -SET_MAKE = @SET_MAKE@ 128 -SHELL = @SHELL@ 129 -STRIP = @STRIP@ 130 -VERSION = @VERSION@ 131 -abs_builddir = @abs_builddir@ 132 -abs_srcdir = @abs_srcdir@ 133 -abs_top_builddir = @abs_top_builddir@ 134 -abs_top_srcdir = @abs_top_srcdir@ 135 -ac_ct_CC = @ac_ct_CC@ 136 -ac_ct_CXX = @ac_ct_CXX@ 137 -ac_ct_F77 = @ac_ct_F77@ 138 -am__include = @am__include@ 139 -am__leading_dot = @am__leading_dot@ 140 -am__quote = @am__quote@ 141 -am__tar = @am__tar@ 142 -am__untar = @am__untar@ 143 -bindir = @bindir@ 144 -build = @build@ 145 -build_alias = @build_alias@ 146 -build_cpu = @build_cpu@ 147 -build_os = @build_os@ 148 -build_vendor = @build_vendor@ 149 -builddir = @builddir@ 150 -datadir = @datadir@ 151 -datarootdir = @datarootdir@ 152 -docdir = @docdir@ 153 -dvidir = @dvidir@ 154 -exec_prefix = @exec_prefix@ 155 -host = @host@ 156 -host_alias = @host_alias@ 157 -host_cpu = @host_cpu@ 158 -host_os = @host_os@ 159 -host_vendor = @host_vendor@ 160 -htmldir = @htmldir@ 161 -includedir = @includedir@ 162 -infodir = @infodir@ 163 -install_sh = @install_sh@ 164 -libdir = @libdir@ 165 -libexecdir = @libexecdir@ 166 -localedir = @localedir@ 167 -localstatedir = @localstatedir@ 168 -mandir = @mandir@ 169 -mkdir_p = @mkdir_p@ 170 -oldincludedir = @oldincludedir@ 171 -pdfdir = @pdfdir@ 172 -prefix = @prefix@ 173 -program_transform_name = @program_transform_name@ 174 -psdir = @psdir@ 175 -sbindir = @sbindir@ 176 -sharedstatedir = @sharedstatedir@ 177 -srcdir = @srcdir@ 178 -sysconfdir = @sysconfdir@ 179 -target_alias = @target_alias@ 180 -top_builddir = @top_builddir@ 181 -top_srcdir = @top_srcdir@ 182 -INCLUDES = -I$(top_srcdir)/lib 183 -METASOURCES = AUTO 184 -noinst_LTLIBRARIES = libepsilon.la 185 -libepsilon_la_SOURCES = bit_io.c checksum.c cobs.c color.c common.c dc_level.c \ 186 - filter.c filterbank.c libmain.c list.c mem_alloc.c merge_split.c pad.c \ 187 - resample.c speck.c 188 - 189 -noinst_HEADERS = bit_io.h checksum.h cobs.h color.h common.h daub97lift.h \ 190 - dc_level.h filter.h filterbank.h libmain.h list.h mem_alloc.h \ 191 - merge_split.h pad.h resample.h speck.h epsilon.h 192 - 193 -EXTRA_DIST = msvc/stdint.h msvc/inttypes.h 194 -all: all-am 195 - 196 -.SUFFIXES: 197 -.SUFFIXES: .c .lo .o .obj 198 -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) 199 - @for dep in $?; do \ 200 - case '$(am__configure_deps)' in \ 201 - *$$dep*) \ 202 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ 203 - && exit 0; \ 204 - exit 1;; \ 205 - esac; \ 206 - done; \ 207 - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign epsilon/Makefile'; \ 208 - cd $(top_srcdir) && \ 209 - $(AUTOMAKE) --foreign epsilon/Makefile 210 -.PRECIOUS: Makefile 211 -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status 212 - @case '$?' in \ 213 - *config.status*) \ 214 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ 215 - *) \ 216 - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ 217 - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 218 - esac; 219 - 220 -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) 221 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 222 - 223 -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 224 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 225 -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) 226 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 227 - 228 -clean-noinstLTLIBRARIES: 229 - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) 230 - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ 231 - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ 232 - test "$$dir" != "$$p" || dir=.; \ 233 - echo "rm -f \"$${dir}/so_locations\""; \ 234 - rm -f "$${dir}/so_locations"; \ 235 - done 236 -libepsilon.la: $(libepsilon_la_OBJECTS) $(libepsilon_la_DEPENDENCIES) 237 - $(LINK) $(libepsilon_la_OBJECTS) $(libepsilon_la_LIBADD) $(LIBS) 238 - 239 -mostlyclean-compile: 240 - -rm -f *.$(OBJEXT) 241 - 242 -distclean-compile: 243 - -rm -f *.tab.c 244 - 245 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bit_io.Plo@am__quote@ 246 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/checksum.Plo@am__quote@ 247 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cobs.Plo@am__quote@ 248 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/color.Plo@am__quote@ 249 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/common.Plo@am__quote@ 250 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dc_level.Plo@am__quote@ 251 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter.Plo@am__quote@ 252 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filterbank.Plo@am__quote@ 253 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmain.Plo@am__quote@ 254 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list.Plo@am__quote@ 255 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mem_alloc.Plo@am__quote@ 256 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/merge_split.Plo@am__quote@ 257 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pad.Plo@am__quote@ 258 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/resample.Plo@am__quote@ 259 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/speck.Plo@am__quote@ 260 - 261 -.c.o: 262 -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< 263 -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 264 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 265 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 266 -@am__fastdepCC_FALSE@ $(COMPILE) -c $< 267 - 268 -.c.obj: 269 -@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` 270 -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 271 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 272 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 273 -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` 274 - 275 -.c.lo: 276 -@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< 277 -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo 278 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ 279 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 280 -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< 281 - 282 -mostlyclean-libtool: 283 - -rm -f *.lo 284 - 285 -clean-libtool: 286 - -rm -rf .libs _libs 287 - 288 -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) 289 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ 290 - unique=`for i in $$list; do \ 291 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 292 - done | \ 293 - $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ 294 - END { if (nonempty) { for (i in files) print i; }; }'`; \ 295 - mkid -fID $$unique 296 -tags: TAGS 297 - 298 -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ 299 - $(TAGS_FILES) $(LISP) 300 - tags=; \ 301 - here=`pwd`; \ 302 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ 303 - unique=`for i in $$list; do \ 304 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 305 - done | \ 306 - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ 307 - END { if (nonempty) { for (i in files) print i; }; }'`; \ 308 - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ 309 - test -n "$$unique" || unique=$$empty_fix; \ 310 - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 311 - $$tags $$unique; \ 312 - fi 313 -ctags: CTAGS 314 -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ 315 - $(TAGS_FILES) $(LISP) 316 - tags=; \ 317 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ 318 - unique=`for i in $$list; do \ 319 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 320 - done | \ 321 - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ 322 - END { if (nonempty) { for (i in files) print i; }; }'`; \ 323 - test -z "$(CTAGS_ARGS)$$tags$$unique" \ 324 - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ 325 - $$tags $$unique 326 - 327 -GTAGS: 328 - here=`$(am__cd) $(top_builddir) && pwd` \ 329 - && cd $(top_srcdir) \ 330 - && gtags -i $(GTAGS_ARGS) $$here 331 - 332 -distclean-tags: 333 - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags 334 - 335 -distdir: $(DISTFILES) 336 - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ 337 - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ 338 - list='$(DISTFILES)'; \ 339 - dist_files=`for file in $$list; do echo $$file; done | \ 340 - sed -e "s|^$$srcdirstrip/||;t" \ 341 - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ 342 - case $$dist_files in \ 343 - */*) $(MKDIR_P) `echo "$$dist_files" | \ 344 - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ 345 - sort -u` ;; \ 346 - esac; \ 347 - for file in $$dist_files; do \ 348 - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ 349 - if test -d $$d/$$file; then \ 350 - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ 351 - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ 352 - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ 353 - fi; \ 354 - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ 355 - else \ 356 - test -f $(distdir)/$$file \ 357 - || cp -p $$d/$$file $(distdir)/$$file \ 358 - || exit 1; \ 359 - fi; \ 360 - done 361 -check-am: all-am 362 -check: check-am 363 -all-am: Makefile $(LTLIBRARIES) $(HEADERS) 364 -installdirs: 365 -install: install-am 366 -install-exec: install-exec-am 367 -install-data: install-data-am 368 -uninstall: uninstall-am 369 - 370 -install-am: all-am 371 - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am 372 - 373 -installcheck: installcheck-am 374 -install-strip: 375 - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ 376 - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ 377 - `test -z '$(STRIP)' || \ 378 - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install 379 -mostlyclean-generic: 380 - 381 -clean-generic: 382 - 383 -distclean-generic: 384 - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) 385 - 386 -maintainer-clean-generic: 387 - @echo "This command is intended for maintainers to use" 388 - @echo "it deletes files that may require special tools to rebuild." 389 -clean: clean-am 390 - 391 -clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ 392 - mostlyclean-am 393 - 394 -distclean: distclean-am 395 - -rm -rf ./$(DEPDIR) 396 - -rm -f Makefile 397 -distclean-am: clean-am distclean-compile distclean-generic \ 398 - distclean-tags 399 - 400 -dvi: dvi-am 401 - 402 -dvi-am: 403 - 404 -html: html-am 405 - 406 -info: info-am 407 - 408 -info-am: 409 - 410 -install-data-am: 411 - 412 -install-dvi: install-dvi-am 413 - 414 -install-exec-am: 415 - 416 -install-html: install-html-am 417 - 418 -install-info: install-info-am 419 - 420 -install-man: 421 - 422 -install-pdf: install-pdf-am 423 - 424 -install-ps: install-ps-am 425 - 426 -installcheck-am: 427 - 428 -maintainer-clean: maintainer-clean-am 429 - -rm -rf ./$(DEPDIR) 430 - -rm -f Makefile 431 -maintainer-clean-am: distclean-am maintainer-clean-generic 432 - 433 -mostlyclean: mostlyclean-am 434 - 435 -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ 436 - mostlyclean-libtool 437 - 438 -pdf: pdf-am 439 - 440 -pdf-am: 441 - 442 -ps: ps-am 443 - 444 -ps-am: 445 - 446 -uninstall-am: 447 - 448 -.MAKE: install-am install-strip 449 - 450 -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ 451 - clean-libtool clean-noinstLTLIBRARIES ctags distclean \ 452 - distclean-compile distclean-generic distclean-libtool \ 453 - distclean-tags distdir dvi dvi-am html html-am info info-am \ 454 - install install-am install-data install-data-am install-dvi \ 455 - install-dvi-am install-exec install-exec-am install-html \ 456 - install-html-am install-info install-info-am install-man \ 457 - install-pdf install-pdf-am install-ps install-ps-am \ 458 - install-strip installcheck installcheck-am installdirs \ 459 - maintainer-clean maintainer-clean-generic mostlyclean \ 460 - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ 461 - pdf pdf-am ps ps-am tags uninstall uninstall-am 462 - 463 -# Tell versions [3.59,3.63) of GNU make to not export all variables. 464 -# Otherwise a system limit (for SysV at least) may be exceeded. 465 -.NOEXPORT:
Deleted epsilon/bit_io.c.
1 -/* 2 - * $Id: bit_io.c,v 1.12 2008/03/25 19:31:44 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -#include <common.h> 25 -#include <bit_io.h> 26 - 27 -void 28 -init_bits (bit_buffer * bb, unsigned char *buf, int size) 29 -{ 30 - assert (size > 0); 31 - 32 - bb->start = bb->next = buf; 33 - bb->end = bb->start + size; 34 - bb->bits = bb->pending = 0; 35 -} 36 - 37 -int 38 -write_bits (bit_buffer * bb, int value, int size) 39 -{ 40 - assert (size <= 24); 41 - 42 - /* No more space available */ 43 - if (bb->next >= bb->end) 44 - { 45 - return BIT_BUFFER_OVERFLOW; 46 - } 47 - 48 - /* Save requested number of bits */ 49 - bb->bits |= (value << bb->pending); 50 - bb->pending += size; 51 - 52 - /* Write complete octets */ 53 - while (bb->pending >= 8) 54 - { 55 - if (bb->next >= bb->end) 56 - { 57 - return BIT_BUFFER_OVERFLOW; 58 - } 59 - 60 - *bb->next++ = (unsigned char) (bb->bits & 0xff); 61 - 62 - bb->bits >>= 8; 63 - bb->pending -= 8; 64 - } 65 - 66 - return BIT_BUFFER_OK; 67 -} 68 - 69 -int 70 -read_bits (bit_buffer * bb, int *value, int size) 71 -{ 72 - assert (size <= 24); 73 - 74 - /* Read missing bytes */ 75 - while (bb->pending < size) 76 - { 77 - if (bb->next >= bb->end) 78 - { 79 - return BIT_BUFFER_UNDERFLOW; 80 - } 81 - 82 - bb->bits |= (*bb->next++ << bb->pending); 83 - bb->pending += 8; 84 - } 85 - 86 - *value = bb->bits & (~(~0 << size)); 87 - 88 - bb->bits >>= size; 89 - bb->pending -= size; 90 - 91 - return BIT_BUFFER_OK; 92 -} 93 - 94 -int 95 -flush_bits (bit_buffer * bb) 96 -{ 97 - if (bb->pending) 98 - { 99 - return write_bits (bb, 0UL, 8); 100 - } 101 - else 102 - { 103 - return BIT_BUFFER_OK; 104 - } 105 -}
Deleted epsilon/bit_io.h.
1 -/* 2 - * $Id: bit_io.h,v 1.15 2008/03/25 19:31:45 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -/** \file 25 - * 26 - * \brief Bit I/O 27 - * 28 - * This file contains bit I/O routines. */ 29 - 30 -#ifndef __BIT_IO_H__ 31 -#define __BIT_IO_H__ 32 - 33 -#ifdef __cplusplus 34 -extern "C" 35 -{ 36 -#endif 37 - 38 -/** \addtogroup bit_io Bit I/O */ 39 -/*@{*/ 40 - 41 -#include <common.h> 42 - 43 -/** All bits are successfuly processed */ 44 -#define BIT_BUFFER_OK 0 45 -/** Cannot write bits, output buffer is full */ 46 -#define BIT_BUFFER_OVERFLOW 1 47 -/** Cannot read bits, input buffer is empty */ 48 -#define BIT_BUFFER_UNDERFLOW 2 49 - 50 -/** Bit-buffer structure 51 - * 52 - * This structure represents bit-buffer. */ 53 - typedef struct bit_buffer_tag 54 - { 55 - /** Start of buffer */ 56 - unsigned char *start; 57 - /** End of buffer */ 58 - unsigned char *end; 59 - /** Next input/output byte */ 60 - unsigned char *next; 61 - /** Bit buffer */ 62 - unsigned long bits; 63 - /** Pending bits */ 64 - int pending; 65 - } bit_buffer; 66 - 67 -/** Write one zero bit */ 68 -#define write_0(_bb) write_bits(_bb, 0UL, 1) 69 -/** Write one unity bit */ 70 -#define write_1(_bb) write_bits(_bb, 1UL, 1) 71 -/** Read one bit */ 72 -#define read_bit(_bb, _bit) read_bits(_bb, _bit, 1) 73 - 74 -/** Initialize bit-buffer for reading or writting 75 - * 76 - * This function initializes bit-buffer \a bb for reading or 77 - * writting bits. 78 - * 79 - * \param bb Bit-buffer to initialize 80 - * \param buf Actual input/output buffer 81 - * \param size Actual buffer size 82 - * 83 - * \return \c VOID */ 84 - void init_bits (bit_buffer * bb, unsigned char *buf, int size); 85 - 86 -/** Write bits 87 - * 88 - * This function writes \a size least significant bits of 89 - * the \a value to the bit-buffer \a bb. 90 - * 91 - * \note The function expects that \a size <= 24. 92 - * 93 - * \param bb Bit-buffer 94 - * \param value Bits to write 95 - * \param size Number of bits to write 96 - * 97 - * \return Either \ref BIT_BUFFER_OK or \ref BIT_BUFFER_OVERFLOW */ 98 - int write_bits (bit_buffer * bb, int value, int size); 99 - 100 -/** Read bits 101 - * 102 - * This function reads \a size least significant bits 103 - * from the bit-buffer \a bb into the \a value argument. 104 - * 105 - * \note Function expects that \a size <= 24. 106 - * 107 - * \param bb Bit-buffer 108 - * \param value Location to store the bits 109 - * \param size Number of bits to read 110 - * 111 - * \return Either \ref BIT_BUFFER_OK or \ref BIT_BUFFER_UNDERFLOW */ 112 - int read_bits (bit_buffer * bb, int *value, int size); 113 - 114 -/** Flush bits 115 - * 116 - * This function flushes all pending bits if there are any. 117 - * 118 - * \param bb Bit-buffer 119 - * 120 - * \return Either \ref BIT_BUFFER_OK or \ref BIT_BUFFER_OVERFLOW */ 121 - int flush_bits (bit_buffer * bb); 122 - 123 -/*@}*/ 124 - 125 -#ifdef __cplusplus 126 -} 127 -#endif 128 - 129 -#endif /* __BIT_IO_H__ */
Deleted epsilon/checksum.c.
1 -/* 2 - * $Id: checksum.c,v 1.13 2007/07/21 15:15:25 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -#include <common.h> 25 -#include <checksum.h> 26 - 27 -/* largest prime smaller than 65536 */ 28 -#define BASE 65521 29 - 30 -/* NMAX is the largest n such that 255 * n (n + 1) / 2 + (n + 1) * (BASE - 1) <= 2^32 - 1 */ 31 -#define NMAX 5552 32 - 33 -/* Loop unrolling hack */ 34 -#define SUM1(data, i) { s1 += data[i]; s2 += s1; } 35 -#define SUM2(data, i) SUM1(data, i); SUM1(data, i + 1); 36 -#define SUM4(data, i) SUM2(data, i); SUM2(data, i + 2); 37 -#define SUM8(data, i) SUM4(data, i); SUM4(data, i + 4); 38 -#define SUM16(data) SUM8(data, 0); SUM8(data, 8) 39 - 40 -/* CRC32 polynomial */ 41 -#define CRC32_POLY 0xedb88320L 42 - 43 -/* CRC32 precalculated table */ 44 -local crc32_t crc32_table[256] = { 45 - 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 46 - 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, 47 - 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 48 - 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 49 - 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 50 - 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 51 - 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 52 - 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5, 53 - 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 54 - 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 55 - 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 56 - 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 57 - 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 58 - 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f, 59 - 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 60 - 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 61 - 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 62 - 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, 63 - 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 64 - 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, 65 - 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 66 - 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 67 - 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 68 - 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, 69 - 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 70 - 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 71 - 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 72 - 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 73 - 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 74 - 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, 75 - 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 76 - 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 77 - 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 78 - 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 79 - 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 80 - 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 81 - 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 82 - 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, 83 - 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 84 - 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 85 - 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 86 - 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 87 - 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 88 - 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79, 89 - 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 90 - 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 91 - 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 92 - 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, 93 - 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 94 - 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, 95 - 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 96 - 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 97 - 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 98 - 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, 99 - 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 100 - 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 101 - 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 102 - 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 103 - 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 104 - 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, 105 - 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 106 - 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, 107 - 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 108 - 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d, 109 -}; 110 - 111 -crc32_t 112 -epsilon_adler32 (unsigned char *data, int length) 113 -{ 114 - crc32_t s1 = 1; 115 - crc32_t s2 = 0; 116 - int k; 117 - 118 - assert (length >= 0); 119 - 120 - if (length == 0) 121 - { 122 - return 1; 123 - } 124 - 125 - while (length > 0) 126 - { 127 - k = length < NMAX ? length : NMAX; 128 - length -= k; 129 - 130 - while (k >= 16) 131 - { 132 - SUM16 (data); 133 - data += 16; 134 - k -= 16; 135 - } 136 - 137 - if (k != 0) 138 - do 139 - { 140 - s1 += *data++; 141 - s2 += s1; 142 - } 143 - while (--k); 144 - 145 - s1 %= BASE; 146 - s2 %= BASE; 147 - } 148 - 149 - return (s2 << 16) | s1; 150 -} 151 - 152 -crc32_t 153 -epsilon_crc32 (unsigned char *data, int length) 154 -{ 155 - crc32_t crc = 0xffffffff; 156 - int i; 157 - assert (length >= 0); 158 - 159 - for (i = 0; i < length; i++) 160 - { 161 - crc = crc32_table[(crc ^ data[i]) & 0xff] ^ (crc >> 8); 162 - } 163 - return crc ^ 0xffffffff; 164 -} 165 - 166 -/* This auxilliary function is used for CRC-32 table 167 - * generation. It is not exported or used by the program. */ 168 -local void 169 -make_crc32_table (void) 170 -{ 171 - crc32_t crc; 172 - int n, k; 173 - 174 - printf ("local crc32_t crc32_table[256] = {\n"); 175 - 176 - for (n = 0; n < 256; n++) 177 - { 178 - crc = (crc32_t) n; 179 - 180 - for (k = 0; k < 8; k++) 181 - { 182 - if (crc & 1) 183 - { 184 - crc = CRC32_POLY ^ (crc >> 1); 185 - } 186 - else 187 - { 188 - crc >>= 1; 189 - } 190 - } 191 - 192 - if ((n & 0x03) == 0) 193 - { 194 - printf (" "); 195 - } 196 - 197 - printf ("0x%08x,%s", crc, (n & 0x03) == 0x03 ? "" : " "); 198 - 199 - if ((n & 0x03) == 0x03) 200 - { 201 - printf ("\n"); 202 - } 203 - } 204 - 205 - printf ("};\n"); 206 -}
Deleted epsilon/checksum.h.
1 -/* 2 - * $Id: checksum.h,v 1.13 2007/07/21 15:15:25 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -/** \file 25 - * 26 - * \brief Checksum calculation 27 - * 28 - * This file contains routines for CRC-32 and ADLER-32 checksum 29 - * calculation. At the moment program uses only CRC-32 algorithm. 30 - * 31 - * \section References 32 - * 33 - * <a href="http://www.ross.net/crc/">A Painless Guide to CRC Error Detection Algorithms</a><br> 34 - * <a href="http://en.wikipedia.org/wiki/CRC32">Wikipedia: CRC-32</a><br> 35 - * <a href="http://en.wikipedia.org/wiki/Adler-32">Wikipedia: ADLER-32</a> */ 36 - 37 -#ifndef __CHECKSUM_H__ 38 -#define __CHECKSUM_H__ 39 - 40 -#ifdef __cplusplus 41 -extern "C" 42 -{ 43 -#endif 44 - 45 -/** \addtogroup checksum Checksum calculation */ 46 -/*@{*/ 47 - 48 -#include <common.h> 49 -#include <epsilon.h> 50 - 51 -/** Compute ADLER-32 checksum 52 - * 53 - * This function computes ADLER-32 checksum. 54 - * 55 - * \param data Data to sum 56 - * \param length Data length 57 - * 58 - * \return Checksum */ 59 - crc32_t epsilon_adler32 (unsigned char *data, int length); 60 - 61 -/** Compute CRC-32 checksum 62 - * 63 - * This function computes CRC-32 checksum. 64 - * 65 - * \param data Data to sum 66 - * \param length Data length 67 - * 68 - * \return Checksum */ 69 - crc32_t epsilon_crc32 (unsigned char *data, int length); 70 - 71 -/*@}*/ 72 - 73 -#ifdef __cplusplus 74 -} 75 -#endif 76 - 77 -#endif /* __CHECKSUM_H__ */
Deleted epsilon/cobs.c.
1 -/* 2 - * $Id: cobs.c,v 1.12 2007/05/20 13:19:12 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -#include <common.h> 25 -#include <cobs.h> 26 - 27 -#define FINISH_BLOCK(_x) (*code_ptr = (_x), \ 28 - code_ptr = output_data++, \ 29 - code = 0x01) 30 - 31 -int 32 -stuff_data (unsigned char *input_data, unsigned char *output_data, 33 - int input_length, int output_length) 34 -{ 35 - unsigned char *input_end = input_data + input_length; 36 - unsigned char *output_start = output_data; 37 - 38 - unsigned char *code_ptr = output_data++; 39 - unsigned char code = 0x01; 40 - 41 - /* Sanity checks */ 42 - assert (input_length > 0); 43 - assert (output_length >= input_length + input_length / 254 + 1); 44 - 45 - while (input_data < input_end) 46 - { 47 - if (*input_data == 0) 48 - { 49 - FINISH_BLOCK (code); 50 - } 51 - else 52 - { 53 - *output_data++ = *input_data; 54 - code++; 55 - 56 - if (code == 0xff) 57 - { 58 - FINISH_BLOCK (code); 59 - } 60 - } 61 - 62 - input_data++; 63 - } 64 - 65 - FINISH_BLOCK (code); 66 - 67 - return output_data - output_start - 1; 68 -} 69 - 70 -int 71 -unstuff_data (unsigned char *input_data, unsigned char *output_data, 72 - int input_length, int output_length) 73 -{ 74 - unsigned char *input_end = input_data + input_length; 75 - unsigned char *output_end = output_data + output_length; 76 - unsigned char *output_start = output_data; 77 - 78 - /* Sanity checks */ 79 - assert (input_length > 0); 80 - assert (output_length >= input_length); 81 - 82 - while (input_data < input_end) 83 - { 84 - int code = *input_data++; 85 - int i; 86 - 87 - for (i = 1; 88 - (i < code) && (input_data < input_end) 89 - && (output_data < output_end); i++) 90 - { 91 - *output_data++ = *input_data++; 92 - } 93 - 94 - if ((code > 0x00) && (code < 0xff) && 95 - (input_data < input_end) && (output_data < output_end)) 96 - { 97 - *output_data++ = 0; 98 - } 99 - } 100 - 101 - return output_data - output_start; 102 -}
Deleted epsilon/cobs.h.
1 -/* 2 - * $Id: cobs.h,v 1.14 2007/05/20 13:19:12 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -/** \file 25 - * 26 - * \brief Byte stuffing 27 - * 28 - * This file contains routines for efficient byte stuffing. 29 - * The algorithm used here called COBS, which is stands for Consistent 30 - * Overhead Byte Stuffing. Byte stuffing is very useful for parallel 31 - * image processing and improves overall system robustness. 32 - * 33 - * \section References 34 - * 35 - * Stuart Cheshire and Mary Baker, "Consistent Overhead Byte Stuffing". 36 - * IEEE/ACM Transactions on Networking. vol. 7 pp. 159-172 April 1999. */ 37 - 38 -#ifndef __COBS_H__ 39 -#define __COBS_H__ 40 - 41 -#ifdef __cplusplus 42 -extern "C" 43 -{ 44 -#endif 45 - 46 -/** \addtogroup stuffing Byte stuffing */ 47 -/*@{*/ 48 - 49 -#include <common.h> 50 - 51 -/** Byte stuffing 52 - * 53 - * This function performes byte stuffing. All zero-valued 54 - * bytes in the \a input_data will be eliminated. The result 55 - * will be stored in the \a output_data. This operation involves 56 - * some marginal data expansion, no more than 0.4% at worst case. 57 - * 58 - * \param input_data Input data 59 - * \param output_data Output data 60 - * \param input_length Input data length 61 - * \param output_length Output data length 62 - * 63 - * \return Number of bytes actually used in the \a output_data 64 - * 65 - * \note Caller must allocate enough space for the \a output_data 66 - * beforehand. This value can be calculated by the following 67 - * formula: \a input_length + (\a input_length / 254) + 1. */ 68 - int stuff_data (unsigned char *input_data, unsigned char *output_data, 69 - int input_length, int output_length); 70 - 71 -/** Byte unstuffing 72 - * 73 - * This function is inverse to the previous one. It recovers original data. 74 - * The result will be stored in the \a output_data. 75 - * 76 - * \param input_data Input data 77 - * \param output_data Output data 78 - * \param input_length Input data length 79 - * \param output_length Output data length 80 - * 81 - * \return Number of bytes actually used in the \a output_data 82 - * 83 - * \note Caller must allocate enough space for the \a output_data 84 - * beforehand. Safe value is \a input_length. */ 85 - int unstuff_data (unsigned char *input_data, unsigned char *output_data, 86 - int input_length, int output_length); 87 - 88 -/*@}*/ 89 - 90 -#ifdef __cplusplus 91 -} 92 -#endif 93 - 94 -#endif /* __COBS_H__ */
Deleted epsilon/color.c.
1 -/* 2 - * $Id: color.c,v 1.13 2008/03/29 21:37:06 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -#include <common.h> 25 -#include <color.h> 26 - 27 -/* Look-up tables for increase RGB to YCbCr conversion speed */ 28 - 29 -local double O_299000[256] = { 30 - 0, 0.299, 0.598, 0.897, 1.196, 1.495, 1.794, 2.093, 31 - 2.392, 2.691, 2.99, 3.289, 3.588, 3.887, 4.186, 4.485, 32 - 4.784, 5.083, 5.382, 5.681, 5.98, 6.279, 6.578, 6.877, 33 - 7.176, 7.475, 7.774, 8.073, 8.372, 8.671, 8.97, 9.269, 34 - 9.568, 9.867, 10.166, 10.465, 10.764, 11.063, 11.362, 11.661, 35 - 11.96, 12.259, 12.558, 12.857, 13.156, 13.455, 13.754, 14.053, 36 - 14.352, 14.651, 14.95, 15.249, 15.548, 15.847, 16.146, 16.445, 37 - 16.744, 17.043, 17.342, 17.641, 17.94, 18.239, 18.538, 18.837, 38 - 19.136, 19.435, 19.734, 20.033, 20.332, 20.631, 20.93, 21.229, 39 - 21.528, 21.827, 22.126, 22.425, 22.724, 23.023, 23.322, 23.621, 40 - 23.92, 24.219, 24.518, 24.817, 25.116, 25.415, 25.714, 26.013, 41 - 26.312, 26.611, 26.91, 27.209, 27.508, 27.807, 28.106, 28.405, 42 - 28.704, 29.003, 29.302, 29.601, 29.9, 30.199, 30.498, 30.797, 43 - 31.096, 31.395, 31.694, 31.993, 32.292, 32.591, 32.89, 33.189, 44 - 33.488, 33.787, 34.086, 34.385, 34.684, 34.983, 35.282, 35.581, 45 - 35.88, 36.179, 36.478, 36.777, 37.076, 37.375, 37.674, 37.973, 46 - 38.272, 38.571, 38.87, 39.169, 39.468, 39.767, 40.066, 40.365, 47 - 40.664, 40.963, 41.262, 41.561, 41.86, 42.159, 42.458, 42.757, 48 - 43.056, 43.355, 43.654, 43.953, 44.252, 44.551, 44.85, 45.149, 49 - 45.448, 45.747, 46.046, 46.345, 46.644, 46.943, 47.242, 47.541, 50 - 47.84, 48.139, 48.438, 48.737, 49.036, 49.335, 49.634, 49.933, 51 - 50.232, 50.531, 50.83, 51.129, 51.428, 51.727, 52.026, 52.325, 52 - 52.624, 52.923, 53.222, 53.521, 53.82, 54.119, 54.418, 54.717, 53 - 55.016, 55.315, 55.614, 55.913, 56.212, 56.511, 56.81, 57.109, 54 - 57.408, 57.707, 58.006, 58.305, 58.604, 58.903, 59.202, 59.501, 55 - 59.8, 60.099, 60.398, 60.697, 60.996, 61.295, 61.594, 61.893, 56 - 62.192, 62.491, 62.79, 63.089, 63.388, 63.687, 63.986, 64.285, 57 - 64.584, 64.883, 65.182, 65.481, 65.78, 66.079, 66.378, 66.677, 58 - 66.976, 67.275, 67.574, 67.873, 68.172, 68.471, 68.77, 69.069, 59 - 69.368, 69.667, 69.966, 70.265, 70.564, 70.863, 71.162, 71.461, 60 - 71.76, 72.059, 72.358, 72.657, 72.956, 73.255, 73.554, 73.853, 61 - 74.152, 74.451, 74.75, 75.049, 75.348, 75.647, 75.946, 76.245, 62 -}; 63 - 64 -local double O_587000[256] = { 65 - 0, 0.587, 1.174, 1.761, 2.348, 2.935, 3.522, 4.109, 66 - 4.696, 5.283, 5.87, 6.457, 7.044, 7.631, 8.218, 8.805, 67 - 9.392, 9.979, 10.566, 11.153, 11.74, 12.327, 12.914, 13.501, 68 - 14.088, 14.675, 15.262, 15.849, 16.436, 17.023, 17.61, 18.197, 69 - 18.784, 19.371, 19.958, 20.545, 21.132, 21.719, 22.306, 22.893, 70 - 23.48, 24.067, 24.654, 25.241, 25.828, 26.415, 27.002, 27.589, 71 - 28.176, 28.763, 29.35, 29.937, 30.524, 31.111, 31.698, 32.285, 72 - 32.872, 33.459, 34.046, 34.633, 35.22, 35.807, 36.394, 36.981, 73 - 37.568, 38.155, 38.742, 39.329, 39.916, 40.503, 41.09, 41.677, 74 - 42.264, 42.851, 43.438, 44.025, 44.612, 45.199, 45.786, 46.373, 75 - 46.96, 47.547, 48.134, 48.721, 49.308, 49.895, 50.482, 51.069, 76 - 51.656, 52.243, 52.83, 53.417, 54.004, 54.591, 55.178, 55.765, 77 - 56.352, 56.939, 57.526, 58.113, 58.7, 59.287, 59.874, 60.461, 78 - 61.048, 61.635, 62.222, 62.809, 63.396, 63.983, 64.57, 65.157, 79 - 65.744, 66.331, 66.918, 67.505, 68.092, 68.679, 69.266, 69.853, 80 - 70.44, 71.027, 71.614, 72.201, 72.788, 73.375, 73.962, 74.549, 81 - 75.136, 75.723, 76.31, 76.897, 77.484, 78.071, 78.658, 79.245, 82 - 79.832, 80.419, 81.006, 81.593, 82.18, 82.767, 83.354, 83.941, 83 - 84.528, 85.115, 85.702, 86.289, 86.876, 87.463, 88.05, 88.637, 84 - 89.224, 89.811, 90.398, 90.985, 91.572, 92.159, 92.746, 93.333, 85 - 93.92, 94.507, 95.094, 95.681, 96.268, 96.855, 97.442, 98.029, 86 - 98.616, 99.203, 99.79, 100.377, 100.964, 101.551, 102.138, 102.725, 87 - 103.312, 103.899, 104.486, 105.073, 105.66, 106.247, 106.834, 107.421, 88 - 108.008, 108.595, 109.182, 109.769, 110.356, 110.943, 111.53, 112.117, 89 - 112.704, 113.291, 113.878, 114.465, 115.052, 115.639, 116.226, 116.813, 90 - 117.4, 117.987, 118.574, 119.161, 119.748, 120.335, 120.922, 121.509, 91 - 122.096, 122.683, 123.27, 123.857, 124.444, 125.031, 125.618, 126.205, 92 - 126.792, 127.379, 127.966, 128.553, 129.14, 129.727, 130.314, 130.901, 93 - 131.488, 132.075, 132.662, 133.249, 133.836, 134.423, 135.01, 135.597, 94 - 136.184, 136.771, 137.358, 137.945, 138.532, 139.119, 139.706, 140.293, 95 - 140.88, 141.467, 142.054, 142.641, 143.228, 143.815, 144.402, 144.989, 96 - 145.576, 146.163, 146.75, 147.337, 147.924, 148.511, 149.098, 149.685, 97 -}; 98 - 99 -local double O_114000[256] = { 100 - 0, 0.114, 0.228, 0.342, 0.456, 0.57, 0.684, 0.798, 101 - 0.912, 1.026, 1.14, 1.254, 1.368, 1.482, 1.596, 1.71, 102 - 1.824, 1.938, 2.052, 2.166, 2.28, 2.394, 2.508, 2.622, 103 - 2.736, 2.85, 2.964, 3.078, 3.192, 3.306, 3.42, 3.534, 104 - 3.648, 3.762, 3.876, 3.99, 4.104, 4.218, 4.332, 4.446, 105 - 4.56, 4.674, 4.788, 4.902, 5.016, 5.13, 5.244, 5.358, 106 - 5.472, 5.586, 5.7, 5.814, 5.928, 6.042, 6.156, 6.27, 107 - 6.384, 6.498, 6.612, 6.726, 6.84, 6.954, 7.068, 7.182, 108 - 7.296, 7.41, 7.524, 7.638, 7.752, 7.866, 7.98, 8.094, 109 - 8.208, 8.322, 8.436, 8.55, 8.664, 8.778, 8.892, 9.006, 110 - 9.12, 9.234, 9.348, 9.462, 9.576, 9.69, 9.804, 9.918, 111 - 10.032, 10.146, 10.26, 10.374, 10.488, 10.602, 10.716, 10.83, 112 - 10.944, 11.058, 11.172, 11.286, 11.4, 11.514, 11.628, 11.742, 113 - 11.856, 11.97, 12.084, 12.198, 12.312, 12.426, 12.54, 12.654, 114 - 12.768, 12.882, 12.996, 13.11, 13.224, 13.338, 13.452, 13.566, 115 - 13.68, 13.794, 13.908, 14.022, 14.136, 14.25, 14.364, 14.478, 116 - 14.592, 14.706, 14.82, 14.934, 15.048, 15.162, 15.276, 15.39, 117 - 15.504, 15.618, 15.732, 15.846, 15.96, 16.074, 16.188, 16.302, 118 - 16.416, 16.53, 16.644, 16.758, 16.872, 16.986, 17.1, 17.214, 119 - 17.328, 17.442, 17.556, 17.67, 17.784, 17.898, 18.012, 18.126, 120 - 18.24, 18.354, 18.468, 18.582, 18.696, 18.81, 18.924, 19.038, 121 - 19.152, 19.266, 19.38, 19.494, 19.608, 19.722, 19.836, 19.95, 122 - 20.064, 20.178, 20.292, 20.406, 20.52, 20.634, 20.748, 20.862, 123 - 20.976, 21.09, 21.204, 21.318, 21.432, 21.546, 21.66, 21.774, 124 - 21.888, 22.002, 22.116, 22.23, 22.344, 22.458, 22.572, 22.686, 125 - 22.8, 22.914, 23.028, 23.142, 23.256, 23.37, 23.484, 23.598, 126 - 23.712, 23.826, 23.94, 24.054, 24.168, 24.282, 24.396, 24.51, 127 - 24.624, 24.738, 24.852, 24.966, 25.08, 25.194, 25.308, 25.422, 128 - 25.536, 25.65, 25.764, 25.878, 25.992, 26.106, 26.22, 26.334, 129 - 26.448, 26.562, 26.676, 26.79, 26.904, 27.018, 27.132, 27.246, 130 - 27.36, 27.474, 27.588, 27.702, 27.816, 27.93, 28.044, 28.158, 131 - 28.272, 28.386, 28.5, 28.614, 28.728, 28.842, 28.956, 29.07, 132 -}; 133 - 134 -local double O_168736[256] = { 135 - 0, 0.168736, 0.337472, 0.506208, 0.674944, 0.84368, 1.01242, 1.18115, 136 - 1.34989, 1.51862, 1.68736, 1.8561, 2.02483, 2.19357, 2.3623, 2.53104, 137 - 2.69978, 2.86851, 3.03725, 3.20598, 3.37472, 3.54346, 3.71219, 3.88093, 138 - 4.04966, 4.2184, 4.38714, 4.55587, 4.72461, 4.89334, 5.06208, 5.23082, 139 - 5.39955, 5.56829, 5.73702, 5.90576, 6.0745, 6.24323, 6.41197, 6.5807, 140 - 6.74944, 6.91818, 7.08691, 7.25565, 7.42438, 7.59312, 7.76186, 7.93059, 141 - 8.09933, 8.26806, 8.4368, 8.60554, 8.77427, 8.94301, 9.11174, 9.28048, 142 - 9.44922, 9.61795, 9.78669, 9.95542, 10.1242, 10.2929, 10.4616, 10.6304, 143 - 10.7991, 10.9678, 11.1366, 11.3053, 11.474, 11.6428, 11.8115, 11.9803, 144 - 12.149, 12.3177, 12.4865, 12.6552, 12.8239, 12.9927, 13.1614, 13.3301, 145 - 13.4989, 13.6676, 13.8364, 14.0051, 14.1738, 14.3426, 14.5113, 14.68, 146 - 14.8488, 15.0175, 15.1862, 15.355, 15.5237, 15.6924, 15.8612, 16.0299, 147 - 16.1987, 16.3674, 16.5361, 16.7049, 16.8736, 17.0423, 17.2111, 17.3798, 148 - 17.5485, 17.7173, 17.886, 18.0548, 18.2235, 18.3922, 18.561, 18.7297, 149 - 18.8984, 19.0672, 19.2359, 19.4046, 19.5734, 19.7421, 19.9108, 20.0796, 150 - 20.2483, 20.4171, 20.5858, 20.7545, 20.9233, 21.092, 21.2607, 21.4295, 151 - 21.5982, 21.7669, 21.9357, 22.1044, 22.2732, 22.4419, 22.6106, 22.7794, 152 - 22.9481, 23.1168, 23.2856, 23.4543, 23.623, 23.7918, 23.9605, 24.1292, 153 - 24.298, 24.4667, 24.6355, 24.8042, 24.9729, 25.1417, 25.3104, 25.4791, 154 - 25.6479, 25.8166, 25.9853, 26.1541, 26.3228, 26.4916, 26.6603, 26.829, 155 - 26.9978, 27.1665, 27.3352, 27.504, 27.6727, 27.8414, 28.0102, 28.1789, 156 - 28.3476, 28.5164, 28.6851, 28.8539, 29.0226, 29.1913, 29.3601, 29.5288, 157 - 29.6975, 29.8663, 30.035, 30.2037, 30.3725, 30.5412, 30.71, 30.8787, 158 - 31.0474, 31.2162, 31.3849, 31.5536, 31.7224, 31.8911, 32.0598, 32.2286, 159 - 32.3973, 32.566, 32.7348, 32.9035, 33.0723, 33.241, 33.4097, 33.5785, 160 - 33.7472, 33.9159, 34.0847, 34.2534, 34.4221, 34.5909, 34.7596, 34.9284, 161 - 35.0971, 35.2658, 35.4346, 35.6033, 35.772, 35.9408, 36.1095, 36.2782, 162 - 36.447, 36.6157, 36.7844, 36.9532, 37.1219, 37.2907, 37.4594, 37.6281, 163 - 37.7969, 37.9656, 38.1343, 38.3031, 38.4718, 38.6405, 38.8093, 38.978, 164 - 39.1468, 39.3155, 39.4842, 39.653, 39.8217, 39.9904, 40.1592, 40.3279, 165 - 40.4966, 40.6654, 40.8341, 41.0028, 41.1716, 41.3403, 41.5091, 41.6778, 166 - 41.8465, 42.0153, 42.184, 42.3527, 42.5215, 42.6902, 42.8589, 43.0277, 167 -}; 168 - 169 -local double O_331264[256] = { 170 - 0, 0.331264, 0.662528, 0.993792, 1.32506, 1.65632, 1.98758, 2.31885, 171 - 2.65011, 2.98138, 3.31264, 3.6439, 3.97517, 4.30643, 4.6377, 4.96896, 172 - 5.30022, 5.63149, 5.96275, 6.29402, 6.62528, 6.95654, 7.28781, 7.61907, 173 - 7.95034, 8.2816, 8.61286, 8.94413, 9.27539, 9.60666, 9.93792, 10.2692, 174 - 10.6004, 10.9317, 11.263, 11.5942, 11.9255, 12.2568, 12.588, 12.9193, 175 - 13.2506, 13.5818, 13.9131, 14.2444, 14.5756, 14.9069, 15.2381, 15.5694, 176 - 15.9007, 16.2319, 16.5632, 16.8945, 17.2257, 17.557, 17.8883, 18.2195, 177 - 18.5508, 18.882, 19.2133, 19.5446, 19.8758, 20.2071, 20.5384, 20.8696, 178 - 21.2009, 21.5322, 21.8634, 22.1947, 22.526, 22.8572, 23.1885, 23.5197, 179 - 23.851, 24.1823, 24.5135, 24.8448, 25.1761, 25.5073, 25.8386, 26.1699, 180 - 26.5011, 26.8324, 27.1636, 27.4949, 27.8262, 28.1574, 28.4887, 28.82, 181 - 29.1512, 29.4825, 29.8138, 30.145, 30.4763, 30.8076, 31.1388, 31.4701, 182 - 31.8013, 32.1326, 32.4639, 32.7951, 33.1264, 33.4577, 33.7889, 34.1202, 183 - 34.4515, 34.7827, 35.114, 35.4452, 35.7765, 36.1078, 36.439, 36.7703, 184 - 37.1016, 37.4328, 37.7641, 38.0954, 38.4266, 38.7579, 39.0892, 39.4204, 185 - 39.7517, 40.0829, 40.4142, 40.7455, 41.0767, 41.408, 41.7393, 42.0705, 186 - 42.4018, 42.7331, 43.0643, 43.3956, 43.7268, 44.0581, 44.3894, 44.7206, 187 - 45.0519, 45.3832, 45.7144, 46.0457, 46.377, 46.7082, 47.0395, 47.3708, 188 - 47.702, 48.0333, 48.3645, 48.6958, 49.0271, 49.3583, 49.6896, 50.0209, 189 - 50.3521, 50.6834, 51.0147, 51.3459, 51.6772, 52.0084, 52.3397, 52.671, 190 - 53.0022, 53.3335, 53.6648, 53.996, 54.3273, 54.6586, 54.9898, 55.3211, 191 - 55.6524, 55.9836, 56.3149, 56.6461, 56.9774, 57.3087, 57.6399, 57.9712, 192 - 58.3025, 58.6337, 58.965, 59.2963, 59.6275, 59.9588, 60.29, 60.6213, 193 - 60.9526, 61.2838, 61.6151, 61.9464, 62.2776, 62.6089, 62.9402, 63.2714, 194 - 63.6027, 63.934, 64.2652, 64.5965, 64.9277, 65.259, 65.5903, 65.9215, 195 - 66.2528, 66.5841, 66.9153, 67.2466, 67.5779, 67.9091, 68.2404, 68.5716, 196 - 68.9029, 69.2342, 69.5654, 69.8967, 70.228, 70.5592, 70.8905, 71.2218, 197 - 71.553, 71.8843, 72.2156, 72.5468, 72.8781, 73.2093, 73.5406, 73.8719, 198 - 74.2031, 74.5344, 74.8657, 75.1969, 75.5282, 75.8595, 76.1907, 76.522, 199 - 76.8532, 77.1845, 77.5158, 77.847, 78.1783, 78.5096, 78.8408, 79.1721, 200 - 79.5034, 79.8346, 80.1659, 80.4972, 80.8284, 81.1597, 81.4909, 81.8222, 201 - 82.1535, 82.4847, 82.816, 83.1473, 83.4785, 83.8098, 84.1411, 84.4723, 202 -}; 203 - 204 -local double O_500000[256] = { 205 - 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 206 - 4, 4.5, 5, 5.5, 6, 6.5, 7, 7.5, 207 - 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 208 - 12, 12.5, 13, 13.5, 14, 14.5, 15, 15.5, 209 - 16, 16.5, 17, 17.5, 18, 18.5, 19, 19.5, 210 - 20, 20.5, 21, 21.5, 22, 22.5, 23, 23.5, 211 - 24, 24.5, 25, 25.5, 26, 26.5, 27, 27.5, 212 - 28, 28.5, 29, 29.5, 30, 30.5, 31, 31.5, 213 - 32, 32.5, 33, 33.5, 34, 34.5, 35, 35.5, 214 - 36, 36.5, 37, 37.5, 38, 38.5, 39, 39.5, 215 - 40, 40.5, 41, 41.5, 42, 42.5, 43, 43.5, 216 - 44, 44.5, 45, 45.5, 46, 46.5, 47, 47.5, 217 - 48, 48.5, 49, 49.5, 50, 50.5, 51, 51.5, 218 - 52, 52.5, 53, 53.5, 54, 54.5, 55, 55.5, 219 - 56, 56.5, 57, 57.5, 58, 58.5, 59, 59.5, 220 - 60, 60.5, 61, 61.5, 62, 62.5, 63, 63.5, 221 - 64, 64.5, 65, 65.5, 66, 66.5, 67, 67.5, 222 - 68, 68.5, 69, 69.5, 70, 70.5, 71, 71.5, 223 - 72, 72.5, 73, 73.5, 74, 74.5, 75, 75.5, 224 - 76, 76.5, 77, 77.5, 78, 78.5, 79, 79.5, 225 - 80, 80.5, 81, 81.5, 82, 82.5, 83, 83.5, 226 - 84, 84.5, 85, 85.5, 86, 86.5, 87, 87.5, 227 - 88, 88.5, 89, 89.5, 90, 90.5, 91, 91.5, 228 - 92, 92.5, 93, 93.5, 94, 94.5, 95, 95.5, 229 - 96, 96.5, 97, 97.5, 98, 98.5, 99, 99.5, 230 - 100, 100.5, 101, 101.5, 102, 102.5, 103, 103.5, 231 - 104, 104.5, 105, 105.5, 106, 106.5, 107, 107.5, 232 - 108, 108.5, 109, 109.5, 110, 110.5, 111, 111.5, 233 - 112, 112.5, 113, 113.5, 114, 114.5, 115, 115.5, 234 - 116, 116.5, 117, 117.5, 118, 118.5, 119, 119.5, 235 - 120, 120.5, 121, 121.5, 122, 122.5, 123, 123.5, 236 - 124, 124.5, 125, 125.5, 126, 126.5, 127, 127.5, 237 -}; 238 - 239 -local double O_418688[256] = { 240 - 0, 0.418688, 0.837376, 1.25606, 1.67475, 2.09344, 2.51213, 2.93082, 241 - 3.3495, 3.76819, 4.18688, 4.60557, 5.02426, 5.44294, 5.86163, 6.28032, 242 - 6.69901, 7.1177, 7.53638, 7.95507, 8.37376, 8.79245, 9.21114, 9.62982, 243 - 10.0485, 10.4672, 10.8859, 11.3046, 11.7233, 12.142, 12.5606, 12.9793, 244 - 13.398, 13.8167, 14.2354, 14.6541, 15.0728, 15.4915, 15.9101, 16.3288, 245 - 16.7475, 17.1662, 17.5849, 18.0036, 18.4223, 18.841, 19.2596, 19.6783, 246 - 20.097, 20.5157, 20.9344, 21.3531, 21.7718, 22.1905, 22.6092, 23.0278, 247 - 23.4465, 23.8652, 24.2839, 24.7026, 25.1213, 25.54, 25.9587, 26.3773, 248 - 26.796, 27.2147, 27.6334, 28.0521, 28.4708, 28.8895, 29.3082, 29.7268, 249 - 30.1455, 30.5642, 30.9829, 31.4016, 31.8203, 32.239, 32.6577, 33.0764, 250 - 33.495, 33.9137, 34.3324, 34.7511, 35.1698, 35.5885, 36.0072, 36.4259, 251 - 36.8445, 37.2632, 37.6819, 38.1006, 38.5193, 38.938, 39.3567, 39.7754, 252 - 40.194, 40.6127, 41.0314, 41.4501, 41.8688, 42.2875, 42.7062, 43.1249, 253 - 43.5436, 43.9622, 44.3809, 44.7996, 45.2183, 45.637, 46.0557, 46.4744, 254 - 46.8931, 47.3117, 47.7304, 48.1491, 48.5678, 48.9865, 49.4052, 49.8239, 255 - 50.2426, 50.6612, 51.0799, 51.4986, 51.9173, 52.336, 52.7547, 53.1734, 256 - 53.5921, 54.0108, 54.4294, 54.8481, 55.2668, 55.6855, 56.1042, 56.5229, 257 - 56.9416, 57.3603, 57.7789, 58.1976, 58.6163, 59.035, 59.4537, 59.8724, 258 - 60.2911, 60.7098, 61.1284, 61.5471, 61.9658, 62.3845, 62.8032, 63.2219, 259 - 63.6406, 64.0593, 64.478, 64.8966, 65.3153, 65.734, 66.1527, 66.5714, 260 - 66.9901, 67.4088, 67.8275, 68.2461, 68.6648, 69.0835, 69.5022, 69.9209, 261 - 70.3396, 70.7583, 71.177, 71.5956, 72.0143, 72.433, 72.8517, 73.2704, 262 - 73.6891, 74.1078, 74.5265, 74.9452, 75.3638, 75.7825, 76.2012, 76.6199, 263 - 77.0386, 77.4573, 77.876, 78.2947, 78.7133, 79.132, 79.5507, 79.9694, 264 - 80.3881, 80.8068, 81.2255, 81.6442, 82.0628, 82.4815, 82.9002, 83.3189, 265 - 83.7376, 84.1563, 84.575, 84.9937, 85.4124, 85.831, 86.2497, 86.6684, 266 - 87.0871, 87.5058, 87.9245, 88.3432, 88.7619, 89.1805, 89.5992, 90.0179, 267 - 90.4366, 90.8553, 91.274, 91.6927, 92.1114, 92.53, 92.9487, 93.3674, 268 - 93.7861, 94.2048, 94.6235, 95.0422, 95.4609, 95.8796, 96.2982, 96.7169, 269 - 97.1356, 97.5543, 97.973, 98.3917, 98.8104, 99.2291, 99.6477, 100.066, 270 - 100.485, 100.904, 101.322, 101.741, 102.16, 102.579, 102.997, 103.416, 271 - 103.835, 104.253, 104.672, 105.091, 105.509, 105.928, 106.347, 106.765, 272 -}; 273 - 274 -local double O_081312[256] = { 275 - 0, 0.081312, 0.162624, 0.243936, 0.325248, 0.40656, 0.487872, 0.569184, 276 - 0.650496, 0.731808, 0.81312, 0.894432, 0.975744, 1.05706, 1.13837, 1.21968, 277 - 1.30099, 1.3823, 1.46362, 1.54493, 1.62624, 1.70755, 1.78886, 1.87018, 278 - 1.95149, 2.0328, 2.11411, 2.19542, 2.27674, 2.35805, 2.43936, 2.52067, 279 - 2.60198, 2.6833, 2.76461, 2.84592, 2.92723, 3.00854, 3.08986, 3.17117, 280 - 3.25248, 3.33379, 3.4151, 3.49642, 3.57773, 3.65904, 3.74035, 3.82166, 281 - 3.90298, 3.98429, 4.0656, 4.14691, 4.22822, 4.30954, 4.39085, 4.47216, 282 - 4.55347, 4.63478, 4.7161, 4.79741, 4.87872, 4.96003, 5.04134, 5.12266, 283 - 5.20397, 5.28528, 5.36659, 5.4479, 5.52922, 5.61053, 5.69184, 5.77315, 284 - 5.85446, 5.93578, 6.01709, 6.0984, 6.17971, 6.26102, 6.34234, 6.42365, 285 - 6.50496, 6.58627, 6.66758, 6.7489, 6.83021, 6.91152, 6.99283, 7.07414, 286 - 7.15546, 7.23677, 7.31808, 7.39939, 7.4807, 7.56202, 7.64333, 7.72464, 287 - 7.80595, 7.88726, 7.96858, 8.04989, 8.1312, 8.21251, 8.29382, 8.37514, 288 - 8.45645, 8.53776, 8.61907, 8.70038, 8.7817, 8.86301, 8.94432, 9.02563, 289 - 9.10694, 9.18826, 9.26957, 9.35088, 9.43219, 9.5135, 9.59482, 9.67613, 290 - 9.75744, 9.83875, 9.92006, 10.0014, 10.0827, 10.164, 10.2453, 10.3266, 291 - 10.4079, 10.4892, 10.5706, 10.6519, 10.7332, 10.8145, 10.8958, 10.9771, 292 - 11.0584, 11.1397, 11.2211, 11.3024, 11.3837, 11.465, 11.5463, 11.6276, 293 - 11.7089, 11.7902, 11.8716, 11.9529, 12.0342, 12.1155, 12.1968, 12.2781, 294 - 12.3594, 12.4407, 12.522, 12.6034, 12.6847, 12.766, 12.8473, 12.9286, 295 - 13.0099, 13.0912, 13.1725, 13.2539, 13.3352, 13.4165, 13.4978, 13.5791, 296 - 13.6604, 13.7417, 13.823, 13.9044, 13.9857, 14.067, 14.1483, 14.2296, 297 - 14.3109, 14.3922, 14.4735, 14.5548, 14.6362, 14.7175, 14.7988, 14.8801, 298 - 14.9614, 15.0427, 15.124, 15.2053, 15.2867, 15.368, 15.4493, 15.5306, 299 - 15.6119, 15.6932, 15.7745, 15.8558, 15.9372, 16.0185, 16.0998, 16.1811, 300 - 16.2624, 16.3437, 16.425, 16.5063, 16.5876, 16.669, 16.7503, 16.8316, 301 - 16.9129, 16.9942, 17.0755, 17.1568, 17.2381, 17.3195, 17.4008, 17.4821, 302 - 17.5634, 17.6447, 17.726, 17.8073, 17.8886, 17.97, 18.0513, 18.1326, 303 - 18.2139, 18.2952, 18.3765, 18.4578, 18.5391, 18.6204, 18.7018, 18.7831, 304 - 18.8644, 18.9457, 19.027, 19.1083, 19.1896, 19.2709, 19.3523, 19.4336, 305 - 19.5149, 19.5962, 19.6775, 19.7588, 19.8401, 19.9214, 20.0028, 20.0841, 306 - 20.1654, 20.2467, 20.328, 20.4093, 20.4906, 20.5719, 20.6532, 20.7346, 307 -}; 308 - 309 -void 310 -convert_RGB_to_YCbCr (coeff_t ** R, coeff_t ** G, coeff_t ** B, 311 - coeff_t ** Y, coeff_t ** Cb, coeff_t ** Cr, 312 - int width, int height) 313 -{ 314 - int i, j; 315 - 316 - assert (width > 0); 317 - assert (height > 0); 318 - 319 - /* Perhaps one should optimize this code with integer-valued 320 - * look-up tables. On the other hand, the rest of the program 321 - * (e.g. wavelet transform, resampling etc.) still using FPU. 322 - * Moreover, additional rounding operation (even with proper 323 - * rescaling) will involve some marginal image distortion. */ 324 - for (i = 0; i < height; i++) 325 - { 326 - for (j = 0; j < width; j++) 327 - { 328 - int r = (int) R[i][j]; 329 - int g = (int) G[i][j]; 330 - int b = (int) B[i][j]; 331 - 332 - Y[i][j] = O_299000[r] + O_587000[g] + O_114000[b]; 333 - Cb[i][j] = -O_168736[r] - O_331264[g] + O_500000[b] + 128.0; 334 - Cr[i][j] = O_500000[r] - O_418688[g] - O_081312[b] + 128.0; 335 - } 336 - } 337 -} 338 - 339 -void 340 -convert_YCbCr_to_RGB (coeff_t ** Y, coeff_t ** Cb, coeff_t ** Cr, 341 - coeff_t ** R, coeff_t ** G, coeff_t ** B, 342 - int width, int height) 343 -{ 344 - int i, j; 345 - 346 - assert (width > 0); 347 - assert (height > 0); 348 - 349 - /* Due to rounding and quantization errors output RGB values 350 - * may not be enclosed within [0..255] interval. To solve 351 - * this problem the values are clipped after transformation. */ 352 - for (i = 0; i < height; i++) 353 - { 354 - for (j = 0; j < width; j++) 355 - { 356 - R[i][j] = CLIP (Y[i][j] + (Cr[i][j] - 128.0) * 1.402); 357 - G[i][j] = 358 - CLIP (Y[i][j] - (Cb[i][j] - 128.0) * 0.34413 - 359 - (Cr[i][j] - 128.0) * 0.71414); 360 - B[i][j] = CLIP (Y[i][j] + (Cb[i][j] - 128.0) * 1.772); 361 - } 362 - } 363 -} 364 - 365 -void 366 -clip_channel (coeff_t ** channel, int width, int height) 367 -{ 368 - int i, j; 369 - 370 - assert (width > 0); 371 - assert (height > 0); 372 - 373 - for (i = 0; i < height; i++) 374 - { 375 - for (j = 0; j < width; j++) 376 - { 377 - channel[i][j] = CLIP (channel[i][j]); 378 - } 379 - } 380 -}
Deleted epsilon/color.h.
1 -/* 2 - * $Id: color.h,v 1.16 2008/03/29 21:37:06 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -/** \file 25 - * 26 - * \brief Color space convertion 27 - * 28 - * This file contains routines for color space conversion. 29 - * 30 - * \section References 31 - * 32 - * International Telecommunications Union, ITU-R BT.601 */ 33 - 34 -#ifndef __COLOR_H__ 35 -#define __COLOR_H__ 36 - 37 -#ifdef __cplusplus 38 -extern "C" 39 -{ 40 -#endif 41 - 42 -/** \addtogroup color Color space conversion */ 43 -/*@{*/ 44 - 45 -#include <common.h> 46 - 47 -/** Round value to the nearest integer */ 48 -#define ROUND(_x) ((_x) < 0 ? (int) ((_x) - 0.5) : (int) ((_x) + 0.5)) 49 -/** Enclose value in the [0..255] interval */ 50 -#define CLIP(_x) ((_x) < 0 ? 0 : ((_x) > 255 ? 255 : ROUND((_x)))) 51 - 52 -/** RGB to YCbCr conversion 53 - * 54 - * This function converts image from RGB to YCbCr color space. 55 - * 56 - * \param R Red channel 57 - * \param G Green channel 58 - * \param B Blue channel 59 - * \param Y Luma channel 60 - * \param Cb Chroma-blue channel 61 - * \param Cr Chroma-red channel 62 - * \param width Image width 63 - * \param height Image height 64 - * 65 - * \return \c VOID */ 66 - void convert_RGB_to_YCbCr (coeff_t ** R, coeff_t ** G, coeff_t ** B, 67 - coeff_t ** Y, coeff_t ** Cb, coeff_t ** Cr, 68 - int width, int height); 69 - 70 -/** YCbCr to RGB conversion 71 - * 72 - * This function converts image from YCbCr to RGB color space. 73 - * 74 - * \param Y Luma channel 75 - * \param Cb Chroma-blue channel 76 - * \param Cr Chroma-red channel 77 - * \param R Red channel 78 - * \param G Green channel 79 - * \param B Blue channel 80 - * \param width Image width 81 - * \param height Image height 82 - * 83 - * \return \c VOID 84 - * 85 - * \note On return, all values are enclosed within [0..255] interval. */ 86 - void convert_YCbCr_to_RGB (coeff_t ** Y, coeff_t ** Cb, coeff_t ** Cr, 87 - coeff_t ** R, coeff_t ** G, coeff_t ** B, 88 - int width, int height); 89 - 90 -/** Channel clipping 91 - * 92 - * This function encloses (clips) each \a channel value within [0..255] interval 93 - * with appropriative rounding. 94 - * 95 - * \param channel Channel to clip 96 - * \param width Image width 97 - * \param height Image height 98 - * 99 - * \return \c VOID */ 100 - void clip_channel (coeff_t ** channel, int width, int height); 101 - 102 -/*@}*/ 103 - 104 -#ifdef __cplusplus 105 -} 106 -#endif 107 - 108 -#endif /* __COLOR_H__ */
Deleted epsilon/common.c.
1 -/* 2 - * $Id: common.c,v 1.13 2008/03/25 19:31:45 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -#include <common.h> 25 - 26 -int 27 -number_of_bits (int value) 28 -{ 29 - int bits; 30 - 31 - bits = NUMBER_OF_BITS (GET_BYTE (value, 3)); 32 - if (bits) 33 - return bits + 24; 34 - 35 - bits = NUMBER_OF_BITS (GET_BYTE (value, 2)); 36 - if (bits) 37 - return bits + 16; 38 - 39 - bits = NUMBER_OF_BITS (GET_BYTE (value, 1)); 40 - if (bits) 41 - return bits + 8; 42 - 43 - bits = NUMBER_OF_BITS (GET_BYTE (value, 0)); 44 - if (bits) 45 - return bits; 46 - 47 - return 0; 48 -} 49 - 50 -int 51 -is_power_of_two (int value) 52 -{ 53 - return (value == (1 << (number_of_bits (value) - 1))); 54 -}
Deleted epsilon/common.h.
1 -/* 2 - * $Id: common.h,v 1.27 2008/03/25 19:31:45 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -/** \file 25 - * 26 - * \brief Useful macro and defines 27 - * 28 - * This file contains useful macro and defines which are 29 - * common to all library parts. */ 30 - 31 -#ifndef __COMMON_H__ 32 -#define __COMMON_H__ 33 - 34 -#ifdef __cplusplus 35 -extern "C" 36 -{ 37 -#endif 38 - 39 -/** \addtogroup misc Miscellanea */ 40 -/*@{*/ 41 - 42 -#ifdef HAVE_CONFIG_H 43 -# include <config.h> 44 -#endif 45 - 46 -#include <stdlib.h> 47 -#include <stdio.h> 48 -#include <assert.h> 49 -#include <sys/types.h> 50 - 51 -/** Maximum value */ 52 -#define MAX(_x, _y) ((_x) > (_y) ? (_x) : (_y)) 53 -/** Minimum value */ 54 -#define MIN(_x, _y) ((_x) < (_y) ? (_x) : (_y)) 55 -/** Absolute value */ 56 -#define ABS(_x) ((_x) >= 0 ? (_x) : -(_x)) 57 -/** Square root */ 58 -#define SQRT2 1.414213562373095 59 -/** Very helpful definition */ 60 -#define local static 61 - 62 -/** Table to speed-up number_of_bits() calculation */ 63 - local int number_of_bits_table[256] = { 64 - 0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 65 - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 66 - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 67 - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 68 - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 69 - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 70 - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 71 - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 72 - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 73 - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 74 - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 75 - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 76 - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 77 - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 78 - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 79 - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 80 - }; 81 - 82 -/** Number of bits in a byte value */ 83 -#define NUMBER_OF_BITS(_x) (number_of_bits_table[(_x)]) 84 -/** Extract one byte from integer */ 85 -#define GET_BYTE(_x, _i) (((unsigned char *) &(_x))[(_i)]) 86 - 87 -/** Type definition for filter coefficients */ 88 - typedef double coeff_t; 89 - 90 -/** Number of bits in the value 91 - * 92 - * This function computes the number of bits in the \a value 93 - * (e.g. number_of_bits(13) = 4). 94 - * 95 - * \param value Target value 96 - * 97 - * \return Number of bits */ 98 - int number_of_bits (int value); 99 - 100 -/** Check whether the \a value is a power of two or not 101 - * 102 - * This function checks whether the \a value is a 103 - * power of two or not. 104 - * 105 - * \param value Target value 106 - * 107 - * \return \c 1 if \a value is a power of two and \c 0 otherwise */ 108 - int is_power_of_two (int value); 109 - 110 -/*@}*/ 111 - 112 -#ifdef __cplusplus 113 -} 114 -#endif 115 - 116 -#endif /* __COMMON_H__ */
Deleted epsilon/daub97lift.h.
1 -/* 2 - * $Id: daub97lift.h,v 1.2 2008/03/29 19:57:31 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -/** \file 25 - * 26 - * \brief Daubechies 9/7 wavelet transform (Lifting) 27 - * 28 - * This file contains lifting implementation of a famous Daubechies 9/7 29 - * wavelet transform. Lifting transforms are faster than generic 30 - * filter-based counterparts, but they lack uniformity. 31 - * 32 - * \section References 33 - * 34 - * <a href="http://qccpack.sourceforge.net/">QccPack, James E. Fowler</a> */ 35 - 36 -#ifndef __DAUB97LIFT_H__ 37 -#define __DAUB97LIFT_H__ 38 - 39 -#ifdef __cplusplus 40 -extern "C" 41 -{ 42 -#endif 43 - 44 -/** \addtogroup daub97lift Daubechies 9/7 wavelet transform (Lifting) */ 45 -/*@{*/ 46 - 47 -#ifdef HAVE_CONFIG_H 48 -# include <config.h> 49 -#endif 50 - 51 -#include <common.h> 52 - 53 -/** ALPHA coefficient */ 54 -#define ALPHA -1.58615986717275 55 -/** BETA coefficient */ 56 -#define BETA -0.05297864003258 57 -/** GAMMA coefficient */ 58 -#define GAMMA 0.88293362717904 59 -/** DELTA coefficient */ 60 -#define DELTA 0.44350482244527 61 -/** EPSILON coefficient */ 62 -#define EPSILON 1.14960430535816 63 - 64 -/** One dimensional Daubechies 9/7 wavelet decomposition 65 - * 66 - * This function performes one stage of 1D wavelet decomposition 67 - * of \a signal_in using Daubechies 9/7 lifting transform. The result is 68 - * stored in \a signal_out. On return, the first half of \a signal_out 69 - * will be occupied with lowpass coefficients, the second half - with highpass 70 - * coefficients. 71 - * 72 - * \param signal_in Input signal 73 - * \param signal_out Output signal 74 - * \param signal_length Signal length 75 - * 76 - * \return \c VOID 77 - * 78 - * \note \a signal_length should be even. */ 79 - inline local void daub97lift_analysis_1D_even (coeff_t * signal_in, 80 - coeff_t * signal_out, 81 - int signal_length); 82 - 83 -/** One dimensional wavelet reconstruction 84 - * 85 - * This function performes one stage of 1D wavelet reconstruction 86 - * of \a signal_in using Daubechies 9/7 lifting transform. The result is 87 - * stored in \a signal_out. 88 - * 89 - * \param signal_in Input signal 90 - * \param signal_out Output signal 91 - * \param signal_length Signal length 92 - * 93 - * \return \c VOID 94 - * 95 - * \note \a signal_length should be even. */ 96 - inline local void daub97lift_synthesis_1D_even (coeff_t * signal_in, 97 - coeff_t * signal_out, 98 - int signal_length); 99 - 100 -/** One dimensional Daubechies 9/7 wavelet decomposition 101 - * 102 - * This function performes one stage of 1D wavelet decomposition 103 - * of \a signal_in using Daubechies 9/7 lifting transform. The result is 104 - * stored in \a signal_out. On return, the first half of \a signal_out 105 - * will be occupied with lowpass coefficients, the second half - with highpass 106 - * coefficients. 107 - * 108 - * \param signal_in Input signal 109 - * \param signal_out Output signal 110 - * \param signal_length Signal length 111 - * 112 - * \return \c VOID 113 - * 114 - * \note \a signal_length should be odd, as a consequence 115 - * there will be one extra lowpass coefficient. */ 116 - inline local void daub97lift_analysis_1D_odd (coeff_t * signal_in, 117 - coeff_t * signal_out, 118 - int signal_length); 119 - 120 -/** One dimensional wavelet reconstruction 121 - * 122 - * This function performes one stage of 1D wavelet reconstruction 123 - * of \a signal_in using Daubechies 9/7 lifting transform. The result is 124 - * stored in \a signal_out. 125 - * 126 - * \param signal_in Input signal 127 - * \param signal_out Output signal 128 - * \param signal_length Signal length 129 - * 130 - * \return \c VOID 131 - * 132 - * \note \a signal_length should be odd. */ 133 - inline local void daub97lift_synthesis_1D_odd (coeff_t * signal_in, 134 - coeff_t * signal_out, 135 - int signal_length); 136 - 137 -/* Those functions are placed here in order to be inline-ed */ 138 - 139 - inline local void daub97lift_analysis_1D_even (coeff_t * signal_in, 140 - coeff_t * signal_out, 141 - int signal_length) 142 - { 143 - int i; 144 - 145 - for (i = 1; i < signal_length - 2; i += 2) 146 - { 147 - signal_in[i] += ALPHA * (signal_in[i - 1] + signal_in[i + 1]); 148 - } 149 - 150 - signal_in[signal_length - 1] += 151 - 2 * ALPHA * signal_in[signal_length - 2]; 152 - signal_in[0] += 2 * BETA * signal_in[1]; 153 - 154 - for (i = 2; i < signal_length; i += 2) 155 - { 156 - signal_in[i] += BETA * (signal_in[i + 1] + signal_in[i - 1]); 157 - } 158 - 159 - for (i = 1; i < signal_length - 2; i += 2) 160 - { 161 - signal_in[i] += GAMMA * (signal_in[i - 1] + signal_in[i + 1]); 162 - } 163 - 164 - signal_in[signal_length - 1] += 165 - 2 * GAMMA * signal_in[signal_length - 2]; 166 - signal_in[0] = EPSILON * (signal_in[0] + 2 * DELTA * signal_in[1]); 167 - 168 - for (i = 2; i < signal_length; i += 2) 169 - { 170 - signal_in[i] = 171 - EPSILON * (signal_in[i] + 172 - DELTA * (signal_in[i + 1] + signal_in[i - 1])); 173 - } 174 - 175 - for (i = 1; i < signal_length; i += 2) 176 - { 177 - signal_in[i] /= (-EPSILON); 178 - } 179 - 180 - { 181 - int half = signal_length / 2; 182 - coeff_t *even = signal_out; 183 - coeff_t *odd = signal_out + half; 184 - 185 - for (i = 0; i < half; i++) 186 - { 187 - even[i] = signal_in[i * 2]; 188 - odd[i] = signal_in[i * 2 + 1]; 189 - } 190 - } 191 - } 192 - 193 - inline local void daub97lift_synthesis_1D_even (coeff_t * signal_in, 194 - coeff_t * signal_out, 195 - int signal_length) 196 - { 197 - int i; 198 - 199 - { 200 - int half = signal_length / 2; 201 - coeff_t *even = signal_in; 202 - coeff_t *odd = signal_in + half; 203 - 204 - for (i = 0; i < half; i++) 205 - { 206 - signal_out[i * 2] = even[i]; 207 - signal_out[i * 2 + 1] = odd[i]; 208 - } 209 - } 210 - 211 - for (i = 1; i < signal_length; i += 2) 212 - { 213 - signal_out[i] *= (-EPSILON); 214 - } 215 - 216 - signal_out[0] = signal_out[0] / EPSILON - 2 * DELTA * signal_out[1]; 217 - 218 - for (i = 2; i < signal_length; i += 2) 219 - { 220 - signal_out[i] = 221 - signal_out[i] / EPSILON - DELTA * (signal_out[i + 1] + 222 - signal_out[i - 1]); 223 - } 224 - 225 - for (i = 1; i < signal_length - 2; i += 2) 226 - { 227 - signal_out[i] -= GAMMA * (signal_out[i - 1] + signal_out[i + 1]); 228 - } 229 - 230 - signal_out[signal_length - 1] -= 231 - 2 * GAMMA * signal_out[signal_length - 2]; 232 - signal_out[0] -= 2 * BETA * signal_out[1]; 233 - 234 - for (i = 2; i < signal_length; i += 2) 235 - { 236 - signal_out[i] -= BETA * (signal_out[i + 1] + signal_out[i - 1]); 237 - } 238 - 239 - for (i = 1; i < signal_length - 2; i += 2) 240 - { 241 - signal_out[i] -= ALPHA * (signal_out[i - 1] + signal_out[i + 1]); 242 - } 243 - 244 - signal_out[signal_length - 1] -= 245 - 2 * ALPHA * signal_out[signal_length - 2]; 246 - } 247 - 248 - inline local void daub97lift_analysis_1D_odd (coeff_t * signal_in, 249 - coeff_t * signal_out, 250 - int signal_length) 251 - { 252 - int i; 253 - 254 - for (i = 1; i < signal_length - 1; i += 2) 255 - { 256 - signal_in[i] += ALPHA * (signal_in[i - 1] + signal_in[i + 1]); 257 - } 258 - 259 - signal_in[0] += 2 * BETA * signal_in[1]; 260 - 261 - for (i = 2; i < signal_length - 2; i += 2) 262 - { 263 - signal_in[i] += BETA * (signal_in[i + 1] + signal_in[i - 1]); 264 - } 265 - 266 - signal_in[signal_length - 1] += 2 * BETA * signal_in[signal_length - 2]; 267 - 268 - for (i = 1; i < signal_length - 1; i += 2) 269 - { 270 - signal_in[i] += GAMMA * (signal_in[i - 1] + signal_in[i + 1]); 271 - } 272 - 273 - signal_in[0] = EPSILON * (signal_in[0] + 2 * DELTA * signal_in[1]); 274 - 275 - for (i = 2; i < signal_length - 2; i += 2) 276 - { 277 - signal_in[i] = 278 - EPSILON * (signal_in[i] + 279 - DELTA * (signal_in[i + 1] + signal_in[i - 1])); 280 - } 281 - 282 - signal_in[signal_length - 1] = EPSILON * (signal_in[signal_length - 1] + 283 - 2 * DELTA * 284 - signal_in[signal_length - 2]); 285 - 286 - for (i = 1; i < signal_length - 1; i += 2) 287 - { 288 - signal_in[i] /= (-EPSILON); 289 - } 290 - 291 - { 292 - int half = signal_length / 2 + 1; 293 - coeff_t *even = signal_out; 294 - coeff_t *odd = signal_out + half; 295 - 296 - for (i = 0; i < half - 1; i++) 297 - { 298 - even[i] = signal_in[i * 2]; 299 - odd[i] = signal_in[i * 2 + 1]; 300 - } 301 - 302 - even[half - 1] = signal_in[signal_length - 1]; 303 - } 304 - } 305 - 306 - inline local void daub97lift_synthesis_1D_odd (coeff_t * signal_in, 307 - coeff_t * signal_out, 308 - int signal_length) 309 - { 310 - int i; 311 - 312 - { 313 - int half = signal_length / 2 + 1; 314 - coeff_t *even = signal_in; 315 - coeff_t *odd = signal_in + half; 316 - 317 - for (i = 0; i < half - 1; i++) 318 - { 319 - signal_out[i * 2] = even[i]; 320 - signal_out[i * 2 + 1] = odd[i]; 321 - } 322 - 323 - signal_out[signal_length - 1] = even[half - 1]; 324 - } 325 - 326 - for (i = 1; i < signal_length - 1; i += 2) 327 - { 328 - signal_out[i] *= (-EPSILON); 329 - } 330 - 331 - signal_out[0] = signal_out[0] / EPSILON - 2 * DELTA * signal_out[1]; 332 - 333 - for (i = 2; i < signal_length - 2; i += 2) 334 - { 335 - signal_out[i] = 336 - signal_out[i] / EPSILON - DELTA * (signal_out[i + 1] + 337 - signal_out[i - 1]); 338 - } 339 - 340 - signal_out[signal_length - 1] = 341 - signal_out[signal_length - 1] / EPSILON - 342 - 2 * DELTA * signal_out[signal_length - 2]; 343 - 344 - for (i = 1; i < signal_length - 1; i += 2) 345 - { 346 - signal_out[i] -= GAMMA * (signal_out[i - 1] + signal_out[i + 1]); 347 - } 348 - 349 - signal_out[0] -= 2 * BETA * signal_out[1]; 350 - 351 - for (i = 2; i < signal_length - 2; i += 2) 352 - { 353 - signal_out[i] -= BETA * (signal_out[i + 1] + signal_out[i - 1]); 354 - } 355 - 356 - signal_out[signal_length - 1] -= 357 - 2 * BETA * signal_out[signal_length - 2]; 358 - 359 - for (i = 1; i < signal_length - 1; i += 2) 360 - { 361 - signal_out[i] -= ALPHA * (signal_out[i - 1] + signal_out[i + 1]); 362 - } 363 - } 364 - 365 -/*@}*/ 366 - 367 -#ifdef __cplusplus 368 -} 369 -#endif 370 - 371 -#endif /* __DAUB97LIFT_H__ */
Deleted epsilon/dc_level.c.
1 -/* 2 - * $Id: dc_level.c,v 1.9 2007/05/20 13:19:12 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -#include <common.h> 25 -#include <dc_level.h> 26 - 27 -coeff_t 28 -dc_level_shift (coeff_t ** channel, int width, int height) 29 -{ 30 - int i, j; 31 - coeff_t average = 0.0; 32 - 33 - for (i = 0; i < height; i++) 34 - { 35 - for (j = 0; j < width; j++) 36 - { 37 - average += channel[i][j]; 38 - } 39 - } 40 - 41 - average = average / (width * height); 42 - 43 - for (i = 0; i < height; i++) 44 - { 45 - for (j = 0; j < width; j++) 46 - { 47 - channel[i][j] -= average; 48 - } 49 - } 50 - 51 - return average; 52 -} 53 - 54 -void 55 -dc_level_unshift (coeff_t ** channel, coeff_t average, int width, int height) 56 -{ 57 - int i, j; 58 - 59 - for (i = 0; i < height; i++) 60 - { 61 - for (j = 0; j < width; j++) 62 - { 63 - channel[i][j] += average; 64 - } 65 - } 66 -}
Deleted epsilon/dc_level.h.
1 -/* 2 - * $Id: dc_level.h,v 1.11 2007/05/20 13:19:12 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -/** \file 25 - * 26 - * \brief DC level shift 27 - * 28 - * In order to further improve codec perfomance, input signal must be 29 - * centered around zero before applying wavelet transform. One can 30 - * accomplish this by subtracting mean value from each image sample. 31 - * This preprocessing step results in wavelet coefficient magnitude 32 - * decrease, which in turn, reduces number of bits required for 33 - * image encoding. After decoding, one have to perform the inverse 34 - * operation, i.e. add stored mean value to each reconstructed image sample. */ 35 - 36 -#ifndef __DC_LEVEL_H__ 37 -#define __DC_LEVEL_H__ 38 - 39 -#ifdef __cplusplus 40 -extern "C" 41 -{ 42 -#endif 43 - 44 -/** \addtogroup dc_level DC level shift */ 45 -/*@{*/ 46 - 47 -#include <common.h> 48 - 49 -/** DC level shift 50 - * 51 - * This function subtracts mean value from each image sample. 52 - * 53 - * \param channel Image channel 54 - * \param width Image width 55 - * \param height Image height 56 - * 57 - * \return Mean value */ 58 - coeff_t dc_level_shift (coeff_t ** channel, int width, int height); 59 - 60 -/** DC level unshift 61 - * 62 - * This function adds stored mean value to each 63 - * reconstructed image sample. 64 - * 65 - * \param channel Image channel 66 - * \param average Average (mean) value 67 - * \param width Image width 68 - * \param height Image height 69 - * 70 - * \return \c VOID */ 71 - void dc_level_unshift (coeff_t ** channel, coeff_t average, int width, 72 - int height); 73 - 74 -/*@}*/ 75 - 76 -#ifdef __cplusplus 77 -} 78 -#endif 79 - 80 -#endif /* __DC_LEVEL_H__ */
Deleted epsilon/epsilon.h.
1 -/* 2 - * $Id: epsilon.h,v 1.58 2007/07/22 15:45:02 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -/** \file 25 - * 26 - * \brief Top-level library interface 27 - * 28 - * This file contains top-level library interface. This is the 29 - * only header that user program needs to include. */ 30 - 31 -/** \mainpage EPSILON - wavelet image compression library 32 - * 33 - * \section about_sec About 34 - * 35 - * EPSILON is an OpenSource wavelet image compression library. 36 - * The library consists of several independed modules and have 37 - * very simple and clear layout. Each module is intensively 38 - * tested and carefully documented. This manual can be thought 39 - * as an exhaustive library API reference. It covers top-level 40 - * library interface as well as library internals. Being included 41 - * into the source code the information presented here is 42 - * always up to date. 43 - * 44 - * \section contact_sec Contact 45 - * 46 - * Feedback, bug-reports and patches are welcome. 47 - * Feel free to write: Alexander Simakov, 48 - * <<a href="mailto:xander@entropyware.info">xander@entropyware.info</a>> 49 - * 50 - * <a href="http://epsilon-project.sourceforge.net">http://epsilon-project.sourceforge.net</a><br> */ 51 - 52 -#ifndef __EPSILON_H__ 53 -#define __EPSILON_H__ 54 - 55 -#ifdef __cplusplus 56 -extern "C" 57 -{ 58 -#endif 59 - 60 -#include <inttypes.h> 61 - 62 -/** \addtogroup toplevel Top-level library interface */ 63 -/*@{*/ 64 - 65 -/** Block marker 66 - * 67 - * Each block in the stream should be terminated 68 - * with one or more \ref EPS_MARKER values. This 69 - * technique greatly improves overall system 70 - * robustness and leads to quick stream 71 - * resynchronization. */ 72 -#define EPS_MARKER 0x00 73 - 74 -/** GRAYSCALE block 75 - * 76 - * This type of blocks is intended for storing grayscale 77 - * image data. */ 78 -#define EPS_GRAYSCALE_BLOCK 1 79 - 80 -/** TRUECOLOR block 81 - * 82 - * This type of blocks is intended for storing truecolor 83 - * image data. */ 84 -#define EPS_TRUECOLOR_BLOCK 2 85 - 86 -/** Maximal (recomended) block width and height */ 87 -#define EPS_MAX_BLOCK_SIZE 1024 88 -/** Minimal (recomended) block width and height */ 89 -#define EPS_MIN_BLOCK_SIZE 32 90 - 91 -/** Minimal (mandatory) buffer size for GRAYSCALE block */ 92 -#define EPS_MIN_GRAYSCALE_BUF 256 93 -/** Maximal (recomended) buffer size for GRAYSCALE block */ 94 -#define EPS_MAX_GRAYSCALE_BUF 2 * EPS_MAX_BLOCK_SIZE * EPS_MAX_BLOCK_SIZE 95 -/** Minimal (mandatory) buffer size for TRUECOLOR block */ 96 -#define EPS_MIN_TRUECOLOR_BUF 256 97 -/** Maximal (recomended) buffer size for TRUECOLOR block */ 98 -#define EPS_MAX_TRUECOLOR_BUF 6 * EPS_MAX_BLOCK_SIZE * EPS_MAX_BLOCK_SIZE 99 - 100 -/** Normal mode 101 - * 102 - * This mode assumes that image is square and height = width = 2 ^ N. */ 103 -#define EPS_MODE_NORMAL 0 104 - 105 -/** OTLPF mode 106 - * 107 - * This mode also assumes that image is square, but height = width = (2 ^ N) + 1. 108 - * In a few words, OTLPF is some kind of hack to reduce boundary artefacts 109 - * when image is broken into several tiles. Due to mathematical constrains 110 - * this method can be applied to biorthogonal filters only. */ 111 -#define EPS_MODE_OTLPF 1 112 - 113 -/** Data or header CRC is correct */ 114 -#define EPS_GOOD_CRC 0 115 -/** Data or header CRC is incorrect */ 116 -#define EPS_BAD_CRC 1 117 - 118 -/** Extract all filterbank IDs */ 119 -#define EPS_FB_ID 0 120 -/** Extract all filterbank names */ 121 -#define EPS_FB_NAME 1 122 -/** Extract all filterbank orthogonality types */ 123 -#define EPS_FB_TYPE 2 124 - 125 -/** Default bit-budget percent for the Y channel */ 126 -#define EPS_Y_RT 90 127 -/** Default bit-budget percent for the Cb channel */ 128 -#define EPS_Cb_RT 5 129 -/** Default bit-budget percent for the Cr channel */ 130 -#define EPS_Cr_RT 5 131 - 132 -/** Minimal value for bit-budget percent value */ 133 -#define EPS_MIN_RT 1 134 -/** Maximal value for bit-budget percent value */ 135 -#define EPS_MAX_RT 98 136 - 137 -/** Perform no image resampling */ 138 -#define EPS_RESAMPLE_444 0 139 -/** Resample image according to the 4:2:0 scheme */ 140 -#define EPS_RESAMPLE_420 1 141 - 142 -/** Successful operation */ 143 -#define EPS_OK 0 144 -/** Incorrect function parameter */ 145 -#define EPS_PARAM_ERROR 1 146 -/** Incorrect data format */ 147 -#define EPS_FORMAT_ERROR 2 148 -/** Specified filterbank is not supported */ 149 -#define EPS_UNSUPPORTED_FB 3 150 - 151 -/** Type definition for CRC32 value */ 152 - typedef uint32_t crc32_t; 153 - 154 -/** GRAYSCALE block header */ 155 - typedef struct gs_hdr_tag 156 - { 157 - /** Image width */ 158 - int W; 159 - /** Image height */ 160 - int H; 161 - /** Block width */ 162 - int w; 163 - /** Block height */ 164 - int h; 165 - /** Block X coordinate */ 166 - int x; 167 - /** Block Y coordinate */ 168 - int y; 169 - /** Either \ref EPS_MODE_NORMAL or \ref EPS_MODE_OTLPF */ 170 - int mode; 171 - /** DC value */ 172 - int dc; 173 - /** Filterbank ID (should not be modified or released) */ 174 - char *fb_id; 175 - } gs_hdr; 176 - 177 -/** TRUECOLOR block header */ 178 - typedef struct tc_hdr_tag 179 - { 180 - /** Image width */ 181 - int W; 182 - /** Image height */ 183 - int H; 184 - /** Block width */ 185 - int w; 186 - /** Block height */ 187 - int h; 188 - /** Block X coordinate */ 189 - int x; 190 - /** Block Y coordinate */ 191 - int y; 192 - /** Either \ref EPS_MODE_NORMAL or \ref EPS_MODE_OTLPF */ 193 - int mode; 194 - /** Either \ref EPS_RESAMPLE_444 or \ref EPS_RESAMPLE_420 */ 195 - int resample; 196 - /** DC value of the Y channel */ 197 - int dc_Y; 198 - /** DC value of the Cb channel */ 199 - int dc_Cb; 200 - /** DC value of the Cr channel */ 201 - int dc_Cr; 202 - /** Initial ratio of the Y channel */ 203 - int Y_rt; 204 - /** Initial ratio of the Cb channel */ 205 - int Cb_rt; 206 - /** Initial ratio of the Cr channel */ 207 - int Cr_rt; 208 - /** Filterbank ID (should not be modified or released) */ 209 - char *fb_id; 210 - } tc_hdr; 211 - 212 -/** Generic block header */ 213 - typedef struct eps_block_header_tag 214 - { 215 - /** Block type 216 - * 217 - * Either \ref EPS_GRAYSCALE_BLOCK or \ref EPS_TRUECOLOR_BLOCK. */ 218 - int block_type; 219 - 220 - /** Header size in bytes */ 221 - int hdr_size; 222 - /** Data size in bytes */ 223 - int data_size; 224 - 225 - /** Header CRC */ 226 - crc32_t chk; 227 - /** Data CRC */ 228 - crc32_t crc; 229 - 230 - /** Header CRC flag 231 - * 232 - * Either \ref EPS_GOOD_CRC or \ref EPS_BAD_CRC */ 233 - int chk_flag; 234 - /** Data CRC flag 235 - * 236 - * Either \ref EPS_GOOD_CRC or \ref EPS_BAD_CRC */ 237 - int crc_flag; 238 - 239 - union 240 - { 241 - /** Special information for GRAYSCALE blocks */ 242 - gs_hdr gs; 243 - /** Special information for TRUECOLOR blocks */ 244 - tc_hdr tc; 245 - } uhdr; 246 - } eps_block_header; 247 - 248 -/** Query available filterbanks 249 - * 250 - * Depending on the \a type parameter this function 251 - * composes a \c NULL terminated list of all available 252 - * filterbank IDs, names or orthogonality types. 253 - * 254 - * \note The caller should subsequently release allocated list 255 - * (using \ref eps_free_fb_info function) when it is no longer 256 - * required. 257 - * 258 - * \note The caller should not modify allocated structure. 259 - 260 - * \param type Type of information: either \ref EPS_FB_ID or 261 - * \ref EPS_FB_NAME or \ref EPS_FB_TYPE 262 - * 263 - * \return List of strings */ 264 - char **eps_get_fb_info (int type); 265 - 266 -/** Release filterbank information 267 - * 268 - * This function releases filterbank infomation, 269 - * allocated by the \ref eps_get_fb_info function. 270 - * 271 - * \param info List of strings 272 - * 273 - * \return \c VOID */ 274 - void eps_free_fb_info (char **info); 275 - 276 -/** Memory allocation 277 - * 278 - * This function allocates one-dimensional array of desired size. 279 - * 280 - * \param size Size in bytes 281 - * 282 - * \return Array pointer 283 - * 284 - * \warning This function halts the program if all virtual memory 285 - * is exhausted. */ 286 - void **eps_xmalloc (int size); 287 - 288 -/** 2D-malloc 289 - * 290 - * This function allocates two-dimensional array of desired size. 291 - * 292 - * \param width Array width 293 - * \param height Array height 294 - * \param size Element size 295 - * 296 - * \return Array pointer 297 - * 298 - * \warning This function halts the program if all virtual memory 299 - * is exhausted. */ 300 - void **eps_malloc_2D (int width, int height, int size); 301 - 302 -/** 2D-free 303 - * 304 - * This function releases two-dimensional array allocated by \ref eps_malloc_2D. 305 - * 306 - * \param ptr Array pointer 307 - * \param width Array width 308 - * \param height Array height 309 - * 310 - * \return \c VOID */ 311 - void eps_free_2D (void **ptr, int width, int height); 312 - 313 -/** Read block header 314 - * 315 - * This function performes a broad range of tasks: 316 - * 317 - * <ul> 318 - * <li>Read and parse block header</li> 319 - * <li>Check header consistency</li> 320 - * <li>Check header and data CRC</li> 321 - * <li>Fill special \ref eps_block_header structure with 322 - * gathered information (it is worthwhile to mention that 323 - * all decoding functions in the library rely on this 324 - * structure)</li> 325 - * </ul> 326 - * 327 - * The \ref eps_block_header structure consists of two parts: 328 - * general part and special part. The first one holds information 329 - * that is common for all block types. The second one holds 330 - * information that is specific for a particular block type. 331 - * 332 - * \note The data buffer \a buf should hold \b whole block 333 - * without markers. 334 - * 335 - * \param buf Data buffer 336 - * \param buf_size Buffer size 337 - * \param hdr Block header 338 - * 339 - * \return The function returns either \ref EPS_OK (the header 340 - * is well-formed, the \a hdr structure is filled appropriately) 341 - * or \ref EPS_PARAM_ERROR (your should not get this error 342 - * unless you pass a \c NULL pointer, negative buffer size or 343 - * something like that) or \ref EPS_FORMAT_ERROR (the header is 344 - * malformed, block should be ignored). */ 345 - int eps_read_block_header (unsigned char *buf, int buf_size, 346 - eps_block_header * hdr); 347 - 348 -/** Encode a GRAYSCALE block 349 - * 350 - * This function encodes a signle grayscale image \a block of 351 - * size \a w by \a h pixels as block of type \ref EPS_GRAYSCALE_BLOCK. 352 - * It is assumed that the \a block is taken from the image of size 353 - * \a W by \a H pixels at position (\a x, \a y). All these parameters 354 - * should be consistent. The encoded data is stored in the \a buf 355 - * of size \a buf_size. 356 - * 357 - * \note The most surprising thing here is that you can choose almost 358 - * any (see note below) \a buf_size you wish! Thus you can precisely 359 - * control encoding bit-rate. This technique is called embedded coding. 360 - * In a few words, any encoded prefix can be used to decode a whole 361 - * image. So, you can safely truncate stream at any point. 362 - * 363 - * \note The caller should allocate at least \ref EPS_MIN_GRAYSCALE_BUF 364 - * bytes for the \a buf. 365 - * 366 - * \note On successful return, the value pointed by the \a buf_size 367 - * will be overwritten with a real amount of bytes used in the 368 - * \a buf (it will be less then or equal to the original \a buf_size 369 - * value). 370 - * 371 - * \note Depending on the \a mode parameter maximal \a block 372 - * width or height is either \ref EPS_MAX_BLOCK_SIZE (if \a mode = 373 - * \ref EPS_MODE_NORMAL) or \ref EPS_MAX_BLOCK_SIZE + 1 374 - * (if \a mode = \ref EPS_MODE_OTLPF). 375 - * 376 - * \note There is no restrictions on the image size itself. 377 - * 378 - * \note The caller should select a value for the \a fb_id 379 - * parameter from the list generated by the \ref eps_get_fb_info 380 - * function. 381 - * 382 - * \note The caller should not use orthogonal filterbanks 383 - * with \a mode = \ref EPS_MODE_OTLPF. Orthogonality type 384 - * can be queried with the \ref eps_get_fb_info function. 385 - * 386 - * \param block Image block 387 - * \param W Image width 388 - * \param H Image height 389 - * \param w Block width 390 - * \param h Block height 391 - * \param x Block X coordinate 392 - * \param y Block Y coordinate 393 - * \param buf Buffer 394 - * \param buf_size Buffer size 395 - * \param fb_id Filterbank ID 396 - * \param mode Either \ref EPS_MODE_NORMAL or \ref EPS_MODE_OTLPF 397 - * 398 - * \return The function returns either \ref EPS_OK (the block is 399 - * successfully encoded), or \ref EPS_PARAM_ERROR (one or more 400 - * parameters are incorrect) or \ref EPS_UNSUPPORTED_FB (filterbank with 401 - * specified \a fb_id not found). */ 402 - int eps_encode_grayscale_block (unsigned char **block, int W, int H, int w, 403 - int h, int x, int y, unsigned char *buf, 404 - int *buf_size, char *fb_id, int mode); 405 - 406 -/** Decode a GRAYSCALE block 407 - * 408 - * This function decodes a GRAYSCALE image \a block from 409 - * the \a buf. Block and image dimensions as well as other 410 - * necessary information is taken from the \a hdr structure 411 - * filled by the \ref eps_read_block_header function 412 - * beforehand. 413 - * 414 - * \note The caller should not invoke this function if the \a buf 415 - * contains no data, i.e. \ref eps_block_header::data_size = 0. 416 - * 417 - * \note The caller should allocate an image \a block 418 - * beforehand. Block dimensions as well as other information 419 - * is available in the \a hdr structure. 420 - * 421 - * \param block Image block 422 - * \param buf Buffer 423 - * \param hdr Block header 424 - * 425 - * \return The function returns either \ref EPS_OK (the block is 426 - * successfully decoded), or \ref EPS_PARAM_ERROR (one or more 427 - * parameters are incorrect) or \ref EPS_UNSUPPORTED_FB (filterbank 428 - * used by encoder not found). */ 429 - int eps_decode_grayscale_block (unsigned char **block, unsigned char *buf, 430 - eps_block_header * hdr); 431 - 432 -/** Encode a TRUECOLOR block 433 - * 434 - * This function encodes a generic RGB truecolor image block. 435 - * The original RGB data is arranged in three arrays: \a block_R, 436 - * \a block_G and \a block_B respectively. All components should 437 - * have equal dimensions: \a w by \a h pixels. It is assumed that 438 - * the block is taken from the image of size \a W by \a H pixels 439 - * at position (\a x, \a y). All these parameters should be 440 - * consistent. The encoded data is stored in the \a buf of size 441 - * \a buf_size. 442 - * 443 - * \note The most surprising thing here is that you can choose almost 444 - * any (see note below) \a buf_size you wish! Thus you can precisely 445 - * control encoding bit-rate. This technique is called embedded coding. 446 - * In a few words, any encoded prefix can be used to decode a whole 447 - * image. So, you can safely truncate stream at any point. 448 - * 449 - * \note The caller should allocate at least \ref EPS_MIN_TRUECOLOR_BUF 450 - * bytes for the \a buf. 451 - * 452 - * \note The overall bit-budget available for the encoder is 453 - * \a buf_size bytes. The caller should divide it between 454 - * three channels (Y, Cb, Cr) using the following parameters: 455 - * \a Y_rt, \a Cb_rt and \a Cr_rt. The function will report an 456 - * error unless \a Y_rt + \a Cb_rt + \a Cr_rt equals to 100%. 457 - * If no matter you can use default values: \ref EPS_Y_RT, 458 - * \ref EPS_Cb_RT and \ref EPS_Cr_RT. 459 - * 460 - * \note On successful return, the value pointed by the \a buf_size 461 - * will be overwritten with a real amount of bytes used in the 462 - * \a buf (it will be less then or equal to the original \a buf_size 463 - * value). 464 - * 465 - * \note Depending on the \a mode parameter maximal block 466 - * width or height is either \ref EPS_MAX_BLOCK_SIZE (if \a mode = 467 - * \ref EPS_MODE_NORMAL) or \ref EPS_MAX_BLOCK_SIZE + 1 468 - * (if \a mode = \ref EPS_MODE_OTLPF). 469 - * 470 - * \note There is no restrictions on the image size itself. 471 - * 472 - * \note The caller should select a value for the \a fb_id 473 - * parameter from the list generated by the \ref eps_get_fb_info 474 - * function. 475 - * 476 - * \note The caller should not use orthogonal filterbanks 477 - * with \a mode = \ref EPS_MODE_OTLPF. Orthogonality type 478 - * can be queried with the \ref eps_get_fb_info function. 479 - * 480 - * \param block_R Red component 481 - * \param block_G Green component 482 - * \param block_B Blue component 483 - * \param W Image width 484 - * \param H Image height 485 - * \param w Block width 486 - * \param h Block height 487 - * \param x Block X coordinate 488 - * \param y Block Y coordinate 489 - * \param resample Resampling scheme: either \ref EPS_RESAMPLE_444 or \ref EPS_RESAMPLE_420 490 - * \param buf Buffer 491 - * \param buf_size Buffer size 492 - * \param Y_rt Bit-budget percent for the Y channel 493 - * \param Cb_rt Bit-budget percent for the Cb channel 494 - * \param Cr_rt Bit-budget percent for the Cr channel 495 - * \param fb_id Filterbank ID 496 - * \param mode Either \ref EPS_MODE_NORMAL or \ref EPS_MODE_OTLPF 497 - * 498 - * \return The function returns either \ref EPS_OK (the block is 499 - * successfully encoded), or \ref EPS_PARAM_ERROR (one or more 500 - * parameters are incorrect) or \ref EPS_UNSUPPORTED_FB (filterbank 501 - * with specified \a fb_id not found). */ 502 - int eps_encode_truecolor_block (unsigned char **block_R, 503 - unsigned char **block_G, 504 - unsigned char **block_B, 505 - int W, int H, int w, int h, 506 - int x, int y, int resample, 507 - unsigned char *buf, int *buf_size, 508 - int Y_rt, int Cb_rt, int Cr_rt, 509 - char *fb_id, int mode); 510 - 511 -/** Decode a TRUECOLOR block 512 - * 513 - * This function decodes a TRUECOLOR image block from 514 - * the \a buf. The resulted RGB data will be stored in the 515 - * \a block_R, \a block_G, and \a block_B arrays 516 - * respectively. Block and image dimensions as well as 517 - * other necessary information is taken from the \a hdr 518 - * structure filled by the \ref eps_read_block_header 519 - * function beforehand. 520 - * 521 - * \note The caller should not invoke this function if the \a buf 522 - * contains no data, i.e. \ref eps_block_header::data_size = 0. 523 - * 524 - * \note The caller should allocate \a block_R, \a block_G, 525 - * and \a block_B arrays beforehand. Block dimensions as well 526 - * as other information is available in the \a hdr structure. 527 - * 528 - * \param block_R Red component 529 - * \param block_G Green component 530 - * \param block_B Blue component 531 - * \param buf Buffer 532 - * \param hdr Block header 533 - * 534 - * \return The function returns either \ref EPS_OK (the block is 535 - * successfully decoded), or \ref EPS_PARAM_ERROR (one or more 536 - * parameters are incorrect) or \ref EPS_UNSUPPORTED_FB (filterbank 537 - * used by encoder not found) or \ref EPS_FORMAT_ERROR 538 - * (unsupported data format). */ 539 - int eps_decode_truecolor_block (unsigned char **block_R, 540 - unsigned char **block_G, 541 - unsigned char **block_B, 542 - unsigned char *buf, eps_block_header * hdr); 543 - 544 -/** Truncate block 545 - * 546 - * This function truncates already encoded GRAYSCALE 547 - * or TRUECOLOR block. Due to embedded encoding 548 - * truncation is equivalent to block re-compression. 549 - * 550 - * \param buf_in Input buffer 551 - * \param buf_out Output buffer 552 - * \param hdr Block header 553 - * \param truncate_size Desired truncated block size 554 - * 555 - * \note On successful return, the value pointed by the 556 - * \a truncate_size parameter will be overwritten with a 557 - * real amount of bytes used in the \a buf_out (it will 558 - * be less then or equal to the original \a truncate_size value). 559 - * 560 - * \note Minimal value for the \a truncate_size parameter can be 561 - * calculated as MAX(\ref EPS_MIN_GRAYSCALE_BUF, \ref EPS_MIN_TRUECOLOR_BUF). 562 - * 563 - * \return The function returns either \ref EPS_OK (the block is 564 - * successfully truncated), or \ref EPS_PARAM_ERROR (one or more 565 - * parameters are incorrect). */ 566 - int eps_truncate_block (unsigned char *buf_in, unsigned char *buf_out, 567 - eps_block_header * hdr, int *truncate_size); 568 - 569 -/*@}*/ 570 - 571 -#ifdef __cplusplus 572 -} 573 -#endif 574 - 575 -#endif /* __EPSILON_H__ */
Deleted epsilon/filter.c.
1 -/* 2 - * $Id: filter.c,v 1.18 2008/03/30 07:38:53 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -#include <common.h> 25 -#include <filter.h> 26 -#include <filterbank.h> 27 -#include <daub97lift.h> 28 -#include <mem_alloc.h> 29 -#include <string.h> 30 - 31 -inline local int 32 -periodic_extension (int index, int length) 33 -{ 34 - if (index >= 0) 35 - { 36 - if (index < length) 37 - { 38 - return index; 39 - } 40 - else 41 - { 42 - return (index % length); 43 - } 44 - } 45 - else 46 - { 47 - return (length - 1 - (ABS (index) - 1) % length); 48 - } 49 -} 50 - 51 -inline local int 52 -symmetric_W_extension (int index, int length) 53 -{ 54 - if ((index >= 0) && (index < length)) 55 - { 56 - return index; 57 - } 58 - 59 - if (length == 1) 60 - { 61 - return 0; 62 - } 63 - 64 - index = ABS (index) % (2 * length - 2); 65 - 66 - if (index >= length) 67 - { 68 - index = 2 * length - 2 - index; 69 - } 70 - 71 - return index; 72 -} 73 - 74 -inline local int 75 -symmetric_H_extension (int index, int length) 76 -{ 77 - if ((index >= 0) && (index < length)) 78 - { 79 - return index; 80 - } 81 - 82 - if (length == 1) 83 - { 84 - return 0; 85 - } 86 - 87 - index = (ABS (index) - (index < 0)) % (2 * length); 88 - 89 - if (index >= length) 90 - { 91 - index = 2 * length - index - 1; 92 - } 93 - 94 - return index; 95 -} 96 - 97 -inline local void 98 -downsample_signal (coeff_t * input_signal, coeff_t * output_signal, 99 - int input_length, int output_length, int phase) 100 -{ 101 - int i, j; 102 - 103 - for (i = phase, j = 0; i < input_length; i += 2, j++) 104 - { 105 - output_signal[j] = input_signal[i]; 106 - } 107 -} 108 - 109 -inline local void 110 -upsample_signal (coeff_t * input_signal, coeff_t * output_signal, 111 - int input_length, int output_length, int phase) 112 -{ 113 - int i, j, k; 114 - 115 - for (i = 0, j = phase; i < input_length; i++, j += 2) 116 - { 117 - output_signal[j] = input_signal[i]; 118 - } 119 - 120 - for (k = phase ^ 1; k < output_length; k += 2) 121 - { 122 - output_signal[k] = 0; 123 - } 124 -} 125 - 126 -inline local void 127 -filter_periodic (coeff_t * input_signal, coeff_t * output_signal, 128 - int signal_length, filter_t * filter) 129 -{ 130 - int i, j, k; 131 - 132 - switch (filter->causality) 133 - { 134 - case CAUSAL: 135 - { 136 - for (i = 0; i < signal_length; i += 1) 137 - { 138 - output_signal[i] = 0; 139 - for (j = 0; j < filter->length; j++) 140 - { 141 - k = periodic_extension (i - j, signal_length); 142 - output_signal[i] += 143 - input_signal[k] * filter->coeffs[j]; 144 - } 145 - } 146 - 147 - break; 148 - } 149 - case ANTICAUSAL: 150 - { 151 - for (i = 0; i < signal_length; i += 2) 152 - { 153 - output_signal[i] = 0; 154 - for (j = 0; j < filter->length; j++) 155 - { 156 - k = periodic_extension (i + j, signal_length); 157 - output_signal[i] += 158 - input_signal[k] * filter->coeffs[filter->length - 159 - j - 1]; 160 - } 161 - } 162 - 163 - break; 164 - } 165 - default: 166 - { 167 - assert (0); 168 - break; 169 - } 170 - } 171 -} 172 - 173 -inline local void 174 -filter_symmetric (coeff_t * input_signal, coeff_t * output_signal, 175 - int signal_length, filter_t * filter) 176 -{ 177 - int i, j, k1, k2; 178 - 179 - switch (filter->causality) 180 - { 181 - case SYMMETRIC_WHOLE: 182 - { 183 - if (filter->type == LOWPASS_ANALYSIS) 184 - { 185 - for (i = 0; i < signal_length; i += 2) 186 - { 187 - output_signal[i] = 188 - input_signal[i] * filter->coeffs[0]; 189 - for (j = 1; j < filter->length; j++) 190 - { 191 - k1 = symmetric_W_extension (i + j, 192 - signal_length); 193 - k2 = symmetric_W_extension (i - j, 194 - signal_length); 195 - output_signal[i] += 196 - (input_signal[k1] + 197 - input_signal[k2]) * filter->coeffs[j]; 198 - } 199 - } 200 - } 201 - else if (filter->type == HIGHPASS_ANALYSIS) 202 - { 203 - for (i = 1; i < signal_length; i += 2) 204 - { 205 - output_signal[i] = 206 - input_signal[i] * filter->coeffs[0]; 207 - for (j = 1; j < filter->length; j++) 208 - { 209 - k1 = symmetric_W_extension (i + j, 210 - signal_length); 211 - k2 = symmetric_W_extension (i - j, 212 - signal_length); 213 - output_signal[i] += 214 - (input_signal[k1] + 215 - input_signal[k2]) * filter->coeffs[j]; 216 - } 217 - } 218 - } 219 - else 220 - { 221 - for (i = 0; i < signal_length; i++) 222 - { 223 - output_signal[i] = 224 - input_signal[i] * filter->coeffs[0]; 225 - for (j = 1; j < filter->length; j++) 226 - { 227 - k1 = symmetric_W_extension (i + j, 228 - signal_length); 229 - k2 = symmetric_W_extension (i - j, 230 - signal_length); 231 - output_signal[i] += 232 - (input_signal[k1] + 233 - input_signal[k2]) * filter->coeffs[j]; 234 - } 235 - } 236 - } 237 - 238 - break; 239 - } 240 - /* Some day I hope to add 'case SYMMETRIC_HALF' here */ 241 - default: 242 - { 243 - assert (0); 244 - break; 245 - } 246 - } 247 -} 248 - 249 -local void 250 -analysis_1D (coeff_t * input_signal, coeff_t * output_signal, 251 - coeff_t * temp, int signal_length, filterbank_t * fb) 252 -{ 253 - coeff_t *lowpass; 254 - coeff_t *highpass; 255 - 256 - /* Sanity checks */ 257 - assert (signal_length > 0); 258 - assert ((fb->type == BIORTHOGONAL) || ((fb->type == ORTHOGONAL) 259 - && !(signal_length & 1))); 260 - 261 - /* Trivial case */ 262 - if (signal_length == 1) 263 - { 264 - output_signal[0] = input_signal[0] * SQRT2; 265 - return; 266 - } 267 - 268 - if (fb->type == ORTHOGONAL) 269 - { 270 - lowpass = output_signal; 271 - highpass = output_signal + signal_length / 2; 272 - 273 - /* Lowpass analysis */ 274 - filter_periodic (input_signal, temp, signal_length, 275 - fb->lowpass_analysis); 276 - downsample_signal (temp, lowpass, signal_length, signal_length / 2, 277 - PHASE_EVEN); 278 - 279 - /* Highpass analysis */ 280 - filter_periodic (input_signal, temp, signal_length, 281 - fb->highpass_analysis); 282 - downsample_signal (temp, highpass, signal_length, signal_length / 2, 283 - PHASE_EVEN); 284 - } 285 - else 286 - { 287 - lowpass = output_signal; 288 - highpass = output_signal + signal_length / 2 + (signal_length & 1); 289 - 290 - /* Lowpass analysis */ 291 - filter_symmetric (input_signal, temp, signal_length, 292 - fb->lowpass_analysis); 293 - downsample_signal (temp, lowpass, signal_length, 294 - (signal_length + 1) / 2, PHASE_EVEN); 295 - 296 - /* Highpass analysis */ 297 - filter_symmetric (input_signal, temp, signal_length, 298 - fb->highpass_analysis); 299 - downsample_signal (temp, highpass, signal_length, signal_length / 2, 300 - PHASE_ODD); 301 - } 302 -} 303 - 304 -local void 305 -synthesis_1D (coeff_t * input_signal, coeff_t * output_signal, 306 - coeff_t * temp1, coeff_t * temp2, coeff_t * temp3, 307 - int signal_length, filterbank_t * fb) 308 -{ 309 - coeff_t *lowpass; 310 - coeff_t *highpass; 311 - int i; 312 - 313 - /* Sanity checks */ 314 - assert (signal_length > 0); 315 - assert ((fb->type == BIORTHOGONAL) || ((fb->type == ORTHOGONAL) 316 - && !(signal_length & 1))); 317 - 318 - /* Trivial case */ 319 - if (signal_length == 1) 320 - { 321 - output_signal[0] = input_signal[0] / SQRT2; 322 - return; 323 - } 324 - 325 - if (fb->type == ORTHOGONAL) 326 - { 327 - lowpass = input_signal; 328 - highpass = input_signal + signal_length / 2; 329 - 330 - /* Lowpass synthesis */ 331 - upsample_signal (lowpass, temp1, signal_length / 2, signal_length, 332 - PHASE_EVEN); 333 - filter_periodic (temp1, temp2, signal_length, fb->lowpass_synthesis); 334 - 335 - /* Highpass synthesis */ 336 - upsample_signal (highpass, temp1, signal_length / 2, signal_length, 337 - PHASE_EVEN); 338 - filter_periodic (temp1, temp3, signal_length, fb->highpass_synthesis); 339 - } 340 - else 341 - { 342 - lowpass = input_signal; 343 - highpass = input_signal + signal_length / 2 + (signal_length & 1); 344 - 345 - /* Lowpass synthesis */ 346 - upsample_signal (lowpass, temp1, (signal_length + 1) / 2, 347 - signal_length, PHASE_EVEN); 348 - filter_symmetric (temp1, temp2, signal_length, fb->lowpass_synthesis); 349 - 350 - /* Highpass synthesis */ 351 - upsample_signal (highpass, temp1, signal_length / 2, signal_length, 352 - PHASE_ODD); 353 - filter_symmetric (temp1, temp3, signal_length, 354 - fb->highpass_synthesis); 355 - } 356 - 357 - /* Combine arrays */ 358 - for (i = 0; i < signal_length; i++) 359 - { 360 - output_signal[i] = temp2[i] + temp3[i]; 361 - } 362 -} 363 - 364 -void 365 -analysis_2D (coeff_t ** input_signal, coeff_t ** output_signal, 366 - int signal_length, int mode, filterbank_t * fb) 367 -{ 368 - coeff_t *input; 369 - coeff_t *output; 370 - coeff_t *temp; 371 - 372 - int scale, length; 373 - int scales; 374 - int i, j; 375 - 376 - assert (signal_length > 1); 377 - 378 - /* Transform as many times as possible */ 379 - scales = number_of_bits (signal_length) - 1; 380 - 381 - /* Sanity checks */ 382 - assert (((mode == MODE_NORMAL) && (signal_length == 1 << scales)) || 383 - ((mode == MODE_OTLPF) && (signal_length == (1 << scales) + 1))); 384 - 385 - input = xmalloc (signal_length * sizeof (coeff_t)); 386 - output = xmalloc (signal_length * sizeof (coeff_t)); 387 - temp = xmalloc (signal_length * sizeof (coeff_t)); 388 - 389 - for (i = 0; i < signal_length; i++) 390 - { 391 - for (j = 0; j < signal_length; j++) 392 - { 393 - output_signal[i][j] = input_signal[i][j]; 394 - } 395 - } 396 - 397 - /* Transform image */ 398 - for (scale = 0; scale < scales; scale++) 399 - { 400 - length = mode + (1 << (scales - scale)); 401 - 402 - /* Transform rows */ 403 - for (i = 0; i < length; i++) 404 - { 405 - for (j = 0; j < length; j++) 406 - { 407 - input[j] = output_signal[i][j]; 408 - } 409 - 410 - if (!strcmp (fb->id, "daub97lift")) 411 - { 412 - if (length % 2) 413 - { 414 - daub97lift_analysis_1D_odd (input, output, length); 415 - } 416 - else 417 - { 418 - daub97lift_analysis_1D_even (input, output, length); 419 - } 420 - } 421 - else 422 - { 423 - analysis_1D (input, output, temp, length, fb); 424 - } 425 - 426 - for (j = 0; j < length; j++) 427 - { 428 - output_signal[i][j] = output[j]; 429 - } 430 - } 431 - 432 - /* Transform columns */ 433 - for (i = 0; i < length; i++) 434 - { 435 - for (j = 0; j < length; j++) 436 - { 437 - input[j] = output_signal[j][i]; 438 - } 439 - 440 - if (!strcmp (fb->id, "daub97lift")) 441 - { 442 - if (length % 2) 443 - { 444 - daub97lift_analysis_1D_odd (input, output, length); 445 - } 446 - else 447 - { 448 - daub97lift_analysis_1D_even (input, output, length); 449 - } 450 - } 451 - else 452 - { 453 - analysis_1D (input, output, temp, length, fb); 454 - } 455 - 456 - for (j = 0; j < length; j++) 457 - { 458 - output_signal[j][i] = output[j]; 459 - } 460 - } 461 - } 462 - 463 - free (input); 464 - free (output); 465 - free (temp); 466 -} 467 - 468 -void 469 -synthesis_2D (coeff_t ** input_signal, coeff_t ** output_signal, 470 - int signal_length, int mode, filterbank_t * fb) 471 -{ 472 - coeff_t *input; 473 - coeff_t *output; 474 - coeff_t *temp1; 475 - coeff_t *temp2; 476 - coeff_t *temp3; 477 - 478 - int scale, length; 479 - int scales; 480 - int i, j; 481 - 482 - assert (signal_length > 1); 483 - 484 - /* Transform as many times as possible */ 485 - scales = number_of_bits (signal_length) - 1; 486 - 487 - /* Sanity checks */ 488 - assert (((mode == MODE_NORMAL) && (signal_length == 1 << scales)) || 489 - ((mode == MODE_OTLPF) && (signal_length == (1 << scales) + 1))); 490 - 491 - /* Temporary arrays */ 492 - input = xmalloc (signal_length * sizeof (coeff_t)); 493 - output = xmalloc (signal_length * sizeof (coeff_t)); 494 - temp1 = xmalloc (signal_length * sizeof (coeff_t)); 495 - temp2 = xmalloc (signal_length * sizeof (coeff_t)); 496 - temp3 = xmalloc (signal_length * sizeof (coeff_t)); 497 - 498 - for (i = 0; i < signal_length; i++) 499 - { 500 - for (j = 0; j < signal_length; j++) 501 - { 502 - output_signal[i][j] = input_signal[i][j]; 503 - } 504 - } 505 - 506 - /* Transform image */ 507 - for (scale = 0; scale < scales; scale++) 508 - { 509 - length = mode + (1 << (scale + 1)); 510 - 511 - /* Transform rows */ 512 - for (i = 0; i < length; i++) 513 - { 514 - for (j = 0; j < length; j++) 515 - { 516 - input[j] = output_signal[i][j]; 517 - } 518 - 519 - if (!strcmp (fb->id, "daub97lift")) 520 - { 521 - if (length % 2) 522 - { 523 - daub97lift_synthesis_1D_odd (input, output, length); 524 - } 525 - else 526 - { 527 - daub97lift_synthesis_1D_even (input, output, 528 - length); 529 - } 530 - } 531 - else 532 - { 533 - synthesis_1D (input, output, temp1, temp2, temp3, length, 534 - fb); 535 - } 536 - 537 - for (j = 0; j < length; j++) 538 - { 539 - output_signal[i][j] = output[j]; 540 - } 541 - } 542 - 543 - /* Transform columns */ 544 - for (i = 0; i < length; i++) 545 - { 546 - for (j = 0; j < length; j++) 547 - { 548 - input[j] = output_signal[j][i]; 549 - } 550 - 551 - if (!strcmp (fb->id, "daub97lift")) 552 - { 553 - if (length % 2) 554 - { 555 - daub97lift_synthesis_1D_odd (input, output, length); 556 - } 557 - else 558 - { 559 - daub97lift_synthesis_1D_even (input, output, 560 - length); 561 - } 562 - } 563 - else 564 - { 565 - synthesis_1D (input, output, temp1, temp2, temp3, length, 566 - fb); 567 - } 568 - 569 - for (j = 0; j < length; j++) 570 - { 571 - output_signal[j][i] = output[j]; 572 - } 573 - } 574 - } 575 - 576 - /* Release temporary arrays */ 577 - free (input); 578 - free (output); 579 - free (temp1); 580 - free (temp2); 581 - free (temp3); 582 -}
Deleted epsilon/filter.h.
1 -/* 2 - * $Id: filter.h,v 1.19 2008/03/28 22:52:29 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -/** \file 25 - * 26 - * \brief Signal filtering 27 - * 28 - * Wavelet transform implementation based on filter banks. 29 - * 30 - * \section References 31 - * 32 - * Gilbert Strang, Truong Nguyen "Wavelets and Filter Banks". 33 - * 34 - * Jianxin Wei, Mark Pickering, Michael Frater, John Arnold, 35 - * John Boman, Wenjun Zeng "Boundary Artefact Reduction Using 36 - * Odd Tile Length and the Low Pass First Convention (OTLPF)". */ 37 - 38 -#ifndef __FILTER_H__ 39 -#define __FILTER_H__ 40 - 41 -#ifdef __cplusplus 42 -extern "C" 43 -{ 44 -#endif 45 - 46 -#if defined(_MSC_VER) && !defined(__cplusplus) 47 -#define inline __inline 48 -#endif /* not MSVC C compiler */ 49 - 50 -/** \addtogroup wavelet Wavelet transform */ 51 -/*@{*/ 52 - 53 -#include <common.h> 54 -#include <filterbank.h> 55 - 56 -/** Normal mode 57 - * 58 - * This mode assumes that image is square and height = width = 2 ^ N. */ 59 -#define MODE_NORMAL 0 60 -/** OTLPF mode 61 - * 62 - * This mode also assumes that image is square, but height = width = (2 ^ N) + 1. 63 - * In a few words, OTLPF is some kind of hack to reduce boundary artefacts 64 - * when image is broken into several tiles. Due to mathematical constrains 65 - * this method can be applied to biorthogonal filters only. For more 66 - * information see references. */ 67 -#define MODE_OTLPF 1 68 - 69 -/** Periodic signal extension 70 - * 71 - * This function extends signal in a periodic fashion. 72 - * For example: ... 2 3 4 | 1 2 3 4 | 1 2 3 ... 73 - * This kind of extension is used with orthogonal filters. 74 - * 75 - * \param index Sample index 76 - * \param length Signal length 77 - * 78 - * \return Real sample index within array bounds 79 - * 80 - * \note Actually, signal is not extended as the function name states. 81 - * This function just computes real sample index within array bounds. */ 82 - inline local int periodic_extension (int index, int length); 83 - 84 -/** Symmetric-whole signal extension 85 - * 86 - * This function extends signal in symmetric-whole fasion. 87 - * For example: ... 4 3 2 | 1 2 3 4 | 3 2 1 ... This kind 88 - * of extension is used with biorthogonal filters of odd length. 89 - * 90 - * \param index Sample index 91 - * \param length Signal length 92 - * 93 - * \return Real sample index within array bounds 94 - * 95 - * \note Actually, signal is not extended as the function name states. 96 - * This function just computes real sample index within array bounds. */ 97 - inline local int symmetric_W_extension (int index, int length); 98 - 99 -/** Symmetric-half signal extension 100 - * 101 - * This function extends signal in symmetric-half fasion. 102 - * For example: ... 3 2 1 | 1 2 3 4 | 4 3 2 ... (i.e. boundary 103 - * samples are duplicated). This kind of extension is used with 104 - * biorthogonal filters of even length. 105 - * 106 - * \param index Sample index 107 - * \param length Signal length 108 - * 109 - * \return Real sample index within array bounds 110 - * 111 - * \note Actually, signal is not extended as the function name states. 112 - * This function just computes real sample index within array bounds. */ 113 - inline local int symmetric_H_extension (int index, int length); 114 - 115 -/** Signal downsampling 116 - * 117 - * This function downsamples signal by the factor of two. Depending 118 - * on \a phase, #PHASE_EVEN or #PHASE_ODD, odd-numbered (1, 3, 5, ...) 119 - * or even-numbered (0, 2, 4, ...) samples are rejected respectively. 120 - * 121 - * \param input_signal Input signal 122 - * \param output_signal Output signal 123 - * \param input_length Input signal length 124 - * \param output_length Output signal length 125 - * \param phase Downsampling phase 126 - * 127 - * \return \c VOID 128 - * 129 - * \note Caller must allocate enough space for \a output_signal beforehand. */ 130 - inline local void downsample_signal (coeff_t * input_signal, 131 - coeff_t * output_signal, 132 - int input_length, int output_length, 133 - int phase); 134 - 135 -/** Signal upsampling 136 - * 137 - * This function is inverse to the previous one. It inserts zeros between 138 - * \a input_signal samples. Depending on \a phase, #PHASE_EVEN or #PHASE_ODD, 139 - * zeros are insered into the odd-numbered (1, 3, 5, ...) or 140 - * even-numbered (0, 2, 4, ...) positions respectively. 141 - * 142 - * \param input_signal Input signal 143 - * \param output_signal Output signal 144 - * \param input_length Input signal length 145 - * \param output_length Output signal length 146 - * \param phase Upsampling phase 147 - * 148 - * \return \c VOID 149 - * 150 - * \note Caller must allocate enough space for \a output_signal beforehand. */ 151 - inline local void upsample_signal (coeff_t * input_signal, 152 - coeff_t * output_signal, 153 - int input_length, int output_length, 154 - int phase); 155 - 156 -/** Periodic signal filtering 157 - * 158 - * This function filters \a input_signal of length \a signal_length 159 - * into the \a output_signal using specified \a filter. Boundary 160 - * samples are evaluated using peridic extension. 161 - * 162 - * \param input_signal Input signal 163 - * \param output_signal Output signal 164 - * \param signal_length Signal length 165 - * \param filter Filter 166 - * 167 - * \return \c VOID 168 - * 169 - * \note \a filter must be orthogonal. 170 - * \note \a signal_length must be even. */ 171 - inline local void filter_periodic (coeff_t * input_signal, 172 - coeff_t * output_signal, 173 - int signal_length, filter_t * filter); 174 - 175 -/** Symmetric signal filtering 176 - * 177 - * This function filters \a input_signal of length \a signal_length 178 - * into the \a output_signal using specified \a filter. Boundary 179 - * samples are evaluated using symmetric extension. 180 - * 181 - * \param input_signal Input signal 182 - * \param output_signal Output signal 183 - * \param signal_length Signal length 184 - * \param filter Filter 185 - * 186 - * \return \c VOID 187 - * 188 - * \note \a filter must be biorthogonal. 189 - * \note \a signal_length can be either even or odd. 190 - * 191 - * \todo Add support for even-length biorthogonal filters. */ 192 - inline local void filter_symmetric (coeff_t * input_signal, 193 - coeff_t * output_signal, 194 - int signal_length, filter_t * filter); 195 - 196 -/** One dimensional wavelet decomposition 197 - * 198 - * This function performes one stage of 1D wavelet decomposition 199 - * of \a input_signal using filter bank \a fb. The result is 200 - * stored in \a output_signal. This operation requires one temporary 201 - * array of length \a signal_length. On return, the first half of \a output_signal 202 - * will be occupied with lowpass coefficients, the second half - with highpass 203 - * coefficients. 204 - * 205 - * \param input_signal Input signal 206 - * \param output_signal Output signal 207 - * \param temp Temporary array 208 - * \param signal_length Signal length 209 - * \param fb Filter bank 210 - * 211 - * \return \c VOID 212 - * 213 - * \note If \a signal_length is odd and \a fb is biorthogonal, then 214 - * there will be one extra lowpass coefficient. */ 215 - local void analysis_1D (coeff_t * input_signal, coeff_t * output_signal, 216 - coeff_t * temp, int signal_length, 217 - filterbank_t * fb); 218 - 219 -/** One dimensional wavelet reconstruction 220 - * 221 - * This function performes one stage of 1D wavelet reconstruction 222 - * of \a input_signal using filter bank \a fb. The result is 223 - * stored in \a output_signal. This operation requires tree temporary 224 - * arrays of length \a signal_length. 225 - * 226 - * \param input_signal Input signal 227 - * \param output_signal Output signal 228 - * \param temp1 Temporary array 1 229 - * \param temp2 Temporary array 2 230 - * \param temp3 Temporary array 3 231 - * \param signal_length Signal length 232 - * \param fb Filter bank 233 - * 234 - * \return \c VOID */ 235 - local void synthesis_1D (coeff_t * input_signal, coeff_t * output_signal, 236 - coeff_t * temp1, coeff_t * temp2, coeff_t * temp3, 237 - int signal_length, filterbank_t * fb); 238 - 239 -/** Two dimensional wavelet decomposition 240 - * 241 - * This function performes N stages of 2D wavelet decomposition of 242 - * \a input_signal using filter bank \a fb. Image is assumed to be square: 243 - * if \a mode = #MODE_NORMAL, then width = height = signal_length = 2 ^ N; 244 - * if \a mode = #MODE_OTLPF, then width = height = signal_length = (2 ^ N) + 1. 245 - * 246 - * \param input_signal Input signal 247 - * \param output_signal Output signal 248 - * \param signal_length Signal length (width = height) 249 - * \param mode Either #MODE_NORMAL or #MODE_OTLPF 250 - * \param fb Filter bank 251 - * 252 - * \return \c VOID */ 253 - void analysis_2D (coeff_t ** input_signal, coeff_t ** output_signal, 254 - int signal_length, int mode, filterbank_t * fb); 255 - 256 -/** Two dimensional wavelet reconstruction 257 - * 258 - * This function performes N stages of 2D wavelet reconstruction of 259 - * \a input_signal using filter bank \a fb. Image is assumed to be square: 260 - * if \a mode = #MODE_NORMAL, then width = height = signal_length = 2 ^ N; 261 - * if \a mode = #MODE_OTLPF, then width = height = signal_length = (2 ^ N) + 1. 262 - * 263 - * \param input_signal Input signal 264 - * \param output_signal Output signal 265 - * \param signal_length Signal length (width = height) 266 - * \param mode Either #MODE_NORMAL or #MODE_OTLPF 267 - * \param fb Filter bank 268 - * 269 - * \return \c VOID */ 270 - void synthesis_2D (coeff_t ** input_signal, coeff_t ** output_signal, 271 - int signal_length, int mode, filterbank_t * fb); 272 - 273 -/*@}*/ 274 - 275 -#ifdef __cplusplus 276 -} 277 -#endif 278 - 279 -#endif /* __FILTER_H__ */
Deleted epsilon/filterbank.c.
1 -/* 2 - * $Id: filterbank.c,v 1.12 2008/03/28 22:52:29 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -#include <common.h> 25 -#include <filterbank.h> 26 - 27 -/* Haar filter. */ 28 - 29 -static coeff_t haar_lowpass_analysis_coeffs[] = { 30 - 0.7071067811865475, 31 - 0.7071067811865475, 32 -}; 33 - 34 -static coeff_t haar_highpass_analysis_coeffs[] = { 35 - 0.7071067811865475, 36 - -0.7071067811865475, 37 -}; 38 - 39 -static coeff_t haar_lowpass_synthesis_coeffs[] = { 40 - 0.7071067811865475, 41 - 0.7071067811865475, 42 -}; 43 - 44 -static coeff_t haar_highpass_synthesis_coeffs[] = { 45 - -0.7071067811865475, 46 - 0.7071067811865475, 47 -}; 48 - 49 -static filter_t haar_lowpass_analysis = { 50 - 2, 51 - ANTICAUSAL, 52 - LOWPASS_ANALYSIS, 53 - haar_lowpass_analysis_coeffs, 54 -}; 55 - 56 -static filter_t haar_highpass_analysis = { 57 - 2, 58 - ANTICAUSAL, 59 - HIGHPASS_ANALYSIS, 60 - haar_highpass_analysis_coeffs, 61 -}; 62 - 63 -static filter_t haar_lowpass_synthesis = { 64 - 2, 65 - CAUSAL, 66 - LOWPASS_SYNTHESIS, 67 - haar_lowpass_synthesis_coeffs, 68 -}; 69 - 70 -static filter_t haar_highpass_synthesis = { 71 - 2, 72 - CAUSAL, 73 - HIGHPASS_SYNTHESIS, 74 - haar_highpass_synthesis_coeffs, 75 -}; 76 - 77 -static filterbank_t haar = { 78 - "haar", 79 - "Haar", 80 - ORTHOGONAL, 81 - &haar_lowpass_analysis, 82 - &haar_highpass_analysis, 83 - &haar_lowpass_synthesis, 84 - &haar_highpass_synthesis, 85 -}; 86 - 87 -/* I. Daubechies, "Orthonormal Bases of Compactly Supported Wavelets," 88 - * Communications on Pure and Applied Mathematics, vol. 41, 89 - * pp. 909-996, 1988. */ 90 - 91 -static coeff_t daub4_lowpass_analysis_coeffs[] = { 92 - 0.4829629131445341, 93 - 0.8365163037378077, 94 - 0.2241438680420134, 95 - -0.1294095225512603, 96 -}; 97 - 98 -static coeff_t daub4_highpass_analysis_coeffs[] = { 99 - -0.1294095225512603, 100 - -0.2241438680420134, 101 - 0.8365163037378077, 102 - -0.4829629131445341, 103 -}; 104 - 105 -static coeff_t daub4_lowpass_synthesis_coeffs[] = { 106 - -0.1294095225512603, 107 - 0.2241438680420134, 108 - 0.8365163037378077, 109 - 0.4829629131445341, 110 -}; 111 - 112 -static coeff_t daub4_highpass_synthesis_coeffs[] = { 113 - -0.4829629131445341, 114 - 0.8365163037378077, 115 - -0.2241438680420134, 116 - -0.1294095225512603, 117 -}; 118 - 119 -static filter_t daub4_lowpass_analysis = { 120 - 4, 121 - ANTICAUSAL, 122 - LOWPASS_ANALYSIS, 123 - daub4_lowpass_analysis_coeffs, 124 -}; 125 - 126 -static filter_t daub4_highpass_analysis = { 127 - 4, 128 - ANTICAUSAL, 129 - HIGHPASS_ANALYSIS, 130 - daub4_highpass_analysis_coeffs, 131 -}; 132 - 133 -static filter_t daub4_lowpass_synthesis = { 134 - 4, 135 - CAUSAL, 136 - LOWPASS_SYNTHESIS, 137 - daub4_lowpass_synthesis_coeffs, 138 -}; 139 - 140 -static filter_t daub4_highpass_synthesis = { 141 - 4, 142 - CAUSAL, 143 - HIGHPASS_SYNTHESIS, 144 - daub4_highpass_synthesis_coeffs, 145 -}; 146 - 147 -static filterbank_t daub4 = { 148 - "daub4", 149 - "Daubechies D4", 150 - ORTHOGONAL, 151 - &daub4_lowpass_analysis, 152 - &daub4_highpass_analysis, 153 - &daub4_lowpass_synthesis, 154 - &daub4_highpass_synthesis, 155 -}; 156 - 157 -/* I. Daubechies, "Orthonormal Bases of Compactly Supported Wavelets," 158 - * Communications on Pure and Applied Mathematics, vol. 41, 159 - * pp. 909-996, 1988. */ 160 - 161 -static coeff_t daub6_lowpass_analysis_coeffs[] = { 162 - 0.3326705529500825, 163 - 0.8068915093110924, 164 - 0.4598775021184914, 165 - -0.1350110200102546, 166 - -0.0854412738820267, 167 - 0.0352262918857095, 168 -}; 169 - 170 -static coeff_t daub6_highpass_analysis_coeffs[] = { 171 - 0.0352262918857095, 172 - 0.0854412738820267, 173 - -0.1350110200102546, 174 - -0.4598775021184914, 175 - 0.8068915093110924, 176 - -0.3326705529500825, 177 -}; 178 - 179 -static coeff_t daub6_lowpass_synthesis_coeffs[] = { 180 - 0.0352262918857095, 181 - -0.0854412738820267, 182 - -0.1350110200102546, 183 - 0.4598775021184914, 184 - 0.8068915093110924, 185 - 0.3326705529500825, 186 -}; 187 - 188 -static coeff_t daub6_highpass_synthesis_coeffs[] = { 189 - -0.3326705529500825, 190 - 0.8068915093110924, 191 - -0.4598775021184914, 192 - -0.1350110200102546, 193 - 0.0854412738820267, 194 - 0.0352262918857095, 195 -}; 196 - 197 -static filter_t daub6_lowpass_analysis = { 198 - 6, 199 - ANTICAUSAL, 200 - LOWPASS_ANALYSIS, 201 - daub6_lowpass_analysis_coeffs, 202 -}; 203 - 204 -static filter_t daub6_highpass_analysis = { 205 - 6, 206 - ANTICAUSAL, 207 - HIGHPASS_ANALYSIS, 208 - daub6_highpass_analysis_coeffs, 209 -}; 210 - 211 -static filter_t daub6_lowpass_synthesis = { 212 - 6, 213 - CAUSAL, 214 - LOWPASS_SYNTHESIS, 215 - daub6_lowpass_synthesis_coeffs, 216 -}; 217 - 218 -static filter_t daub6_highpass_synthesis = { 219 - 6, 220 - CAUSAL, 221 - HIGHPASS_SYNTHESIS, 222 - daub6_highpass_synthesis_coeffs, 223 -}; 224 - 225 -static filterbank_t daub6 = { 226 - "daub6", 227 - "Daubechies D6", 228 - ORTHOGONAL, 229 - &daub6_lowpass_analysis, 230 - &daub6_highpass_analysis, 231 - &daub6_lowpass_synthesis, 232 - &daub6_highpass_synthesis, 233 -}; 234 - 235 -/* I. Daubechies, "Orthonormal Bases of Compactly Supported Wavelets," 236 - * Communications on Pure and Applied Mathematics, vol. 41, 237 - * pp. 909-996, 1988. */ 238 - 239 -static coeff_t daub8_lowpass_analysis_coeffs[] = { 240 - 0.2303778133088964, 241 - 0.7148465705529154, 242 - 0.6308807679398587, 243 - -0.0279837694168599, 244 - -0.1870348117190931, 245 - 0.0308413818355607, 246 - 0.0328830116668852, 247 - -0.0105974017850690, 248 -}; 249 - 250 -static coeff_t daub8_highpass_analysis_coeffs[] = { 251 - -0.0105974017850690, 252 - -0.0328830116668852, 253 - 0.0308413818355607, 254 - 0.1870348117190931, 255 - -0.0279837694168599, 256 - -0.6308807679398587, 257 - 0.7148465705529154, 258 - -0.2303778133088964, 259 -}; 260 - 261 -static coeff_t daub8_lowpass_synthesis_coeffs[] = { 262 - -0.0105974017850690, 263 - 0.0328830116668852, 264 - 0.0308413818355607, 265 - -0.1870348117190931, 266 - -0.0279837694168599, 267 - 0.6308807679398587, 268 - 0.7148465705529154, 269 - 0.2303778133088964, 270 -}; 271 - 272 -static coeff_t daub8_highpass_synthesis_coeffs[] = { 273 - -0.2303778133088964, 274 - 0.7148465705529154, 275 - -0.6308807679398587, 276 - -0.0279837694168599, 277 - 0.1870348117190931, 278 - 0.0308413818355607, 279 - -0.0328830116668852, 280 - -0.0105974017850690, 281 -}; 282 - 283 -static filter_t daub8_lowpass_analysis = { 284 - 8, 285 - ANTICAUSAL, 286 - LOWPASS_ANALYSIS, 287 - daub8_lowpass_analysis_coeffs, 288 -}; 289 - 290 -static filter_t daub8_highpass_analysis = { 291 - 8, 292 - ANTICAUSAL, 293 - HIGHPASS_ANALYSIS, 294 - daub8_highpass_analysis_coeffs, 295 -}; 296 - 297 -static filter_t daub8_lowpass_synthesis = { 298 - 8, 299 - CAUSAL, 300 - LOWPASS_SYNTHESIS, 301 - daub8_lowpass_synthesis_coeffs, 302 -}; 303 - 304 -static filter_t daub8_highpass_synthesis = { 305 - 8, 306 - CAUSAL, 307 - HIGHPASS_SYNTHESIS, 308 - daub8_highpass_synthesis_coeffs, 309 -}; 310 - 311 -static filterbank_t daub8 = { 312 - "daub8", 313 - "Daubechies D8", 314 - ORTHOGONAL, 315 - &daub8_lowpass_analysis, 316 - &daub8_highpass_analysis, 317 - &daub8_lowpass_synthesis, 318 - &daub8_highpass_synthesis, 319 -}; 320 - 321 -/* I. Daubechies, "Orthonormal Bases of Compactly Supported Wavelets," 322 - * Communications on Pure and Applied Mathematics, vol. 41, 323 - * pp. 909-996, 1988. */ 324 - 325 -static coeff_t daub10_lowpass_analysis_coeffs[] = { 326 - 0.16010239797419, 327 - 0.60382926979719, 328 - 0.72430852843777, 329 - 0.13842814590132, 330 - -0.24229488706638, 331 - -0.03224486958464, 332 - 0.07757149384005, 333 - -0.00624149021280, 334 - -0.01258075199908, 335 - 0.00333572528547, 336 -}; 337 - 338 -static coeff_t daub10_highpass_analysis_coeffs[] = { 339 - 0.00333572528547, 340 - 0.01258075199908, 341 - -0.00624149021280, 342 - -0.07757149384005, 343 - -0.03224486958464, 344 - 0.24229488706638, 345 - 0.13842814590132, 346 - -0.72430852843777, 347 - 0.60382926979719, 348 - -0.16010239797419, 349 -}; 350 - 351 -static coeff_t daub10_lowpass_synthesis_coeffs[] = { 352 - 0.00333572528547, 353 - -0.01258075199908, 354 - -0.00624149021280, 355 - 0.07757149384005, 356 - -0.03224486958464, 357 - -0.24229488706638, 358 - 0.13842814590132, 359 - 0.72430852843777, 360 - 0.60382926979719, 361 - 0.16010239797419, 362 -}; 363 - 364 -static coeff_t daub10_highpass_synthesis_coeffs[] = { 365 - -0.16010239797419, 366 - 0.60382926979719, 367 - -0.72430852843777, 368 - 0.13842814590132, 369 - 0.24229488706638, 370 - -0.03224486958464, 371 - -0.07757149384005, 372 - -0.00624149021280, 373 - 0.01258075199908, 374 - 0.00333572528547, 375 -}; 376 - 377 -static filter_t daub10_lowpass_analysis = { 378 - 10, 379 - ANTICAUSAL, 380 - LOWPASS_ANALYSIS, 381 - daub10_lowpass_analysis_coeffs, 382 -}; 383 - 384 -static filter_t daub10_highpass_analysis = { 385 - 10, 386 - ANTICAUSAL, 387 - HIGHPASS_ANALYSIS, 388 - daub10_highpass_analysis_coeffs, 389 -}; 390 - 391 -static filter_t daub10_lowpass_synthesis = { 392 - 10, 393 - CAUSAL, 394 - LOWPASS_SYNTHESIS, 395 - daub10_lowpass_synthesis_coeffs, 396 -}; 397 - 398 -static filter_t daub10_highpass_synthesis = { 399 - 10, 400 - CAUSAL, 401 - HIGHPASS_SYNTHESIS, 402 - daub10_highpass_synthesis_coeffs, 403 -}; 404 - 405 -static filterbank_t daub10 = { 406 - "daub10", 407 - "Daubechies D10", 408 - ORTHOGONAL, 409 - &daub10_lowpass_analysis, 410 - &daub10_highpass_analysis, 411 - &daub10_lowpass_synthesis, 412 - &daub10_highpass_synthesis, 413 -}; 414 - 415 -/* I. Daubechies, "Orthonormal Bases of Compactly Supported Wavelets," 416 - * Communications on Pure and Applied Mathematics, vol. 41, 417 - * pp. 909-996, 1988. */ 418 - 419 -static coeff_t daub12_lowpass_analysis_coeffs[] = { 420 - 0.111540743350, 421 - 0.494623890398, 422 - 0.751133908021, 423 - 0.315250351709, 424 - -0.226264693965, 425 - -0.129766867567, 426 - 0.097501605587, 427 - 0.027522865530, 428 - -0.031582039317, 429 - 0.000553842201, 430 - 0.004777257511, 431 - -0.001077301085, 432 -}; 433 - 434 -static coeff_t daub12_highpass_analysis_coeffs[] = { 435 - -0.001077301085, 436 - -0.004777257511, 437 - 0.000553842201, 438 - 0.031582039317, 439 - 0.027522865530, 440 - -0.097501605587, 441 - -0.129766867567, 442 - 0.226264693965, 443 - 0.315250351709, 444 - -0.751133908021, 445 - 0.494623890398, 446 - -0.111540743350, 447 -}; 448 - 449 -static coeff_t daub12_lowpass_synthesis_coeffs[] = { 450 - -0.001077301085, 451 - 0.004777257511, 452 - 0.000553842201, 453 - -0.031582039317, 454 - 0.027522865530, 455 - 0.097501605587, 456 - -0.129766867567, 457 - -0.226264693965, 458 - 0.315250351709, 459 - 0.751133908021, 460 - 0.494623890398, 461 - 0.111540743350, 462 -}; 463 - 464 -static coeff_t daub12_highpass_synthesis_coeffs[] = { 465 - -0.111540743350, 466 - 0.494623890398, 467 - -0.751133908021, 468 - 0.315250351709, 469 - 0.226264693965, 470 - -0.129766867567, 471 - -0.097501605587, 472 - 0.027522865530, 473 - 0.031582039317, 474 - 0.000553842201, 475 - -0.004777257511, 476 - -0.001077301085, 477 -}; 478 - 479 -static filter_t daub12_lowpass_analysis = { 480 - 12, 481 - ANTICAUSAL, 482 - LOWPASS_ANALYSIS, 483 - daub12_lowpass_analysis_coeffs, 484 -}; 485 - 486 -static filter_t daub12_highpass_analysis = { 487 - 12, 488 - ANTICAUSAL, 489 - HIGHPASS_ANALYSIS, 490 - daub12_highpass_analysis_coeffs, 491 -}; 492 - 493 -static filter_t daub12_lowpass_synthesis = { 494 - 12, 495 - CAUSAL, 496 - LOWPASS_SYNTHESIS, 497 - daub12_lowpass_synthesis_coeffs, 498 -}; 499 - 500 -static filter_t daub12_highpass_synthesis = { 501 - 12, 502 - CAUSAL, 503 - HIGHPASS_SYNTHESIS, 504 - daub12_highpass_synthesis_coeffs, 505 -}; 506 - 507 -static filterbank_t daub12 = { 508 - "daub12", 509 - "Daubechies D12", 510 - ORTHOGONAL, 511 - &daub12_lowpass_analysis, 512 - &daub12_highpass_analysis, 513 - &daub12_lowpass_synthesis, 514 - &daub12_highpass_synthesis, 515 -}; 516 - 517 -/* I. Daubechies, "Orthonormal Bases of Compactly Supported Wavelets," 518 - * Communications on Pure and Applied Mathematics, vol. 41, 519 - * pp. 909-996, 1988. */ 520 - 521 -static coeff_t daub14_lowpass_analysis_coeffs[] = { 522 - 0.077852054085, 523 - 0.396539319482, 524 - 0.729132090846, 525 - 0.469782287405, 526 - -0.143906003929, 527 - -0.224036184994, 528 - 0.071309219267, 529 - 0.080612609151, 530 - -0.038029936935, 531 - -0.016574541631, 532 - 0.012550998556, 533 - 0.000429577973, 534 - -0.001801640704, 535 - 0.000353713800, 536 -}; 537 - 538 -static coeff_t daub14_highpass_analysis_coeffs[] = { 539 - 0.000353713800, 540 - 0.001801640704, 541 - 0.000429577973, 542 - -0.012550998556, 543 - -0.016574541631, 544 - 0.038029936935, 545 - 0.080612609151, 546 - -0.071309219267, 547 - -0.224036184994, 548 - 0.143906003929, 549 - 0.469782287405, 550 - -0.729132090846, 551 - 0.396539319482, 552 - -0.077852054085, 553 -}; 554 - 555 -static coeff_t daub14_lowpass_synthesis_coeffs[] = { 556 - 0.000353713800, 557 - -0.001801640704, 558 - 0.000429577973, 559 - 0.012550998556, 560 - -0.016574541631, 561 - -0.038029936935, 562 - 0.080612609151, 563 - 0.071309219267, 564 - -0.224036184994, 565 - -0.143906003929, 566 - 0.469782287405, 567 - 0.729132090846, 568 - 0.396539319482, 569 - 0.077852054085, 570 -}; 571 - 572 -static coeff_t daub14_highpass_synthesis_coeffs[] = { 573 - -0.077852054085, 574 - 0.396539319482, 575 - -0.729132090846, 576 - 0.469782287405, 577 - 0.143906003929, 578 - -0.224036184994, 579 - -0.071309219267, 580 - 0.080612609151, 581 - 0.038029936935, 582 - -0.016574541631, 583 - -0.012550998556, 584 - 0.000429577973, 585 - 0.001801640704, 586 - 0.000353713800, 587 -}; 588 - 589 -static filter_t daub14_lowpass_analysis = { 590 - 14, 591 - ANTICAUSAL, 592 - LOWPASS_ANALYSIS, 593 - daub14_lowpass_analysis_coeffs, 594 -}; 595 - 596 -static filter_t daub14_highpass_analysis = { 597 - 14, 598 - ANTICAUSAL, 599 - HIGHPASS_ANALYSIS, 600 - daub14_highpass_analysis_coeffs, 601 -}; 602 - 603 -static filter_t daub14_lowpass_synthesis = { 604 - 14, 605 - CAUSAL, 606 - LOWPASS_SYNTHESIS, 607 - daub14_lowpass_synthesis_coeffs, 608 -}; 609 - 610 -static filter_t daub14_highpass_synthesis = { 611 - 14, 612 - CAUSAL, 613 - HIGHPASS_SYNTHESIS, 614 - daub14_highpass_synthesis_coeffs, 615 -}; 616 - 617 -static filterbank_t daub14 = { 618 - "daub14", 619 - "Daubechies D14", 620 - ORTHOGONAL, 621 - &daub14_lowpass_analysis, 622 - &daub14_highpass_analysis, 623 - &daub14_lowpass_synthesis, 624 - &daub14_highpass_synthesis, 625 -}; 626 - 627 -/* I. Daubechies, "Orthonormal Bases of Compactly Supported Wavelets," 628 - * Communications on Pure and Applied Mathematics, vol. 41, 629 - * pp. 909-996, 1988. */ 630 - 631 -static coeff_t daub16_lowpass_analysis_coeffs[] = { 632 - 0.054415842243, 633 - 0.312871590914, 634 - 0.675630736297, 635 - 0.585354683654, 636 - -0.015829105256, 637 - -0.284015542962, 638 - 0.000472484574, 639 - 0.128747426620, 640 - -0.017369301002, 641 - -0.044088253931, 642 - 0.013981027917, 643 - 0.008746094047, 644 - -0.004870352993, 645 - -0.000391740373, 646 - 0.000675449406, 647 - -0.000117476784, 648 -}; 649 - 650 -static coeff_t daub16_highpass_analysis_coeffs[] = { 651 - -0.000117476784, 652 - -0.000675449406, 653 - -0.000391740373, 654 - 0.004870352993, 655 - 0.008746094047, 656 - -0.013981027917, 657 - -0.044088253931, 658 - 0.017369301002, 659 - 0.128747426620, 660 - -0.000472484574, 661 - -0.284015542962, 662 - 0.015829105256, 663 - 0.585354683654, 664 - -0.675630736297, 665 - 0.312871590914, 666 - -0.054415842243, 667 -}; 668 - 669 -static coeff_t daub16_lowpass_synthesis_coeffs[] = { 670 - -0.000117476784, 671 - 0.000675449406, 672 - -0.000391740373, 673 - -0.004870352993, 674 - 0.008746094047, 675 - 0.013981027917, 676 - -0.044088253931, 677 - -0.017369301002, 678 - 0.128747426620, 679 - 0.000472484574, 680 - -0.284015542962, 681 - -0.015829105256, 682 - 0.585354683654, 683 - 0.675630736297, 684 - 0.312871590914, 685 - 0.054415842243, 686 -}; 687 - 688 -static coeff_t daub16_highpass_synthesis_coeffs[] = { 689 - -0.054415842243, 690 - 0.312871590914, 691 - -0.675630736297, 692 - 0.585354683654, 693 - 0.015829105256, 694 - -0.284015542962, 695 - -0.000472484574, 696 - 0.128747426620, 697 - 0.017369301002, 698 - -0.044088253931, 699 - -0.013981027917, 700 - 0.008746094047, 701 - 0.004870352993, 702 - -0.000391740373, 703 - -0.000675449406, 704 - -0.000117476784, 705 -}; 706 - 707 -static filter_t daub16_lowpass_analysis = { 708 - 16, 709 - ANTICAUSAL, 710 - LOWPASS_ANALYSIS, 711 - daub16_lowpass_analysis_coeffs, 712 -}; 713 - 714 -static filter_t daub16_highpass_analysis = { 715 - 16, 716 - ANTICAUSAL, 717 - HIGHPASS_ANALYSIS, 718 - daub16_highpass_analysis_coeffs, 719 -}; 720 - 721 -static filter_t daub16_lowpass_synthesis = { 722 - 16, 723 - CAUSAL, 724 - LOWPASS_SYNTHESIS, 725 - daub16_lowpass_synthesis_coeffs, 726 -}; 727 - 728 -static filter_t daub16_highpass_synthesis = { 729 - 16, 730 - CAUSAL, 731 - HIGHPASS_SYNTHESIS, 732 - daub16_highpass_synthesis_coeffs, 733 -}; 734 - 735 -static filterbank_t daub16 = { 736 - "daub16", 737 - "Daubechies D16", 738 - ORTHOGONAL, 739 - &daub16_lowpass_analysis, 740 - &daub16_highpass_analysis, 741 - &daub16_lowpass_synthesis, 742 - &daub16_highpass_synthesis, 743 -}; 744 - 745 -/* I. Daubechies, "Orthonormal Bases of Compactly Supported Wavelets," 746 - * Communications on Pure and Applied Mathematics, vol. 41, 747 - * pp. 909-996, 1988. */ 748 - 749 -static coeff_t daub18_lowpass_analysis_coeffs[] = { 750 - 0.038077947364, 751 - 0.243834674613, 752 - 0.604823123690, 753 - 0.657288078051, 754 - 0.133197385825, 755 - -0.293273783279, 756 - -0.096840783223, 757 - 0.148540749338, 758 - 0.030725681479, 759 - -0.067632829061, 760 - 0.000250947115, 761 - 0.022361662124, 762 - -0.004723204758, 763 - -0.004281503682, 764 - 0.001847646883, 765 - 0.000230385764, 766 - -0.000251963189, 767 - 0.000039347320, 768 -}; 769 - 770 -static coeff_t daub18_highpass_analysis_coeffs[] = { 771 - 0.000039347320, 772 - 0.000251963189, 773 - 0.000230385764, 774 - -0.001847646883, 775 - -0.004281503682, 776 - 0.004723204758, 777 - 0.022361662124, 778 - -0.000250947115, 779 - -0.067632829061, 780 - -0.030725681479, 781 - 0.148540749338, 782 - 0.096840783223, 783 - -0.293273783279, 784 - -0.133197385825, 785 - 0.657288078051, 786 - -0.604823123690, 787 - 0.243834674613, 788 - -0.038077947364, 789 -}; 790 - 791 -static coeff_t daub18_lowpass_synthesis_coeffs[] = { 792 - 0.000039347320, 793 - -0.000251963189, 794 - 0.000230385764, 795 - 0.001847646883, 796 - -0.004281503682, 797 - -0.004723204758, 798 - 0.022361662124, 799 - 0.000250947115, 800 - -0.067632829061, 801 - 0.030725681479, 802 - 0.148540749338, 803 - -0.096840783223, 804 - -0.293273783279, 805 - 0.133197385825, 806 - 0.657288078051, 807 - 0.604823123690, 808 - 0.243834674613, 809 - 0.038077947364, 810 -}; 811 - 812 -static coeff_t daub18_highpass_synthesis_coeffs[] = { 813 - -0.038077947364, 814 - 0.243834674613, 815 - -0.604823123690, 816 - 0.657288078051, 817 - -0.133197385825, 818 - -0.293273783279, 819 - 0.096840783223, 820 - 0.148540749338, 821 - -0.030725681479, 822 - -0.067632829061, 823 - -0.000250947115, 824 - 0.022361662124, 825 - 0.004723204758, 826 - -0.004281503682, 827 - -0.001847646883, 828 - 0.000230385764, 829 - 0.000251963189, 830 - 0.000039347320, 831 -}; 832 - 833 -static filter_t daub18_lowpass_analysis = { 834 - 18, 835 - ANTICAUSAL, 836 - LOWPASS_ANALYSIS, 837 - daub18_lowpass_analysis_coeffs, 838 -}; 839 - 840 -static filter_t daub18_highpass_analysis = { 841 - 18, 842 - ANTICAUSAL, 843 - HIGHPASS_ANALYSIS, 844 - daub18_highpass_analysis_coeffs, 845 -}; 846 - 847 -static filter_t daub18_lowpass_synthesis = { 848 - 18, 849 - CAUSAL, 850 - LOWPASS_SYNTHESIS, 851 - daub18_lowpass_synthesis_coeffs, 852 -}; 853 - 854 -static filter_t daub18_highpass_synthesis = { 855 - 18, 856 - CAUSAL, 857 - HIGHPASS_SYNTHESIS, 858 - daub18_highpass_synthesis_coeffs, 859 -}; 860 - 861 -static filterbank_t daub18 = { 862 - "daub18", 863 - "Daubechies D18", 864 - ORTHOGONAL, 865 - &daub18_lowpass_analysis, 866 - &daub18_highpass_analysis, 867 - &daub18_lowpass_synthesis, 868 - &daub18_highpass_synthesis, 869 -}; 870 - 871 -/* I. Daubechies, "Orthonormal Bases of Compactly Supported Wavelets," 872 - * Communications on Pure and Applied Mathematics, vol. 41, 873 - * pp. 909-996, 1988. */ 874 - 875 -static coeff_t daub20_lowpass_analysis_coeffs[] = { 876 - 0.026670057901, 877 - 0.188176800078, 878 - 0.527201188932, 879 - 0.688459039454, 880 - 0.281172343661, 881 - -0.249846424327, 882 - -0.195946274377, 883 - 0.127369340336, 884 - 0.093057364604, 885 - -0.071394147166, 886 - -0.029457536822, 887 - 0.033212674059, 888 - 0.003606553567, 889 - -0.010733175483, 890 - 0.001395351747, 891 - 0.001992405295, 892 - -0.000685856695, 893 - -0.000116466855, 894 - 0.000093588670, 895 - -0.000013264203, 896 -}; 897 - 898 -static coeff_t daub20_highpass_analysis_coeffs[] = { 899 - -0.000013264203, 900 - -0.000093588670, 901 - -0.000116466855, 902 - 0.000685856695, 903 - 0.001992405295, 904 - -0.001395351747, 905 - -0.010733175483, 906 - -0.003606553567, 907 - 0.033212674059, 908 - 0.029457536822, 909 - -0.071394147166, 910 - -0.093057364604, 911 - 0.127369340336, 912 - 0.195946274377, 913 - -0.249846424327, 914 - -0.281172343661, 915 - 0.688459039454, 916 - -0.527201188932, 917 - 0.188176800078, 918 - -0.026670057901, 919 -}; 920 - 921 -static coeff_t daub20_lowpass_synthesis_coeffs[] = { 922 - -0.000013264203, 923 - 0.000093588670, 924 - -0.000116466855, 925 - -0.000685856695, 926 - 0.001992405295, 927 - 0.001395351747, 928 - -0.010733175483, 929 - 0.003606553567, 930 - 0.033212674059, 931 - -0.029457536822, 932 - -0.071394147166, 933 - 0.093057364604, 934 - 0.127369340336, 935 - -0.195946274377, 936 - -0.249846424327, 937 - 0.281172343661, 938 - 0.688459039454, 939 - 0.527201188932, 940 - 0.188176800078, 941 - 0.026670057901, 942 -}; 943 - 944 -static coeff_t daub20_highpass_synthesis_coeffs[] = { 945 - -0.026670057901, 946 - 0.188176800078, 947 - -0.527201188932, 948 - 0.688459039454, 949 - -0.281172343661, 950 - -0.249846424327, 951 - 0.195946274377, 952 - 0.127369340336, 953 - -0.093057364604, 954 - -0.071394147166, 955 - 0.029457536822, 956 - 0.033212674059, 957 - -0.003606553567, 958 - -0.010733175483, 959 - -0.001395351747, 960 - 0.001992405295, 961 - 0.000685856695, 962 - -0.000116466855, 963 - -0.000093588670, 964 - -0.000013264203, 965 -}; 966 - 967 -static filter_t daub20_lowpass_analysis = { 968 - 20, 969 - ANTICAUSAL, 970 - LOWPASS_ANALYSIS, 971 - daub20_lowpass_analysis_coeffs, 972 -}; 973 - 974 -static filter_t daub20_highpass_analysis = { 975 - 20, 976 - ANTICAUSAL, 977 - HIGHPASS_ANALYSIS, 978 - daub20_highpass_analysis_coeffs, 979 -}; 980 - 981 -static filter_t daub20_lowpass_synthesis = { 982 - 20, 983 - CAUSAL, 984 - LOWPASS_SYNTHESIS, 985 - daub20_lowpass_synthesis_coeffs, 986 -}; 987 - 988 -static filter_t daub20_highpass_synthesis = { 989 - 20, 990 - CAUSAL, 991 - HIGHPASS_SYNTHESIS, 992 - daub20_highpass_synthesis_coeffs, 993 -}; 994 - 995 -static filterbank_t daub20 = { 996 - "daub20", 997 - "Daubechies D20", 998 - ORTHOGONAL, 999 - &daub20_lowpass_analysis, 1000 - &daub20_highpass_analysis, 1001 - &daub20_lowpass_synthesis, 1002 - &daub20_highpass_synthesis, 1003 -}; 1004 - 1005 -/* The Beylkin filter places roots for the frequency response function 1006 - * close to the Nyquist frequency on the real axis. */ 1007 - 1008 -static coeff_t beylkin_lowpass_analysis_coeffs[] = { 1009 - 0.099305765374, 1010 - 0.424215360813, 1011 - 0.699825214057, 1012 - 0.449718251149, 1013 - -0.110927598348, 1014 - -0.264497231446, 1015 - 0.026900308804, 1016 - 0.155538731877, 1017 - -0.017520746267, 1018 - -0.088543630623, 1019 - 0.019679866044, 1020 - 0.042916387274, 1021 - -0.017460408696, 1022 - -0.014365807969, 1023 - 0.010040411845, 1024 - 0.001484234782, 1025 - -0.002736031626, 1026 - 0.000640485329, 1027 -}; 1028 - 1029 -static coeff_t beylkin_highpass_analysis_coeffs[] = { 1030 - 0.000640485329, 1031 - 0.002736031626, 1032 - 0.001484234782, 1033 - -0.010040411845, 1034 - -0.014365807969, 1035 - 0.017460408696, 1036 - 0.042916387274, 1037 - -0.019679866044, 1038 - -0.088543630623, 1039 - 0.017520746267, 1040 - 0.155538731877, 1041 - -0.026900308804, 1042 - -0.264497231446, 1043 - 0.110927598348, 1044 - 0.449718251149, 1045 - -0.699825214057, 1046 - 0.424215360813, 1047 - -0.099305765374, 1048 -}; 1049 - 1050 -static coeff_t beylkin_lowpass_synthesis_coeffs[] = { 1051 - 0.000640485329, 1052 - -0.002736031626, 1053 - 0.001484234782, 1054 - 0.010040411845, 1055 - -0.014365807969, 1056 - -0.017460408696, 1057 - 0.042916387274, 1058 - 0.019679866044, 1059 - -0.088543630623, 1060 - -0.017520746267, 1061 - 0.155538731877, 1062 - 0.026900308804, 1063 - -0.264497231446, 1064 - -0.110927598348, 1065 - 0.449718251149, 1066 - 0.699825214057, 1067 - 0.424215360813, 1068 - 0.099305765374, 1069 -}; 1070 - 1071 -static coeff_t beylkin_highpass_synthesis_coeffs[] = { 1072 - -0.099305765374, 1073 - 0.424215360813, 1074 - -0.699825214057, 1075 - 0.449718251149, 1076 - 0.110927598348, 1077 - -0.264497231446, 1078 - -0.026900308804, 1079 - 0.155538731877, 1080 - 0.017520746267, 1081 - -0.088543630623, 1082 - -0.019679866044, 1083 - 0.042916387274, 1084 - 0.017460408696, 1085 - -0.014365807969, 1086 - -0.010040411845, 1087 - 0.001484234782, 1088 - 0.002736031626, 1089 - 0.000640485329, 1090 -}; 1091 - 1092 -static filter_t beylkin_lowpass_analysis = { 1093 - 18, 1094 - ANTICAUSAL, 1095 - LOWPASS_ANALYSIS, 1096 - beylkin_lowpass_analysis_coeffs, 1097 -}; 1098 - 1099 -static filter_t beylkin_highpass_analysis = { 1100 - 18, 1101 - ANTICAUSAL, 1102 - HIGHPASS_ANALYSIS, 1103 - beylkin_highpass_analysis_coeffs, 1104 -}; 1105 - 1106 -static filter_t beylkin_lowpass_synthesis = { 1107 - 18, 1108 - CAUSAL, 1109 - LOWPASS_SYNTHESIS, 1110 - beylkin_lowpass_synthesis_coeffs, 1111 -}; 1112 - 1113 -static filter_t beylkin_highpass_synthesis = { 1114 - 18, 1115 - CAUSAL, 1116 - HIGHPASS_SYNTHESIS, 1117 - beylkin_highpass_synthesis_coeffs, 1118 -}; 1119 - 1120 -static filterbank_t beylkin = { 1121 - "beylkin", 1122 - "Beylkin", 1123 - ORTHOGONAL, 1124 - &beylkin_lowpass_analysis, 1125 - &beylkin_highpass_analysis, 1126 - &beylkin_lowpass_synthesis, 1127 - &beylkin_highpass_synthesis, 1128 -}; 1129 - 1130 -/* The Vaidyanathan filter gives an exact reconstruction, but does not 1131 - * satisfy any moment condition. The filter has been optimized for 1132 - * speech coding. */ 1133 - 1134 -static coeff_t vaidyanathan_lowpass_analysis_coeffs[] = { 1135 - -0.000062906118, 1136 - 0.000343631905, 1137 - -0.000453956620, 1138 - -0.000944897136, 1139 - 0.002843834547, 1140 - 0.000708137504, 1141 - -0.008839103409, 1142 - 0.003153847056, 1143 - 0.019687215010, 1144 - -0.014853448005, 1145 - -0.035470398607, 1146 - 0.038742619293, 1147 - 0.055892523691, 1148 - -0.077709750902, 1149 - -0.083928884366, 1150 - 0.131971661417, 1151 - 0.135084227129, 1152 - -0.194450471766, 1153 - -0.263494802488, 1154 - 0.201612161775, 1155 - 0.635601059872, 1156 - 0.572797793211, 1157 - 0.250184129505, 1158 - 0.045799334111, 1159 -}; 1160 - 1161 -static coeff_t vaidyanathan_highpass_analysis_coeffs[] = { 1162 - 0.045799334111, 1163 - -0.250184129505, 1164 - 0.572797793211, 1165 - -0.635601059872, 1166 - 0.201612161775, 1167 - 0.263494802488, 1168 - -0.194450471766, 1169 - -0.135084227129, 1170 - 0.131971661417, 1171 - 0.083928884366, 1172 - -0.077709750902, 1173 - -0.055892523691, 1174 - 0.038742619293, 1175 - 0.035470398607, 1176 - -0.014853448005, 1177 - -0.019687215010, 1178 - 0.003153847056, 1179 - 0.008839103409, 1180 - 0.000708137504, 1181 - -0.002843834547, 1182 - -0.000944897136, 1183 - 0.000453956620, 1184 - 0.000343631905, 1185 - 0.000062906118, 1186 -}; 1187 - 1188 -static coeff_t vaidyanathan_lowpass_synthesis_coeffs[] = { 1189 - 0.045799334111, 1190 - 0.250184129505, 1191 - 0.572797793211, 1192 - 0.635601059872, 1193 - 0.201612161775, 1194 - -0.263494802488, 1195 - -0.194450471766, 1196 - 0.135084227129, 1197 - 0.131971661417, 1198 - -0.083928884366, 1199 - -0.077709750902, 1200 - 0.055892523691, 1201 - 0.038742619293, 1202 - -0.035470398607, 1203 - -0.014853448005, 1204 - 0.019687215010, 1205 - 0.003153847056, 1206 - -0.008839103409, 1207 - 0.000708137504, 1208 - 0.002843834547, 1209 - -0.000944897136, 1210 - -0.000453956620, 1211 - 0.000343631905, 1212 - -0.000062906118, 1213 -}; 1214 - 1215 -static coeff_t vaidyanathan_highpass_synthesis_coeffs[] = { 1216 - 0.000062906118, 1217 - 0.000343631905, 1218 - 0.000453956620, 1219 - -0.000944897136, 1220 - -0.002843834547, 1221 - 0.000708137504, 1222 - 0.008839103409, 1223 - 0.003153847056, 1224 - -0.019687215010, 1225 - -0.014853448005, 1226 - 0.035470398607, 1227 - 0.038742619293, 1228 - -0.055892523691, 1229 - -0.077709750902, 1230 - 0.083928884366, 1231 - 0.131971661417, 1232 - -0.135084227129, 1233 - -0.194450471766, 1234 - 0.263494802488, 1235 - 0.201612161775, 1236 - -0.635601059872, 1237 - 0.572797793211, 1238 - -0.250184129505, 1239 - 0.045799334111, 1240 -}; 1241 - 1242 -static filter_t vaidyanathan_lowpass_analysis = { 1243 - 24, 1244 - ANTICAUSAL, 1245 - LOWPASS_ANALYSIS, 1246 - vaidyanathan_lowpass_analysis_coeffs, 1247 -}; 1248 - 1249 -static filter_t vaidyanathan_highpass_analysis = { 1250 - 24, 1251 - ANTICAUSAL, 1252 - HIGHPASS_ANALYSIS, 1253 - vaidyanathan_highpass_analysis_coeffs, 1254 -}; 1255 - 1256 -static filter_t vaidyanathan_lowpass_synthesis = { 1257 - 24, 1258 - CAUSAL, 1259 - LOWPASS_SYNTHESIS, 1260 - vaidyanathan_lowpass_synthesis_coeffs, 1261 -}; 1262 - 1263 -static filter_t vaidyanathan_highpass_synthesis = { 1264 - 24, 1265 - CAUSAL, 1266 - HIGHPASS_SYNTHESIS, 1267 - vaidyanathan_highpass_synthesis_coeffs, 1268 -}; 1269 - 1270 -static filterbank_t vaidyanathan = { 1271 - "vaidyanathan", 1272 - "Vaidyanathan", 1273 - ORTHOGONAL, 1274 - &vaidyanathan_lowpass_analysis, 1275 - &vaidyanathan_highpass_analysis, 1276 - &vaidyanathan_lowpass_synthesis, 1277 - &vaidyanathan_highpass_synthesis, 1278 -}; 1279 - 1280 -/* Coeflet �6 filter. */ 1281 - 1282 -static coeff_t coiflet6_lowpass_analysis_coeffs[] = { 1283 - 0.038580777748, 1284 - -0.126969125396, 1285 - -0.077161555496, 1286 - 0.607491641386, 1287 - 0.745687558934, 1288 - 0.226584265197, 1289 -}; 1290 - 1291 -static coeff_t coiflet6_highpass_analysis_coeffs[] = { 1292 - 0.226584265197, 1293 - -0.745687558934, 1294 - 0.607491641386, 1295 - 0.077161555496, 1296 - -0.126969125396, 1297 - -0.038580777748, 1298 -}; 1299 - 1300 -static coeff_t coiflet6_lowpass_synthesis_coeffs[] = { 1301 - 0.226584265197, 1302 - 0.745687558934, 1303 - 0.607491641386, 1304 - -0.077161555496, 1305 - -0.126969125396, 1306 - 0.038580777748, 1307 -}; 1308 - 1309 -static coeff_t coiflet6_highpass_synthesis_coeffs[] = { 1310 - -0.038580777748, 1311 - -0.126969125396, 1312 - 0.077161555496, 1313 - 0.607491641386, 1314 - -0.745687558934, 1315 - 0.226584265197, 1316 -}; 1317 - 1318 -static filter_t coiflet6_lowpass_analysis = { 1319 - 6, 1320 - ANTICAUSAL, 1321 - LOWPASS_ANALYSIS, 1322 - coiflet6_lowpass_analysis_coeffs, 1323 -}; 1324 - 1325 -static filter_t coiflet6_highpass_analysis = { 1326 - 6, 1327 - ANTICAUSAL, 1328 - HIGHPASS_ANALYSIS, 1329 - coiflet6_highpass_analysis_coeffs, 1330 -}; 1331 - 1332 -static filter_t coiflet6_lowpass_synthesis = { 1333 - 6, 1334 - CAUSAL, 1335 - LOWPASS_SYNTHESIS, 1336 - coiflet6_lowpass_synthesis_coeffs, 1337 -}; 1338 - 1339 -static filter_t coiflet6_highpass_synthesis = { 1340 - 6, 1341 - CAUSAL, 1342 - HIGHPASS_SYNTHESIS, 1343 - coiflet6_highpass_synthesis_coeffs, 1344 -}; 1345 - 1346 -static filterbank_t coiflet6 = { 1347 - "coiflet6", 1348 - "Coeflet C6", 1349 - ORTHOGONAL, 1350 - &coiflet6_lowpass_analysis, 1351 - &coiflet6_highpass_analysis, 1352 - &coiflet6_lowpass_synthesis, 1353 - &coiflet6_highpass_synthesis, 1354 -}; 1355 - 1356 -/* Coeflet C12 filter. */ 1357 - 1358 -static coeff_t coiflet12_lowpass_analysis_coeffs[] = { 1359 - 0.016387336463, 1360 - -0.041464936782, 1361 - -0.067372554722, 1362 - 0.386110066823, 1363 - 0.812723635450, 1364 - 0.417005184424, 1365 - -0.076488599078, 1366 - -0.059434418646, 1367 - 0.023680171947, 1368 - 0.005611434819, 1369 - -0.001823208871, 1370 - -0.000720549445, 1371 -}; 1372 - 1373 -static coeff_t coiflet12_highpass_analysis_coeffs[] = { 1374 - -0.000720549445, 1375 - 0.001823208871, 1376 - 0.005611434819, 1377 - -0.023680171947, 1378 - -0.059434418646, 1379 - 0.076488599078, 1380 - 0.417005184424, 1381 - -0.812723635450, 1382 - 0.386110066823, 1383 - 0.067372554722, 1384 - -0.041464936782, 1385 - -0.016387336463, 1386 -}; 1387 - 1388 -static coeff_t coiflet12_lowpass_synthesis_coeffs[] = { 1389 - -0.000720549445, 1390 - -0.001823208871, 1391 - 0.005611434819, 1392 - 0.023680171947, 1393 - -0.059434418646, 1394 - -0.076488599078, 1395 - 0.417005184424, 1396 - 0.812723635450, 1397 - 0.386110066823, 1398 - -0.067372554722, 1399 - -0.041464936782, 1400 - 0.016387336463, 1401 -}; 1402 - 1403 -static coeff_t coiflet12_highpass_synthesis_coeffs[] = { 1404 - -0.016387336463, 1405 - -0.041464936782, 1406 - 0.067372554722, 1407 - 0.386110066823, 1408 - -0.812723635450, 1409 - 0.417005184424, 1410 - 0.076488599078, 1411 - -0.059434418646, 1412 - -0.023680171947, 1413 - 0.005611434819, 1414 - 0.001823208871, 1415 - -0.000720549445, 1416 -}; 1417 - 1418 -static filter_t coiflet12_lowpass_analysis = { 1419 - 12, 1420 - ANTICAUSAL, 1421 - LOWPASS_ANALYSIS, 1422 - coiflet12_lowpass_analysis_coeffs, 1423 -}; 1424 - 1425 -static filter_t coiflet12_highpass_analysis = { 1426 - 12, 1427 - ANTICAUSAL, 1428 - HIGHPASS_ANALYSIS, 1429 - coiflet12_highpass_analysis_coeffs, 1430 -}; 1431 - 1432 -static filter_t coiflet12_lowpass_synthesis = { 1433 - 12, 1434 - CAUSAL, 1435 - LOWPASS_SYNTHESIS, 1436 - coiflet12_lowpass_synthesis_coeffs, 1437 -}; 1438 - 1439 -static filter_t coiflet12_highpass_synthesis = { 1440 - 12, 1441 - CAUSAL, 1442 - HIGHPASS_SYNTHESIS, 1443 - coiflet12_highpass_synthesis_coeffs, 1444 -}; 1445 - 1446 -static filterbank_t coiflet12 = { 1447 - "coiflet12", 1448 - "Coeflet C12", 1449 - ORTHOGONAL, 1450 - &coiflet12_lowpass_analysis, 1451 - &coiflet12_highpass_analysis, 1452 - &coiflet12_lowpass_synthesis, 1453 - &coiflet12_highpass_synthesis, 1454 -}; 1455 - 1456 -/* Coeflet C18 filter. */ 1457 - 1458 -static coeff_t coiflet18_lowpass_analysis_coeffs[] = { 1459 - -0.003793512864, 1460 - 0.007782596426, 1461 - 0.023452696142, 1462 - -0.065771911281, 1463 - -0.061123390003, 1464 - 0.405176902410, 1465 - 0.793777222626, 1466 - 0.428483476378, 1467 - -0.071799821619, 1468 - -0.082301927106, 1469 - 0.034555027573, 1470 - 0.015880544864, 1471 - -0.009007976137, 1472 - -0.002574517688, 1473 - 0.001117518771, 1474 - 0.000466216960, 1475 - -0.000070983303, 1476 - -0.000034599773, 1477 -}; 1478 - 1479 -static coeff_t coiflet18_highpass_analysis_coeffs[] = { 1480 - -0.000034599773, 1481 - 0.000070983303, 1482 - 0.000466216960, 1483 - -0.001117518771, 1484 - -0.002574517688, 1485 - 0.009007976137, 1486 - 0.015880544864, 1487 - -0.034555027573, 1488 - -0.082301927106, 1489 - 0.071799821619, 1490 - 0.428483476378, 1491 - -0.793777222626, 1492 - 0.405176902410, 1493 - 0.061123390003, 1494 - -0.065771911281, 1495 - -0.023452696142, 1496 - 0.007782596426, 1497 - 0.003793512864, 1498 -}; 1499 - 1500 -static coeff_t coiflet18_lowpass_synthesis_coeffs[] = { 1501 - -0.000034599773, 1502 - -0.000070983303, 1503 - 0.000466216960, 1504 - 0.001117518771, 1505 - -0.002574517688, 1506 - -0.009007976137, 1507 - 0.015880544864, 1508 - 0.034555027573, 1509 - -0.082301927106, 1510 - -0.071799821619, 1511 - 0.428483476378, 1512 - 0.793777222626, 1513 - 0.405176902410, 1514 - -0.061123390003, 1515 - -0.065771911281, 1516 - 0.023452696142, 1517 - 0.007782596426, 1518 - -0.003793512864, 1519 -}; 1520 - 1521 -static coeff_t coiflet18_highpass_synthesis_coeffs[] = { 1522 - 0.003793512864, 1523 - 0.007782596426, 1524 - -0.023452696142, 1525 - -0.065771911281, 1526 - 0.061123390003, 1527 - 0.405176902410, 1528 - -0.793777222626, 1529 - 0.428483476378, 1530 - 0.071799821619, 1531 - -0.082301927106, 1532 - -0.034555027573, 1533 - 0.015880544864, 1534 - 0.009007976137, 1535 - -0.002574517688, 1536 - -0.001117518771, 1537 - 0.000466216960, 1538 - 0.000070983303, 1539 - -0.000034599773, 1540 -}; 1541 - 1542 -static filter_t coiflet18_lowpass_analysis = { 1543 - 18, 1544 - ANTICAUSAL, 1545 - LOWPASS_ANALYSIS, 1546 - coiflet18_lowpass_analysis_coeffs, 1547 -}; 1548 - 1549 -static filter_t coiflet18_highpass_analysis = { 1550 - 18, 1551 - ANTICAUSAL, 1552 - HIGHPASS_ANALYSIS, 1553 - coiflet18_highpass_analysis_coeffs, 1554 -}; 1555 - 1556 -static filter_t coiflet18_lowpass_synthesis = { 1557 - 18, 1558 - CAUSAL, 1559 - LOWPASS_SYNTHESIS, 1560 - coiflet18_lowpass_synthesis_coeffs, 1561 -}; 1562 - 1563 -static filter_t coiflet18_highpass_synthesis = { 1564 - 18, 1565 - CAUSAL, 1566 - HIGHPASS_SYNTHESIS, 1567 - coiflet18_highpass_synthesis_coeffs, 1568 -}; 1569 - 1570 -static filterbank_t coiflet18 = { 1571 - "coiflet18", 1572 - "Coeflet C18", 1573 - ORTHOGONAL, 1574 - &coiflet18_lowpass_analysis, 1575 - &coiflet18_highpass_analysis, 1576 - &coiflet18_lowpass_synthesis, 1577 - &coiflet18_highpass_synthesis, 1578 -}; 1579 - 1580 -/* Coeflet C24 filter. */ 1581 - 1582 -static coeff_t coiflet24_lowpass_analysis_coeffs[] = { 1583 - 0.000892313668, 1584 - -0.001629492013, 1585 - -0.007346166328, 1586 - 0.016068943964, 1587 - 0.026682300156, 1588 - -0.081266699680, 1589 - -0.056077313316, 1590 - 0.415308407030, 1591 - 0.782238930920, 1592 - 0.434386056491, 1593 - -0.066627474263, 1594 - -0.096220442034, 1595 - 0.039334427123, 1596 - 0.025082261845, 1597 - -0.015211731527, 1598 - -0.005658286686, 1599 - 0.003751436157, 1600 - 0.001266561929, 1601 - -0.000589020757, 1602 - -0.000259974552, 1603 - 0.000062339034, 1604 - 0.000031229876, 1605 - -0.000003259680, 1606 - -0.000001784985, 1607 -}; 1608 - 1609 -static coeff_t coiflet24_highpass_analysis_coeffs[] = { 1610 - -0.000001784985, 1611 - 0.000003259680, 1612 - 0.000031229876, 1613 - -0.000062339034, 1614 - -0.000259974552, 1615 - 0.000589020757, 1616 - 0.001266561929, 1617 - -0.003751436157, 1618 - -0.005658286686, 1619 - 0.015211731527, 1620 - 0.025082261845, 1621 - -0.039334427123, 1622 - -0.096220442034, 1623 - 0.066627474263, 1624 - 0.434386056491, 1625 - -0.782238930920, 1626 - 0.415308407030, 1627 - 0.056077313316, 1628 - -0.081266699680, 1629 - -0.026682300156, 1630 - 0.016068943964, 1631 - 0.007346166328, 1632 - -0.001629492013, 1633 - -0.000892313668, 1634 -}; 1635 - 1636 -static coeff_t coiflet24_lowpass_synthesis_coeffs[] = { 1637 - -0.000001784985, 1638 - -0.000003259680, 1639 - 0.000031229876, 1640 - 0.000062339034, 1641 - -0.000259974552, 1642 - -0.000589020757, 1643 - 0.001266561929, 1644 - 0.003751436157, 1645 - -0.005658286686, 1646 - -0.015211731527, 1647 - 0.025082261845, 1648 - 0.039334427123, 1649 - -0.096220442034, 1650 - -0.066627474263, 1651 - 0.434386056491, 1652 - 0.782238930920, 1653 - 0.415308407030, 1654 - -0.056077313316, 1655 - -0.081266699680, 1656 - 0.026682300156, 1657 - 0.016068943964, 1658 - -0.007346166328, 1659 - -0.001629492013, 1660 - 0.000892313668, 1661 -}; 1662 - 1663 -static coeff_t coiflet24_highpass_synthesis_coeffs[] = { 1664 - -0.000892313668, 1665 - -0.001629492013, 1666 - 0.007346166328, 1667 - 0.016068943964, 1668 - -0.026682300156, 1669 - -0.081266699680, 1670 - 0.056077313316, 1671 - 0.415308407030, 1672 - -0.782238930920, 1673 - 0.434386056491, 1674 - 0.066627474263, 1675 - -0.096220442034, 1676 - -0.039334427123, 1677 - 0.025082261845, 1678 - 0.015211731527, 1679 - -0.005658286686, 1680 - -0.003751436157, 1681 - 0.001266561929, 1682 - 0.000589020757, 1683 - -0.000259974552, 1684 - -0.000062339034, 1685 - 0.000031229876, 1686 - 0.000003259680, 1687 - -0.000001784985, 1688 -}; 1689 - 1690 -static filter_t coiflet24_lowpass_analysis = { 1691 - 24, 1692 - ANTICAUSAL, 1693 - LOWPASS_ANALYSIS, 1694 - coiflet24_lowpass_analysis_coeffs, 1695 -}; 1696 - 1697 -static filter_t coiflet24_highpass_analysis = { 1698 - 24, 1699 - ANTICAUSAL, 1700 - HIGHPASS_ANALYSIS, 1701 - coiflet24_highpass_analysis_coeffs, 1702 -}; 1703 - 1704 -static filter_t coiflet24_lowpass_synthesis = { 1705 - 24, 1706 - CAUSAL, 1707 - LOWPASS_SYNTHESIS, 1708 - coiflet24_lowpass_synthesis_coeffs, 1709 -}; 1710 - 1711 -static filter_t coiflet24_highpass_synthesis = { 1712 - 24, 1713 - CAUSAL, 1714 - HIGHPASS_SYNTHESIS, 1715 - coiflet24_highpass_synthesis_coeffs, 1716 -}; 1717 - 1718 -static filterbank_t coiflet24 = { 1719 - "coiflet24", 1720 - "Coeflet C24", 1721 - ORTHOGONAL, 1722 - &coiflet24_lowpass_analysis, 1723 - &coiflet24_highpass_analysis, 1724 - &coiflet24_lowpass_synthesis, 1725 - &coiflet24_highpass_synthesis, 1726 -}; 1727 - 1728 -/* Coiflet C30 filter. */ 1729 - 1730 -static coeff_t coiflet30_lowpass_analysis_coeffs[] = { 1731 - -0.000212080863, 1732 - 0.000358589677, 1733 - 0.002178236305, 1734 - -0.004159358782, 1735 - -0.010131117538, 1736 - 0.023408156762, 1737 - 0.028168029062, 1738 - -0.091920010549, 1739 - -0.052043163216, 1740 - 0.421566206729, 1741 - 0.774289603740, 1742 - 0.437991626228, 1743 - -0.062035963906, 1744 - -0.105574208706, 1745 - 0.041289208741, 1746 - 0.032683574283, 1747 - -0.019761779012, 1748 - -0.009164231153, 1749 - 0.006764185419, 1750 - 0.002433373209, 1751 - -0.001662863769, 1752 - -0.000638131296, 1753 - 0.000302259520, 1754 - 0.000140541149, 1755 - -0.000041340484, 1756 - -0.000021315014, 1757 - 0.000003734597, 1758 - 0.000002063806, 1759 - -0.000000167408, 1760 - -0.000000095158, 1761 -}; 1762 - 1763 -static coeff_t coiflet30_highpass_analysis_coeffs[] = { 1764 - -0.000000095158, 1765 - 0.000000167408, 1766 - 0.000002063806, 1767 - -0.000003734597, 1768 - -0.000021315014, 1769 - 0.000041340484, 1770 - 0.000140541149, 1771 - -0.000302259520, 1772 - -0.000638131296, 1773 - 0.001662863769, 1774 - 0.002433373209, 1775 - -0.006764185419, 1776 - -0.009164231153, 1777 - 0.019761779012, 1778 - 0.032683574283, 1779 - -0.041289208741, 1780 - -0.105574208706, 1781 - 0.062035963906, 1782 - 0.437991626228, 1783 - -0.774289603740, 1784 - 0.421566206729, 1785 - 0.052043163216, 1786 - -0.091920010549, 1787 - -0.028168029062, 1788 - 0.023408156762, 1789 - 0.010131117538, 1790 - -0.004159358782, 1791 - -0.002178236305, 1792 - 0.000358589677, 1793 - 0.000212080863, 1794 -}; 1795 - 1796 -static coeff_t coiflet30_lowpass_synthesis_coeffs[] = { 1797 - -0.000000095158, 1798 - -0.000000167408, 1799 - 0.000002063806, 1800 - 0.000003734597, 1801 - -0.000021315014, 1802 - -0.000041340484, 1803 - 0.000140541149, 1804 - 0.000302259520, 1805 - -0.000638131296, 1806 - -0.001662863769, 1807 - 0.002433373209, 1808 - 0.006764185419, 1809 - -0.009164231153, 1810 - -0.019761779012, 1811 - 0.032683574283, 1812 - 0.041289208741, 1813 - -0.105574208706, 1814 - -0.062035963906, 1815 - 0.437991626228, 1816 - 0.774289603740, 1817 - 0.421566206729, 1818 - -0.052043163216, 1819 - -0.091920010549, 1820 - 0.028168029062, 1821 - 0.023408156762, 1822 - -0.010131117538, 1823 - -0.004159358782, 1824 - 0.002178236305, 1825 - 0.000358589677, 1826 - -0.000212080863, 1827 -}; 1828 - 1829 -static coeff_t coiflet30_highpass_synthesis_coeffs[] = { 1830 - 0.000212080863, 1831 - 0.000358589677, 1832 - -0.002178236305, 1833 - -0.004159358782, 1834 - 0.010131117538, 1835 - 0.023408156762, 1836 - -0.028168029062, 1837 - -0.091920010549, 1838 - 0.052043163216, 1839 - 0.421566206729, 1840 - -0.774289603740, 1841 - 0.437991626228, 1842 - 0.062035963906, 1843 - -0.105574208706, 1844 - -0.041289208741, 1845 - 0.032683574283, 1846 - 0.019761779012, 1847 - -0.009164231153, 1848 - -0.006764185419, 1849 - 0.002433373209, 1850 - 0.001662863769, 1851 - -0.000638131296, 1852 - -0.000302259520, 1853 - 0.000140541149, 1854 - 0.000041340484, 1855 - -0.000021315014, 1856 - -0.000003734597, 1857 - 0.000002063806, 1858 - 0.000000167408, 1859 - -0.000000095158, 1860 -}; 1861 - 1862 -static filter_t coiflet30_lowpass_analysis = { 1863 - 30, 1864 - ANTICAUSAL, 1865 - LOWPASS_ANALYSIS, 1866 - coiflet30_lowpass_analysis_coeffs, 1867 -}; 1868 - 1869 -static filter_t coiflet30_highpass_analysis = { 1870 - 30, 1871 - ANTICAUSAL, 1872 - HIGHPASS_ANALYSIS, 1873 - coiflet30_highpass_analysis_coeffs, 1874 -}; 1875 - 1876 -static filter_t coiflet30_lowpass_synthesis = { 1877 - 30, 1878 - CAUSAL, 1879 - LOWPASS_SYNTHESIS, 1880 - coiflet30_lowpass_synthesis_coeffs, 1881 -}; 1882 - 1883 -static filter_t coiflet30_highpass_synthesis = { 1884 - 30, 1885 - CAUSAL, 1886 - HIGHPASS_SYNTHESIS, 1887 - coiflet30_highpass_synthesis_coeffs, 1888 -}; 1889 - 1890 -static filterbank_t coiflet30 = { 1891 - "coiflet30", 1892 - "Coiflet C30", 1893 - ORTHOGONAL, 1894 - &coiflet30_lowpass_analysis, 1895 - &coiflet30_highpass_analysis, 1896 - &coiflet30_lowpass_synthesis, 1897 - &coiflet30_highpass_synthesis, 1898 -}; 1899 - 1900 -/* Symmlets are wavelets within a minimum size support for a given 1901 - * number of vanishing moments, but they are as symmetrical as possible, 1902 - * as opposed to the Daubechies filters which are highly asymmetrical. */ 1903 - 1904 -static coeff_t symmlet8_lowpass_analysis_coeffs[] = { 1905 - -0.075765714789357, 1906 - -0.029635527645960, 1907 - 0.497618667632563, 1908 - 0.803738751805386, 1909 - 0.297857795605605, 1910 - -0.099219543576956, 1911 - -0.012603967262264, 1912 - 0.032223100604078, 1913 -}; 1914 - 1915 -static coeff_t symmlet8_highpass_analysis_coeffs[] = { 1916 - 0.032223100604078, 1917 - 0.012603967262264, 1918 - -0.099219543576956, 1919 - -0.297857795605605, 1920 - 0.803738751805386, 1921 - -0.497618667632563, 1922 - -0.029635527645960, 1923 - 0.075765714789357, 1924 -}; 1925 - 1926 -static coeff_t symmlet8_lowpass_synthesis_coeffs[] = { 1927 - 0.032223100604078, 1928 - -0.012603967262264, 1929 - -0.099219543576956, 1930 - 0.297857795605605, 1931 - 0.803738751805386, 1932 - 0.497618667632563, 1933 - -0.029635527645960, 1934 - -0.075765714789357, 1935 -}; 1936 - 1937 -static coeff_t symmlet8_highpass_synthesis_coeffs[] = { 1938 - 0.075765714789357, 1939 - -0.029635527645960, 1940 - -0.497618667632563, 1941 - 0.803738751805386, 1942 - -0.297857795605605, 1943 - -0.099219543576956, 1944 - 0.012603967262264, 1945 - 0.032223100604078, 1946 -}; 1947 - 1948 -static filter_t symmlet8_lowpass_analysis = { 1949 - 8, 1950 - ANTICAUSAL, 1951 - LOWPASS_ANALYSIS, 1952 - symmlet8_lowpass_analysis_coeffs, 1953 -}; 1954 - 1955 -static filter_t symmlet8_highpass_analysis = { 1956 - 8, 1957 - ANTICAUSAL, 1958 - HIGHPASS_ANALYSIS, 1959 - symmlet8_highpass_analysis_coeffs, 1960 -}; 1961 - 1962 -static filter_t symmlet8_lowpass_synthesis = { 1963 - 8, 1964 - CAUSAL, 1965 - LOWPASS_SYNTHESIS, 1966 - symmlet8_lowpass_synthesis_coeffs, 1967 -}; 1968 - 1969 -static filter_t symmlet8_highpass_synthesis = { 1970 - 8, 1971 - CAUSAL, 1972 - HIGHPASS_SYNTHESIS, 1973 - symmlet8_highpass_synthesis_coeffs, 1974 -}; 1975 - 1976 -static filterbank_t symmlet8 = { 1977 - "symmlet8", 1978 - "Symmlet S8", 1979 - ORTHOGONAL, 1980 - &symmlet8_lowpass_analysis, 1981 - &symmlet8_highpass_analysis, 1982 - &symmlet8_lowpass_synthesis, 1983 - &symmlet8_highpass_synthesis, 1984 -}; 1985 - 1986 -/* Symmlets are wavelets within a minimum size support for a given 1987 - * number of vanishing moments, but they are as symmetrical as possible, 1988 - * as opposed to the Daubechies filters which are highly asymmetrical. */ 1989 - 1990 -static coeff_t symmlet10_lowpass_analysis_coeffs[] = { 1991 - 0.027333068345163, 1992 - 0.029519490926072, 1993 - -0.039134249302581, 1994 - 0.199397533976983, 1995 - 0.723407690403764, 1996 - 0.633978963456911, 1997 - 0.016602105764423, 1998 - -0.175328089908097, 1999 - -0.021101834024929, 2000 - 0.019538882735386, 2001 -}; 2002 - 2003 -static coeff_t symmlet10_highpass_analysis_coeffs[] = { 2004 - 0.019538882735386, 2005 - 0.021101834024929, 2006 - -0.175328089908097, 2007 - -0.016602105764423, 2008 - 0.633978963456911, 2009 - -0.723407690403764, 2010 - 0.199397533976983, 2011 - 0.039134249302581, 2012 - 0.029519490926072, 2013 - -0.027333068345163, 2014 -}; 2015 - 2016 -static coeff_t symmlet10_lowpass_synthesis_coeffs[] = { 2017 - 0.019538882735386, 2018 - -0.021101834024929, 2019 - -0.175328089908097, 2020 - 0.016602105764423, 2021 - 0.633978963456911, 2022 - 0.723407690403764, 2023 - 0.199397533976983, 2024 - -0.039134249302581, 2025 - 0.029519490926072, 2026 - 0.027333068345163, 2027 -}; 2028 - 2029 -static coeff_t symmlet10_highpass_synthesis_coeffs[] = { 2030 - -0.027333068345163, 2031 - 0.029519490926072, 2032 - 0.039134249302581, 2033 - 0.199397533976983, 2034 - -0.723407690403764, 2035 - 0.633978963456911, 2036 - -0.016602105764423, 2037 - -0.175328089908097, 2038 - 0.021101834024929, 2039 - 0.019538882735386, 2040 -}; 2041 - 2042 -static filter_t symmlet10_lowpass_analysis = { 2043 - 10, 2044 - ANTICAUSAL, 2045 - LOWPASS_ANALYSIS, 2046 - symmlet10_lowpass_analysis_coeffs, 2047 -}; 2048 - 2049 -static filter_t symmlet10_highpass_analysis = { 2050 - 10, 2051 - ANTICAUSAL, 2052 - HIGHPASS_ANALYSIS, 2053 - symmlet10_highpass_analysis_coeffs, 2054 -}; 2055 - 2056 -static filter_t symmlet10_lowpass_synthesis = { 2057 - 10, 2058 - CAUSAL, 2059 - LOWPASS_SYNTHESIS, 2060 - symmlet10_lowpass_synthesis_coeffs, 2061 -}; 2062 - 2063 -static filter_t symmlet10_highpass_synthesis = { 2064 - 10, 2065 - CAUSAL, 2066 - HIGHPASS_SYNTHESIS, 2067 - symmlet10_highpass_synthesis_coeffs, 2068 -}; 2069 - 2070 -static filterbank_t symmlet10 = { 2071 - "symmlet10", 2072 - "Symmlet S10", 2073 - ORTHOGONAL, 2074 - &symmlet10_lowpass_analysis, 2075 - &symmlet10_highpass_analysis, 2076 - &symmlet10_lowpass_synthesis, 2077 - &symmlet10_highpass_synthesis, 2078 -}; 2079 - 2080 -/* Symmlets are wavelets within a minimum size support for a given 2081 - * number of vanishing moments, but they are as symmetrical as possible, 2082 - * as opposed to the Daubechies filters which are highly asymmetrical. */ 2083 - 2084 -static coeff_t symmlet12_lowpass_analysis_coeffs[] = { 2085 - 0.015404109327339, 2086 - 0.003490712084331, 2087 - -0.117990111148417, 2088 - -0.048311742586001, 2089 - 0.491055941927666, 2090 - 0.787641141028836, 2091 - 0.337929421728258, 2092 - -0.072637522786604, 2093 - -0.021060292512697, 2094 - 0.044724901770751, 2095 - 0.001767711864398, 2096 - -0.007800708324765, 2097 -}; 2098 - 2099 -static coeff_t symmlet12_highpass_analysis_coeffs[] = { 2100 - -0.007800708324765, 2101 - -0.001767711864398, 2102 - 0.044724901770751, 2103 - 0.021060292512697, 2104 - -0.072637522786604, 2105 - -0.337929421728258, 2106 - 0.787641141028836, 2107 - -0.491055941927666, 2108 - -0.048311742586001, 2109 - 0.117990111148417, 2110 - 0.003490712084331, 2111 - -0.015404109327339, 2112 -}; 2113 - 2114 -static coeff_t symmlet12_lowpass_synthesis_coeffs[] = { 2115 - -0.007800708324765, 2116 - 0.001767711864398, 2117 - 0.044724901770751, 2118 - -0.021060292512697, 2119 - -0.072637522786604, 2120 - 0.337929421728258, 2121 - 0.787641141028836, 2122 - 0.491055941927666, 2123 - -0.048311742586001, 2124 - -0.117990111148417, 2125 - 0.003490712084331, 2126 - 0.015404109327339, 2127 -}; 2128 - 2129 -static coeff_t symmlet12_highpass_synthesis_coeffs[] = { 2130 - -0.015404109327339, 2131 - 0.003490712084331, 2132 - 0.117990111148417, 2133 - -0.048311742586001, 2134 - -0.491055941927666, 2135 - 0.787641141028836, 2136 - -0.337929421728258, 2137 - -0.072637522786604, 2138 - 0.021060292512697, 2139 - 0.044724901770751, 2140 - -0.001767711864398, 2141 - -0.007800708324765, 2142 -}; 2143 - 2144 -static filter_t symmlet12_lowpass_analysis = { 2145 - 12, 2146 - ANTICAUSAL, 2147 - LOWPASS_ANALYSIS, 2148 - symmlet12_lowpass_analysis_coeffs, 2149 -}; 2150 - 2151 -static filter_t symmlet12_highpass_analysis = { 2152 - 12, 2153 - ANTICAUSAL, 2154 - HIGHPASS_ANALYSIS, 2155 - symmlet12_highpass_analysis_coeffs, 2156 -}; 2157 - 2158 -static filter_t symmlet12_lowpass_synthesis = { 2159 - 12, 2160 - CAUSAL, 2161 - LOWPASS_SYNTHESIS, 2162 - symmlet12_lowpass_synthesis_coeffs, 2163 -}; 2164 - 2165 -static filter_t symmlet12_highpass_synthesis = { 2166 - 12, 2167 - CAUSAL, 2168 - HIGHPASS_SYNTHESIS, 2169 - symmlet12_highpass_synthesis_coeffs, 2170 -}; 2171 - 2172 -static filterbank_t symmlet12 = { 2173 - "symmlet12", 2174 - "Symmlet S12", 2175 - ORTHOGONAL, 2176 - &symmlet12_lowpass_analysis, 2177 - &symmlet12_highpass_analysis, 2178 - &symmlet12_lowpass_synthesis, 2179 - &symmlet12_highpass_synthesis, 2180 -}; 2181 - 2182 -/* Symmlets are wavelets within a minimum size support for a given 2183 - * number of vanishing moments, but they are as symmetrical as possible, 2184 - * as opposed to the Daubechies filters which are highly asymmetrical. */ 2185 - 2186 -static coeff_t symmlet14_lowpass_analysis_coeffs[] = { 2187 - 0.002681814568116, 2188 - -0.001047384888965, 2189 - -0.012636303403152, 2190 - 0.030515513165906, 2191 - 0.067892693501598, 2192 - -0.049552834937041, 2193 - 0.017441255087110, 2194 - 0.536101917090782, 2195 - 0.767764317004585, 2196 - 0.288629631750988, 2197 - -0.140047240442706, 2198 - -0.107808237703619, 2199 - 0.004010244871703, 2200 - 0.010268176708497, 2201 -}; 2202 - 2203 -static coeff_t symmlet14_highpass_analysis_coeffs[] = { 2204 - 0.010268176708497, 2205 - -0.004010244871703, 2206 - -0.107808237703619, 2207 - 0.140047240442706, 2208 - 0.288629631750988, 2209 - -0.767764317004585, 2210 - 0.536101917090782, 2211 - -0.017441255087110, 2212 - -0.049552834937041, 2213 - -0.067892693501598, 2214 - 0.030515513165906, 2215 - 0.012636303403152, 2216 - -0.001047384888965, 2217 - -0.002681814568116, 2218 -}; 2219 - 2220 -static coeff_t symmlet14_lowpass_synthesis_coeffs[] = { 2221 - 0.010268176708497, 2222 - 0.004010244871703, 2223 - -0.107808237703619, 2224 - -0.140047240442706, 2225 - 0.288629631750988, 2226 - 0.767764317004585, 2227 - 0.536101917090782, 2228 - 0.017441255087110, 2229 - -0.049552834937041, 2230 - 0.067892693501598, 2231 - 0.030515513165906, 2232 - -0.012636303403152, 2233 - -0.001047384888965, 2234 - 0.002681814568116, 2235 -}; 2236 - 2237 -static coeff_t symmlet14_highpass_synthesis_coeffs[] = { 2238 - -0.002681814568116, 2239 - -0.001047384888965, 2240 - 0.012636303403152, 2241 - 0.030515513165906, 2242 - -0.067892693501598, 2243 - -0.049552834937041, 2244 - -0.017441255087110, 2245 - 0.536101917090782, 2246 - -0.767764317004585, 2247 - 0.288629631750988, 2248 - 0.140047240442706, 2249 - -0.107808237703619, 2250 - -0.004010244871703, 2251 - 0.010268176708497, 2252 -}; 2253 - 2254 -static filter_t symmlet14_lowpass_analysis = { 2255 - 14, 2256 - ANTICAUSAL, 2257 - LOWPASS_ANALYSIS, 2258 - symmlet14_lowpass_analysis_coeffs, 2259 -}; 2260 - 2261 -static filter_t symmlet14_highpass_analysis = { 2262 - 14, 2263 - ANTICAUSAL, 2264 - HIGHPASS_ANALYSIS, 2265 - symmlet14_highpass_analysis_coeffs, 2266 -}; 2267 - 2268 -static filter_t symmlet14_lowpass_synthesis = { 2269 - 14, 2270 - CAUSAL, 2271 - LOWPASS_SYNTHESIS, 2272 - symmlet14_lowpass_synthesis_coeffs, 2273 -}; 2274 - 2275 -static filter_t symmlet14_highpass_synthesis = { 2276 - 14, 2277 - CAUSAL, 2278 - HIGHPASS_SYNTHESIS, 2279 - symmlet14_highpass_synthesis_coeffs, 2280 -}; 2281 - 2282 -static filterbank_t symmlet14 = { 2283 - "symmlet14", 2284 - "Symmlet S14", 2285 - ORTHOGONAL, 2286 - &symmlet14_lowpass_analysis, 2287 - &symmlet14_highpass_analysis, 2288 - &symmlet14_lowpass_synthesis, 2289 - &symmlet14_highpass_synthesis, 2290 -}; 2291 - 2292 -/* Symmlets are wavelets within a minimum size support for a given 2293 - * number of vanishing moments, but they are as symmetrical as possible, 2294 - * as opposed to the Daubechies filters which are highly asymmetrical. */ 2295 - 2296 -static coeff_t symmlet16_lowpass_analysis_coeffs[] = { 2297 - 0.00188995033291, 2298 - -0.00030292051455, 2299 - -0.01495225833679, 2300 - 0.00380875201406, 2301 - 0.04913717967348, 2302 - -0.02721902991682, 2303 - -0.05194583810788, 2304 - 0.36444189483599, 2305 - 0.77718575169981, 2306 - 0.48135965125924, 2307 - -0.06127335906791, 2308 - -0.14329423835107, 2309 - 0.00760748732529, 2310 - 0.03169508781035, 2311 - -0.00054213233164, 2312 - -0.00338241595136, 2313 -}; 2314 - 2315 -static coeff_t symmlet16_highpass_analysis_coeffs[] = { 2316 - -0.00338241595136, 2317 - 0.00054213233164, 2318 - 0.03169508781035, 2319 - -0.00760748732529, 2320 - -0.14329423835107, 2321 - 0.06127335906791, 2322 - 0.48135965125924, 2323 - -0.77718575169981, 2324 - 0.36444189483599, 2325 - 0.05194583810788, 2326 - -0.02721902991682, 2327 - -0.04913717967348, 2328 - 0.00380875201406, 2329 - 0.01495225833679, 2330 - -0.00030292051455, 2331 - -0.00188995033291, 2332 -}; 2333 - 2334 -static coeff_t symmlet16_lowpass_synthesis_coeffs[] = { 2335 - -0.00338241595136, 2336 - -0.00054213233164, 2337 - 0.03169508781035, 2338 - 0.00760748732529, 2339 - -0.14329423835107, 2340 - -0.06127335906791, 2341 - 0.48135965125924, 2342 - 0.77718575169981, 2343 - 0.36444189483599, 2344 - -0.05194583810788, 2345 - -0.02721902991682, 2346 - 0.04913717967348, 2347 - 0.00380875201406, 2348 - -0.01495225833679, 2349 - -0.00030292051455, 2350 - 0.00188995033291, 2351 -}; 2352 - 2353 -static coeff_t symmlet16_highpass_synthesis_coeffs[] = { 2354 - -0.00188995033291, 2355 - -0.00030292051455, 2356 - 0.01495225833679, 2357 - 0.00380875201406, 2358 - -0.04913717967348, 2359 - -0.02721902991682, 2360 - 0.05194583810788, 2361 - 0.36444189483599, 2362 - -0.77718575169981, 2363 - 0.48135965125924, 2364 - 0.06127335906791, 2365 - -0.14329423835107, 2366 - -0.00760748732529, 2367 - 0.03169508781035, 2368 - 0.00054213233164, 2369 - -0.00338241595136, 2370 -}; 2371 - 2372 -static filter_t symmlet16_lowpass_analysis = { 2373 - 16, 2374 - ANTICAUSAL, 2375 - LOWPASS_ANALYSIS, 2376 - symmlet16_lowpass_analysis_coeffs, 2377 -}; 2378 - 2379 -static filter_t symmlet16_highpass_analysis = { 2380 - 16, 2381 - ANTICAUSAL, 2382 - HIGHPASS_ANALYSIS, 2383 - symmlet16_highpass_analysis_coeffs, 2384 -}; 2385 - 2386 -static filter_t symmlet16_lowpass_synthesis = { 2387 - 16, 2388 - CAUSAL, 2389 - LOWPASS_SYNTHESIS, 2390 - symmlet16_lowpass_synthesis_coeffs, 2391 -}; 2392 - 2393 -static filter_t symmlet16_highpass_synthesis = { 2394 - 16, 2395 - CAUSAL, 2396 - HIGHPASS_SYNTHESIS, 2397 - symmlet16_highpass_synthesis_coeffs, 2398 -}; 2399 - 2400 -static filterbank_t symmlet16 = { 2401 - "symmlet16", 2402 - "Symmlet S16", 2403 - ORTHOGONAL, 2404 - &symmlet16_lowpass_analysis, 2405 - &symmlet16_highpass_analysis, 2406 - &symmlet16_lowpass_synthesis, 2407 - &symmlet16_highpass_synthesis, 2408 -}; 2409 - 2410 -/* Symmlets are wavelets within a minimum size support for a given 2411 - * number of vanishing moments, but they are as symmetrical as possible, 2412 - * as opposed to the Daubechies filters which are highly asymmetrical. */ 2413 - 2414 -static coeff_t symmlet18_lowpass_analysis_coeffs[] = { 2415 - 0.001069490032652, 2416 - -0.000473154498587, 2417 - -0.010264064027672, 2418 - 0.008859267493501, 2419 - 0.062077789302687, 2420 - -0.018233770779803, 2421 - -0.191550831296252, 2422 - 0.035272488035891, 2423 - 0.617338449140593, 2424 - 0.717897082763343, 2425 - 0.238760914607125, 2426 - -0.054568958430509, 2427 - 0.000583462746330, 2428 - 0.030224878857952, 2429 - -0.011528210207971, 2430 - -0.013271967781517, 2431 - 0.000619780889054, 2432 - 0.001400915525570, 2433 -}; 2434 - 2435 -static coeff_t symmlet18_highpass_analysis_coeffs[] = { 2436 - 0.001400915525570, 2437 - -0.000619780889054, 2438 - -0.013271967781517, 2439 - 0.011528210207971, 2440 - 0.030224878857952, 2441 - -0.000583462746330, 2442 - -0.054568958430509, 2443 - -0.238760914607125, 2444 - 0.717897082763343, 2445 - -0.617338449140593, 2446 - 0.035272488035891, 2447 - 0.191550831296252, 2448 - -0.018233770779803, 2449 - -0.062077789302687, 2450 - 0.008859267493501, 2451 - 0.010264064027672, 2452 - -0.000473154498587, 2453 - -0.001069490032652, 2454 -}; 2455 - 2456 -static coeff_t symmlet18_lowpass_synthesis_coeffs[] = { 2457 - 0.001400915525570, 2458 - 0.000619780889054, 2459 - -0.013271967781517, 2460 - -0.011528210207971, 2461 - 0.030224878857952, 2462 - 0.000583462746330, 2463 - -0.054568958430509, 2464 - 0.238760914607125, 2465 - 0.717897082763343, 2466 - 0.617338449140593, 2467 - 0.035272488035891, 2468 - -0.191550831296252, 2469 - -0.018233770779803, 2470 - 0.062077789302687, 2471 - 0.008859267493501, 2472 - -0.010264064027672, 2473 - -0.000473154498587, 2474 - 0.001069490032652, 2475 -}; 2476 - 2477 -static coeff_t symmlet18_highpass_synthesis_coeffs[] = { 2478 - -0.001069490032652, 2479 - -0.000473154498587, 2480 - 0.010264064027672, 2481 - 0.008859267493501, 2482 - -0.062077789302687, 2483 - -0.018233770779803, 2484 - 0.191550831296252, 2485 - 0.035272488035891, 2486 - -0.617338449140593, 2487 - 0.717897082763343, 2488 - -0.238760914607125, 2489 - -0.054568958430509, 2490 - -0.000583462746330, 2491 - 0.030224878857952, 2492 - 0.011528210207971, 2493 - -0.013271967781517, 2494 - -0.000619780889054, 2495 - 0.001400915525570, 2496 -}; 2497 - 2498 -static filter_t symmlet18_lowpass_analysis = { 2499 - 18, 2500 - ANTICAUSAL, 2501 - LOWPASS_ANALYSIS, 2502 - symmlet18_lowpass_analysis_coeffs, 2503 -}; 2504 - 2505 -static filter_t symmlet18_highpass_analysis = { 2506 - 18, 2507 - ANTICAUSAL, 2508 - HIGHPASS_ANALYSIS, 2509 - symmlet18_highpass_analysis_coeffs, 2510 -}; 2511 - 2512 -static filter_t symmlet18_lowpass_synthesis = { 2513 - 18, 2514 - CAUSAL, 2515 - LOWPASS_SYNTHESIS, 2516 - symmlet18_lowpass_synthesis_coeffs, 2517 -}; 2518 - 2519 -static filter_t symmlet18_highpass_synthesis = { 2520 - 18, 2521 - CAUSAL, 2522 - HIGHPASS_SYNTHESIS, 2523 - symmlet18_highpass_synthesis_coeffs, 2524 -}; 2525 - 2526 -static filterbank_t symmlet18 = { 2527 - "symmlet18", 2528 - "Symmlet S18", 2529 - ORTHOGONAL, 2530 - &symmlet18_lowpass_analysis, 2531 - &symmlet18_highpass_analysis, 2532 - &symmlet18_lowpass_synthesis, 2533 - &symmlet18_highpass_synthesis, 2534 -}; 2535 - 2536 -/* Symmlets are wavelets within a minimum size support for a given 2537 - * number of vanishing moments, but they are as symmetrical as possible, 2538 - * as opposed to the Daubechies filters which are highly asymmetrical. */ 2539 - 2540 -static coeff_t symmlet20_lowpass_analysis_coeffs[] = { 2541 - 0.0007701598089417, 2542 - 9.56326707637102e-05, 2543 - -0.0086412992741304, 2544 - -0.0014653825830397, 2545 - 0.0459272392141469, 2546 - 0.0116098939105411, 2547 - -0.1594942788241300, 2548 - -0.0708805357960178, 2549 - 0.4716906667438780, 2550 - 0.7695100368531890, 2551 - 0.3838267611450020, 2552 - -0.0355367402980268, 2553 - -0.0319900568214638, 2554 - 0.0499949720686861, 2555 - 0.0057649120443445, 2556 - -0.0203549397996833, 2557 - -0.0008043589343686, 2558 - 0.0045931735827084, 2559 - 5.70360843270715e-05, 2560 - -0.0004593294204519, 2561 -}; 2562 - 2563 -static coeff_t symmlet20_highpass_analysis_coeffs[] = { 2564 - -0.0004593294204519, 2565 - -5.70360843270715e-05, 2566 - 0.0045931735827084, 2567 - 0.0008043589343686, 2568 - -0.0203549397996833, 2569 - -0.0057649120443445, 2570 - 0.0499949720686861, 2571 - 0.0319900568214638, 2572 - -0.0355367402980268, 2573 - -0.3838267611450020, 2574 - 0.7695100368531890, 2575 - -0.4716906667438780, 2576 - -0.0708805357960178, 2577 - 0.1594942788241300, 2578 - 0.0116098939105411, 2579 - -0.0459272392141469, 2580 - -0.0014653825830397, 2581 - 0.0086412992741304, 2582 - 9.56326707637102e-05, 2583 - -0.0007701598089417, 2584 -}; 2585 - 2586 -static coeff_t symmlet20_lowpass_synthesis_coeffs[] = { 2587 - -0.0004593294204519, 2588 - 5.70360843270715e-05, 2589 - 0.0045931735827084, 2590 - -0.0008043589343686, 2591 - -0.0203549397996833, 2592 - 0.0057649120443445, 2593 - 0.0499949720686861, 2594 - -0.0319900568214638, 2595 - -0.0355367402980268, 2596 - 0.3838267611450020, 2597 - 0.7695100368531890, 2598 - 0.4716906667438780, 2599 - -0.0708805357960178, 2600 - -0.1594942788241300, 2601 - 0.0116098939105411, 2602 - 0.0459272392141469, 2603 - -0.0014653825830397, 2604 - -0.0086412992741304, 2605 - 9.56326707637102e-05, 2606 - 0.0007701598089417, 2607 -}; 2608 - 2609 -static coeff_t symmlet20_highpass_synthesis_coeffs[] = { 2610 - -0.0007701598089417, 2611 - 9.56326707637102e-05, 2612 - 0.0086412992741304, 2613 - -0.0014653825830397, 2614 - -0.0459272392141469, 2615 - 0.0116098939105411, 2616 - 0.1594942788241300, 2617 - -0.0708805357960178, 2618 - -0.4716906667438780, 2619 - 0.7695100368531890, 2620 - -0.3838267611450020, 2621 - -0.0355367402980268, 2622 - 0.0319900568214638, 2623 - 0.0499949720686861, 2624 - -0.0057649120443445, 2625 - -0.0203549397996833, 2626 - 0.0008043589343686, 2627 - 0.0045931735827084, 2628 - -5.70360843270715e-05, 2629 - -0.0004593294204519, 2630 -}; 2631 - 2632 -static filter_t symmlet20_lowpass_analysis = { 2633 - 20, 2634 - ANTICAUSAL, 2635 - LOWPASS_ANALYSIS, 2636 - symmlet20_lowpass_analysis_coeffs, 2637 -}; 2638 - 2639 -static filter_t symmlet20_highpass_analysis = { 2640 - 20, 2641 - ANTICAUSAL, 2642 - HIGHPASS_ANALYSIS, 2643 - symmlet20_highpass_analysis_coeffs, 2644 -}; 2645 - 2646 -static filter_t symmlet20_lowpass_synthesis = { 2647 - 20, 2648 - CAUSAL, 2649 - LOWPASS_SYNTHESIS, 2650 - symmlet20_lowpass_synthesis_coeffs, 2651 -}; 2652 - 2653 -static filter_t symmlet20_highpass_synthesis = { 2654 - 20, 2655 - CAUSAL, 2656 - HIGHPASS_SYNTHESIS, 2657 - symmlet20_highpass_synthesis_coeffs, 2658 -}; 2659 - 2660 -static filterbank_t symmlet20 = { 2661 - "symmlet20", 2662 - "Symmlet S20", 2663 - ORTHOGONAL, 2664 - &symmlet20_lowpass_analysis, 2665 - &symmlet20_highpass_analysis, 2666 - &symmlet20_lowpass_synthesis, 2667 - &symmlet20_highpass_synthesis, 2668 -}; 2669 - 2670 -/* Odegard's 9/7 filter. */ 2671 - 2672 -static coeff_t odegard97_lowpass_analysis_coeffs[] = { 2673 - 0.7875137715277921, 2674 - 0.3869718638726204, 2675 - -0.0930692637035827, 2676 - -0.0334184732793468, 2677 - 0.0528657685329605, 2678 -}; 2679 - 2680 -static coeff_t odegard97_highpass_analysis_coeffs[] = { 2681 - -0.8167806349921064, 2682 - 0.4403017067249854, 2683 - 0.0548369269027794, 2684 - -0.0867483161317116, 2685 -}; 2686 - 2687 -static coeff_t odegard97_lowpass_synthesis_coeffs[] = { 2688 - 0.8167806349921064, 2689 - 0.4403017067249854, 2690 - -0.0548369269027794, 2691 - -0.0867483161317116, 2692 -}; 2693 - 2694 -static coeff_t odegard97_highpass_synthesis_coeffs[] = { 2695 - -0.7875137715277921, 2696 - 0.3869718638726204, 2697 - 0.0930692637035827, 2698 - -0.0334184732793468, 2699 - -0.0528657685329605, 2700 -}; 2701 - 2702 -static filter_t odegard97_lowpass_analysis = { 2703 - 5, 2704 - SYMMETRIC_WHOLE, 2705 - LOWPASS_ANALYSIS, 2706 - odegard97_lowpass_analysis_coeffs, 2707 -}; 2708 - 2709 -static filter_t odegard97_highpass_analysis = { 2710 - 4, 2711 - SYMMETRIC_WHOLE, 2712 - HIGHPASS_ANALYSIS, 2713 - odegard97_highpass_analysis_coeffs, 2714 -}; 2715 - 2716 -static filter_t odegard97_lowpass_synthesis = { 2717 - 4, 2718 - SYMMETRIC_WHOLE, 2719 - LOWPASS_SYNTHESIS, 2720 - odegard97_lowpass_synthesis_coeffs, 2721 -}; 2722 - 2723 -static filter_t odegard97_highpass_synthesis = { 2724 - 5, 2725 - SYMMETRIC_WHOLE, 2726 - HIGHPASS_SYNTHESIS, 2727 - odegard97_highpass_synthesis_coeffs, 2728 -}; 2729 - 2730 -static filterbank_t odegard97 = { 2731 - "odegard97", 2732 - "Odegard 9/7", 2733 - BIORTHOGONAL, 2734 - &odegard97_lowpass_analysis, 2735 - &odegard97_highpass_analysis, 2736 - &odegard97_lowpass_synthesis, 2737 - &odegard97_highpass_synthesis, 2738 -}; 2739 - 2740 -/* 9/7 filter from M. Antonini, M. Barlaud, P. Mathieu, and 2741 - * I. Daubechies, "Image coding using wavelet transform", IEEE 2742 - * Transactions on Image Processing, Vol. pp. 205-220, 1992. */ 2743 - 2744 -static coeff_t daub97_lowpass_analysis_coeffs[] = { 2745 - 0.8526986790088938, 2746 - 0.3774028556128306, 2747 - -0.1106244044184372, 2748 - -0.0238494650195568, 2749 - 0.0378284555072640, 2750 -}; 2751 - 2752 -static coeff_t daub97_highpass_analysis_coeffs[] = { 2753 - -0.7884856164063712, 2754 - 0.4180922732220353, 2755 - 0.0406894176092047, 2756 - -0.0645388826287616, 2757 -}; 2758 - 2759 -static coeff_t daub97_lowpass_synthesis_coeffs[] = { 2760 - 0.7884856164063712, 2761 - 0.4180922732220353, 2762 - -0.0406894176092047, 2763 - -0.0645388826287616, 2764 -}; 2765 - 2766 -static coeff_t daub97_highpass_synthesis_coeffs[] = { 2767 - -0.8526986790088938, 2768 - 0.3774028556128306, 2769 - 0.1106244044184372, 2770 - -0.0238494650195568, 2771 - -0.0378284555072640, 2772 -}; 2773 - 2774 -static filter_t daub97_lowpass_analysis = { 2775 - 5, 2776 - SYMMETRIC_WHOLE, 2777 - LOWPASS_ANALYSIS, 2778 - daub97_lowpass_analysis_coeffs, 2779 -}; 2780 - 2781 -static filter_t daub97_highpass_analysis = { 2782 - 4, 2783 - SYMMETRIC_WHOLE, 2784 - HIGHPASS_ANALYSIS, 2785 - daub97_highpass_analysis_coeffs, 2786 -}; 2787 - 2788 -static filter_t daub97_lowpass_synthesis = { 2789 - 4, 2790 - SYMMETRIC_WHOLE, 2791 - LOWPASS_SYNTHESIS, 2792 - daub97_lowpass_synthesis_coeffs, 2793 -}; 2794 - 2795 -static filter_t daub97_highpass_synthesis = { 2796 - 5, 2797 - SYMMETRIC_WHOLE, 2798 - HIGHPASS_SYNTHESIS, 2799 - daub97_highpass_synthesis_coeffs, 2800 -}; 2801 - 2802 -static filterbank_t daub97 = { 2803 - "daub97", 2804 - "Daubechies 9/7", 2805 - BIORTHOGONAL, 2806 - &daub97_lowpass_analysis, 2807 - &daub97_highpass_analysis, 2808 - &daub97_lowpass_synthesis, 2809 - &daub97_highpass_synthesis, 2810 -}; 2811 - 2812 -static filterbank_t daub97lift = { 2813 - "daub97lift", 2814 - "Daubechies 9/7 (Lifting)", 2815 - BIORTHOGONAL, 2816 - NULL, 2817 - NULL, 2818 - NULL, 2819 - NULL, 2820 -}; 2821 - 2822 -/* A. Cohen, I. Daubechies, J. C. Feauveau, "Biorthogonal Bases of 2823 - * Compactly Supported Wavelets," Communications on Pure and 2824 - * Applied Mathematics, vol. 45, no. 5, pp. 485-560, May 1992. */ 2825 - 2826 -static coeff_t cdf53_lowpass_analysis_coeffs[] = { 2827 - 1.06066017177982, 2828 - 0.35355339059327, 2829 - -0.17677669529664, 2830 -}; 2831 - 2832 -static coeff_t cdf53_highpass_analysis_coeffs[] = { 2833 - -0.70710678118655, 2834 - 0.35355339059327, 2835 -}; 2836 - 2837 -static coeff_t cdf53_lowpass_synthesis_coeffs[] = { 2838 - 0.70710678118655, 2839 - 0.35355339059327, 2840 -}; 2841 - 2842 -static coeff_t cdf53_highpass_synthesis_coeffs[] = { 2843 - -1.06066017177982, 2844 - 0.35355339059327, 2845 - 0.17677669529664, 2846 -}; 2847 - 2848 -static filter_t cdf53_lowpass_analysis = { 2849 - 3, 2850 - SYMMETRIC_WHOLE, 2851 - LOWPASS_ANALYSIS, 2852 - cdf53_lowpass_analysis_coeffs, 2853 -}; 2854 - 2855 -static filter_t cdf53_highpass_analysis = { 2856 - 2, 2857 - SYMMETRIC_WHOLE, 2858 - HIGHPASS_ANALYSIS, 2859 - cdf53_highpass_analysis_coeffs, 2860 -}; 2861 - 2862 -static filter_t cdf53_lowpass_synthesis = { 2863 - 2, 2864 - SYMMETRIC_WHOLE, 2865 - LOWPASS_SYNTHESIS, 2866 - cdf53_lowpass_synthesis_coeffs, 2867 -}; 2868 - 2869 -static filter_t cdf53_highpass_synthesis = { 2870 - 3, 2871 - SYMMETRIC_WHOLE, 2872 - HIGHPASS_SYNTHESIS, 2873 - cdf53_highpass_synthesis_coeffs, 2874 -}; 2875 - 2876 -static filterbank_t cdf53 = { 2877 - "cdf53", 2878 - "Cohen Daubechies Feauveau 5/3", 2879 - BIORTHOGONAL, 2880 - &cdf53_lowpass_analysis, 2881 - &cdf53_highpass_analysis, 2882 - &cdf53_lowpass_synthesis, 2883 - &cdf53_highpass_synthesis, 2884 -}; 2885 - 2886 -/* A. Cohen, I. Daubechies, J. C. Feauveau, "Biorthogonal Bases of 2887 - * Compactly Supported Wavelets," Communications on Pure and 2888 - * Applied Mathematics, vol. 45, no. 5, pp. 485-560, May 1992. */ 2889 - 2890 -static coeff_t cdf93_lowpass_analysis_coeffs[] = { 2891 - 0.99436891104360, 2892 - 0.41984465132952, 2893 - -0.17677669529665, 2894 - -0.06629126073624, 2895 - 0.03314563036812, 2896 -}; 2897 - 2898 -static coeff_t cdf93_highpass_analysis_coeffs[] = { 2899 - -0.70710678118655, 2900 - 0.35355339059327, 2901 -}; 2902 - 2903 -static coeff_t cdf93_lowpass_synthesis_coeffs[] = { 2904 - 0.70710678118655, 2905 - 0.35355339059327, 2906 -}; 2907 - 2908 -static coeff_t cdf93_highpass_synthesis_coeffs[] = { 2909 - -0.99436891104360, 2910 - 0.41984465132952, 2911 - 0.17677669529665, 2912 - -0.06629126073624, 2913 - -0.03314563036812, 2914 -}; 2915 - 2916 -static filter_t cdf93_lowpass_analysis = { 2917 - 5, 2918 - SYMMETRIC_WHOLE, 2919 - LOWPASS_ANALYSIS, 2920 - cdf93_lowpass_analysis_coeffs, 2921 -}; 2922 - 2923 -static filter_t cdf93_highpass_analysis = { 2924 - 2, 2925 - SYMMETRIC_WHOLE, 2926 - HIGHPASS_ANALYSIS, 2927 - cdf93_highpass_analysis_coeffs, 2928 -}; 2929 - 2930 -static filter_t cdf93_lowpass_synthesis = { 2931 - 2, 2932 - SYMMETRIC_WHOLE, 2933 - LOWPASS_SYNTHESIS, 2934 - cdf93_lowpass_synthesis_coeffs, 2935 -}; 2936 - 2937 -static filter_t cdf93_highpass_synthesis = { 2938 - 5, 2939 - SYMMETRIC_WHOLE, 2940 - HIGHPASS_SYNTHESIS, 2941 - cdf93_highpass_synthesis_coeffs, 2942 -}; 2943 - 2944 -static filterbank_t cdf93 = { 2945 - "cdf93", 2946 - "Cohen Daubechies Feauveau 9/3", 2947 - BIORTHOGONAL, 2948 - &cdf93_lowpass_analysis, 2949 - &cdf93_highpass_analysis, 2950 - &cdf93_lowpass_synthesis, 2951 - &cdf93_highpass_synthesis, 2952 -}; 2953 - 2954 -/* A. Cohen, I. Daubechies, J. C. Feauveau, "Biorthogonal Bases of 2955 - * Compactly Supported Wavelets," Communications on Pure and 2956 - * Applied Mathematics, vol. 45, no. 5, pp. 485-560, May 1992. */ 2957 - 2958 -static coeff_t cdf133_lowpass_analysis_coeffs[] = { 2959 - 0.96674755240348, 2960 - 0.44746600996961, 2961 - -0.16987135563661, 2962 - -0.10772329869638, 2963 - 0.04695630968816, 2964 - 0.01381067932004, 2965 - -0.00690533966002, 2966 -}; 2967 - 2968 -static coeff_t cdf133_highpass_analysis_coeffs[] = { 2969 - -0.70710678118655, 2970 - 0.35355339059327, 2971 -}; 2972 - 2973 -static coeff_t cdf133_lowpass_synthesis_coeffs[] = { 2974 - 0.70710678118655, 2975 - 0.35355339059327, 2976 -}; 2977 - 2978 -static coeff_t cdf133_highpass_synthesis_coeffs[] = { 2979 - -0.96674755240348, 2980 - 0.44746600996961, 2981 - 0.16987135563661, 2982 - -0.10772329869638, 2983 - -0.04695630968816, 2984 - 0.01381067932004, 2985 - 0.00690533966002, 2986 -}; 2987 - 2988 -static filter_t cdf133_lowpass_analysis = { 2989 - 7, 2990 - SYMMETRIC_WHOLE, 2991 - LOWPASS_ANALYSIS, 2992 - cdf133_lowpass_analysis_coeffs, 2993 -}; 2994 - 2995 -static filter_t cdf133_highpass_analysis = { 2996 - 2, 2997 - SYMMETRIC_WHOLE, 2998 - HIGHPASS_ANALYSIS, 2999 - cdf133_highpass_analysis_coeffs, 3000 -}; 3001 - 3002 -static filter_t cdf133_lowpass_synthesis = { 3003 - 2, 3004 - SYMMETRIC_WHOLE, 3005 - LOWPASS_SYNTHESIS, 3006 - cdf133_lowpass_synthesis_coeffs, 3007 -}; 3008 - 3009 -static filter_t cdf133_highpass_synthesis = { 3010 - 7, 3011 - SYMMETRIC_WHOLE, 3012 - HIGHPASS_SYNTHESIS, 3013 - cdf133_highpass_synthesis_coeffs, 3014 -}; 3015 - 3016 -static filterbank_t cdf133 = { 3017 - "cdf133", 3018 - "Cohen Daubechies Feauveau 13/3", 3019 - BIORTHOGONAL, 3020 - &cdf133_lowpass_analysis, 3021 - &cdf133_highpass_analysis, 3022 - &cdf133_lowpass_synthesis, 3023 - &cdf133_highpass_synthesis, 3024 -}; 3025 - 3026 -/* A. Cohen, I. Daubechies, J. C. Feauveau, "Biorthogonal Bases of 3027 - * Compactly Supported Wavelets," Communications on Pure and 3028 - * Applied Mathematics, vol. 45, no. 5, pp. 485-560, May 1992. */ 3029 - 3030 -static coeff_t cdf173_lowpass_analysis_coeffs[] = { 3031 - 0.95164212189717, 3032 - 0.46257144047591, 3033 - -0.16382918343409, 3034 - -0.13491307360773, 3035 - 0.05299848189069, 3036 - 0.02891610982635, 3037 - -0.01294751186254, 3038 - -0.00302108610126, 3039 - 0.00151054305063, 3040 -}; 3041 - 3042 -static coeff_t cdf173_highpass_analysis_coeffs[] = { 3043 - -0.70710678118655, 3044 - 0.35355339059327, 3045 -}; 3046 - 3047 -static coeff_t cdf173_lowpass_synthesis_coeffs[] = { 3048 - 0.70710678118655, 3049 - 0.35355339059327, 3050 -}; 3051 - 3052 -static coeff_t cdf173_highpass_synthesis_coeffs[] = { 3053 - -0.95164212189717, 3054 - 0.46257144047591, 3055 - 0.16382918343409, 3056 - -0.13491307360773, 3057 - -0.05299848189069, 3058 - 0.02891610982635, 3059 - 0.01294751186254, 3060 - -0.00302108610126, 3061 - -0.00151054305063, 3062 -}; 3063 - 3064 -static filter_t cdf173_lowpass_analysis = { 3065 - 9, 3066 - SYMMETRIC_WHOLE, 3067 - LOWPASS_ANALYSIS, 3068 - cdf173_lowpass_analysis_coeffs, 3069 -}; 3070 - 3071 -static filter_t cdf173_highpass_analysis = { 3072 - 2, 3073 - SYMMETRIC_WHOLE, 3074 - HIGHPASS_ANALYSIS, 3075 - cdf173_highpass_analysis_coeffs, 3076 -}; 3077 - 3078 -static filter_t cdf173_lowpass_synthesis = { 3079 - 2, 3080 - SYMMETRIC_WHOLE, 3081 - LOWPASS_SYNTHESIS, 3082 - cdf173_lowpass_synthesis_coeffs, 3083 -}; 3084 - 3085 -static filter_t cdf173_highpass_synthesis = { 3086 - 9, 3087 - SYMMETRIC_WHOLE, 3088 - HIGHPASS_SYNTHESIS, 3089 - cdf173_highpass_synthesis_coeffs, 3090 -}; 3091 - 3092 -static filterbank_t cdf173 = { 3093 - "cdf173", 3094 - "Cohen Daubechies Feauveau 17/3", 3095 - BIORTHOGONAL, 3096 - &cdf173_lowpass_analysis, 3097 - &cdf173_highpass_analysis, 3098 - &cdf173_lowpass_synthesis, 3099 - &cdf173_highpass_synthesis, 3100 -}; 3101 - 3102 -/* Filter from J. Villasenor, B. Belzer, J. Liao, "Wavelet Filter 3103 - * Evaluation for Image Compression." IEEE Transactions on Image 3104 - * Processing, Vol. 2, pp. 1053-1060, August 1995. */ 3105 - 3106 -static coeff_t villa1311_lowpass_analysis_coeffs[] = { 3107 - 0.7672451593927493, 3108 - 0.3832692613243884, 3109 - -0.0688781141906103, 3110 - -0.0334750810478015, 3111 - 0.0472817528288275, 3112 - 0.0037592103166868, 3113 - -0.0084728277413181, 3114 -}; 3115 - 3116 -static coeff_t villa1311_highpass_analysis_coeffs[] = { 3117 - -0.8328475700934288, 3118 - 0.4481085999263908, 3119 - 0.0691627101203004, 3120 - -0.1087373652243805, 3121 - -0.0062923156668598, 3122 - 0.0141821558912635, 3123 -}; 3124 - 3125 -static coeff_t villa1311_lowpass_synthesis_coeffs[] = { 3126 - 0.8328475700934288, 3127 - 0.4481085999263908, 3128 - -0.0691627101203004, 3129 - -0.1087373652243805, 3130 - 0.0062923156668598, 3131 - 0.0141821558912635, 3132 -}; 3133 - 3134 -static coeff_t villa1311_highpass_synthesis_coeffs[] = { 3135 - -0.7672451593927493, 3136 - 0.3832692613243884, 3137 - 0.0688781141906103, 3138 - -0.0334750810478015, 3139 - -0.0472817528288275, 3140 - 0.0037592103166868, 3141 - 0.0084728277413181, 3142 -}; 3143 - 3144 -static filter_t villa1311_lowpass_analysis = { 3145 - 7, 3146 - SYMMETRIC_WHOLE, 3147 - LOWPASS_ANALYSIS, 3148 - villa1311_lowpass_analysis_coeffs, 3149 -}; 3150 - 3151 -static filter_t villa1311_highpass_analysis = { 3152 - 6, 3153 - SYMMETRIC_WHOLE, 3154 - HIGHPASS_ANALYSIS, 3155 - villa1311_highpass_analysis_coeffs, 3156 -}; 3157 - 3158 -static filter_t villa1311_lowpass_synthesis = { 3159 - 6, 3160 - SYMMETRIC_WHOLE, 3161 - LOWPASS_SYNTHESIS, 3162 - villa1311_lowpass_synthesis_coeffs, 3163 -}; 3164 - 3165 -static filter_t villa1311_highpass_synthesis = { 3166 - 7, 3167 - SYMMETRIC_WHOLE, 3168 - HIGHPASS_SYNTHESIS, 3169 - villa1311_highpass_synthesis_coeffs, 3170 -}; 3171 - 3172 -static filterbank_t villa1311 = { 3173 - "villa1311", 3174 - "Villasenor 13/11", 3175 - BIORTHOGONAL, 3176 - &villa1311_lowpass_analysis, 3177 - &villa1311_highpass_analysis, 3178 - &villa1311_lowpass_synthesis, 3179 - &villa1311_highpass_synthesis, 3180 -}; 3181 - 3182 -/* Append filterbank reference to this array: this is the only 3183 - * thing you need to do by hand. The rest of the work will be done 3184 - * by the make_filterbank.pl utility: just cut-and-paste its output. */ 3185 - 3186 -filterbank_t *filterbanks[] = { 3187 - &haar, 3188 - &daub4, 3189 - &daub6, 3190 - &daub8, 3191 - &daub10, 3192 - &daub12, 3193 - &daub14, 3194 - &daub16, 3195 - &daub18, 3196 - &daub20, 3197 - &beylkin, 3198 - &vaidyanathan, 3199 - &coiflet6, 3200 - &coiflet12, 3201 - &coiflet18, 3202 - &coiflet24, 3203 - &coiflet30, 3204 - &symmlet8, 3205 - &symmlet10, 3206 - &symmlet12, 3207 - &symmlet14, 3208 - &symmlet16, 3209 - &symmlet18, 3210 - &symmlet20, 3211 - &odegard97, 3212 - &daub97, 3213 - &daub97lift, 3214 - &cdf53, 3215 - &cdf93, 3216 - &cdf133, 3217 - &cdf173, 3218 - &villa1311, 3219 - NULL 3220 -};
Deleted epsilon/filterbank.h.
1 -/* 2 - * $Id: filterbank.h,v 1.15 2007/05/20 13:19:12 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -/** \file 25 - * 26 - * \brief Filter banks 27 - * 28 - * This file holds defines for filter and filterbank 29 - * data structures. 30 - * 31 - * \section References 32 - * 33 - * Gilbert Strang, Truong Nguyen "Wavelets and Filter Banks". */ 34 - 35 -#ifndef __FILTERBANK_H__ 36 -#define __FILTERBANK_H__ 37 - 38 -#ifdef __cplusplus 39 -extern "C" 40 -{ 41 -#endif 42 - 43 -/** \addtogroup wavelet Wavelet transform */ 44 -/*@{*/ 45 - 46 -#include <common.h> 47 - 48 -/** Causal filter: h[i] = 0, i < 0 */ 49 -#define CAUSAL 0 50 -/** Anticausal filter: h[i] = 0, i > 0 */ 51 -#define ANTICAUSAL 1 52 -/** Symmetric-whole filter: h[-i] = h[i] */ 53 -#define SYMMETRIC_WHOLE 2 54 -/** Symmetric-half filter: h[-i] = h[i - 1] */ 55 -#define SYMMETRIC_HALF 3 56 - 57 -/** Lowpass analysis filter */ 58 -#define LOWPASS_ANALYSIS 0 59 -/** Highpass analysis filter */ 60 -#define HIGHPASS_ANALYSIS 1 61 -/** Lowpass synthesis filter */ 62 -#define LOWPASS_SYNTHESIS 2 63 -/** Highpass synthesis filter */ 64 -#define HIGHPASS_SYNTHESIS 3 65 - 66 -/** Orthogonal filterbank */ 67 -#define ORTHOGONAL 0 68 -/** Biothogonal filterbank */ 69 -#define BIORTHOGONAL 1 70 - 71 -/** Even subsampling phase */ 72 -#define PHASE_EVEN 0 73 -/** Odd subsampling phase */ 74 -#define PHASE_ODD 1 75 - 76 -/** Filter structure 77 - * 78 - * This structure represents a standalone filter. 79 - * 80 - * \note There is no need to keep all coefficients for symmetric 81 - * filters. Only half (h[i], i >= 0) of them is kept. */ 82 - typedef struct filter_t_tag 83 - { 84 - /** Filter length */ 85 - int length; 86 - /** Filter causality */ 87 - int causality; 88 - /** Filter type */ 89 - int type; 90 - /** Filter coefficients */ 91 - coeff_t *coeffs; 92 - } filter_t; 93 - 94 -/** Filterbank structure 95 - * 96 - * Filter bank consists of two filter pairs. */ 97 - typedef struct filterbank_t_tag 98 - { 99 - /** Short filter name (for a program) */ 100 - char *id; 101 - /** Long filter name (for a user) */ 102 - char *name; 103 - /** Filterbank type */ 104 - int type; 105 - /** Lowpass analysis filter */ 106 - filter_t *lowpass_analysis; 107 - /** Highpass analysis filter */ 108 - filter_t *highpass_analysis; 109 - /** Lowpass synthesis filter */ 110 - filter_t *lowpass_synthesis; 111 - /** Highpass synthesis filter */ 112 - filter_t *highpass_synthesis; 113 - } filterbank_t; 114 - 115 -/** External array of all available filter banks 116 - * 117 - * This array hold pointers to all available filter banks. 118 - * Last element is always \c NULL. */ 119 - extern filterbank_t *filterbanks[]; 120 - 121 -/*@}*/ 122 - 123 -#ifdef __cplusplus 124 -} 125 -#endif 126 - 127 -#endif /* __FILTERBANK_H__ */
Deleted epsilon/libmain.c.
1 -/* 2 - * $Id: libmain.c,v 1.59 2008/03/25 19:31:45 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -#include <epsilon.h> 25 -#include <libmain.h> 26 -#include <common.h> 27 -#include <filter.h> 28 -#include <filterbank.h> 29 -#include <cobs.h> 30 -#include <color.h> 31 -#include <mem_alloc.h> 32 -#include <dc_level.h> 33 -#include <resample.h> 34 -#include <checksum.h> 35 -#include <pad.h> 36 -#include <merge_split.h> 37 -#include <speck.h> 38 -#include <string.h> 39 - 40 -#if defined(_WIN32) && !defined(__MINGW32__) 41 -#define snprintf _snprintf 42 -#endif /* not using the MSVC compiler */ 43 - 44 -local void 45 -round_channel (coeff_t ** in_channel, int **out_channel, int channel_size) 46 -{ 47 - int i, j; 48 - 49 - for (i = 0; i < channel_size; i++) 50 - { 51 - for (j = 0; j < channel_size; j++) 52 - { 53 - out_channel[i][j] = (int) ROUND (in_channel[i][j]); 54 - } 55 - } 56 -} 57 - 58 -local void 59 -copy_channel (int **in_channel, coeff_t ** out_channel, int channel_size) 60 -{ 61 - int i, j; 62 - 63 - /* Expand data from int to coeff_t */ 64 - for (i = 0; i < channel_size; i++) 65 - { 66 - for (j = 0; j < channel_size; j++) 67 - { 68 - out_channel[i][j] = in_channel[i][j]; 69 - } 70 - } 71 -} 72 - 73 -local void 74 -reset_RGB (unsigned char **block_R, unsigned char **block_G, 75 - unsigned char **block_B, int width, int height) 76 -{ 77 - int i, j; 78 - 79 - /* Reset everything to zero */ 80 - for (i = 0; i < height; i++) 81 - { 82 - for (j = 0; j < width; j++) 83 - { 84 - block_R[i][j] = block_G[i][j] = block_B[i][j] = 0; 85 - } 86 - } 87 -} 88 - 89 -local void 90 -reset_Y (unsigned char **block_Y, int width, int height) 91 -{ 92 - int i, j; 93 - 94 - /* Reset everything to zero */ 95 - for (i = 0; i < height; i++) 96 - { 97 - for (j = 0; j < width; j++) 98 - { 99 - block_Y[i][j] = 0; 100 - } 101 - } 102 -} 103 - 104 -local filterbank_t * 105 -get_fb (char *id) 106 -{ 107 - int i, n; 108 - 109 - /* Get the number of all available filterbanks */ 110 - for (n = 0; filterbanks[n]; n++); 111 - 112 - /* Find id in the list */ 113 - for (i = 0; i < n; i++) 114 - { 115 - if (strcmp (id, filterbanks[i]->id) == 0) 116 - { 117 - return filterbanks[i]; 118 - } 119 - } 120 - 121 - return NULL; 122 -} 123 - 124 -local int 125 -get_block_size (int w, int h, int mode, int min) 126 -{ 127 - int max = MAX (MAX (w, h), min); 128 - int bits = number_of_bits (max); 129 - 130 - if (mode == EPS_MODE_NORMAL) 131 - { 132 - /* W = H = 2 ^ N */ 133 - if (max == (1 << (bits - 1))) 134 - { 135 - return max; 136 - } 137 - else 138 - { 139 - return (1 << bits); 140 - } 141 - } 142 - else 143 - { 144 - /* W = H = 2 ^ N + 1 */ 145 - if (max == (1 << (bits - 1)) + 1) 146 - { 147 - return max; 148 - } 149 - else if (max == (1 << (bits - 1))) 150 - { 151 - return max + 1; 152 - } 153 - else 154 - { 155 - return (1 << bits) + 1; 156 - } 157 - } 158 -} 159 - 160 -local int 161 -terminate_header (unsigned char *buf, int buf_size, int n_fields) 162 -{ 163 - int field, i; 164 - 165 - /* Report an error if data contains at least one zero byte */ 166 - for (i = 0; i < buf_size; i++) 167 - { 168 - if (!buf[i]) 169 - { 170 - return EPS_FORMAT_ERROR; 171 - } 172 - } 173 - 174 - /* Find n-th occurence of ';' symbol and replace it with zero */ 175 - for (i = 0, field = 1; i < buf_size; i++) 176 - { 177 - if (buf[i] == ';') 178 - { 179 - if (field == n_fields) 180 - { 181 - buf[i] = 0; 182 - return EPS_OK; 183 - } 184 - 185 - field++; 186 - } 187 - } 188 - 189 - return EPS_FORMAT_ERROR; 190 -} 191 - 192 -local void 193 -unterminate_header (unsigned char *buf) 194 -{ 195 - buf[strlen ((char *) buf)] = ';'; 196 -} 197 - 198 -local int 199 -header_sanity_check (unsigned char *buf) 200 -{ 201 - int i, len; 202 - 203 - len = strlen ((char *) buf); 204 - 205 - /* Check header for malicious symbols */ 206 - for (i = 0; i < len; i++) 207 - { 208 - if ((buf[i] >= 'A') && (buf[i] <= 'Z')) 209 - { 210 - continue; 211 - } 212 - 213 - if ((buf[i] >= 'a') && (buf[i] <= 'z')) 214 - { 215 - continue; 216 - } 217 - 218 - if ((buf[i] >= '0') && (buf[i] <= '9')) 219 - { 220 - continue; 221 - } 222 - 223 - if ((buf[i] == ';') || (buf[i] == '=') || 224 - (buf[i] == '-') || (buf[i] == ':')) 225 - { 226 - continue; 227 - } 228 - 229 - return EPS_FORMAT_ERROR; 230 - } 231 - 232 - return EPS_OK; 233 -} 234 - 235 -local int 236 -read_gs_header (unsigned char *buf, int buf_size, eps_block_header * hdr) 237 -{ 238 - filterbank_t *fb; 239 - 240 - char fb_id[32]; 241 - 242 - crc32_t hdr_crc; 243 - crc32_t data_crc; 244 - 245 - int result; 246 - int len; 247 - int n; 248 - 249 - char *chk_pos; 250 - char *str; 251 - 252 - /* Sanity checks */ 253 - if (!buf || !hdr) 254 - { 255 - return EPS_PARAM_ERROR; 256 - } 257 - 258 - if (buf_size < 1) 259 - { 260 - return EPS_PARAM_ERROR; 261 - } 262 - 263 - /* Terminate header for ease of processing */ 264 - if (terminate_header (buf, buf_size, 12) != EPS_OK) 265 - { 266 - return EPS_FORMAT_ERROR; 267 - } 268 - 269 - /* Check for maliciuos symbols */ 270 - if (header_sanity_check (buf) != EPS_OK) 271 - { 272 - unterminate_header (buf); 273 - return EPS_FORMAT_ERROR; 274 - } 275 - 276 - /* Handle header as a regular null-terminated string */ 277 - str = (char *) buf; 278 - len = strlen (str); 279 - 280 - /* Mark the position of header CRC field */ 281 - chk_pos = strstr (str, "chk="); 282 - 283 - /* Parse header fields */ 284 - result = sscanf (str, 285 - "type=gs;W=%d;H=%d;w=%d;h=%d;x=%d;y=%d;" 286 - "m=%d;dc=%d;fb=%31[a-z0-9];chk=%x;crc=%x%n", 287 - &hdr->uhdr.gs.W, &hdr->uhdr.gs.H, &hdr->uhdr.gs.w, 288 - &hdr->uhdr.gs.h, &hdr->uhdr.gs.x, &hdr->uhdr.gs.y, 289 - &hdr->uhdr.gs.mode, &hdr->uhdr.gs.dc, fb_id, &hdr->chk, 290 - &hdr->crc, &n); 291 - 292 - unterminate_header (buf); 293 - 294 - /* Check for parsing errors (see also sscanf(3)) */ 295 - if ((result < 11) || (n != len)) 296 - { 297 - return EPS_FORMAT_ERROR; 298 - } 299 - 300 - /* Compute header & data size */ 301 - hdr->hdr_size = len + 1; 302 - hdr->data_size = buf_size - hdr->hdr_size; 303 - 304 - /* Sanity checks */ 305 - assert (hdr->data_size >= 0); 306 - assert (hdr->hdr_size + hdr->data_size == buf_size); 307 - 308 - /* Check transform mode */ 309 - if ((hdr->uhdr.gs.mode != EPS_MODE_NORMAL) 310 - && (hdr->uhdr.gs.mode != EPS_MODE_OTLPF)) 311 - { 312 - return EPS_FORMAT_ERROR; 313 - } 314 - 315 - /* Check image (W, H) and block (w, y, w, h) parameters for consistency */ 316 - if ((hdr->uhdr.gs.W <= 0) || (hdr->uhdr.gs.H <= 0)) 317 - { 318 - return EPS_FORMAT_ERROR; 319 - } 320 - 321 - if ((hdr->uhdr.gs.w < 1) || (hdr->uhdr.gs.h < 1)) 322 - { 323 - return EPS_FORMAT_ERROR; 324 - } 325 - 326 - if (hdr->uhdr.gs.w > EPS_MAX_BLOCK_SIZE + hdr->uhdr.gs.mode == 327 - EPS_MODE_OTLPF) 328 - { 329 - return EPS_FORMAT_ERROR; 330 - } 331 - 332 - if (hdr->uhdr.gs.h > EPS_MAX_BLOCK_SIZE + hdr->uhdr.gs.mode == 333 - EPS_MODE_OTLPF) 334 - { 335 - return EPS_FORMAT_ERROR; 336 - } 337 - 338 - if ((hdr->uhdr.gs.x < 0) || (hdr->uhdr.gs.y < 0)) 339 - { 340 - return EPS_FORMAT_ERROR; 341 - } 342 - 343 - if (hdr->uhdr.gs.x + hdr->uhdr.gs.w > hdr->uhdr.gs.W) 344 - { 345 - return EPS_FORMAT_ERROR; 346 - } 347 - 348 - if (hdr->uhdr.gs.y + hdr->uhdr.gs.h > hdr->uhdr.gs.H) 349 - { 350 - return EPS_FORMAT_ERROR; 351 - } 352 - 353 - /* Check DC level */ 354 - if ((hdr->uhdr.gs.dc < 0) || (hdr->uhdr.gs.dc > 255)) 355 - { 356 - return EPS_FORMAT_ERROR; 357 - } 358 - 359 - /* Find filterbank by id */ 360 - if (fb = get_fb (fb_id)) 361 - { 362 - hdr->uhdr.gs.fb_id = fb->id; 363 - } 364 - else 365 - { 366 - hdr->uhdr.gs.fb_id = NULL; 367 - } 368 - 369 - /* EPS_MODE_NORMAL is the only valid choise for orthogonal filters */ 370 - if ((fb->type == ORTHOGONAL) && (hdr->uhdr.gs.mode != EPS_MODE_NORMAL)) 371 - { 372 - return EPS_FORMAT_ERROR; 373 - } 374 - 375 - assert (chk_pos); 376 - 377 - /* Compute header CRC and compare it against stored one */ 378 - hdr_crc = epsilon_crc32 (buf, chk_pos - (char *) buf); 379 - hdr_crc = (hdr_crc ^ (hdr_crc >> 16)) & 0xffff; 380 - 381 - if (hdr_crc == hdr->chk) 382 - { 383 - hdr->chk_flag = EPS_GOOD_CRC; 384 - } 385 - else 386 - { 387 - hdr->chk_flag = EPS_BAD_CRC; 388 - } 389 - 390 - /* Compute data CRC and compare it against stored one */ 391 - data_crc = epsilon_crc32 (buf + hdr->hdr_size, hdr->data_size); 392 - 393 - if (data_crc == hdr->crc) 394 - { 395 - hdr->crc_flag = EPS_GOOD_CRC; 396 - } 397 - else 398 - { 399 - hdr->crc_flag = EPS_BAD_CRC; 400 - } 401 - 402 - return EPS_OK; 403 -} 404 - 405 -local int 406 -read_tc_header (unsigned char *buf, int buf_size, eps_block_header * hdr) 407 -{ 408 - filterbank_t *fb; 409 - 410 - char fb_id[32]; 411 - 412 - crc32_t hdr_crc; 413 - crc32_t data_crc; 414 - 415 - int result; 416 - int len; 417 - int n; 418 - 419 - char *chk_pos; 420 - char *str; 421 - /* Sanity checks */ 422 - if (!buf || !hdr) 423 - { 424 - return EPS_PARAM_ERROR; 425 - } 426 - 427 - if (buf_size < 1) 428 - { 429 - return EPS_PARAM_ERROR; 430 - } 431 - 432 - /* Terminate header for ease of processing */ 433 - if (terminate_header (buf, buf_size, 14) != EPS_OK) 434 - { 435 - return EPS_FORMAT_ERROR; 436 - } 437 - 438 - /* Check for maliciuos symbols */ 439 - if (header_sanity_check (buf) != EPS_OK) 440 - { 441 - unterminate_header (buf); 442 - return EPS_FORMAT_ERROR; 443 - } 444 - 445 - /* Handle header as a regular null-terminated string */ 446 - str = (char *) buf; 447 - len = strlen (str); 448 - 449 - /* Mark the position of header CRC field */ 450 - chk_pos = strstr (str, "chk="); 451 - /* Parse header fields */ 452 - result = sscanf (str, 453 - "type=tc;W=%d;H=%d;w=%d;h=%d;x=%d;y=%d;m=%d;" 454 - "r=%d;dc=%d:%d:%d;rt=%d:%d:%d;fb=%31[a-z0-9];" 455 - "chk=%x;crc=%x%n", 456 - &hdr->uhdr.tc.W, &hdr->uhdr.tc.H, &hdr->uhdr.tc.w, 457 - &hdr->uhdr.tc.h, &hdr->uhdr.tc.x, &hdr->uhdr.tc.y, 458 - &hdr->uhdr.tc.mode, &hdr->uhdr.tc.resample, 459 - &hdr->uhdr.tc.dc_Y, &hdr->uhdr.tc.dc_Cb, 460 - &hdr->uhdr.tc.dc_Cr, &hdr->uhdr.tc.Y_rt, 461 - &hdr->uhdr.tc.Cb_rt, &hdr->uhdr.tc.Cr_rt, fb_id, &hdr->chk, 462 - &hdr->crc, &n); 463 - unterminate_header (buf); 464 - 465 - /* Check for parsing errors (see also sscanf(3)) */ 466 - if ((result < 17) || (n != len)) 467 - { 468 - return EPS_FORMAT_ERROR; 469 - } 470 - 471 - /* Compute header & data size */ 472 - hdr->hdr_size = len + 1; 473 - hdr->data_size = buf_size - hdr->hdr_size; 474 - 475 - /* Sanity checks */ 476 - assert (hdr->data_size >= 0); 477 - assert (hdr->hdr_size + hdr->data_size == buf_size); 478 - 479 - /* Check transform mode */ 480 - if ((hdr->uhdr.tc.mode != EPS_MODE_NORMAL) 481 - && (hdr->uhdr.tc.mode != EPS_MODE_OTLPF)) 482 - { 483 - return EPS_FORMAT_ERROR; 484 - } 485 - 486 - /* Check image (W, H) and block (w, y, w, h) parameters for consistency */ 487 - if ((hdr->uhdr.tc.W <= 0) || (hdr->uhdr.tc.H <= 0)) 488 - { 489 - return EPS_FORMAT_ERROR; 490 - } 491 - 492 - if ((hdr->uhdr.tc.w < 1) || (hdr->uhdr.tc.h < 1)) 493 - { 494 - return EPS_FORMAT_ERROR; 495 - } 496 - 497 - if (hdr->uhdr.tc.w > EPS_MAX_BLOCK_SIZE + hdr->uhdr.tc.mode == 498 - EPS_MODE_OTLPF) 499 - { 500 - return EPS_FORMAT_ERROR; 501 - } 502 - 503 - if (hdr->uhdr.tc.h > EPS_MAX_BLOCK_SIZE + hdr->uhdr.tc.mode == 504 - EPS_MODE_OTLPF) 505 - { 506 - return EPS_FORMAT_ERROR; 507 - } 508 - 509 - if ((hdr->uhdr.tc.x < 0) || (hdr->uhdr.tc.y < 0)) 510 - { 511 - return EPS_FORMAT_ERROR; 512 - } 513 - 514 - if (hdr->uhdr.tc.x + hdr->uhdr.tc.w > hdr->uhdr.tc.W) 515 - { 516 - return EPS_FORMAT_ERROR; 517 - } 518 - 519 - if (hdr->uhdr.tc.y + hdr->uhdr.tc.h > hdr->uhdr.tc.H) 520 - { 521 - return EPS_FORMAT_ERROR; 522 - } 523 - 524 - /* Check resampling mode */ 525 - if ((hdr->uhdr.tc.resample != EPS_RESAMPLE_444) && 526 - (hdr->uhdr.tc.resample != EPS_RESAMPLE_420)) 527 - { 528 - return EPS_FORMAT_ERROR; 529 - } 530 - 531 - /* Check DC level for Y, Cb and Cr channels */ 532 - if ((hdr->uhdr.tc.dc_Y < 0) || (hdr->uhdr.tc.dc_Y > 255)) 533 - { 534 - return EPS_FORMAT_ERROR; 535 - } 536 - 537 - if ((hdr->uhdr.tc.dc_Cb < 0) || (hdr->uhdr.tc.dc_Cb > 255)) 538 - { 539 - return EPS_FORMAT_ERROR; 540 - } 541 - 542 - if ((hdr->uhdr.tc.dc_Cr < 0) || (hdr->uhdr.tc.dc_Cr > 255)) 543 - { 544 - return EPS_FORMAT_ERROR; 545 - } 546 - 547 - if ((hdr->uhdr.tc.Y_rt <= 0) || (hdr->uhdr.tc.Cb_rt <= 0) 548 - || (hdr->uhdr.tc.Cr_rt <= 0)) 549 - { 550 - return EPS_FORMAT_ERROR; 551 - } 552 - 553 - /* Find filterbank by id */ 554 - if (fb = get_fb (fb_id)) 555 - { 556 - hdr->uhdr.tc.fb_id = fb->id; 557 - } 558 - else 559 - { 560 - hdr->uhdr.tc.fb_id = NULL; 561 - } 562 - 563 - /* EPS_MODE_NORMAL is the only valid choise for orthogonal filters */ 564 - if ((fb->type == ORTHOGONAL) && (hdr->uhdr.tc.mode != EPS_MODE_NORMAL)) 565 - { 566 - return EPS_FORMAT_ERROR; 567 - } 568 - 569 - assert (chk_pos); 570 - /* Compute header CRC and compare it against stored one */ 571 - hdr_crc = epsilon_crc32 (buf, chk_pos - (char *) buf); 572 - hdr_crc = (hdr_crc ^ (hdr_crc >> 16)) & 0xffff; 573 - 574 - if (hdr_crc == hdr->chk) 575 - { 576 - hdr->chk_flag = EPS_GOOD_CRC; 577 - } 578 - else 579 - { 580 - hdr->chk_flag = EPS_BAD_CRC; 581 - } 582 - /* Compute data CRC and compare it against stored one */ 583 - data_crc = epsilon_crc32 (buf + hdr->hdr_size, hdr->data_size); 584 - 585 - if (data_crc == hdr->crc) 586 - { 587 - hdr->crc_flag = EPS_GOOD_CRC; 588 - } 589 - else 590 - { 591 - hdr->crc_flag = EPS_BAD_CRC; 592 - } 593 - return EPS_OK; 594 -} 595 - 596 -int 597 -eps_read_block_header (unsigned char *buf, int buf_size, eps_block_header * hdr) 598 -{ 599 - char *str; 600 - /* Sanity checks */ 601 - if (!buf || !hdr) 602 - { 603 - return EPS_PARAM_ERROR; 604 - } 605 - 606 - if (buf_size < 1) 607 - { 608 - return EPS_PARAM_ERROR; 609 - } 610 - 611 - /* Extract first header field: block type */ 612 - if (terminate_header (buf, buf_size, 1) != EPS_OK) 613 - { 614 - return EPS_FORMAT_ERROR; 615 - } 616 - 617 - str = (char *) buf; 618 - 619 - /* Set block type */ 620 - if ((strlen (str) == 7) && (strcmp (str, "type=gs") == 0)) 621 - { 622 - hdr->block_type = EPS_GRAYSCALE_BLOCK; 623 - } 624 - else if ((strlen (str) == 7) && (strcmp (str, "type=tc") == 0)) 625 - { 626 - hdr->block_type = EPS_TRUECOLOR_BLOCK; 627 - } 628 - else 629 - { 630 - unterminate_header (buf); 631 - return EPS_FORMAT_ERROR; 632 - } 633 - 634 - unterminate_header (buf); 635 - 636 - /* Process the block using appropriative function */ 637 - switch (hdr->block_type) 638 - { 639 - case EPS_GRAYSCALE_BLOCK: 640 - { 641 - return read_gs_header (buf, buf_size, hdr); 642 - break; 643 - } 644 - 645 - case EPS_TRUECOLOR_BLOCK: 646 - { 647 - return read_tc_header (buf, buf_size, hdr); 648 - break; 649 - } 650 - 651 - default: 652 - { 653 - assert (0); 654 - break; 655 - } 656 - } 657 - return EPS_OK; 658 -} 659 - 660 -char ** 661 -eps_get_fb_info (int type) 662 -{ 663 - char **info; 664 - int i, n; 665 - 666 - /* Get the number of all available filterbanks */ 667 - for (n = 0; filterbanks[n]; n++); 668 - info = (char **) xmalloc ((n + 1) * sizeof (char *)); 669 - 670 - /* Travels the list and populate `info' with requested information */ 671 - for (i = 0; i < n; i++) 672 - { 673 - if (type == EPS_FB_ID) 674 - { 675 - info[i] = filterbanks[i]->id; 676 - } 677 - else if (type == EPS_FB_NAME) 678 - { 679 - info[i] = filterbanks[i]->name; 680 - } 681 - else if (type == EPS_FB_TYPE) 682 - { 683 - if (filterbanks[i]->type == BIORTHOGONAL) 684 - { 685 - info[i] = "biorthogonal"; 686 - } 687 - else 688 - { 689 - info[i] = "orthogonal"; 690 - } 691 - } 692 - else 693 - { 694 - info[i] = NULL; 695 - } 696 - } 697 - 698 - /* Terminate list with NULL pointer */ 699 - info[n] = NULL; 700 - 701 - return info; 702 -} 703 - 704 -void 705 -eps_free_fb_info (char **info) 706 -{ 707 - free (info); 708 -} 709 - 710 -void ** 711 -eps_xmalloc (int size) 712 -{ 713 - return xmalloc (size); 714 -} 715 - 716 -void ** 717 -eps_malloc_2D (int width, int height, int size) 718 -{ 719 - return malloc_2D (width, height, size); 720 -} 721 - 722 -void 723 -eps_free_2D (void **ptr, int width, int height) 724 -{ 725 - free_2D (ptr, width, height); 726 -} 727 - 728 -int 729 -eps_encode_grayscale_block (unsigned char **block, int W, int H, int w, int h, 730 - int x, int y, unsigned char *buf, int *buf_size, 731 - char *fb_id, int mode) 732 -{ 733 - filterbank_t *fb; 734 - 735 - unsigned char *buf_next; 736 - int bytes_left; 737 - 738 - unsigned char *stuff_buf; 739 - int stuff_bytes; 740 - int stuff_max; 741 - int stuff_cut; 742 - 743 - coeff_t **pad_block; 744 - coeff_t **dwt_block; 745 - int **int_block; 746 - 747 - int speck_bytes; 748 - int block_size; 749 - int str_len; 750 - 751 - unsigned char dc_int; 752 - coeff_t dc; 753 - 754 - crc32_t hdr_crc; 755 - crc32_t data_crc; 756 - 757 - unsigned char *crc_pos; 758 - 759 - /* Sanity checks */ 760 - if (!block || !buf || !buf_size || !fb_id) 761 - { 762 - return EPS_PARAM_ERROR; 763 - } 764 - 765 - /* Check input parameters for consistency */ 766 - if ((mode != EPS_MODE_NORMAL) && (mode != EPS_MODE_OTLPF)) 767 - { 768 - return EPS_PARAM_ERROR; 769 - } 770 - 771 - if ((W <= 0) || (H <= 0)) 772 - { 773 - return EPS_PARAM_ERROR; 774 - } 775 - 776 - if ((w < 1) || (h < 1)) 777 - { 778 - return EPS_PARAM_ERROR; 779 - } 780 - 781 - if (w > EPS_MAX_BLOCK_SIZE + mode == EPS_MODE_OTLPF) 782 - { 783 - return EPS_PARAM_ERROR; 784 - } 785 - 786 - if (h > EPS_MAX_BLOCK_SIZE + mode == EPS_MODE_OTLPF) 787 - { 788 - return EPS_PARAM_ERROR; 789 - } 790 - 791 - if ((x < 0) || (y < 0)) 792 - { 793 - return EPS_PARAM_ERROR; 794 - } 795 - 796 - if ((x + w > W) || (y + h > H)) 797 - { 798 - return EPS_PARAM_ERROR; 799 - } 800 - 801 - if (*buf_size < EPS_MIN_GRAYSCALE_BUF) 802 - { 803 - return EPS_PARAM_ERROR; 804 - } 805 - 806 - /* Find filterbank from id */ 807 - if (!(fb = get_fb (fb_id))) 808 - { 809 - return EPS_UNSUPPORTED_FB; 810 - } 811 - 812 - /* EPS_MODE_NORMAL is the only valid choise for orthogonal filters */ 813 - if ((fb->type == ORTHOGONAL) && (mode != EPS_MODE_NORMAL)) 814 - { 815 - return EPS_PARAM_ERROR; 816 - } 817 - 818 - buf_next = buf; 819 - bytes_left = *buf_size; 820 - 821 - /* Compute block size */ 822 - block_size = get_block_size (w, h, mode, 2); 823 - 824 - /* Extend block */ 825 - pad_block = 826 - (coeff_t **) malloc_2D (block_size, block_size, sizeof (coeff_t)); 827 - extend_channel (block, pad_block, w, h, block_size, block_size); 828 - 829 - /* DC level shift */ 830 - dc = dc_level_shift (pad_block, block_size, block_size); 831 - dc_int = (unsigned char) CLIP (dc); 832 - 833 - /* Wavelet transform */ 834 - dwt_block = 835 - (coeff_t **) malloc_2D (block_size, block_size, sizeof (coeff_t)); 836 - analysis_2D (pad_block, dwt_block, block_size, mode, fb); 837 - free_2D ((void *) pad_block, block_size, block_size); 838 - 839 - /* Round coefficients */ 840 - int_block = (int **) malloc_2D (block_size, block_size, sizeof (int)); 841 - round_channel (dwt_block, int_block, block_size); 842 - free_2D ((void *) dwt_block, block_size, block_size); 843 - 844 - /* Write block header */ 845 - str_len = snprintf ((char *) buf_next, bytes_left, 846 - "type=gs;W=%d;H=%d;w=%d;h=%d;x=%d;y=%d;" 847 - "m=%d;dc=%d;fb=%s;", 848 - W, H, w, h, x, y, mode, dc_int, fb_id); 849 - 850 - assert (str_len < bytes_left); 851 - 852 - buf_next += str_len; 853 - bytes_left -= str_len; 854 - 855 - /* Compute and save block CRC */ 856 - hdr_crc = epsilon_crc32 (buf, str_len); 857 - hdr_crc = (hdr_crc ^ (hdr_crc >> 16)) & 0xffff; 858 - 859 - str_len = snprintf ((char *) buf_next, bytes_left, 860 - "chk=%04x;crc=????????;", hdr_crc); 861 - 862 - assert (str_len < bytes_left); 863 - 864 - buf_next += str_len; 865 - bytes_left -= str_len; 866 - 867 - crc_pos = buf_next - 9; 868 - 869 - /* Encode coefficients */ 870 - speck_bytes = speck_encode (int_block, block_size, buf_next, bytes_left); 871 - 872 - free_2D ((void *) int_block, block_size, block_size); 873 - 874 - /* Byte stuffing */ 875 - stuff_max = speck_bytes + speck_bytes / 254 + 1; 876 - stuff_buf = (unsigned char *) xmalloc (stuff_max); 877 - stuff_bytes = stuff_data (buf_next, stuff_buf, speck_bytes, stuff_max); 878 - 879 - assert (stuff_bytes >= speck_bytes); 880 - 881 - /* Cut encoded stream to fit it within available space */ 882 - stuff_cut = MIN (bytes_left, stuff_bytes); 883 - memcpy (buf_next, stuff_buf, stuff_cut); 884 - 885 - free (stuff_buf); 886 - 887 - /* Compute and save data CRC */ 888 - data_crc = epsilon_crc32 (buf_next, stuff_cut); 889 - snprintf ((char *) crc_pos, 9, "%08x", data_crc); 890 - crc_pos[8] = ';'; 891 - 892 - buf_next += stuff_cut; 893 - bytes_left -= stuff_cut; 894 - 895 - /* Compute real amount of available bytes */ 896 - *buf_size = buf_next - buf; 897 - 898 - return EPS_OK; 899 -} 900 - 901 -int 902 -eps_decode_grayscale_block (unsigned char **block, unsigned char *buf, 903 - eps_block_header * hdr) 904 -{ 905 - filterbank_t *fb; 906 - 907 - unsigned char *unstuff_buf; 908 - int unstuff_bytes; 909 - 910 - int **int_block; 911 - coeff_t **dwt_block; 912 - coeff_t **pad_block; 913 - 914 - unsigned char dc_int; 915 - int block_size; 916 - 917 - /* Sanity checks */ 918 - if (!block || !buf || !hdr) 919 - { 920 - return EPS_PARAM_ERROR; 921 - } 922 - 923 - if (hdr->data_size < 1) 924 - { 925 - return EPS_PARAM_ERROR; 926 - } 927 - 928 - if (!hdr->uhdr.gs.fb_id) 929 - { 930 - return EPS_UNSUPPORTED_FB; 931 - } 932 - 933 - /* Reset Y channel */ 934 - reset_Y (block, hdr->uhdr.gs.w, hdr->uhdr.gs.h); 935 - 936 - /* Find filterbank from id */ 937 - fb = get_fb (hdr->uhdr.gs.fb_id); 938 - assert (fb); 939 - 940 - /* Unstuff data */ 941 - unstuff_buf = (unsigned char *) xmalloc (hdr->data_size * 942 - sizeof (unsigned char)); 943 - 944 - unstuff_bytes = unstuff_data (buf + hdr->hdr_size, unstuff_buf, 945 - hdr->data_size, hdr->data_size); 946 - 947 - if (unstuff_bytes == 0) 948 - { 949 - unstuff_buf[0] = 0; 950 - unstuff_bytes = 1; 951 - } 952 - 953 - /* Compute block size */ 954 - block_size = 955 - get_block_size (hdr->uhdr.gs.w, hdr->uhdr.gs.h, hdr->uhdr.gs.mode, 2); 956 - 957 - /* Decode coefficients */ 958 - int_block = (int **) malloc_2D (block_size, block_size, sizeof (int)); 959 - speck_decode (unstuff_buf, unstuff_bytes, int_block, block_size); 960 - free (unstuff_buf); 961 - 962 - /* Extend values from int to coeff_t */ 963 - dwt_block = 964 - (coeff_t **) malloc_2D (block_size, block_size, sizeof (coeff_t)); 965 - copy_channel (int_block, dwt_block, block_size); 966 - free_2D ((void *) int_block, block_size, block_size); 967 - 968 - /* Inverse wavelet transform */ 969 - pad_block = 970 - (coeff_t **) malloc_2D (block_size, block_size, sizeof (coeff_t)); 971 - synthesis_2D (dwt_block, pad_block, block_size, hdr->uhdr.gs.mode, fb); 972 - free_2D ((void *) dwt_block, block_size, block_size); 973 - 974 - dc_int = (unsigned char) hdr->uhdr.gs.dc; 975 - 976 - /* DC level unshift */ 977 - dc_level_unshift (pad_block, (coeff_t) dc_int, block_size, block_size); 978 - 979 - /* Extract original data */ 980 - extract_channel (pad_block, block, block_size, block_size, 981 - hdr->uhdr.gs.w, hdr->uhdr.gs.h); 982 - 983 - free_2D ((void *) pad_block, block_size, block_size); 984 - 985 - return EPS_OK; 986 -} 987 - 988 -int 989 -eps_encode_truecolor_block (unsigned char **block_R, 990 - unsigned char **block_G, 991 - unsigned char **block_B, 992 - int W, int H, int w, int h, 993 - int x, int y, int resample, 994 - unsigned char *buf, int *buf_size, 995 - int Y_rt, int Cb_rt, int Cr_rt, 996 - char *fb_id, int mode) 997 -{ 998 - filterbank_t *fb; 999 - 1000 - unsigned char *buf_next; 1001 - int bytes_left; 1002 - 1003 - unsigned char *buf_Y; 1004 - unsigned char *buf_Cb; 1005 - unsigned char *buf_Cr; 1006 - 1007 - int buf_Y_size; 1008 - int buf_Cb_size; 1009 - int buf_Cr_size; 1010 - 1011 - unsigned char *buf_Cb_Cr; 1012 - unsigned char *buf_Y_Cb_Cr; 1013 - 1014 - unsigned char *stuff_buf; 1015 - 1016 - int stuff_bytes; 1017 - int stuff_max; 1018 - int stuff_cut; 1019 - 1020 - coeff_t **pad_block_R; 1021 - coeff_t **pad_block_G; 1022 - coeff_t **pad_block_B; 1023 - 1024 - coeff_t **pad_block_Y; 1025 - coeff_t **pad_block_Cb; 1026 - coeff_t **pad_block_Cr; 1027 - 1028 - coeff_t **block_Y; 1029 - coeff_t **block_Cb; 1030 - coeff_t **block_Cr; 1031 - 1032 - coeff_t **dwt_block_Y; 1033 - coeff_t **dwt_block_Cb; 1034 - coeff_t **dwt_block_Cr; 1035 - 1036 - int **int_block_Y; 1037 - int **int_block_Cb; 1038 - int **int_block_Cr; 1039 - 1040 - int block_Y_size; 1041 - int block_Cb_size; 1042 - int block_Cr_size; 1043 - 1044 - int speck_bytes_Y; 1045 - int speck_bytes_Cb; 1046 - int speck_bytes_Cr; 1047 - 1048 - int speck_bytes; 1049 - 1050 - int full_size; 1051 - int half_size; 1052 - 1053 - coeff_t dc_Y; 1054 - coeff_t dc_Cb; 1055 - coeff_t dc_Cr; 1056 - 1057 - unsigned char dc_Y_int; 1058 - unsigned char dc_Cb_int; 1059 - unsigned char dc_Cr_int; 1060 - 1061 - crc32_t hdr_crc; 1062 - crc32_t data_crc; 1063 - 1064 - unsigned char *crc_pos; 1065 - int str_len; 1066 - 1067 - /* Sanity checks */ 1068 - if (!block_R || !block_G || !block_B) 1069 - { 1070 - return EPS_PARAM_ERROR; 1071 - } 1072 - 1073 - if (!buf || !buf_size || !fb_id) 1074 - { 1075 - return EPS_PARAM_ERROR; 1076 - } 1077 - 1078 - /* Check input parameters for consistency */ 1079 - if ((mode != EPS_MODE_NORMAL) && (mode != EPS_MODE_OTLPF)) 1080 - { 1081 - return EPS_PARAM_ERROR; 1082 - } 1083 - 1084 - if ((W <= 0) || (H <= 0)) 1085 - { 1086 - return EPS_PARAM_ERROR; 1087 - } 1088 - 1089 - if ((w < 1) || (h < 1)) 1090 - { 1091 - return EPS_PARAM_ERROR; 1092 - } 1093 - 1094 - if (w > EPS_MAX_BLOCK_SIZE + mode == EPS_MODE_OTLPF) 1095 - { 1096 - return EPS_PARAM_ERROR; 1097 - } 1098 - 1099 - if (h > EPS_MAX_BLOCK_SIZE + mode == EPS_MODE_OTLPF) 1100 - { 1101 - return EPS_PARAM_ERROR; 1102 - } 1103 - 1104 - if ((x < 0) || (y < 0)) 1105 - { 1106 - return EPS_PARAM_ERROR; 1107 - } 1108 - 1109 - if ((x + w > W) || (y + h > H)) 1110 - { 1111 - return EPS_PARAM_ERROR; 1112 - } 1113 - 1114 - if ((resample != EPS_RESAMPLE_444) && (resample != EPS_RESAMPLE_420)) 1115 - { 1116 - return EPS_PARAM_ERROR; 1117 - } 1118 - 1119 - if (*buf_size < EPS_MIN_TRUECOLOR_BUF) 1120 - { 1121 - return EPS_PARAM_ERROR; 1122 - } 1123 - 1124 - if ((Y_rt < EPS_MIN_RT) || (Cb_rt < EPS_MIN_RT) || (Cr_rt < EPS_MIN_RT)) 1125 - { 1126 - return EPS_PARAM_ERROR; 1127 - } 1128 - 1129 - if (Y_rt + Cb_rt + Cr_rt != 100) 1130 - { 1131 - return EPS_PARAM_ERROR; 1132 - } 1133 - 1134 - /* Find filterbank from id */ 1135 - if (!(fb = get_fb (fb_id))) 1136 - { 1137 - return EPS_UNSUPPORTED_FB; 1138 - } 1139 - 1140 - /* EPS_MODE_NORMAL is the only valid choise for orthogonal filters */ 1141 - if ((fb->type == ORTHOGONAL) && (mode != EPS_MODE_NORMAL)) 1142 - { 1143 - return EPS_PARAM_ERROR; 1144 - } 1145 - 1146 - buf_next = buf; 1147 - bytes_left = *buf_size; 1148 - 1149 - /* Compute bid-budget for each channel */ 1150 - buf_Cr_size = MAX ((bytes_left / 100) * Cr_rt, 1); 1151 - buf_Cb_size = MAX ((bytes_left / 100) * Cb_rt, 1); 1152 - buf_Y_size = bytes_left - buf_Cb_size - buf_Cr_size; 1153 - 1154 - /* Ensure that everything is ok */ 1155 - assert ((buf_Y_size > 0) && (buf_Cb_size > 0) && (buf_Cr_size > 0)); 1156 - assert (buf_Y_size + buf_Cb_size + buf_Cr_size == bytes_left); 1157 - 1158 - /* Compute block sizes for full and resampled channels */ 1159 - full_size = get_block_size (w, h, mode, 4); 1160 - half_size = full_size / 2 + (mode == EPS_MODE_OTLPF); 1161 - 1162 - /* Allocate memory for extended R,G,B channels */ 1163 - pad_block_R = (coeff_t **) malloc_2D (full_size, full_size, 1164 - sizeof (coeff_t)); 1165 - pad_block_G = (coeff_t **) malloc_2D (full_size, full_size, 1166 - sizeof (coeff_t)); 1167 - pad_block_B = (coeff_t **) malloc_2D (full_size, full_size, 1168 - sizeof (coeff_t)); 1169 - 1170 - /* Extend R,G,B channels */ 1171 - extend_channel (block_R, pad_block_R, w, h, full_size, full_size); 1172 - extend_channel (block_G, pad_block_G, w, h, full_size, full_size); 1173 - extend_channel (block_B, pad_block_B, w, h, full_size, full_size); 1174 - 1175 - /* Allocate memory for extended Y,Cb,Cr channels */ 1176 - pad_block_Y = (coeff_t **) malloc_2D (full_size, full_size, 1177 - sizeof (coeff_t)); 1178 - pad_block_Cb = (coeff_t **) malloc_2D (full_size, full_size, 1179 - sizeof (coeff_t)); 1180 - pad_block_Cr = (coeff_t **) malloc_2D (full_size, full_size, 1181 - sizeof (coeff_t)); 1182 - 1183 - /* Convert from R,G,B to Y,Cb,Cr color space */ 1184 - convert_RGB_to_YCbCr (pad_block_R, pad_block_G, pad_block_B, 1185 - pad_block_Y, pad_block_Cb, pad_block_Cr, 1186 - full_size, full_size); 1187 - 1188 - /* No longer needed */ 1189 - free_2D ((void *) pad_block_R, full_size, full_size); 1190 - free_2D ((void *) pad_block_G, full_size, full_size); 1191 - free_2D ((void *) pad_block_B, full_size, full_size); 1192 - 1193 - if (resample == EPS_RESAMPLE_444) 1194 - { 1195 - /* No resampling: all channels are full sized */ 1196 - block_Y_size = full_size; 1197 - block_Cb_size = full_size; 1198 - block_Cr_size = full_size; 1199 - 1200 - /* No changes */ 1201 - block_Y = pad_block_Y; 1202 - block_Cb = pad_block_Cb; 1203 - block_Cr = pad_block_Cr; 1204 - } 1205 - else 1206 - { 1207 - /* Resample image using 4:2:0 scheme */ 1208 - block_Y_size = full_size; 1209 - block_Cb_size = half_size; 1210 - block_Cr_size = half_size; 1211 - 1212 - /* No changes in Y channel */ 1213 - block_Y = pad_block_Y; 1214 - 1215 - /* Allocate memory for resampled Cb and Cr channels */ 1216 - block_Cb = (coeff_t **) malloc_2D (half_size, half_size, 1217 - sizeof (coeff_t)); 1218 - block_Cr = (coeff_t **) malloc_2D (half_size, half_size, 1219 - sizeof (coeff_t)); 1220 - 1221 - /* Resample Cb channel */ 1222 - bilinear_resample_channel (pad_block_Cb, block_Cb, 1223 - full_size, full_size, 1224 - half_size, half_size); 1225 - 1226 - /* Resample Cr channel */ 1227 - bilinear_resample_channel (pad_block_Cr, block_Cr, 1228 - full_size, full_size, 1229 - half_size, half_size); 1230 - 1231 - /* No longer needed */ 1232 - free_2D ((void *) pad_block_Cb, full_size, full_size); 1233 - free_2D ((void *) pad_block_Cr, full_size, full_size); 1234 - } 1235 - 1236 - /* DC level shift */ 1237 - dc_Y = dc_level_shift (block_Y, block_Y_size, block_Y_size); 1238 - dc_Cb = dc_level_shift (block_Cb, block_Cb_size, block_Cb_size); 1239 - dc_Cr = dc_level_shift (block_Cr, block_Cr_size, block_Cr_size); 1240 - 1241 - /* Clip DC values */ 1242 - dc_Y_int = (unsigned char) CLIP (dc_Y); 1243 - dc_Cb_int = (unsigned char) CLIP (dc_Cb); 1244 - dc_Cr_int = (unsigned char) CLIP (dc_Cr); 1245 - 1246 - /* Allocate memory for wavelet coefficients */ 1247 - dwt_block_Y = (coeff_t **) malloc_2D (block_Y_size, block_Y_size, 1248 - sizeof (coeff_t)); 1249 - dwt_block_Cb = (coeff_t **) malloc_2D (block_Cb_size, block_Cb_size, 1250 - sizeof (coeff_t)); 1251 - dwt_block_Cr = (coeff_t **) malloc_2D (block_Cr_size, block_Cr_size, 1252 - sizeof (coeff_t)); 1253 - 1254 - /* Wavelet transform */ 1255 - analysis_2D (block_Y, dwt_block_Y, block_Y_size, mode, fb); 1256 - analysis_2D (block_Cb, dwt_block_Cb, block_Cb_size, mode, fb); 1257 - analysis_2D (block_Cr, dwt_block_Cr, block_Cr_size, mode, fb); 1258 - 1259 - /* No longer needed */ 1260 - free_2D ((void *) block_Y, block_Y_size, block_Y_size); 1261 - free_2D ((void *) block_Cb, block_Cb_size, block_Cb_size); 1262 - free_2D ((void *) block_Cr, block_Cr_size, block_Cr_size); 1263 - 1264 - /* Allocate memory for rounded wavelet coefficients */ 1265 - int_block_Y = (int **) malloc_2D (block_Y_size, block_Y_size, sizeof (int)); 1266 - int_block_Cb = (int **) malloc_2D (block_Cb_size, block_Cb_size, 1267 - sizeof (int)); 1268 - int_block_Cr = (int **) malloc_2D (block_Cr_size, block_Cr_size, 1269 - sizeof (int)); 1270 - 1271 - /* Round wavelet coefficients */ 1272 - round_channel (dwt_block_Y, int_block_Y, block_Y_size); 1273 - round_channel (dwt_block_Cb, int_block_Cb, block_Cb_size); 1274 - round_channel (dwt_block_Cr, int_block_Cr, block_Cr_size); 1275 - 1276 - /* No longer needed */ 1277 - free_2D ((void *) dwt_block_Y, block_Y_size, block_Y_size); 1278 - free_2D ((void *) dwt_block_Cb, block_Cb_size, block_Cb_size); 1279 - free_2D ((void *) dwt_block_Cr, block_Cr_size, block_Cr_size); 1280 - 1281 - /* Allocate memory for encoded data */ 1282 - buf_Y = (unsigned char *) xmalloc (buf_Y_size * sizeof (unsigned char)); 1283 - buf_Cb = (unsigned char *) xmalloc (buf_Cb_size * sizeof (unsigned char)); 1284 - buf_Cr = (unsigned char *) xmalloc (buf_Cr_size * sizeof (unsigned char)); 1285 - 1286 - /* Encode Y,Cb,Cr channels */ 1287 - speck_bytes_Y = speck_encode (int_block_Y, block_Y_size, buf_Y, buf_Y_size); 1288 - 1289 - speck_bytes_Cb = speck_encode (int_block_Cb, block_Cb_size, 1290 - buf_Cb, buf_Cb_size); 1291 - 1292 - 1293 - speck_bytes_Cr = speck_encode (int_block_Cr, block_Cr_size, 1294 - buf_Cr, buf_Cr_size); 1295 - 1296 - /* No longer needed */ 1297 - free_2D ((void *) int_block_Y, block_Y_size, block_Y_size); 1298 - free_2D ((void *) int_block_Cb, block_Cb_size, block_Cb_size); 1299 - free_2D ((void *) int_block_Cr, block_Cr_size, block_Cr_size); 1300 - 1301 - /* Total number of encoded bytes */ 1302 - speck_bytes = speck_bytes_Y + speck_bytes_Cb + speck_bytes_Cr; 1303 - 1304 - /* Allocate memory for mixed Cb + Cr channel */ 1305 - buf_Cb_Cr = (unsigned char *) xmalloc ((speck_bytes_Cb + speck_bytes_Cr) * 1306 - sizeof (unsigned char)); 1307 - 1308 - /* Merge Cb and Cr channels */ 1309 - merge_channels (buf_Cb, buf_Cr, buf_Cb_Cr, speck_bytes_Cb, speck_bytes_Cr); 1310 - 1311 - /* No longer needed */ 1312 - free (buf_Cb); 1313 - free (buf_Cr); 1314 - 1315 - /* Allocate memory for mixed Y + (Cb + Cr) channel */ 1316 - buf_Y_Cb_Cr = (unsigned char *) xmalloc (speck_bytes * 1317 - sizeof (unsigned char)); 1318 - 1319 - /* Merge Y and (Cb + Cr) channels */ 1320 - merge_channels (buf_Y, buf_Cb_Cr, buf_Y_Cb_Cr, speck_bytes_Y, 1321 - speck_bytes_Cb + speck_bytes_Cr); 1322 - 1323 - /* No longer needed */ 1324 - free (buf_Y); 1325 - free (buf_Cb_Cr); 1326 - 1327 - /* Byte stuffing */ 1328 - stuff_max = speck_bytes + speck_bytes / 254 + 1; 1329 - stuff_buf = (unsigned char *) xmalloc (stuff_max * sizeof (unsigned char)); 1330 - stuff_bytes = stuff_data (buf_Y_Cb_Cr, stuff_buf, speck_bytes, stuff_max); 1331 - 1332 - assert (stuff_bytes >= speck_bytes); 1333 - 1334 - free (buf_Y_Cb_Cr); 1335 - 1336 - /* Write block header */ 1337 - str_len = snprintf ((char *) buf_next, bytes_left, 1338 - "type=tc;W=%d;H=%d;w=%d;h=%d;x=%d;y=%d;m=%d;r=%d;" 1339 - "dc=%d:%d:%d;rt=%d:%d:%d;fb=%s;", 1340 - W, H, w, h, x, y, mode, resample, 1341 - dc_Y_int, dc_Cb_int, dc_Cr_int, 1342 - speck_bytes_Y, speck_bytes_Cb, speck_bytes_Cr, fb_id); 1343 - 1344 - assert (str_len < bytes_left); 1345 - 1346 - buf_next += str_len; 1347 - bytes_left -= str_len; 1348 - 1349 - /* Compute and save header CRC */ 1350 - hdr_crc = epsilon_crc32 (buf, str_len); 1351 - hdr_crc = (hdr_crc ^ (hdr_crc >> 16)) & 0xffff; 1352 - 1353 - str_len = snprintf ((char *) buf_next, bytes_left, 1354 - "chk=%04x;crc=????????;", hdr_crc); 1355 - 1356 - assert (str_len < bytes_left); 1357 - 1358 - buf_next += str_len; 1359 - bytes_left -= str_len; 1360 - 1361 - crc_pos = buf_next - 9; 1362 - 1363 - /* Cut encoded stream to fit it within available space */ 1364 - stuff_cut = MIN (bytes_left, stuff_bytes); 1365 - memcpy (buf_next, stuff_buf, stuff_cut); 1366 - 1367 - free (stuff_buf); 1368 - 1369 - /* Compute and save data CRC */ 1370 - data_crc = epsilon_crc32 (buf_next, stuff_cut); 1371 - snprintf ((char *) crc_pos, 9, "%08x", data_crc); 1372 - crc_pos[8] = ';'; 1373 - 1374 - buf_next += stuff_cut; 1375 - bytes_left -= stuff_cut; 1376 - 1377 - /* Compute real amount of used bytes */ 1378 - *buf_size = buf_next - buf; 1379 - 1380 - return EPS_OK; 1381 -} 1382 - 1383 -int 1384 -eps_decode_truecolor_block (unsigned char **block_R, 1385 - unsigned char **block_G, 1386 - unsigned char **block_B, 1387 - unsigned char *buf, eps_block_header * hdr) 1388 -{ 1389 - filterbank_t *fb; 1390 - 1391 - unsigned char *unstuff_buf; 1392 - int unstuff_bytes; 1393 - 1394 - unsigned char *buf_Y; 1395 - unsigned char *buf_Cb; 1396 - unsigned char *buf_Cr; 1397 - unsigned char *buf_Cb_Cr; 1398 - 1399 - int speck_bytes_Y; 1400 - int speck_bytes_Cb; 1401 - int speck_bytes_Cr; 1402 - int speck_bytes_Cb_Cr; 1403 - 1404 - int full_size; 1405 - int half_size; 1406 - 1407 - int **int_block_Y; 1408 - int **int_block_Cb; 1409 - int **int_block_Cr; 1410 - 1411 - coeff_t **dwt_block_Y; 1412 - coeff_t **dwt_block_Cb; 1413 - coeff_t **dwt_block_Cr; 1414 - 1415 - coeff_t **pad_block_Y; 1416 - coeff_t **pad_block_Cb; 1417 - coeff_t **pad_block_Cr; 1418 - 1419 - coeff_t **pad_block_R; 1420 - coeff_t **pad_block_G; 1421 - coeff_t **pad_block_B; 1422 - 1423 - coeff_t **block_Y; 1424 - coeff_t **block_Cb; 1425 - coeff_t **block_Cr; 1426 - 1427 - int block_Y_size; 1428 - int block_Cb_size; 1429 - int block_Cr_size; 1430 - 1431 - unsigned char dc_Y_int; 1432 - unsigned char dc_Cb_int; 1433 - unsigned char dc_Cr_int; 1434 - 1435 - /* Sanity checks */ 1436 - if (!block_R || !block_G || !block_B) 1437 - { 1438 - return EPS_PARAM_ERROR; 1439 - } 1440 - 1441 - if (!buf || !hdr) 1442 - { 1443 - return EPS_PARAM_ERROR; 1444 - } 1445 - 1446 - if (hdr->data_size < 1) 1447 - { 1448 - return EPS_PARAM_ERROR; 1449 - } 1450 - 1451 - /* Reset RGB channels */ 1452 - reset_RGB (block_R, block_G, block_B, hdr->uhdr.tc.w, hdr->uhdr.tc.h); 1453 - 1454 - /* Find filterbank by id */ 1455 - if (!hdr->uhdr.tc.fb_id) 1456 - { 1457 - return EPS_UNSUPPORTED_FB; 1458 - } 1459 - 1460 - fb = get_fb (hdr->uhdr.tc.fb_id); 1461 - assert (fb); 1462 - 1463 - /* Unstaff data */ 1464 - unstuff_buf = (unsigned char *) xmalloc (hdr->data_size * 1465 - sizeof (unsigned char)); 1466 - 1467 - unstuff_bytes = unstuff_data (buf + hdr->hdr_size, unstuff_buf, 1468 - hdr->data_size, hdr->data_size); 1469 - 1470 - /* Consistency check */ 1471 - if (unstuff_bytes > 1472 - hdr->uhdr.tc.Y_rt + hdr->uhdr.tc.Cb_rt + hdr->uhdr.tc.Cr_rt) 1473 - { 1474 - free (unstuff_buf); 1475 - return EPS_FORMAT_ERROR; 1476 - } 1477 - 1478 - /* Dummy data */ 1479 - if (unstuff_bytes == 0) 1480 - { 1481 - unstuff_buf[0] = 0; 1482 - unstuff_bytes = 1; 1483 - } 1484 - 1485 - /* Allocate memory for Y and (Cb + Cr) channels */ 1486 - buf_Y = (unsigned char *) xmalloc (unstuff_bytes * sizeof (unsigned char)); 1487 - 1488 - buf_Cb_Cr = (unsigned char *) xmalloc (unstuff_bytes * 1489 - sizeof (unsigned char)); 1490 - 1491 - /* Split stream into Y and (Cb + Cr) channels */ 1492 - split_channels (unstuff_buf, buf_Y, buf_Cb_Cr, unstuff_bytes, 1493 - hdr->uhdr.tc.Y_rt, hdr->uhdr.tc.Cb_rt + hdr->uhdr.tc.Cr_rt, 1494 - &speck_bytes_Y, &speck_bytes_Cb_Cr); 1495 - 1496 - /* No longer needed */ 1497 - free (unstuff_buf); 1498 - 1499 - /* Consistency check */ 1500 - if (speck_bytes_Cb_Cr > hdr->uhdr.tc.Cb_rt + hdr->uhdr.tc.Cr_rt) 1501 - { 1502 - free (buf_Y); 1503 - free (buf_Cb_Cr); 1504 - return EPS_FORMAT_ERROR; 1505 - } 1506 - 1507 - /* Dummy data */ 1508 - if (speck_bytes_Y == 0) 1509 - { 1510 - buf_Y[0] = 0; 1511 - speck_bytes_Y = 1; 1512 - } 1513 - 1514 - /* Dummy data */ 1515 - if (speck_bytes_Cb_Cr == 0) 1516 - { 1517 - buf_Cb_Cr[0] = 0; 1518 - speck_bytes_Cb_Cr = 1; 1519 - } 1520 - 1521 - /* Allocate memory for Cb and Cr channels */ 1522 - buf_Cb = (unsigned char *) xmalloc (speck_bytes_Cb_Cr * 1523 - sizeof (unsigned char)); 1524 - 1525 - buf_Cr = (unsigned char *) xmalloc (speck_bytes_Cb_Cr * 1526 - sizeof (unsigned char)); 1527 - 1528 - /* Split merged (Cb + Cr) channel into Cb and Cr channels */ 1529 - split_channels (buf_Cb_Cr, buf_Cb, buf_Cr, speck_bytes_Cb_Cr, 1530 - hdr->uhdr.tc.Cb_rt, hdr->uhdr.tc.Cr_rt, 1531 - &speck_bytes_Cb, &speck_bytes_Cr); 1532 - 1533 - /* No longer needed */ 1534 - free (buf_Cb_Cr); 1535 - 1536 - /* Dummy data */ 1537 - if (speck_bytes_Cb == 0) 1538 - { 1539 - buf_Cb[0] = 0; 1540 - speck_bytes_Cb = 1; 1541 - } 1542 - 1543 - /* Dummy data */ 1544 - if (speck_bytes_Cr == 0) 1545 - { 1546 - buf_Cr[0] = 0; 1547 - speck_bytes_Cr = 1; 1548 - } 1549 - 1550 - /* Compute block sizes for full and resampled channels */ 1551 - full_size = 1552 - get_block_size (hdr->uhdr.tc.w, hdr->uhdr.tc.h, hdr->uhdr.tc.mode, 4); 1553 - half_size = full_size / 2 + (hdr->uhdr.tc.mode == EPS_MODE_OTLPF); 1554 - 1555 - if (hdr->uhdr.tc.resample == EPS_RESAMPLE_444) 1556 - { 1557 - block_Y_size = full_size; 1558 - block_Cb_size = full_size; 1559 - block_Cr_size = full_size; 1560 - } 1561 - else 1562 - { 1563 - block_Y_size = full_size; 1564 - block_Cb_size = half_size; 1565 - block_Cr_size = half_size; 1566 - } 1567 - 1568 - /* Allocate memory for Y,Cb,Cr channels */ 1569 - int_block_Y = (int **) malloc_2D (block_Y_size, block_Y_size, sizeof (int)); 1570 - int_block_Cb = (int **) malloc_2D (block_Cb_size, block_Cb_size, 1571 - sizeof (int)); 1572 - int_block_Cr = (int **) malloc_2D (block_Cr_size, block_Cr_size, 1573 - sizeof (int)); 1574 - 1575 - /* Decode data */ 1576 - speck_decode (buf_Y, speck_bytes_Y, int_block_Y, block_Y_size); 1577 - speck_decode (buf_Cb, speck_bytes_Cb, int_block_Cb, block_Cb_size); 1578 - speck_decode (buf_Cr, speck_bytes_Cr, int_block_Cr, block_Cr_size); 1579 - 1580 - /* No longer needed */ 1581 - free (buf_Y); 1582 - free (buf_Cb); 1583 - free (buf_Cr); 1584 - 1585 - /* Allocate memory for real-valued wavelet coefficients */ 1586 - dwt_block_Y = (coeff_t **) malloc_2D (block_Y_size, block_Y_size, 1587 - sizeof (coeff_t)); 1588 - dwt_block_Cb = (coeff_t **) malloc_2D (block_Cb_size, block_Cb_size, 1589 - sizeof (coeff_t)); 1590 - dwt_block_Cr = (coeff_t **) malloc_2D (block_Cr_size, block_Cr_size, 1591 - sizeof (coeff_t)); 1592 - 1593 - /* Copy data with type extension */ 1594 - copy_channel (int_block_Y, dwt_block_Y, block_Y_size); 1595 - copy_channel (int_block_Cb, dwt_block_Cb, block_Cb_size); 1596 - copy_channel (int_block_Cr, dwt_block_Cr, block_Cr_size); 1597 - 1598 - /* No longer needed */ 1599 - free_2D ((void *) int_block_Y, block_Y_size, block_Y_size); 1600 - free_2D ((void *) int_block_Cb, block_Cb_size, block_Cb_size); 1601 - free_2D ((void *) int_block_Cr, block_Cr_size, block_Cr_size); 1602 - 1603 - /* Allocate memory for restored Y,Cb,Cr channels */ 1604 - block_Y = (coeff_t **) malloc_2D (block_Y_size, block_Y_size, 1605 - sizeof (coeff_t)); 1606 - block_Cb = (coeff_t **) malloc_2D (block_Cb_size, block_Cb_size, 1607 - sizeof (coeff_t)); 1608 - block_Cr = (coeff_t **) malloc_2D (block_Cr_size, block_Cr_size, 1609 - sizeof (coeff_t)); 1610 - 1611 - /* Inverse wavelet transform */ 1612 - synthesis_2D (dwt_block_Y, block_Y, block_Y_size, hdr->uhdr.tc.mode, fb); 1613 - synthesis_2D (dwt_block_Cb, block_Cb, block_Cb_size, hdr->uhdr.tc.mode, fb); 1614 - synthesis_2D (dwt_block_Cr, block_Cr, block_Cr_size, hdr->uhdr.tc.mode, fb); 1615 - 1616 - /* No longer needed */ 1617 - free_2D ((void *) dwt_block_Y, block_Y_size, block_Y_size); 1618 - free_2D ((void *) dwt_block_Cb, block_Cb_size, block_Cb_size); 1619 - free_2D ((void *) dwt_block_Cr, block_Cr_size, block_Cr_size); 1620 - 1621 - /* Get DC values */ 1622 - dc_Y_int = (unsigned char) hdr->uhdr.tc.dc_Y; 1623 - dc_Cb_int = (unsigned char) hdr->uhdr.tc.dc_Cb; 1624 - dc_Cr_int = (unsigned char) hdr->uhdr.tc.dc_Cr; 1625 - 1626 - /* DC level unshift */ 1627 - dc_level_unshift (block_Y, (coeff_t) dc_Y_int, block_Y_size, block_Y_size); 1628 - dc_level_unshift (block_Cb, (coeff_t) dc_Cb_int, 1629 - block_Cb_size, block_Cb_size); 1630 - dc_level_unshift (block_Cr, (coeff_t) dc_Cr_int, 1631 - block_Cr_size, block_Cr_size); 1632 - 1633 - if (hdr->uhdr.tc.resample == EPS_RESAMPLE_444) 1634 - { 1635 - /* No upsampling */ 1636 - pad_block_Y = block_Y; 1637 - pad_block_Cb = block_Cb; 1638 - pad_block_Cr = block_Cr; 1639 - } 1640 - else 1641 - { 1642 - pad_block_Y = block_Y; 1643 - 1644 - /* Allocate memory for full-sized Cb and Cr channels */ 1645 - pad_block_Cb = (coeff_t **) malloc_2D (full_size, full_size, 1646 - sizeof (coeff_t)); 1647 - 1648 - pad_block_Cr = (coeff_t **) malloc_2D (full_size, full_size, 1649 - sizeof (coeff_t)); 1650 - 1651 - /* Upsample Cb and Cr channels according to 4:2:0 scheme */ 1652 - bilinear_resample_channel (block_Cb, pad_block_Cb, 1653 - block_Cb_size, block_Cb_size, 1654 - full_size, full_size); 1655 - 1656 - bilinear_resample_channel (block_Cr, pad_block_Cr, 1657 - block_Cr_size, block_Cr_size, 1658 - full_size, full_size); 1659 - 1660 - /* No longer needed */ 1661 - free_2D ((void *) block_Cb, block_Cb_size, block_Cb_size); 1662 - free_2D ((void *) block_Cr, block_Cr_size, block_Cr_size); 1663 - } 1664 - 1665 - /* Allocate memory for extended R,G,B channels */ 1666 - pad_block_R = (coeff_t **) malloc_2D (full_size, full_size, 1667 - sizeof (coeff_t)); 1668 - pad_block_G = (coeff_t **) malloc_2D (full_size, full_size, 1669 - sizeof (coeff_t)); 1670 - pad_block_B = (coeff_t **) malloc_2D (full_size, full_size, 1671 - sizeof (coeff_t)); 1672 - 1673 - /* Convert from Y,Cb,Cr to R,G,B color space */ 1674 - convert_YCbCr_to_RGB (pad_block_Y, pad_block_Cb, pad_block_Cr, 1675 - pad_block_R, pad_block_G, pad_block_B, 1676 - full_size, full_size); 1677 - 1678 - /* No longer needed */ 1679 - free_2D ((void *) pad_block_Y, full_size, full_size); 1680 - free_2D ((void *) pad_block_Cb, full_size, full_size); 1681 - free_2D ((void *) pad_block_Cr, full_size, full_size); 1682 - 1683 - /* Clip R,G,B channels */ 1684 - clip_channel (pad_block_R, full_size, full_size); 1685 - clip_channel (pad_block_G, full_size, full_size); 1686 - clip_channel (pad_block_B, full_size, full_size); 1687 - 1688 - /* Extract original data from R,G,B channels */ 1689 - extract_channel (pad_block_R, block_R, 1690 - full_size, full_size, hdr->uhdr.tc.w, hdr->uhdr.tc.h); 1691 - 1692 - extract_channel (pad_block_G, block_G, 1693 - full_size, full_size, hdr->uhdr.tc.w, hdr->uhdr.tc.h); 1694 - 1695 - extract_channel (pad_block_B, block_B, 1696 - full_size, full_size, hdr->uhdr.tc.w, hdr->uhdr.tc.h); 1697 - 1698 - /* No longer needed */ 1699 - free_2D ((void *) pad_block_R, full_size, full_size); 1700 - free_2D ((void *) pad_block_G, full_size, full_size); 1701 - free_2D ((void *) pad_block_B, full_size, full_size); 1702 - 1703 - return EPS_OK; 1704 -} 1705 - 1706 -int 1707 -eps_truncate_block (unsigned char *buf_in, unsigned char *buf_out, 1708 - eps_block_header * hdr, int *truncate_size) 1709 -{ 1710 - crc32_t data_crc; 1711 - 1712 - /* Sanity checks */ 1713 - if (!buf_in || !buf_out || !hdr) 1714 - { 1715 - return EPS_PARAM_ERROR; 1716 - } 1717 - 1718 - if (*truncate_size < MAX (EPS_MIN_GRAYSCALE_BUF, EPS_MIN_TRUECOLOR_BUF)) 1719 - { 1720 - return EPS_PARAM_ERROR; 1721 - } 1722 - 1723 - /* Copy data */ 1724 - *truncate_size = MIN (*truncate_size, hdr->hdr_size + hdr->data_size); 1725 - memcpy (buf_out, buf_in, *truncate_size); 1726 - 1727 - /* Recompute data CRC */ 1728 - data_crc = 1729 - epsilon_crc32 (buf_out + hdr->hdr_size, *truncate_size - hdr->hdr_size); 1730 - snprintf ((char *) (buf_out + hdr->hdr_size - 9), 9, "%08x", data_crc); 1731 - *(buf_out + hdr->hdr_size - 1) = ';'; 1732 - 1733 - return EPS_OK; 1734 -}
Deleted epsilon/libmain.h.
1 -/* 2 - * $Id: libmain.h,v 1.17 2007/06/15 18:09:16 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -/** \file 25 - * 26 - * \brief Auxiliary support routines 27 - * 28 - * This file contains auxiliary support routines for 29 - * the library. While being top-level they are not 30 - * intended for direct user access. */ 31 - 32 -#ifndef __LIBMAIN_H__ 33 -#define __LIBMAIN_H__ 34 - 35 -#ifdef __cplusplus 36 -extern "C" 37 -{ 38 -#endif 39 - 40 -/** \addtogroup misc Miscellanea */ 41 -/*@{*/ 42 - 43 -#include <common.h> 44 -#include <filterbank.h> 45 -#include <filter.h> 46 - 47 -/** Round a channel 48 - * 49 - * This function rounds each \a in_channel element to the 50 - * nearest integer and stores it in the \a out_channel. 51 - * 52 - * \param in_channel Input channel 53 - * \param out_channel Output channel 54 - * \param channel_size Channel size 55 - * 56 - * \return \c VOID */ 57 - local void round_channel (coeff_t ** in_channel, int **out_channel, 58 - int channel_size); 59 - 60 -/** Copy a channel 61 - * 62 - * This function copies \a in_channel into the \a out_channel. 63 - * 64 - * \param in_channel Input channel 65 - * \param out_channel Output channel 66 - * \param channel_size Channel size 67 - * 68 - * \return \c VOID */ 69 - local void copy_channel (int **in_channel, coeff_t ** out_channel, 70 - int channel_size); 71 - 72 -/** Reset RGB channels 73 - * 74 - * This function initializes arrays \a block_R, \a block_G 75 - * and \a block_B with zero. 76 - * 77 - * \param block_R Red channel 78 - * \param block_G Green channel 79 - * \param block_B Blue channel 80 - * \param width Block width 81 - * \param height Block height 82 - * 83 - * \return \c VOID */ 84 - local void reset_RGB (unsigned char **block_R, unsigned char **block_G, 85 - unsigned char **block_B, int width, int height); 86 - 87 -/** Reset Y channel 88 - * 89 - * This function initializes array \a block_Y with zero. 90 - * 91 - * \param block_Y Luma channel 92 - * \param width Block width 93 - * \param height Block height 94 - * 95 - * \return \c VOID */ 96 - local void reset_Y (unsigned char **block_Y, int width, int height); 97 - 98 -/** Get filterbank pointer from id 99 - * 100 - * This function gets filterbank pointer from \a id. 101 - * 102 - * \param id Filterbank id 103 - * 104 - * \return Filterbank pointer or \c NULL if not found */ 105 - local filterbank_t *get_fb (char *id); 106 - 107 -/** Compute required block size 108 - * 109 - * This function computes block size (width=height) required 110 - * for encoding and decoding process. Depending on \a mode 111 - * parameter, function returns nearest power of two or 112 - * power of two plus one. 113 - * 114 - * \param w Source width 115 - * \param h Source height 116 - * \param mode Either \ref EPS_MODE_NORMAL or \ref EPS_MODE_OTLPF 117 - * \param min Minimal block size 118 - * 119 - * \return Block size (width = height) */ 120 - local int get_block_size (int w, int h, int mode, int min); 121 - 122 -/** Terminate block header 123 - * 124 - * This function replaces \a n_fields -th occurence of \c ; 125 - * symbol with \c 0. In other words, this function zero-terminates 126 - * header. 127 - * 128 - * \param buf Data buffer 129 - * \param buf_size Buffer size 130 - * \param n_fields Number of header fields 131 - * 132 - * \return Either \ref EPS_OK or \ref EPS_FORMAT_ERROR */ 133 - local int terminate_header (unsigned char *buf, int buf_size, int n_fields); 134 - 135 -/** Unterminate header 136 - * 137 - * This function is inverse to the previous one. It 138 - * replaces first occurence of \c 0 with \c ; symbol. 139 - * 140 - * \param buf Data buffer 141 - * 142 - * \return \c VOID */ 143 - local void unterminate_header (unsigned char *buf); 144 - 145 -/** Header sanity check 146 - * 147 - * This function ensures that header contains only 148 - * legal symbols. 149 - * 150 - * \param buf Data buffer 151 - * 152 - * \return Either \ref EPS_OK or \ref EPS_FORMAT_ERROR */ 153 - local int header_sanity_check (unsigned char *buf); 154 - 155 -/** Read GRAYSCALE header 156 - * 157 - * This function reads and checks block header of type 158 - * \ref EPS_GRAYSCALE_BLOCK. Result is stored in the \a hdr 159 - * structure. 160 - * 161 - * \note Structure \a hdr is undefined unless function 162 - * returns \ref EPS_OK. 163 - * 164 - * \param buf Data buffer 165 - * \param buf_size Buffer size 166 - * \param hdr Block header 167 - * 168 - * \return Either \ref EPS_OK or \ref EPS_PARAM_ERROR 169 - * or \ref EPS_FORMAT_ERROR */ 170 - local int read_gs_header (unsigned char *buf, int buf_size, 171 - eps_block_header * hdr); 172 - 173 -/** Read TRUECOLOR header 174 - * 175 - * This function reads and checks block header of type 176 - * \ref EPS_TRUECOLOR_BLOCK. Result is stored in the \a hdr 177 - * structure. 178 - * 179 - * \note Structure \a hdr is undefined unless function 180 - * returns \ref EPS_OK. 181 - * 182 - * \param buf Data buffer 183 - * \param buf_size Buffer size 184 - * \param hdr Block header 185 - * 186 - * \return Either \ref EPS_OK or \ref EPS_PARAM_ERROR 187 - * or \ref EPS_FORMAT_ERROR */ 188 - local int read_tc_header (unsigned char *buf, int buf_size, 189 - eps_block_header * hdr); 190 - 191 -/*@}*/ 192 - 193 -#ifdef __cplusplus 194 -} 195 -#endif 196 - 197 -#endif /* __LIBMAIN_H__ */
Deleted epsilon/list.c.
1 -/* 2 - * $Id: list.c,v 1.16 2007/05/20 13:19:12 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -#include <common.h> 25 -#include <list.h> 26 -#include <mem_alloc.h> 27 - 28 -linked_list * 29 -alloc_linked_list (void) 30 -{ 31 - linked_list *list; 32 - 33 - list = (linked_list *) xmalloc (sizeof (linked_list)); 34 - list->first = list->last = NULL; 35 - 36 - return list; 37 -} 38 - 39 -void 40 -free_linked_list (linked_list * list) 41 -{ 42 - list_node *cur_node; 43 - list_node *next_node; 44 - 45 - cur_node = list->first; 46 - 47 - while (cur_node) 48 - { 49 - next_node = cur_node->next; 50 - free_list_node (cur_node); 51 - cur_node = next_node; 52 - } 53 - 54 - free (list); 55 -} 56 - 57 -list_node * 58 -alloc_list_node (int data_size) 59 -{ 60 - list_node *node; 61 - 62 - node = (list_node *) xmalloc (sizeof (list_node)); 63 - node->data = xmalloc (data_size); 64 - node->next = node->prev = NULL; 65 - 66 - return node; 67 -} 68 - 69 -void 70 -free_list_node (list_node * node) 71 -{ 72 - free (node->data); 73 - free (node); 74 -} 75 - 76 -void 77 -append_list_node (linked_list * list, list_node * node) 78 -{ 79 - if ((list->first == NULL) && (list->last == NULL)) 80 - { 81 - node->next = node->prev = NULL; 82 - list->first = list->last = node; 83 - return; 84 - } 85 - 86 - node->next = NULL; 87 - node->prev = list->last; 88 - 89 - list->last->next = node; 90 - list->last = node; 91 -} 92 - 93 -void 94 -prepend_list_node (linked_list * list, list_node * node) 95 -{ 96 - if ((list->first == NULL) && (list->last == NULL)) 97 - { 98 - node->next = node->prev = NULL; 99 - list->first = list->last = node; 100 - return; 101 - } 102 - 103 - node->prev = NULL; 104 - node->next = list->first; 105 - 106 - list->first->prev = node; 107 - list->first = node; 108 -} 109 - 110 -void 111 -remove_list_node_link (linked_list * list, list_node * node) 112 -{ 113 - if (node->prev) 114 - { 115 - node->prev->next = node->next; 116 - } 117 - else 118 - { 119 - list->first = node->next; 120 - } 121 - 122 - if (node->next) 123 - { 124 - node->next->prev = node->prev; 125 - } 126 - else 127 - { 128 - list->last = node->prev; 129 - } 130 -} 131 - 132 -void 133 -remove_list_node (linked_list * list, list_node * node) 134 -{ 135 - remove_list_node_link (list, node); 136 - free_list_node (node); 137 -} 138 - 139 -void 140 -move_list_node (linked_list * src_list, linked_list * dst_list, 141 - list_node * node) 142 -{ 143 - remove_list_node_link (src_list, node); 144 - append_list_node (dst_list, node); 145 -} 146 - 147 -void 148 -insert_before_list_node (linked_list * list, list_node * node, 149 - list_node * new_node) 150 -{ 151 - if (!node) 152 - { 153 - prepend_list_node (list, new_node); 154 - return; 155 - } 156 - 157 - if (node->prev) 158 - { 159 - new_node->next = node; 160 - new_node->prev = node->prev; 161 - node->prev = node->prev->next = new_node; 162 - } 163 - else 164 - { 165 - new_node->prev = NULL; 166 - new_node->next = node; 167 - node->prev = list->first = new_node; 168 - } 169 -} 170 - 171 -void 172 -insert_after_list_node (linked_list * list, list_node * node, 173 - list_node * new_node) 174 -{ 175 - if (!node) 176 - { 177 - append_list_node (list, new_node); 178 - return; 179 - } 180 - 181 - if (node->next) 182 - { 183 - new_node->prev = node; 184 - new_node->next = node->next; 185 - node->next = node->next->prev = new_node; 186 - } 187 - else 188 - { 189 - new_node->next = NULL; 190 - new_node->prev = node; 191 - node->next = list->last = new_node; 192 - } 193 -}
Deleted epsilon/list.h.
1 -/* 2 - * $Id: list.h,v 1.17 2007/05/20 13:19:12 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -/** \file 25 - * 26 - * \brief Doubly-linked lists 27 - * 28 - * This file contains routines to deal with doubly-linked lists. */ 29 - 30 -#ifndef __LIST_H__ 31 -#define __LIST_H__ 32 - 33 -#ifdef __cplusplus 34 -extern "C" 35 -{ 36 -#endif 37 - 38 -/** \addtogroup list Doubly-linked lists */ 39 -/*@{*/ 40 - 41 -#include <common.h> 42 - 43 -/** This macro evaluates to 1 if list \a _x is empty */ 44 -#define LIST_IS_EMPTY(_x) (_x->first == NULL) 45 - 46 -/** List node structure */ 47 - typedef struct list_node_tag list_node; 48 - 49 -/** List node structure 50 - * 51 - * This structure represents a doubly-linked list node. */ 52 - struct list_node_tag 53 - { 54 - /** Data block pointer */ 55 - void *data; 56 - /** Next list node */ 57 - list_node *next; 58 - /** Previous list node */ 59 - list_node *prev; 60 - }; 61 - 62 -/** Doubly-linked list structure 63 - * 64 - * This structure represents a doubly-linked list. */ 65 - typedef struct linked_list_tag 66 - { 67 - /** First node */ 68 - list_node *first; 69 - /** Last node */ 70 - list_node *last; 71 - } linked_list; 72 - 73 -/** Allocate new doubly-linked list 74 - * 75 - * This function allocates new doubly-linked list. 76 - * 77 - * \return New list pointer */ 78 - linked_list *alloc_linked_list (void); 79 - 80 -/** Release doubly-linked list 81 - * 82 - * This function releases doubly-linked \a list with all 83 - * its internal nodes. Data blocks associated with nodes 84 - * are also released. 85 - * 86 - * \return \c VOID */ 87 - void free_linked_list (linked_list * list); 88 - 89 -/** Allocate new list node 90 - * 91 - * This function allocates new list node with associated 92 - * data block of size \a data_size. 93 - * 94 - * \return New node pointer */ 95 - list_node *alloc_list_node (int data_size); 96 - 97 -/** Release list node 98 - * 99 - * This function releases list \a node and data block 100 - * associated with it. 101 - * 102 - * \return \c VOID */ 103 - void free_list_node (list_node * node); 104 - 105 -/** Append list node 106 - * 107 - * This function appends new \a node to the \a list tail. 108 - * 109 - * \note Node must be properly allocated beforehand. 110 - * 111 - * \return \c VOID */ 112 - void append_list_node (linked_list * list, list_node * node); 113 - 114 -/** Prepend list node 115 - * 116 - * This function prepends new \a node to the \a list head. 117 - * 118 - * \note Node must be properly allocated beforehand. 119 - * 120 - * \return \c VOID */ 121 - void prepend_list_node (linked_list * list, list_node * node); 122 - 123 -/** Remove list node 124 - * 125 - * This function removes \a node links from the \a list. 126 - * 127 - * \note The \a node itself is not released and can be added 128 - * to another list. 129 - * 130 - * \return \c VOID */ 131 - void remove_list_node_link (linked_list * list, list_node * node); 132 - 133 -/** Remove list node 134 - * 135 - * This function removes \a node from the \a list. 136 - * 137 - * \note The \a node itself is released and cannot be added 138 - * to another list. 139 - * 140 - * \return \c VOID */ 141 - void remove_list_node (linked_list * list, list_node * node); 142 - 143 -/** Move node 144 - * 145 - * This function moves \a node from \a src_list to \a dst_list. 146 - * 147 - * \return \c VOID */ 148 - void move_list_node (linked_list * src_list, linked_list * dst_list, 149 - list_node * node); 150 - 151 -/** Insert node 152 - * 153 - * This function inserts \a new_node to the \a list just before \a node. 154 - * 155 - * \return \c VOID */ 156 - void insert_before_list_node (linked_list * list, list_node * node, 157 - list_node * new_node); 158 - 159 -/** Insert node 160 - * 161 - * This function inserts \a new_node to the \a list just after \a node. 162 - * 163 - * \return \c VOID */ 164 - void insert_after_list_node (linked_list * list, list_node * node, 165 - list_node * new_node); 166 - 167 -/*@}*/ 168 - 169 -#ifdef __cplusplus 170 -} 171 -#endif 172 - 173 -#endif /* __LIST_H__ */
Deleted epsilon/mem_alloc.c.
1 -/* 2 - * $Id: mem_alloc.c,v 1.15 2007/05/20 13:19:12 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -#include <common.h> 25 -#include <mem_alloc.h> 26 - 27 -void * 28 -xmalloc (size_t size) 29 -{ 30 - void *ptr; 31 - 32 - ptr = malloc (size); 33 - assert (ptr); 34 - 35 - return ptr; 36 -} 37 - 38 -void ** 39 -malloc_2D (int width, int height, int size) 40 -{ 41 - void **ptr; 42 - int i; 43 - 44 - assert ((width > 0) && (height > 0) && (size > 0)); 45 - ptr = (void **) xmalloc (height * sizeof (void *)); 46 - 47 - for (i = 0; i < height; i++) 48 - { 49 - ptr[i] = (void *) xmalloc (width * size); 50 - } 51 - 52 - return ptr; 53 -} 54 - 55 -void 56 -free_2D (void **ptr, int width, int height) 57 -{ 58 - int i; 59 - 60 - assert ((width > 0) && (height > 0)); 61 - 62 - for (i = 0; i < height; i++) 63 - { 64 - free (ptr[i]); 65 - } 66 - 67 - free (ptr); 68 -}
Deleted epsilon/mem_alloc.h.
1 -/* 2 - * $Id: mem_alloc.h,v 1.14 2007/05/20 13:19:12 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -/** \file 25 - * 26 - * \brief Two-dimensional memory management 27 - * 28 - * This file contains two-dimensional memory management routines. */ 29 - 30 -#ifndef __MEM_ALLOC_H__ 31 -#define __MEM_ALLOC_H__ 32 - 33 -#ifdef __cplusplus 34 -extern "C" 35 -{ 36 -#endif 37 - 38 -/** \addtogroup mem_alloc Two-dimensional memory management */ 39 -/*@{*/ 40 - 41 -#include <common.h> 42 - 43 -/** Memory allocation 44 - * 45 - * This function allocates one-dimensional array of desired size. 46 - * 47 - * \param size Size in bytes 48 - * 49 - * \return Array pointer 50 - * 51 - * \warning This function halts program if all virtual memory 52 - * is exhausted. */ 53 - void *xmalloc (size_t size); 54 - 55 -/** Two-dimensional memory allocation 56 - * 57 - * This function allocates two-dimensional array of desired size. 58 - * 59 - * \param width Array width 60 - * \param height Array height 61 - * \param size Element size 62 - * 63 - * \return Array pointer 64 - * 65 - * \warning This function halts program if all virtual memory 66 - * is exhausted. */ 67 - void **malloc_2D (int width, int height, int size); 68 - 69 -/** Two-dimensional memory releasing 70 - * 71 - * This function releases two-dimensional array allocated by #malloc_2D. 72 - * 73 - * \param ptr Array pointer 74 - * \param width Array width 75 - * \param height Array height 76 - * 77 - * \return \c VOID */ 78 - void free_2D (void **ptr, int width, int height); 79 - 80 -/*@}*/ 81 - 82 -#ifdef __cplusplus 83 -} 84 -#endif 85 - 86 -#endif /* __MEM_ALLOC_H__ */
Deleted epsilon/merge_split.c.
1 -/* 2 - * $Id: merge_split.c,v 1.13 2007/05/20 13:19:12 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -#include <common.h> 25 -#include <merge_split.h> 26 - 27 -void 28 -merge_channels (unsigned char *channel_A, unsigned char *channel_B, 29 - unsigned char *channel_AB, int len_A, int len_B) 30 -{ 31 - int pkg_A, pkg_B; /* Real number of bytes in the package */ 32 - int div_A, div_B; /* Base number of bytes in the package */ 33 - int rem_A, rem_B; /* Instant reminder */ 34 - int cur_A, cur_B; /* Current savings */ 35 - int tr0_A, tr0_B; /* Lower threshold */ 36 - int tr1_A, tr1_B; /* Upper threshold */ 37 - int i, pkg, min; 38 - 39 - /* Sanity checks. I love them! */ 40 - assert ((len_A > 0) && (len_B > 0)); 41 - 42 - /* Total number of packages */ 43 - min = MIN (len_A, len_B); 44 - 45 - /* 1-st channel setup */ 46 - div_A = len_A / min; 47 - cur_A = len_A; 48 - rem_A = 0; 49 - tr0_A = div_A * min; 50 - tr1_A = tr0_A + min; 51 - 52 - /* 2-nd channel setup */ 53 - div_B = len_B / min; 54 - cur_B = len_B; 55 - rem_B = 0; 56 - tr0_B = div_B * min; 57 - tr1_B = tr0_B + min; 58 - 59 - /* Loop for all packages */ 60 - for (pkg = 0; pkg < min; pkg++) 61 - { 62 - /* Update current savings */ 63 - cur_A = len_A + rem_A; 64 - 65 - if (cur_A >= tr1_A) 66 - { 67 - /* Choose maximal package & update reminder */ 68 - pkg_A = div_A + 1; 69 - rem_A = cur_A - tr1_A; 70 - } 71 - else 72 - { 73 - /* Choose minimal package & update reminder */ 74 - pkg_A = div_A; 75 - rem_A = cur_A - tr0_A; 76 - } 77 - 78 - /* Update current savings */ 79 - cur_B = len_B + rem_B; 80 - 81 - if (cur_B >= tr1_B) 82 - { 83 - /* Choose maximal package & update reminder */ 84 - pkg_B = div_B + 1; 85 - rem_B = cur_B - tr1_B; 86 - } 87 - else 88 - { 89 - /* Choose minimal package & update reminder */ 90 - pkg_B = div_B; 91 - rem_B = cur_B - tr0_B; 92 - } 93 - 94 - /* Put bytes from the 1-st channel */ 95 - for (i = 0; i < pkg_A; i++) 96 - { 97 - *channel_AB++ = *channel_A++; 98 - } 99 - 100 - /* Put bytes from the 2-nd channel */ 101 - for (i = 0; i < pkg_B; i++) 102 - { 103 - *channel_AB++ = *channel_B++; 104 - } 105 - } 106 -} 107 - 108 -void 109 -split_channels (unsigned char *channel_AB, 110 - unsigned char *channel_A, unsigned char *channel_B, 111 - int len_AB, int len_A, int len_B, 112 - int *real_len_A, int *real_len_B) 113 -{ 114 - int pkg_A, pkg_B; /* Real number of bytes in the package */ 115 - int div_A, div_B; /* Base number of bytes in the package */ 116 - int rem_A, rem_B; /* Instant reminder */ 117 - int cur_A, cur_B; /* Current savings */ 118 - int tr0_A, tr0_B; /* Lower threshold */ 119 - int tr1_A, tr1_B; /* Upper threshold */ 120 - int i, pkg, min; 121 - 122 - unsigned char *end_AB; 123 - unsigned char *end_A; 124 - unsigned char *end_B; 125 - 126 - /* Sanity checks */ 127 - assert ((len_A > 0) && (len_B > 0) && (len_AB > 0)); 128 - assert (real_len_A && real_len_B); 129 - assert (len_A + len_B >= len_AB); 130 - 131 - /* Set end-of-buffer pointers */ 132 - end_AB = channel_AB + len_AB; 133 - end_A = channel_A + len_A; 134 - end_B = channel_B + len_B; 135 - 136 - /* Real amount of saved bytes */ 137 - *real_len_A = *real_len_B = 0; 138 - 139 - /* Original number of packages (real stream may be truncated) */ 140 - min = MIN (len_A, len_B); 141 - 142 - /* 1-st channel setup */ 143 - div_A = len_A / min; 144 - cur_A = len_A; 145 - rem_A = 0; 146 - tr0_A = div_A * min; 147 - tr1_A = tr0_A + min; 148 - 149 - /* 2-nd channel setup */ 150 - div_B = len_B / min; 151 - cur_B = len_B; 152 - rem_B = 0; 153 - tr0_B = div_B * min; 154 - tr1_B = tr0_B + min; 155 - 156 - /* Loop for all packages */ 157 - for (pkg = 0; pkg < min; pkg++) 158 - { 159 - /* Update current savings */ 160 - cur_A = len_A + rem_A; 161 - 162 - if (cur_A >= tr1_A) 163 - { 164 - /* Choose maximal package & update reminder */ 165 - pkg_A = div_A + 1; 166 - rem_A = cur_A - tr1_A; 167 - } 168 - else 169 - { 170 - /* Choose minimal package & update reminder */ 171 - pkg_A = div_A; 172 - rem_A = cur_A - tr0_A; 173 - } 174 - 175 - /* Update current savings */ 176 - cur_B = len_B + rem_B; 177 - 178 - if (cur_B >= tr1_B) 179 - { 180 - /* Choose maximal package & update reminder */ 181 - pkg_B = div_B + 1; 182 - rem_B = cur_B - tr1_B; 183 - } 184 - else 185 - { 186 - /* Choose minimal package & update reminder */ 187 - pkg_B = div_B; 188 - rem_B = cur_B - tr0_B; 189 - } 190 - 191 - /* Extract pkg_A bytes from the stream into the channel_A */ 192 - for (i = 0; 193 - (i < pkg_A) && (channel_A < end_A) && (channel_AB < end_AB); i++) 194 - { 195 - *channel_A++ = *channel_AB++; 196 - (*real_len_A)++; 197 - } 198 - 199 - /* Extract pkg_B bytes from the stream into the channel_B */ 200 - for (i = 0; 201 - (i < pkg_B) && (channel_B < end_B) && (channel_AB < end_AB); i++) 202 - { 203 - *channel_B++ = *channel_AB++; 204 - (*real_len_B)++; 205 - } 206 - 207 - /* All avaiable bytes are processed */ 208 - if (channel_AB >= end_AB) 209 - { 210 - assert (*real_len_A + *real_len_B == len_AB); 211 - 212 - if ((pkg == min - 1) && (channel_A == end_A) 213 - && (channel_B == end_B)) 214 - { 215 - assert ((*real_len_A == len_A) && (*real_len_B == len_B)); 216 - } 217 - 218 - return; 219 - } 220 - } 221 -}
Deleted epsilon/merge_split.h.
1 -/* 2 - * $Id: merge_split.h,v 1.15 2007/05/20 13:19:12 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -/** \file 25 - * 26 - * \brief Merge and split 27 - * 28 - * The library expects that color image consists of 3 independent 29 - * channels: Y, Cb and Cr. In order to provide smooth image scaling 30 - * corresponding bitstreams should be merged into a singe bitstream. 31 - * On decoding, the inverse operation should be taken. */ 32 - 33 -#ifndef __MERGE_SPLIT_H__ 34 -#define __MERGE_SPLIT_H__ 35 - 36 -#ifdef __cplusplus 37 -extern "C" 38 -{ 39 -#endif 40 - 41 -/** \addtogroup merge_split Merge and split */ 42 -/*@{*/ 43 - 44 -#include <common.h> 45 - 46 -/** Merge two channels 47 - * 48 - * This function merges \a channel_A with \a channel_B. Result is stored 49 - * in the \a channel_AB. Note that on return, combined \a channel_AB can 50 - * be further merged with another channel. 51 - * 52 - * \param channel_A Channel A 53 - * \param channel_B Channel B 54 - * \param channel_AB Combined channel AB 55 - * \param len_A Length of the \a channel_A 56 - * \param len_B Length of the \a channel_B 57 - * 58 - * \note The caller should allocate at least \a len_A + \a len_B 59 - * bytes for the \a channel_AB array. 60 - * 61 - * \return \c VOID */ 62 - void merge_channels (unsigned char *channel_A, unsigned char *channel_B, 63 - unsigned char *channel_AB, int len_A, int len_B); 64 - 65 -/** Split combined channel 66 - * 67 - * This function splits combined \a channel_AB into 68 - * the \a channel_A and \a channel_B. It is important to note 69 - * that \a channel_AB can be truncated at any position beforehand. 70 - * In this case \a channel_A and \a channel_B will contain only 71 - * part of original data. Real amount of saved bytes will be stored 72 - * in the \a real_len_A and \a real_len_B respectively. 73 - * 74 - * \param channel_AB Combined channel AB 75 - * \param channel_A Channel A 76 - * \param channel_B Channel B 77 - * \param len_AB Current length of the \a channel_AB 78 - * \param len_A Original length of the \a channel_A 79 - * \param len_B Original length of the \a channel_B 80 - * \param real_len_A Number of bytes actually used in the \a channel_A 81 - * \param real_len_B Number of bytes actually used in the \a channel_B 82 - * 83 - * \note The caller should allocate at least \a len_AB bytes for 84 - * \a channel_A and \a channel_B arrays. 85 - * 86 - * \return \c VOID */ 87 - void split_channels (unsigned char *channel_AB, 88 - unsigned char *channel_A, unsigned char *channel_B, 89 - int len_AB, int len_A, int len_B, 90 - int *real_len_A, int *real_len_B); 91 - 92 -/*@}*/ 93 - 94 -#ifdef __cplusplus 95 -} 96 -#endif 97 - 98 -#endif /* __MERGE_SPLIT_H__ */
Deleted epsilon/msvc/inttypes.h.
1 -// ISO C9x compliant inttypes.h for Microsoft Visual Studio 2 -// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 3 -// 4 -// Copyright (c) 2006 Alexander Chemeris 5 -// 6 -// Redistribution and use in source and binary forms, with or without 7 -// modification, are permitted provided that the following conditions are met: 8 -// 9 -// 1. Redistributions of source code must retain the above copyright notice, 10 -// this list of conditions and the following disclaimer. 11 -// 12 -// 2. Redistributions in binary form must reproduce the above copyright 13 -// notice, this list of conditions and the following disclaimer in the 14 -// documentation and/or other materials provided with the distribution. 15 -// 16 -// 3. The name of the author may be used to endorse or promote products 17 -// derived from this software without specific prior written permission. 18 -// 19 -// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 20 -// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 21 -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 22 -// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 24 -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 25 -// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 26 -// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 27 -// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 28 -// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 -// 30 -/////////////////////////////////////////////////////////////////////////////// 31 - 32 -#ifndef _MSC_VER // [ 33 -#error "Use this header only with Microsoft Visual C++ compilers!" 34 -#endif // _MSC_VER ] 35 - 36 -#ifndef _MSC_INTTYPES_H_ // [ 37 -#define _MSC_INTTYPES_H_ 38 - 39 -#if _MSC_VER > 1000 40 -#pragma once 41 -#endif 42 - 43 -#include <stdint.h> 44 - 45 -// 7.8 Format conversion of integer types 46 - 47 -typedef struct { 48 - intmax_t quot; 49 - intmax_t rem; 50 -} imaxdiv_t; 51 - 52 -// 7.8.1 Macros for format specifiers 53 - 54 -// The fprintf macros for signed integers are: 55 -#define PRId8 "d" 56 -#define PRIi8 "i" 57 -#define PRIdLEAST8 "d" 58 -#define PRIiLEAST8 "i" 59 -#define PRIdFAST8 "d" 60 -#define PRIiFAST8 "i" 61 - 62 -#define PRId16 "hd" 63 -#define PRIi16 "hi" 64 -#define PRIdLEAST16 "hd" 65 -#define PRIiLEAST16 "hi" 66 -#define PRIdFAST16 "hd" 67 -#define PRIiFAST16 "hi" 68 - 69 -#define PRId32 "I32d" 70 -#define PRIi32 "I32i" 71 -#define PRIdLEAST32 "I32d" 72 -#define PRIiLEAST32 "I32i" 73 -#define PRIdFAST32 "I32d" 74 -#define PRIiFAST32 "I32i" 75 - 76 -#define PRId64 "I64d" 77 -#define PRIi64 "I64i" 78 -#define PRIdLEAST64 "I64d" 79 -#define PRIiLEAST64 "I64i" 80 -#define PRIdFAST64 "I64d" 81 -#define PRIiFAST64 "I64i" 82 - 83 -#define PRIdMAX "I64d" 84 -#define PRIiMAX "I64i" 85 - 86 -#define PRIdPTR "Id" 87 -#define PRIiPTR "Ii" 88 - 89 -// The fprintf macros for unsigned integers are: 90 -#define PRIo8 "o" 91 -#define PRIu8 "u" 92 -#define PRIx8 "x" 93 -#define PRIX8 "X" 94 -#define PRIoLEAST8 "o" 95 -#define PRIuLEAST8 "u" 96 -#define PRIxLEAST8 "x" 97 -#define PRIXLEAST8 "X" 98 -#define PRIoFAST8 "o" 99 -#define PRIuFAST8 "u" 100 -#define PRIxFAST8 "x" 101 -#define PRIXFAST8 "X" 102 - 103 -#define PRIo16 "ho" 104 -#define PRIu16 "hu" 105 -#define PRIx16 "hx" 106 -#define PRIX16 "hX" 107 -#define PRIoLEAST16 "ho" 108 -#define PRIuLEAST16 "hu" 109 -#define PRIxLEAST16 "hx" 110 -#define PRIXLEAST16 "hX" 111 -#define PRIoFAST16 "ho" 112 -#define PRIuFAST16 "hu" 113 -#define PRIxFAST16 "hx" 114 -#define PRIXFAST16 "hX" 115 - 116 -#define PRIo32 "I32o" 117 -#define PRIu32 "I32u" 118 -#define PRIx32 "I32x" 119 -#define PRIX32 "I32X" 120 -#define PRIoLEAST32 "I32o" 121 -#define PRIuLEAST32 "I32u" 122 -#define PRIxLEAST32 "I32x" 123 -#define PRIXLEAST32 "I32X" 124 -#define PRIoFAST32 "I32o" 125 -#define PRIuFAST32 "I32u" 126 -#define PRIxFAST32 "I32x" 127 -#define PRIXFAST32 "I32X" 128 - 129 -#define PRIo64 "I64o" 130 -#define PRIu64 "I64u" 131 -#define PRIx64 "I64x" 132 -#define PRIX64 "I64X" 133 -#define PRIoLEAST64 "I64o" 134 -#define PRIuLEAST64 "I64u" 135 -#define PRIxLEAST64 "I64x" 136 -#define PRIXLEAST64 "I64X" 137 -#define PRIoFAST64 "I64o" 138 -#define PRIuFAST64 "I64u" 139 -#define PRIxFAST64 "I64x" 140 -#define PRIXFAST64 "I64X" 141 - 142 -#define PRIoMAX "I64o" 143 -#define PRIuMAX "I64u" 144 -#define PRIxMAX "I64x" 145 -#define PRIXMAX "I64X" 146 - 147 -#define PRIoPTR "Io" 148 -#define PRIuPTR "Iu" 149 -#define PRIxPTR "Ix" 150 -#define PRIXPTR "IX" 151 - 152 -// The fscanf macros for signed integers are: 153 -#define SCNd8 "d" 154 -#define SCNi8 "i" 155 -#define SCNdLEAST8 "d" 156 -#define SCNiLEAST8 "i" 157 -#define SCNdFAST8 "d" 158 -#define SCNiFAST8 "i" 159 - 160 -#define SCNd16 "hd" 161 -#define SCNi16 "hi" 162 -#define SCNdLEAST16 "hd" 163 -#define SCNiLEAST16 "hi" 164 -#define SCNdFAST16 "hd" 165 -#define SCNiFAST16 "hi" 166 - 167 -#define SCNd32 "ld" 168 -#define SCNi32 "li" 169 -#define SCNdLEAST32 "ld" 170 -#define SCNiLEAST32 "li" 171 -#define SCNdFAST32 "ld" 172 -#define SCNiFAST32 "li" 173 - 174 -#define SCNd64 "I64d" 175 -#define SCNi64 "I64i" 176 -#define SCNdLEAST64 "I64d" 177 -#define SCNiLEAST64 "I64i" 178 -#define SCNdFAST64 "I64d" 179 -#define SCNiFAST64 "I64i" 180 - 181 -#define SCNdMAX "I64d" 182 -#define SCNiMAX "I64i" 183 - 184 -#ifdef _WIN64 // [ 185 -# define SCNdPTR "I64d" 186 -# define SCNiPTR "I64i" 187 -#else // _WIN64 ][ 188 -# define SCNdPTR "ld" 189 -# define SCNiPTR "li" 190 -#endif // _WIN64 ] 191 - 192 -// The fscanf macros for unsigned integers are: 193 -#define SCNo8 "o" 194 -#define SCNu8 "u" 195 -#define SCNx8 "x" 196 -#define SCNX8 "X" 197 -#define SCNoLEAST8 "o" 198 -#define SCNuLEAST8 "u" 199 -#define SCNxLEAST8 "x" 200 -#define SCNXLEAST8 "X" 201 -#define SCNoFAST8 "o" 202 -#define SCNuFAST8 "u" 203 -#define SCNxFAST8 "x" 204 -#define SCNXFAST8 "X" 205 - 206 - 207 -#define SCNo16 "ho" 208 -#define SCNu16 "hu" 209 -#define SCNx16 "hx" 210 -#define SCNX16 "hX" 211 -#define SCNoLEAST16 "ho" 212 -#define SCNuLEAST16 "hu" 213 -#define SCNxLEAST16 "hx" 214 -#define SCNXLEAST16 "hX" 215 -#define SCNoFAST16 "ho" 216 -#define SCNuFAST16 "hu" 217 -#define SCNxFAST16 "hx" 218 -#define SCNXFAST16 "hX" 219 - 220 -#define SCNo32 "lo" 221 -#define SCNu32 "lu" 222 -#define SCNx32 "lx" 223 -#define SCNX32 "lX" 224 -#define SCNoLEAST32 "lo" 225 -#define SCNuLEAST32 "lu" 226 -#define SCNxLEAST32 "lx" 227 -#define SCNXLEAST32 "lX" 228 -#define SCNoFAST32 "lo" 229 -#define SCNuFAST32 "lu" 230 -#define SCNxFAST32 "lx" 231 -#define SCNXFAST32 "lX" 232 - 233 -#define SCNo64 "I64o" 234 -#define SCNu64 "I64u" 235 -#define SCNx64 "I64x" 236 -#define SCNX64 "I64X" 237 -#define SCNoLEAST64 "I64o" 238 -#define SCNuLEAST64 "I64u" 239 -#define SCNxLEAST64 "I64x" 240 -#define SCNXLEAST64 "I64X" 241 -#define SCNoFAST64 "I64o" 242 -#define SCNuFAST64 "I64u" 243 -#define SCNxFAST64 "I64x" 244 -#define SCNXFAST64 "I64X" 245 - 246 -#define SCNoMAX "I64o" 247 -#define SCNuMAX "I64u" 248 -#define SCNxMAX "I64x" 249 -#define SCNXMAX "I64X" 250 - 251 -#ifdef _WIN64 // [ 252 -# define SCNoPTR "I64o" 253 -# define SCNuPTR "I64u" 254 -# define SCNxPTR "I64x" 255 -# define SCNXPTR "I64X" 256 -#else // _WIN64 ][ 257 -# define SCNoPTR "lo" 258 -# define SCNuPTR "lu" 259 -# define SCNxPTR "lx" 260 -# define SCNXPTR "lX" 261 -#endif // _WIN64 ] 262 - 263 -// 7.8.2 Functions for greatest-width integer types 264 - 265 -// 7.8.2.1 The imaxabs function 266 -#define imaxabs _abs64 267 - 268 -// 7.8.2.2 The imaxdiv function 269 - 270 -// This is modified version of div() function from Microsoft's div.c found 271 -// in %MSVC.NET%\crt\src\div.c 272 -#ifdef STATIC_IMAXDIV // [ 273 -static 274 -#else // STATIC_IMAXDIV ][ 275 -_inline 276 -#endif // STATIC_IMAXDIV ] 277 -imaxdiv_t __cdecl imaxdiv(intmax_t numer, intmax_t denom) 278 -{ 279 - imaxdiv_t result; 280 - 281 - result.quot = numer / denom; 282 - result.rem = numer % denom; 283 - 284 - if (numer < 0 && result.rem > 0) { 285 - // did division wrong; must fix up 286 - ++result.quot; 287 - result.rem -= denom; 288 - } 289 - 290 - return result; 291 -} 292 - 293 -// 7.8.2.3 The strtoimax and strtoumax functions 294 -#define strtoimax _strtoi64 295 -#define strtoumax _strtoui64 296 - 297 -// 7.8.2.4 The wcstoimax and wcstoumax functions 298 -#define wcstoimax _wcstoi64 299 -#define wcstoumax _wcstoui64 300 - 301 - 302 -#endif // _MSC_INTTYPES_H_ ]
Deleted epsilon/msvc/stdint.h.
1 -// ISO C9x compliant stdint.h for Microsoft Visual Studio 2 -// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 3 -// 4 -// Copyright (c) 2006-2008 Alexander Chemeris 5 -// 6 -// Redistribution and use in source and binary forms, with or without 7 -// modification, are permitted provided that the following conditions are met: 8 -// 9 -// 1. Redistributions of source code must retain the above copyright notice, 10 -// this list of conditions and the following disclaimer. 11 -// 12 -// 2. Redistributions in binary form must reproduce the above copyright 13 -// notice, this list of conditions and the following disclaimer in the 14 -// documentation and/or other materials provided with the distribution. 15 -// 16 -// 3. The name of the author may be used to endorse or promote products 17 -// derived from this software without specific prior written permission. 18 -// 19 -// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 20 -// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 21 -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 22 -// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 24 -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 25 -// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 26 -// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 27 -// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 28 -// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 -// 30 -/////////////////////////////////////////////////////////////////////////////// 31 - 32 -#ifndef _MSC_VER // [ 33 -#error "Use this header only with Microsoft Visual C++ compilers!" 34 -#endif // _MSC_VER ] 35 - 36 -#ifndef _MSC_STDINT_H_ // [ 37 -#define _MSC_STDINT_H_ 38 - 39 -#if _MSC_VER > 1000 40 -#pragma once 41 -#endif 42 - 43 -#include <limits.h> 44 - 45 -// For Visual Studio 6 in C++ mode and for many Visual Studio versions when 46 -// compiling for ARM we should wrap <wchar.h> include with 'extern "C++" {}' 47 -// or compiler give many errors like this: 48 -// error C2733: second C linkage of overloaded function 'wmemchr' not allowed 49 -#ifdef __cplusplus 50 -extern "C" { 51 -#endif 52 -# include <wchar.h> 53 -#ifdef __cplusplus 54 -} 55 -#endif 56 - 57 -// Define _W64 macros to mark types changing their size, like intptr_t. 58 -#ifndef _W64 59 -# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300 60 -# define _W64 __w64 61 -# else 62 -# define _W64 63 -# endif 64 -#endif 65 - 66 - 67 -// 7.18.1 Integer types 68 - 69 -// 7.18.1.1 Exact-width integer types 70 - 71 -// Visual Studio 6 and Embedded Visual C++ 4 doesn't 72 -// realize that, e.g. char has the same size as __int8 73 -// so we give up on __intX for them. 74 -#if (_MSC_VER < 1300) 75 - typedef signed char int8_t; 76 - typedef signed short int16_t; 77 - typedef signed int int32_t; 78 - typedef unsigned char uint8_t; 79 - typedef unsigned short uint16_t; 80 - typedef unsigned int uint32_t; 81 -#else 82 - typedef signed __int8 int8_t; 83 - typedef signed __int16 int16_t; 84 - typedef signed __int32 int32_t; 85 - typedef unsigned __int8 uint8_t; 86 - typedef unsigned __int16 uint16_t; 87 - typedef unsigned __int32 uint32_t; 88 -#endif 89 -typedef signed __int64 int64_t; 90 -typedef unsigned __int64 uint64_t; 91 - 92 - 93 -// 7.18.1.2 Minimum-width integer types 94 -typedef int8_t int_least8_t; 95 -typedef int16_t int_least16_t; 96 -typedef int32_t int_least32_t; 97 -typedef int64_t int_least64_t; 98 -typedef uint8_t uint_least8_t; 99 -typedef uint16_t uint_least16_t; 100 -typedef uint32_t uint_least32_t; 101 -typedef uint64_t uint_least64_t; 102 - 103 -// 7.18.1.3 Fastest minimum-width integer types 104 -typedef int8_t int_fast8_t; 105 -typedef int16_t int_fast16_t; 106 -typedef int32_t int_fast32_t; 107 -typedef int64_t int_fast64_t; 108 -typedef uint8_t uint_fast8_t; 109 -typedef uint16_t uint_fast16_t; 110 -typedef uint32_t uint_fast32_t; 111 -typedef uint64_t uint_fast64_t; 112 - 113 -// 7.18.1.4 Integer types capable of holding object pointers 114 -#ifdef _WIN64 // [ 115 - typedef signed __int64 intptr_t; 116 - typedef unsigned __int64 uintptr_t; 117 -#else // _WIN64 ][ 118 - typedef _W64 signed int intptr_t; 119 - typedef _W64 unsigned int uintptr_t; 120 -#endif // _WIN64 ] 121 - 122 -// 7.18.1.5 Greatest-width integer types 123 -typedef int64_t intmax_t; 124 -typedef uint64_t uintmax_t; 125 - 126 - 127 -// 7.18.2 Limits of specified-width integer types 128 - 129 -#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See footnote 220 at page 257 and footnote 221 at page 259 130 - 131 -// 7.18.2.1 Limits of exact-width integer types 132 -#define INT8_MIN ((int8_t)_I8_MIN) 133 -#define INT8_MAX _I8_MAX 134 -#define INT16_MIN ((int16_t)_I16_MIN) 135 -#define INT16_MAX _I16_MAX 136 -#define INT32_MIN ((int32_t)_I32_MIN) 137 -#define INT32_MAX _I32_MAX 138 -#define INT64_MIN ((int64_t)_I64_MIN) 139 -#define INT64_MAX _I64_MAX 140 -#define UINT8_MAX _UI8_MAX 141 -#define UINT16_MAX _UI16_MAX 142 -#define UINT32_MAX _UI32_MAX 143 -#define UINT64_MAX _UI64_MAX 144 - 145 -// 7.18.2.2 Limits of minimum-width integer types 146 -#define INT_LEAST8_MIN INT8_MIN 147 -#define INT_LEAST8_MAX INT8_MAX 148 -#define INT_LEAST16_MIN INT16_MIN 149 -#define INT_LEAST16_MAX INT16_MAX 150 -#define INT_LEAST32_MIN INT32_MIN 151 -#define INT_LEAST32_MAX INT32_MAX 152 -#define INT_LEAST64_MIN INT64_MIN 153 -#define INT_LEAST64_MAX INT64_MAX 154 -#define UINT_LEAST8_MAX UINT8_MAX 155 -#define UINT_LEAST16_MAX UINT16_MAX 156 -#define UINT_LEAST32_MAX UINT32_MAX 157 -#define UINT_LEAST64_MAX UINT64_MAX 158 - 159 -// 7.18.2.3 Limits of fastest minimum-width integer types 160 -#define INT_FAST8_MIN INT8_MIN 161 -#define INT_FAST8_MAX INT8_MAX 162 -#define INT_FAST16_MIN INT16_MIN 163 -#define INT_FAST16_MAX INT16_MAX 164 -#define INT_FAST32_MIN INT32_MIN 165 -#define INT_FAST32_MAX INT32_MAX 166 -#define INT_FAST64_MIN INT64_MIN 167 -#define INT_FAST64_MAX INT64_MAX 168 -#define UINT_FAST8_MAX UINT8_MAX 169 -#define UINT_FAST16_MAX UINT16_MAX 170 -#define UINT_FAST32_MAX UINT32_MAX 171 -#define UINT_FAST64_MAX UINT64_MAX 172 - 173 -// 7.18.2.4 Limits of integer types capable of holding object pointers 174 -#ifdef _WIN64 // [ 175 -# define INTPTR_MIN INT64_MIN 176 -# define INTPTR_MAX INT64_MAX 177 -# define UINTPTR_MAX UINT64_MAX 178 -#else // _WIN64 ][ 179 -# define INTPTR_MIN INT32_MIN 180 -# define INTPTR_MAX INT32_MAX 181 -# define UINTPTR_MAX UINT32_MAX 182 -#endif // _WIN64 ] 183 - 184 -// 7.18.2.5 Limits of greatest-width integer types 185 -#define INTMAX_MIN INT64_MIN 186 -#define INTMAX_MAX INT64_MAX 187 -#define UINTMAX_MAX UINT64_MAX 188 - 189 -// 7.18.3 Limits of other integer types 190 - 191 -#ifdef _WIN64 // [ 192 -# define PTRDIFF_MIN _I64_MIN 193 -# define PTRDIFF_MAX _I64_MAX 194 -#else // _WIN64 ][ 195 -# define PTRDIFF_MIN _I32_MIN 196 -# define PTRDIFF_MAX _I32_MAX 197 -#endif // _WIN64 ] 198 - 199 -#define SIG_ATOMIC_MIN INT_MIN 200 -#define SIG_ATOMIC_MAX INT_MAX 201 - 202 -#ifndef SIZE_MAX // [ 203 -# ifdef _WIN64 // [ 204 -# define SIZE_MAX _UI64_MAX 205 -# else // _WIN64 ][ 206 -# define SIZE_MAX _UI32_MAX 207 -# endif // _WIN64 ] 208 -#endif // SIZE_MAX ] 209 - 210 -// WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h> 211 -#ifndef WCHAR_MIN // [ 212 -# define WCHAR_MIN 0 213 -#endif // WCHAR_MIN ] 214 -#ifndef WCHAR_MAX // [ 215 -# define WCHAR_MAX _UI16_MAX 216 -#endif // WCHAR_MAX ] 217 - 218 -#define WINT_MIN 0 219 -#define WINT_MAX _UI16_MAX 220 - 221 -#endif // __STDC_LIMIT_MACROS ] 222 - 223 - 224 -// 7.18.4 Limits of other integer types 225 - 226 -#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260 227 - 228 -// 7.18.4.1 Macros for minimum-width integer constants 229 - 230 -#define INT8_C(val) val##i8 231 -#define INT16_C(val) val##i16 232 -#define INT32_C(val) val##i32 233 -#define INT64_C(val) val##i64 234 - 235 -#define UINT8_C(val) val##ui8 236 -#define UINT16_C(val) val##ui16 237 -#define UINT32_C(val) val##ui32 238 -#define UINT64_C(val) val##ui64 239 - 240 -// 7.18.4.2 Macros for greatest-width integer constants 241 -#define INTMAX_C INT64_C 242 -#define UINTMAX_C UINT64_C 243 - 244 -#endif // __STDC_CONSTANT_MACROS ] 245 - 246 - 247 -#endif // _MSC_STDINT_H_ ]
Deleted epsilon/pad.c.
1 -/* 2 - * $Id: pad.c,v 1.13 2007/05/20 13:19:12 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -#include <common.h> 25 -#include <pad.h> 26 -#include <color.h> 27 - 28 -void 29 -extend_channel (unsigned char **input_channel, 30 - coeff_t ** output_channel, 31 - int input_width, int input_height, 32 - int output_width, int output_height) 33 -{ 34 - int i, j; 35 - 36 - /* Sanity checks */ 37 - assert ((input_width > 0) && (input_height > 0)); 38 - assert ((output_width > 0) && (output_height > 0)); 39 - assert (output_width >= input_width); 40 - assert (output_height >= input_height); 41 - 42 - /* Copy original */ 43 - for (i = 0; i < input_height; i++) 44 - { 45 - for (j = 0; j < input_width; j++) 46 - { 47 - output_channel[i][j] = input_channel[i][j]; 48 - } 49 - } 50 - 51 - /* Fill horizontally */ 52 - for (i = 0; i < input_height; i++) 53 - { 54 - for (j = 0; j < output_width - input_width; j++) 55 - { 56 - output_channel[i][input_width + j] = 57 - output_channel[i][ABS (input_width - j - 1)]; 58 - } 59 - } 60 - 61 - /* Fill vertically */ 62 - for (j = 0; j < output_width; j++) 63 - { 64 - for (i = 0; i < output_height - input_height; i++) 65 - { 66 - output_channel[i + input_height][j] = 67 - output_channel[ABS (input_height - i - 1)][j]; 68 - } 69 - } 70 -} 71 - 72 -void 73 -extract_channel (coeff_t ** input_channel, 74 - unsigned char **output_channel, 75 - int input_width, int input_height, 76 - int output_width, int output_height) 77 -{ 78 - int i, j; 79 - 80 - /* Sanity checks */ 81 - assert ((input_width > 0) && (input_height > 0)); 82 - assert ((output_width > 0) && (output_height > 0)); 83 - assert (output_width <= input_width); 84 - assert (output_height <= output_height); 85 - 86 - /* Extract & clip original data */ 87 - for (i = 0; i < output_height; i++) 88 - { 89 - for (j = 0; j < output_width; j++) 90 - { 91 - output_channel[i][j] = CLIP (input_channel[i][j]); 92 - } 93 - } 94 -}
Deleted epsilon/pad.h.
1 -/* 2 - * $Id: pad.h,v 1.15 2007/05/20 13:19:12 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -/** \file 25 - * 26 - * \brief Padding 27 - * 28 - * The library expects that the image consists of square blocks 29 - * of certain size. Namely, 2^N or 2^N + 1 depending on selected 30 - * wavelet transform mode. Nevertheless, most real-life images 31 - * do not meet this strict requirement. That`s why we need to pad 32 - * boundary image blocks to the full size. Missing data is obtained 33 - * using pixel mirroring. */ 34 - 35 -#ifndef __PAD_H__ 36 -#define __PAD_H__ 37 - 38 -#ifdef __cplusplus 39 -extern "C" 40 -{ 41 -#endif 42 - 43 -/** \addtogroup pad Padding */ 44 -/*@{*/ 45 - 46 -#include <common.h> 47 - 48 -/** Channel extension 49 - * 50 - * This function extends \a input_channel using mirroring 51 - * operation. The result is stored in the \a output_channel. 52 - * Note that the \a output_channel must be greater than or 53 - * equal to the \a input_channel in both width and height. 54 - * Minimal channel size allowed is 1x1 pixels. Boundary 55 - * pixels are duplicated. 56 - * 57 - * \param input_channel Input channel 58 - * \param output_channel Output channel 59 - * \param input_width Input channel width 60 - * \param input_height Input channel height 61 - * \param output_width Output channel width 62 - * \param output_height Output channel height 63 - * 64 - * \return \c VOID */ 65 - void extend_channel (unsigned char **input_channel, 66 - coeff_t ** output_channel, 67 - int input_width, int input_height, 68 - int output_width, int output_height); 69 - 70 -/** Channel extraction 71 - * 72 - * This function extracts a block of pixels from the 73 - * \a input_channel and stores it in the \a output_channel. 74 - * Note that the \a output_channel size must be less than 75 - * or equal to the \a input_channel in both width and height. 76 - * Minimal channel size allowed is 1x1 pixels. 77 - * 78 - * \param input_channel Input channel 79 - * \param output_channel Output channel 80 - * \param input_width Input channel width 81 - * \param input_height Input channel height 82 - * \param output_width Output channel width 83 - * \param output_height Output channel height 84 - * 85 - * \return \c VOID */ 86 - void extract_channel (coeff_t ** input_channel, 87 - unsigned char **output_channel, 88 - int input_width, int input_height, 89 - int output_width, int output_height); 90 - 91 -/*@}*/ 92 - 93 -#ifdef __cplusplus 94 -} 95 -#endif 96 - 97 -#endif /* __PAD_H__ */
Deleted epsilon/resample.c.
1 -/* 2 - * $Id: resample.c,v 1.9 2007/05/20 13:19:12 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -#include <common.h> 25 -#include <resample.h> 26 - 27 -void 28 -bilinear_resample_channel (coeff_t ** input_channel, coeff_t ** output_channel, 29 - int input_width, int input_height, 30 - int output_width, int output_height) 31 -{ 32 - coeff_t t, u; 33 - coeff_t tmp; 34 - 35 - int i, j; 36 - int l, c; 37 - 38 - /* Sanity checks */ 39 - assert ((input_width > 1) && (input_height > 1)); 40 - assert ((output_width > 1) && (output_height > 1)); 41 - 42 - for (i = 0; i < output_height; i++) 43 - { 44 - for (j = 0; j < output_width; j++) 45 - { 46 - tmp = (double) (input_height - 1) * 47 - ((double) i / (double) (output_height - 1)); 48 - 49 - l = (int) tmp; 50 - 51 - if (l < 0) 52 - { 53 - l = 0; 54 - } 55 - else if (l >= input_height - 1) 56 - { 57 - l = input_height - 2; 58 - } 59 - 60 - u = tmp - (double) l; 61 - 62 - tmp = (double) (input_width - 1) * 63 - ((double) j / (double) (output_width - 1)); 64 - 65 - c = (int) tmp; 66 - 67 - if (c < 0) 68 - { 69 - c = 0; 70 - } 71 - else if (c >= input_width - 1) 72 - { 73 - c = input_width - 2; 74 - } 75 - 76 - t = tmp - (double) c; 77 - 78 - output_channel[i][j] = 79 - input_channel[l][c] * (1 - t) * (1 - u) + 80 - input_channel[l + 1][c] * (1 - t) * u + 81 - input_channel[l][c + 1] * t * (1 - u) + 82 - input_channel[l + 1][c + 1] * t * u; 83 - } 84 - } 85 -}
Deleted epsilon/resample.h.
1 -/* 2 - * $Id: resample.h,v 1.12 2007/05/20 13:19:12 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -/** \file 25 - * 26 - * \brief Resampling 27 - * 28 - * It is well known that human eye is less sensitive to color 29 - * than intensity. It is worthwhile to utilize this fact. We can 30 - * store chroma channels with lower resolution than luma. One 31 - * can achieve this through channel resampling procedure. 32 - * At the moment EPSILON library uses bilinear resampling 33 - * algorithm. 34 - * 35 - * \section References 36 - * 37 - * <a href="http://en.wikipedia.org/wiki/Bilinear_interpolation"> 38 - * Bilinear interpolation (Wikipedia) </a> 39 - * 40 - * <a href="http://alglib.sources.ru/interpolation/bilinearresample.php"> 41 - * Bilinear resampling (in Russian)</a> */ 42 - 43 -#ifndef __RESAMPLE_H__ 44 -#define __RESAMPLE_H__ 45 - 46 -#ifdef __cplusplus 47 -extern "C" 48 -{ 49 -#endif 50 - 51 -/** \addtogroup resampling Resampling */ 52 -/*@{*/ 53 - 54 -#include <common.h> 55 - 56 -/** Bilinear channel resampling 57 - * 58 - * This function performes bilinear channel resampling. 59 - * 60 - * \param input_channel Input channel 61 - * \param output_channel Output channel 62 - * \param input_width Input channel width 63 - * \param input_height Input channel height 64 - * \param output_width Output channel width 65 - * \param output_height Output channel height 66 - * 67 - * \return \c VOID 68 - * 69 - * \note Input and output dimensions must be greater than 1. */ 70 - void bilinear_resample_channel (coeff_t ** input_channel, 71 - coeff_t ** output_channel, int input_width, 72 - int input_height, int output_width, 73 - int output_height); 74 -/*@}*/ 75 - 76 -#ifdef __cplusplus 77 -} 78 -#endif 79 - 80 -#endif /* __RESAMPLE_H__ */
Deleted epsilon/speck.c.
1 -/* 2 - * $Id: speck.c,v 1.58 2008/03/22 18:04:23 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -#include <common.h> 25 -#include <speck.h> 26 -#include <mem_alloc.h> 27 -#include <list.h> 28 -#include <bit_io.h> 29 -#include <filter.h> 30 -#include <color.h> 31 - 32 -/* Before you dive into the sources, note that 33 - * X and Y axes here are swapped. In other words, 34 - * X denotes vertical position while Y denotes 35 - * horizontal position. The origin is the top-left 36 - * point. Now you a warned. */ 37 - 38 -local int 39 -max_coeff (int **channel, int channel_size) 40 -{ 41 - int i, j, max = 0; 42 - 43 - for (i = 0; i < channel_size; i++) 44 - { 45 - for (j = 0; j < channel_size; j++) 46 - { 47 - if (ABS (channel[i][j]) > max) 48 - { 49 - max = ABS (channel[i][j]); 50 - } 51 - } 52 - } 53 - 54 - return max; 55 -} 56 - 57 -local int 58 -validate_set (pixel_set * set, int channel_size) 59 -{ 60 - int base_size = channel_size & (~1); 61 - 62 - /* Basic checks */ 63 - if ((set->type != TYPE_POINT) && (set->type != TYPE_S) 64 - && (set->type != TYPE_I)) 65 - return 0; 66 - 67 - if ((set->x < 0) || (set->x >= channel_size)) 68 - return 0; 69 - 70 - if ((set->y < 0) || (set->y >= channel_size)) 71 - return 0; 72 - 73 - if ((set->width <= 0) || (set->width > channel_size)) 74 - return 0; 75 - 76 - if ((set->height <= 0) || (set->height > channel_size)) 77 - return 0; 78 - 79 - if (set->x + set->height > channel_size) 80 - return 0; 81 - 82 - if (set->y + set->width > channel_size) 83 - return 0; 84 - 85 - switch (set->type) 86 - { 87 - case TYPE_POINT: 88 - { 89 - /* Single point */ 90 - if ((set->width != 1) || (set->height != 1)) 91 - return 0; 92 - 93 - return 1; 94 - } 95 - case TYPE_S: 96 - { 97 - /* Set of type 'S' */ 98 - int scale; 99 - 100 - if ((set->width == 1) && (set->height == 1)) 101 - return 0; 102 - 103 - if (channel_size == base_size) 104 - { 105 - /* Normal mode */ 106 - if (set->width != set->height) 107 - return 0; 108 - 109 - if (!is_power_of_two (set->width)) 110 - return 0; 111 - 112 - scale = number_of_bits (set->width) - 1; 113 - 114 - if ((set->x) & (~(~0 << scale))) 115 - return 0; 116 - 117 - if ((set->y) & (~(~0 << scale))) 118 - return 0; 119 - 120 - return 1; 121 - } 122 - else 123 - { 124 - /* OTLPF mode */ 125 - if ((set->x == 0) && (set->y == 0)) 126 - { 127 - /* Origin */ 128 - if (set->width != set->height) 129 - return 0; 130 - 131 - if (!is_power_of_two (set->width - 1)) 132 - return 0; 133 - 134 - return 1; 135 - } 136 - else if ((set->x == 0) && (set->y > 1)) 137 - { 138 - /* Top border */ 139 - if (set->height - set->width != 1) 140 - return 0; 141 - 142 - if (!is_power_of_two (set->width)) 143 - return 0; 144 - 145 - scale = number_of_bits (set->width) - 1; 146 - 147 - if ((set->y - 1) & (~(~0 << scale))) 148 - return 0; 149 - 150 - return 1; 151 - } 152 - else if ((set->x > 1) && (set->y == 0)) 153 - { 154 - /* Left border */ 155 - if (set->width - set->height != 1) 156 - return 0; 157 - 158 - if (!is_power_of_two (set->height)) 159 - return 0; 160 - 161 - scale = number_of_bits (set->height) - 1; 162 - 163 - if ((set->x - 1) & (~(~0 << scale))) 164 - return 0; 165 - 166 - return 1; 167 - } 168 - else if ((set->x > 1) && (set->y > 1)) 169 - { 170 - /* Internal */ 171 - if (set->width != set->height) 172 - return 0; 173 - 174 - if (!is_power_of_two (set->width)) 175 - return 0; 176 - 177 - scale = number_of_bits (set->width) - 1; 178 - 179 - if ((set->x - 1) & (~(~0 << scale))) 180 - return 0; 181 - 182 - if ((set->y - 1) & (~(~0 << scale))) 183 - return 0; 184 - 185 - return 1; 186 - } 187 - else 188 - { 189 - return 0; 190 - } 191 - } 192 - } 193 - case TYPE_I: 194 - { 195 - /* Set of type 'I' */ 196 - if (set->x != set->y) 197 - return 0; 198 - 199 - if (set->width != set->height) 200 - return 0; 201 - 202 - if (set->x + set->width != channel_size) 203 - return 0; 204 - 205 - if (channel_size == base_size) 206 - { 207 - /* Normal mode */ 208 - if (!is_power_of_two (set->x)) 209 - return 0; 210 - } 211 - else 212 - { 213 - /* OTLPF mode */ 214 - if (!is_power_of_two (set->x - 1)) 215 - return 0; 216 - } 217 - 218 - return 1; 219 - } 220 - default: 221 - { 222 - return 0; 223 - } 224 - } 225 -} 226 - 227 -local int 228 -significance_test (pixel_set * set, int threshold, 229 - int **channel, int channel_size) 230 -{ 231 -#ifdef ENABLE_SET_VALIDATION 232 - /* Ensure that the set is valid */ 233 - assert (validate_set (set, channel_size)); 234 -#endif 235 - 236 - assert (threshold > 0); 237 - 238 - switch (set->type) 239 - { 240 - case TYPE_POINT: 241 - { 242 - /* Single point */ 243 - return (ABS (channel[set->x][set->y]) >= threshold); 244 - break; 245 - } 246 - case TYPE_S: 247 - { 248 - /* Set of type 'S' */ 249 - int x, y; 250 - 251 - for (x = set->x; x < set->x + set->height; x++) 252 - { 253 - for (y = set->y; y < set->y + set->width; y++) 254 - { 255 - if (ABS (channel[x][y]) >= threshold) 256 - { 257 - return 1; 258 - } 259 - } 260 - } 261 - 262 - return 0; 263 - break; 264 - } 265 - case TYPE_I: 266 - { 267 - /* Set of type 'I' */ 268 - int x, y; 269 - 270 - for (x = 0; x < channel_size; x++) 271 - { 272 - for (y = 0; y < channel_size; y++) 273 - { 274 - if ((x >= set->x) || (y >= set->y)) 275 - { 276 - if (ABS (channel[x][y]) >= threshold) 277 - { 278 - return 1; 279 - } 280 - } 281 - } 282 - } 283 - 284 - return 0; 285 - break; 286 - } 287 - default: 288 - { 289 - assert (0); 290 - break; 291 - } 292 - } 293 - return -1; 294 -} 295 - 296 -local void 297 -select_part_type (pixel_set * set) 298 -{ 299 - /* Guess the set type after split operation */ 300 - if ((set->width == 1) && (set->height == 1)) 301 - { 302 - set->type = TYPE_POINT; 303 - } 304 - else if ((set->width == 0) || (set->height == 0)) 305 - { 306 - set->type = TYPE_EMPTY; 307 - } 308 - else 309 - { 310 - set->type = TYPE_S; 311 - } 312 -} 313 - 314 -local void 315 -split_set (pixel_set * set, pixel_set * part1, pixel_set * part2, 316 - pixel_set * part3, pixel_set * part4, int channel_size) 317 -{ 318 - int base_size = channel_size & (~1); 319 - 320 -#ifdef ENABLE_SET_VALIDATION 321 - /* Ensure that the set is valid */ 322 - assert (validate_set (set, channel_size)); 323 -#endif 324 - 325 - switch (set->type) 326 - { 327 - case TYPE_S: 328 - { 329 - /* Split parent set of type 'S' */ 330 - part1->x = set->x; 331 - part1->y = set->y; 332 - part1->width = (set->width + 1) / 2; 333 - part1->height = (set->height + 1) / 2; 334 - select_part_type (part1); 335 - 336 - part2->x = set->x; 337 - part2->y = set->y + (set->width + 1) / 2; 338 - part2->width = set->width / 2; 339 - part2->height = (set->height + 1) / 2; 340 - select_part_type (part2); 341 - 342 - part3->x = set->x + (set->height + 1) / 2; 343 - part3->y = set->y; 344 - part3->width = (set->width + 1) / 2; 345 - part3->height = set->height / 2; 346 - select_part_type (part3); 347 - 348 - part4->x = set->x + (set->height + 1) / 2; 349 - part4->y = set->y + (set->width + 1) / 2; 350 - part4->width = set->width / 2; 351 - part4->height = set->height / 2; 352 - select_part_type (part4); 353 - 354 - break; 355 - } 356 - case TYPE_I: 357 - { 358 - /* Split parent set of type 'I' */ 359 - int p0, p1; 360 - int scale; 361 - 362 - scale = number_of_bits (set->x - (channel_size != base_size)); 363 - 364 - p0 = set->x; 365 - p1 = (1 << scale) + (channel_size != base_size); 366 - 367 - part1->x = part1->y = p1; 368 - part1->width = part1->height = channel_size - p1; 369 - part1->type = (p1 == channel_size) ? TYPE_EMPTY : TYPE_I; 370 - 371 - part2->x = 0; 372 - part2->y = p0; 373 - part2->width = p1 - p0; 374 - part2->height = p0; 375 - select_part_type (part2); 376 - 377 - part3->x = p0; 378 - part3->y = 0; 379 - part3->width = p0; 380 - part3->height = p1 - p0; 381 - select_part_type (part3); 382 - 383 - part4->x = part4->y = p0; 384 - part4->width = part4->height = p1 - p0; 385 - select_part_type (part4); 386 - 387 - break; 388 - } 389 - default: 390 - { 391 - assert (0); 392 - break; 393 - } 394 - } 395 -} 396 - 397 -local linked_list ** 398 -alloc_LIS_slots (int channel_size) 399 -{ 400 - linked_list **LIS_slots; 401 - int n_slots; 402 - int i; 403 - 404 - /* Think of this structure as a list of lists. Splitting 405 - * entire list into several slots speed-ups algorithm: 406 - * one slot for each scale. */ 407 - n_slots = number_of_bits (channel_size); 408 - LIS_slots = (linked_list **) xmalloc (n_slots * sizeof (linked_list *)); 409 - 410 - for (i = 0; i < n_slots; i++) 411 - { 412 - LIS_slots[i] = alloc_linked_list (); 413 - } 414 - 415 - return LIS_slots; 416 -} 417 - 418 -local void 419 -free_LIS_slots (linked_list ** LIS_slots, int channel_size) 420 -{ 421 - int n_slots; 422 - int i; 423 - 424 - n_slots = number_of_bits (channel_size); 425 - 426 - for (i = 0; i < n_slots; i++) 427 - { 428 - free_linked_list (LIS_slots[i]); 429 - } 430 - 431 - free (LIS_slots); 432 -} 433 - 434 -local void 435 -assign_set (list_node * node, pixel_set * set) 436 -{ 437 - PIXEL_SET (node)->type = set->type; 438 - PIXEL_SET (node)->x = set->x; 439 - PIXEL_SET (node)->y = set->y; 440 - PIXEL_SET (node)->width = set->width; 441 - PIXEL_SET (node)->height = set->height; 442 -} 443 - 444 -local void 445 -zero_channel (int **channel, int channel_size) 446 -{ 447 - int i, j; 448 - 449 - /* Reset everything to zero */ 450 - for (i = 0; i < channel_size; i++) 451 - { 452 - for (j = 0; j < channel_size; j++) 453 - { 454 - channel[i][j] = 0; 455 - } 456 - } 457 -} 458 - 459 -local int 460 -speck_encode_S (int **channel, int channel_size, 461 - pixel_set * set, linked_list ** LIS_slots, 462 - linked_list * LSP, bit_buffer * bb, int threshold) 463 -{ 464 - pixel_set new_sets[4]; 465 - int result; 466 - int st[4]; 467 - int flag; 468 - int i; 469 - 470 - /* Split parent set */ 471 - split_set (set, &new_sets[0], &new_sets[1], &new_sets[2], &new_sets[3], 472 - channel_size); 473 - 474 - /* Test each set for significance skipping over empty sets */ 475 - for (flag = 0, i = 3; i >= 0; i--) 476 - { 477 - if (new_sets[i].type == TYPE_EMPTY) 478 - { 479 - continue; 480 - } 481 - 482 - st[i] = 483 - significance_test (&new_sets[i], threshold, channel, 484 - channel_size); 485 - 486 - if (i) 487 - { 488 - flag |= st[i]; 489 - } 490 - 491 - /* If parent set is significant, but first three 492 - * child sets are not, than undoubtedly fourth 493 - * child set is significant: there is no need 494 - * to code this explicitly. Using this trick 495 - * saves some bit-budget. */ 496 - if (i || flag) 497 - { 498 - result = st[i] ? write_1 (bb) : write_0 (bb); 499 - RETURN_IF_OVERFLOW (result); 500 - } 501 - } 502 - 503 - /* Process non-empty sets using their significance information */ 504 - for (i = 0; i < 4; i++) 505 - { 506 - if (new_sets[i].type == TYPE_EMPTY) 507 - { 508 - continue; 509 - } 510 - 511 - if (st[i]) 512 - { 513 - /* Significant set */ 514 - if (new_sets[i].type == TYPE_POINT) 515 - { 516 - /* Single point */ 517 - list_node *new_node; 518 - 519 - /* Encode coefficient sign */ 520 - result = 521 - channel[new_sets[i].x][new_sets[i].y] > 522 - 0 ? write_0 (bb) : write_1 (bb); 523 - RETURN_IF_OVERFLOW (result); 524 - 525 - new_node = alloc_list_node (sizeof (pixel_set)); 526 - assign_set (new_node, &new_sets[i]); 527 - append_list_node (LSP, new_node); 528 - } 529 - else 530 - { 531 - /* Encode set of type 'S' */ 532 - result = 533 - speck_encode_S (channel, channel_size, &new_sets[i], 534 - LIS_slots, LSP, bb, threshold); 535 - 536 - RETURN_IF_OVERFLOW (result); 537 - } 538 - } 539 - else 540 - { 541 - /* Insignificant set */ 542 - list_node *new_node = alloc_list_node (sizeof (pixel_set)); 543 - assign_set (new_node, &new_sets[i]); 544 - prepend_list_node (LIS_slots[SLOT_INDEX ((&new_sets[i]))], 545 - new_node); 546 - } 547 - } 548 - 549 - return BIT_BUFFER_OK; 550 -} 551 - 552 -local int 553 -speck_process_S (int **channel, int channel_size, 554 - list_node * node, linked_list * slot, 555 - linked_list ** LIS_slots, linked_list * LSP, 556 - bit_buffer * bb, int threshold, int coding_stage) 557 -{ 558 - pixel_set *set; 559 - int result; 560 - int st; 561 - 562 - /* Test the set for significance */ 563 - set = PIXEL_SET (node); 564 - st = significance_test (set, threshold, channel, channel_size); 565 - 566 - result = st ? write_1 (bb) : write_0 (bb); 567 - RETURN_IF_OVERFLOW (result); 568 - 569 - if (st) 570 - { 571 - /* Significant set */ 572 - if (set->type == TYPE_POINT) 573 - { 574 - /* Single point: encode coefficient sign */ 575 - result = 576 - channel[set->x][set->y] > 0 ? write_0 (bb) : write_1 (bb); 577 - RETURN_IF_OVERFLOW (result); 578 - 579 - if (coding_stage == STAGE_S) 580 - { 581 - remove_list_node_link (slot, node); 582 - } 583 - 584 - append_list_node (LSP, node); 585 - } 586 - else 587 - { 588 - /* Encode set of type 'S' */ 589 - result = speck_encode_S (channel, channel_size, set, 590 - LIS_slots, LSP, bb, threshold); 591 - 592 - RETURN_IF_OVERFLOW (result); 593 - 594 - if (coding_stage == STAGE_S) 595 - { 596 - remove_list_node (slot, node); 597 - } 598 - else 599 - { 600 - free_list_node (node); 601 - } 602 - } 603 - } 604 - else 605 - { 606 - /* Insignificant set */ 607 - if (coding_stage == STAGE_I) 608 - { 609 - prepend_list_node (LIS_slots[SLOT_INDEX (set)], node); 610 - } 611 - } 612 - 613 - return BIT_BUFFER_OK; 614 -} 615 - 616 -local int 617 -speck_encode_I (int **channel, int channel_size, pixel_set * I, 618 - linked_list ** LIS_slots, linked_list * LSP, 619 - bit_buffer * bb, int threshold) 620 -{ 621 - pixel_set new_sets[3]; 622 - int result; 623 - int i; 624 - 625 - /* Split parent set */ 626 - split_set (I, I, &new_sets[0], &new_sets[1], &new_sets[2], channel_size); 627 - 628 - /* Process child sets of type 'S' */ 629 - for (i = 0; i < 3; i++) 630 - { 631 - list_node *node = alloc_list_node (sizeof (pixel_set)); 632 - assign_set (node, &new_sets[i]); 633 - 634 - /* Process child set of type 'S' */ 635 - result = speck_process_S (channel, channel_size, node, 636 - NULL, LIS_slots, LSP, bb, 637 - threshold, STAGE_I); 638 - 639 - if (result == BIT_BUFFER_OVERFLOW) 640 - { 641 - free_list_node (node); 642 - return result; 643 - } 644 - } 645 - 646 - /* Process child set of type 'I' */ 647 - result = speck_process_I (channel, channel_size, I, 648 - LIS_slots, LSP, bb, threshold); 649 - 650 - return result; 651 -} 652 - 653 -local int 654 -speck_process_I (int **channel, int channel_size, pixel_set * I, 655 - linked_list ** LIS_slots, linked_list * LSP, 656 - bit_buffer * bb, int threshold) 657 -{ 658 - int result; 659 - int st; 660 - 661 - /* Skip over empty sets */ 662 - if (I->type == TYPE_EMPTY) 663 - { 664 - return BIT_BUFFER_OK; 665 - } 666 - 667 - /* Test the set for significance */ 668 - st = significance_test (I, threshold, channel, channel_size); 669 - 670 - result = st ? write_1 (bb) : write_0 (bb); 671 - RETURN_IF_OVERFLOW (result); 672 - 673 - if (st) 674 - { 675 - /* Encode set of type 'I' */ 676 - result = speck_encode_I (channel, channel_size, I, 677 - LIS_slots, LSP, bb, threshold); 678 - 679 - RETURN_IF_OVERFLOW (result); 680 - } 681 - 682 - return BIT_BUFFER_OK; 683 -} 684 - 685 -local int 686 -encode_sorting_pass (int **channel, int channel_size, 687 - linked_list ** LIS_slots, linked_list * LSP, 688 - pixel_set * I, bit_buffer * bb, int threshold) 689 -{ 690 - int n_slots; 691 - int result; 692 - int i; 693 - 694 - n_slots = number_of_bits (channel_size); 695 - 696 - /* Travels through all LIS slots */ 697 - for (i = 0; i < n_slots; i++) 698 - { 699 - linked_list *cur_slot = LIS_slots[i]; 700 - list_node *cur_node; 701 - 702 - /* Skip over empty slots */ 703 - CONTINUE_IF_EMPTY (cur_slot); 704 - 705 - /* Get first slot node */ 706 - cur_node = cur_slot->first; 707 - 708 - /* Process all nodes within this slot */ 709 - while (cur_node) 710 - { 711 - list_node *next_node = cur_node->next; 712 - 713 - /* Process set of type 'S' */ 714 - result = speck_process_S (channel, channel_size, cur_node, 715 - cur_slot, LIS_slots, LSP, bb, 716 - threshold, STAGE_S); 717 - 718 - RETURN_IF_OVERFLOW (result); 719 - 720 - /* Next node */ 721 - cur_node = next_node; 722 - } 723 - } 724 - 725 - /* Process set of type 'I' */ 726 - result = speck_process_I (channel, channel_size, I, 727 - LIS_slots, LSP, bb, threshold); 728 - 729 - return result; 730 -} 731 - 732 -local int 733 -encode_refinement_pass (int **channel, linked_list * LSP, 734 - bit_buffer * bb, int threshold) 735 -{ 736 - list_node *node; 737 - int result; 738 - 739 - node = LSP->first; 740 - threshold <<= 1; 741 - 742 - /* Travels through all nodes in LSP */ 743 - while (node) 744 - { 745 - pixel_set *set = PIXEL_SET (node); 746 - int coeff = ABS (channel[set->x][set->y]); 747 - 748 - /* Output next bit */ 749 - if (coeff >= threshold) 750 - { 751 - result = coeff & (threshold >> 1) ? write_1 (bb) : write_0 (bb); 752 - RETURN_IF_OVERFLOW (result); 753 - } 754 - 755 - /* Next node */ 756 - node = node->next; 757 - } 758 - 759 - return BIT_BUFFER_OK; 760 -} 761 - 762 -local int 763 -speck_decode_S (int **channel, int channel_size, 764 - pixel_set * set, linked_list ** LIS_slots, 765 - linked_list * LSP, bit_buffer * bb, int threshold) 766 -{ 767 - pixel_set new_sets[4]; 768 - int result; 769 - int st[4]; 770 - int flag; 771 - int i; 772 - 773 - /* Split parent set */ 774 - split_set (set, &new_sets[0], &new_sets[1], &new_sets[2], &new_sets[3], 775 - channel_size); 776 - 777 - /* Test each set for significance skipping over empty sets */ 778 - for (flag = 0, i = 3; i >= 0; i--) 779 - { 780 - if (new_sets[i].type == TYPE_EMPTY) 781 - { 782 - continue; 783 - } 784 - 785 - if (i) 786 - { 787 - result = read_bit (bb, &st[i]); 788 - RETURN_IF_UNDERFLOW (result); 789 - 790 - flag |= st[i]; 791 - } 792 - else 793 - { 794 - if (flag) 795 - { 796 - result = read_bit (bb, &st[i]); 797 - RETURN_IF_UNDERFLOW (result); 798 - } 799 - else 800 - { 801 - /* Implicitly significant set */ 802 - st[i] = 1; 803 - } 804 - } 805 - } 806 - 807 - /* Process non-empty sets using their significance information */ 808 - for (i = 0; i < 4; i++) 809 - { 810 - if (new_sets[i].type == TYPE_EMPTY) 811 - { 812 - continue; 813 - } 814 - 815 - if (st[i]) 816 - { 817 - /* Significant set */ 818 - if (new_sets[i].type == TYPE_POINT) 819 - { 820 - /* Single point */ 821 - list_node *new_node; 822 - int sign = 0; 823 - 824 - result = read_bit (bb, &sign); 825 - RETURN_IF_UNDERFLOW (result); 826 - 827 - /* Decode coefficient sign */ 828 - if (sign) 829 - { 830 - channel[new_sets[i].x][new_sets[i].y] = 831 - -(threshold + (threshold >> 1)); 832 - } 833 - else 834 - { 835 - channel[new_sets[i].x][new_sets[i].y] = 836 - (threshold + (threshold >> 1)); 837 - } 838 - 839 - new_node = alloc_list_node (sizeof (pixel_set)); 840 - assign_set (new_node, &new_sets[i]); 841 - append_list_node (LSP, new_node); 842 - } 843 - else 844 - { 845 - /* Decode set of type 'S' */ 846 - result = 847 - speck_decode_S (channel, channel_size, &new_sets[i], 848 - LIS_slots, LSP, bb, threshold); 849 - 850 - RETURN_IF_UNDERFLOW (result); 851 - } 852 - } 853 - else 854 - { 855 - /* Insignificant set */ 856 - list_node *new_node = alloc_list_node (sizeof (pixel_set)); 857 - assign_set (new_node, &new_sets[i]); 858 - prepend_list_node (LIS_slots[SLOT_INDEX ((&new_sets[i]))], 859 - new_node); 860 - } 861 - } 862 - 863 - return BIT_BUFFER_OK; 864 -} 865 - 866 -local int 867 -speck_unprocess_S (int **channel, int channel_size, 868 - list_node * node, linked_list * slot, 869 - linked_list ** LIS_slots, linked_list * LSP, 870 - bit_buffer * bb, int threshold, int coding_stage) 871 -{ 872 - pixel_set *set; 873 - int result; 874 - int st; 875 - 876 - set = PIXEL_SET (node); 877 - 878 - /* Read set significance information */ 879 - result = read_bit (bb, &st); 880 - RETURN_IF_UNDERFLOW (result); 881 - 882 - if (st) 883 - { 884 - /* Significant set */ 885 - if (set->type == TYPE_POINT) 886 - { 887 - int sign = 0; 888 - 889 - /* Single point: read coefficient sign */ 890 - result = read_bit (bb, &sign); 891 - RETURN_IF_UNDERFLOW (result); 892 - 893 - if (sign) 894 - { 895 - channel[set->x][set->y] = -(threshold + (threshold >> 1)); 896 - } 897 - else 898 - { 899 - channel[set->x][set->y] = (threshold + (threshold >> 1)); 900 - } 901 - 902 - if (coding_stage == STAGE_S) 903 - { 904 - remove_list_node_link (slot, node); 905 - } 906 - 907 - append_list_node (LSP, node); 908 - } 909 - else 910 - { 911 - /* Decode set of type 'S' */ 912 - result = speck_decode_S (channel, channel_size, set, 913 - LIS_slots, LSP, bb, threshold); 914 - 915 - RETURN_IF_UNDERFLOW (result); 916 - 917 - if (coding_stage == STAGE_S) 918 - { 919 - remove_list_node (slot, node); 920 - } 921 - else 922 - { 923 - free_list_node (node); 924 - } 925 - } 926 - } 927 - else 928 - { 929 - /* Insignificant set */ 930 - if (coding_stage == STAGE_I) 931 - { 932 - prepend_list_node (LIS_slots[SLOT_INDEX (set)], node); 933 - } 934 - } 935 - 936 - return BIT_BUFFER_OK; 937 -} 938 - 939 -local int 940 -speck_decode_I (int **channel, int channel_size, pixel_set * I, 941 - linked_list ** LIS_slots, linked_list * LSP, 942 - bit_buffer * bb, int threshold) 943 -{ 944 - pixel_set new_sets[3]; 945 - int result; 946 - int i; 947 - 948 - /* Split parent set */ 949 - split_set (I, I, &new_sets[0], &new_sets[1], &new_sets[2], channel_size); 950 - 951 - /* Unprocess sets of type 'S' */ 952 - for (i = 0; i < 3; i++) 953 - { 954 - list_node *node = alloc_list_node (sizeof (pixel_set)); 955 - assign_set (node, &new_sets[i]); 956 - 957 - result = speck_unprocess_S (channel, channel_size, node, 958 - NULL, LIS_slots, LSP, bb, 959 - threshold, STAGE_I); 960 - 961 - if (result == BIT_BUFFER_UNDERFLOW) 962 - { 963 - free_list_node (node); 964 - return result; 965 - } 966 - } 967 - 968 - /* Unprocess set of type 'I' */ 969 - result = speck_unprocess_I (channel, channel_size, I, 970 - LIS_slots, LSP, bb, threshold); 971 - 972 - return result; 973 -} 974 - 975 -local int 976 -speck_unprocess_I (int **channel, int channel_size, 977 - pixel_set * I, linked_list ** LIS_slots, 978 - linked_list * LSP, bit_buffer * bb, int threshold) 979 -{ 980 - int result; 981 - int st; 982 - 983 - /* Skip over empty sets */ 984 - if (I->type == TYPE_EMPTY) 985 - { 986 - return BIT_BUFFER_OK; 987 - } 988 - 989 - /* Read significance information */ 990 - result = read_bit (bb, &st); 991 - RETURN_IF_UNDERFLOW (result); 992 - 993 - if (st) 994 - { 995 - result = speck_decode_I (channel, channel_size, I, 996 - LIS_slots, LSP, bb, threshold); 997 - 998 - RETURN_IF_UNDERFLOW (result); 999 - } 1000 - 1001 - return BIT_BUFFER_OK; 1002 -} 1003 - 1004 -local int 1005 -decode_sorting_pass (int **channel, int channel_size, 1006 - linked_list ** LIS_slots, linked_list * LSP, 1007 - pixel_set * I, bit_buffer * bb, int threshold) 1008 -{ 1009 - int n_slots; 1010 - int result; 1011 - int i; 1012 - 1013 - n_slots = number_of_bits (channel_size); 1014 - 1015 - /* Travels through all LIS slots */ 1016 - for (i = 0; i < n_slots; i++) 1017 - { 1018 - linked_list *cur_slot = LIS_slots[i]; 1019 - list_node *cur_node; 1020 - 1021 - /* Skip over empty slots */ 1022 - CONTINUE_IF_EMPTY (cur_slot); 1023 - 1024 - /* Get first node */ 1025 - cur_node = cur_slot->first; 1026 - 1027 - /* Process all nodes within this slot */ 1028 - while (cur_node) 1029 - { 1030 - list_node *next_node = cur_node->next; 1031 - 1032 - /* Unprocess set of type 'S' */ 1033 - result = speck_unprocess_S (channel, channel_size, cur_node, 1034 - cur_slot, LIS_slots, LSP, 1035 - bb, threshold, STAGE_S); 1036 - 1037 - RETURN_IF_UNDERFLOW (result); 1038 - 1039 - /* Next node */ 1040 - cur_node = next_node; 1041 - } 1042 - } 1043 - 1044 - /* Unprocess set of type 'I' */ 1045 - result = speck_unprocess_I (channel, channel_size, I, 1046 - LIS_slots, LSP, bb, threshold); 1047 - 1048 - return result; 1049 -} 1050 - 1051 -local int 1052 -decode_refinement_pass (int **channel, linked_list * LSP, 1053 - bit_buffer * bb, int threshold) 1054 -{ 1055 - list_node *node; 1056 - int result; 1057 - int mask; 1058 - 1059 - node = LSP->first; 1060 - 1061 - mask = threshold; 1062 - threshold <<= 1; 1063 - 1064 - /* Travels through all nodes in LSP */ 1065 - while (node) 1066 - { 1067 - pixel_set *set = PIXEL_SET (node); 1068 - 1069 - int coeff = ABS (channel[set->x][set->y]); 1070 - int sign = channel[set->x][set->y] < 0; 1071 - 1072 - if (coeff >= threshold) 1073 - { 1074 - int bit = 0; 1075 - 1076 - /* Read and shift-in next bit */ 1077 - result = read_bit (bb, &bit); 1078 - RETURN_IF_OVERFLOW (result); 1079 - 1080 - if (bit) 1081 - { 1082 - coeff |= mask; 1083 - } 1084 - else 1085 - { 1086 - coeff &= ~mask; 1087 - } 1088 - 1089 - coeff |= (mask >> 1); 1090 - channel[set->x][set->y] = sign ? -coeff : coeff; 1091 - } 1092 - 1093 - /* Next node */ 1094 - node = node->next; 1095 - } 1096 - 1097 - return BIT_BUFFER_OK; 1098 -} 1099 - 1100 -local void 1101 -speck_init (linked_list ** LIS_slots, pixel_set * I, int channel_size, int mode) 1102 -{ 1103 - list_node *root; 1104 - 1105 - root = alloc_list_node (sizeof (pixel_set)); 1106 - 1107 - /* Setup root node */ 1108 - if (mode == MODE_NORMAL) 1109 - { 1110 - PIXEL_SET (root)->type = TYPE_POINT; 1111 - PIXEL_SET (root)->x = PIXEL_SET (root)->y = 0; 1112 - PIXEL_SET (root)->width = PIXEL_SET (root)->height = 1; 1113 - 1114 - I->type = TYPE_I; 1115 - I->x = I->y = 1; 1116 - I->width = I->height = channel_size - 1; 1117 - 1118 - prepend_list_node (LIS_slots[0], root); 1119 - } 1120 - else 1121 - { 1122 - PIXEL_SET (root)->type = TYPE_S; 1123 - PIXEL_SET (root)->x = PIXEL_SET (root)->y = 0; 1124 - PIXEL_SET (root)->width = PIXEL_SET (root)->height = 2; 1125 - 1126 - I->type = TYPE_I; 1127 - I->x = I->y = 2; 1128 - I->width = I->height = channel_size - 2; 1129 - 1130 - prepend_list_node (LIS_slots[1], root); 1131 - } 1132 -} 1133 - 1134 -int 1135 -speck_encode (int **channel, int channel_size, unsigned char *buf, int buf_size) 1136 -{ 1137 - int threshold_bits; 1138 - int threshold; 1139 - int result; 1140 - int mode; 1141 - int n_bytes; 1142 - 1143 - linked_list **LIS_slots; 1144 - linked_list *LSP; 1145 - pixel_set *I; 1146 - 1147 - bit_buffer *bb; 1148 - 1149 - mode = channel_size & 1; 1150 - 1151 - /* Sanity checks */ 1152 - assert (buf_size >= MIN_SPECK_BUF_SIZE); 1153 - assert (channel_size >= 2); 1154 - 1155 - /* Allocate list of significant pixels (LSP), 1156 - * list of lists of insignificant sets (LIS_slots), 1157 - * and set of type 'I' */ 1158 - LSP = alloc_linked_list (); 1159 - LIS_slots = alloc_LIS_slots (channel_size); 1160 - I = (pixel_set *) xmalloc (sizeof (pixel_set)); 1161 - 1162 - /* Setup initial encoding threshold */ 1163 - threshold_bits = number_of_bits (max_coeff (channel, channel_size)); 1164 - threshold = threshold_bits ? (1 << (threshold_bits - 1)) : 0; 1165 - 1166 - /* Allocate bit-buffer */ 1167 - bb = (bit_buffer *) xmalloc (sizeof (bit_buffer)); 1168 - 1169 - /* Initialize bit-buffer */ 1170 - init_bits (bb, buf, buf_size); 1171 - write_bits (bb, threshold_bits, THRESHOLD_BITS); 1172 - 1173 - /* Setup encoder */ 1174 - speck_init (LIS_slots, I, channel_size, mode); 1175 - 1176 - /* Travels through all bit planes */ 1177 - while (threshold > 0) 1178 - { 1179 - /* Sorting pass */ 1180 - result = 1181 - encode_sorting_pass (channel, channel_size, LIS_slots, LSP, I, bb, 1182 - threshold); 1183 - BREAK_IF_OVERFLOW (result); 1184 - 1185 - /* Refinement pass */ 1186 - result = encode_refinement_pass (channel, LSP, bb, threshold); 1187 - BREAK_IF_OVERFLOW (result); 1188 - 1189 - /* Proceed to the next bit plane */ 1190 - threshold >>= 1; 1191 - } 1192 - 1193 - /* Flush bit-buffer */ 1194 - flush_bits (bb); 1195 - n_bytes = bb->next - bb->start; 1196 - 1197 - free (bb); 1198 - free (I); 1199 - free_LIS_slots (LIS_slots, channel_size); 1200 - free_linked_list (LSP); 1201 - 1202 - return n_bytes; 1203 -} 1204 - 1205 -void 1206 -speck_decode (unsigned char *buf, int buf_size, int **channel, int channel_size) 1207 -{ 1208 - int threshold_bits; 1209 - int threshold; 1210 - int result; 1211 - int mode; 1212 - 1213 - linked_list **LIS_slots; 1214 - linked_list *LSP; 1215 - pixel_set *I; 1216 - 1217 - bit_buffer *bb; 1218 - 1219 - mode = channel_size & 1; 1220 - 1221 - /* Sanity checks */ 1222 - assert (buf_size >= MIN_SPECK_BUF_SIZE); 1223 - assert (channel_size >= 2); 1224 - 1225 - /* Reset output channel */ 1226 - zero_channel (channel, channel_size); 1227 - 1228 - /* Allocate list of significant pixels (LSP), 1229 - * list of lists of insignificant sets (LIS_slots), 1230 - * and set of type 'I' */ 1231 - LSP = alloc_linked_list (); 1232 - LIS_slots = alloc_LIS_slots (channel_size); 1233 - I = (pixel_set *) xmalloc (sizeof (pixel_set)); 1234 - 1235 - /* Allocate bit-buffer */ 1236 - bb = (bit_buffer *) xmalloc (sizeof (bit_buffer)); 1237 - 1238 - /* Initialize bit-buffer */ 1239 - init_bits (bb, buf, buf_size); 1240 - read_bits (bb, &threshold_bits, THRESHOLD_BITS); 1241 - 1242 - /* Read encoding threshold */ 1243 - threshold = threshold_bits ? (1 << (threshold_bits - 1)) : 0; 1244 - speck_init (LIS_slots, I, channel_size, mode); 1245 - 1246 - /* Travels through all bit planes */ 1247 - while (threshold > 0) 1248 - { 1249 - /* Decode sorting pass */ 1250 - result = 1251 - decode_sorting_pass (channel, channel_size, LIS_slots, LSP, I, bb, 1252 - threshold); 1253 - BREAK_IF_UNDERFLOW (result); 1254 - 1255 - /* Decode refinement pass */ 1256 - result = decode_refinement_pass (channel, LSP, bb, threshold); 1257 - BREAK_IF_UNDERFLOW (result); 1258 - 1259 - /* Proceed to the next bit plane */ 1260 - threshold >>= 1; 1261 - } 1262 - 1263 - free (bb); 1264 - free (I); 1265 - free_LIS_slots (LIS_slots, channel_size); 1266 - free_linked_list (LSP); 1267 -}
Deleted epsilon/speck.h.
1 -/* 2 - * $Id: speck.h,v 1.48 2007/05/20 13:19:12 simakov Exp $ 3 - * 4 - * EPSILON - wavelet image compression library. 5 - * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> 6 - * 7 - * This program is free software; you can redistribute it and/or modify 8 - * it under the terms of the GNU General Public License as published by 9 - * the Free Software Foundation; either version 2 of the License, or 10 - * (at your option) any later version. 11 - * 12 - * This program is distributed in the hope that it will be useful, 13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 - * GNU General Public License for more details. 16 - * 17 - * You should have received a copy of the GNU General Public License 18 - * along with this program; if not, write to the Free Software 19 - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 - * 21 - * http://epsilon-project.sourceforge.net 22 - */ 23 - 24 -/** \file 25 - * 26 - * \brief SPECK wavelet codec 27 - * 28 - * This file represents SPECK - The Set-Partitioning Embedded Block 29 - * wavelet codec. To understand the algorithm you have to read 30 - * original article from William Pearlman and Asad Islam. Also it 31 - * is highly recommended to get familar with coding example. 32 - * 33 - * \warning The Set-Partitioning Embedded Block (SPECK) algorithm is 34 - * protected by US Patent #6,671,413 and also may be patented in your 35 - * country. 36 - * 37 - * \section References 38 - * 39 - * <a href="http://www.cipr.rpi.edu/~pearlman/">William A. Pearlman home page</a> 40 - * 41 - * <a href="http://www.cipr.rpi.edu/~pearlman/papers/vcip99_ip.pdf"> 42 - * A. Islam and W. A. Pearlman, An Embedded and Efficient Low-Complexity 43 - * Hierarchical Image Coder, Visual Communications and Image Processing 99, 44 - * Proceedings of SPIE Vol. 3653, pp. 294-305, Jan. 1999.</a> 45 - * 46 - * <a href="http://www.cipr.rpi.edu/~pearlman/papers/speck_example.pdf"> 47 - * SPECK coding example</a> */ 48 - 49 -#ifndef __SPECK_H__ 50 -#define __SPECK_H__ 51 - 52 -#ifdef __cplusplus 53 -extern "C" 54 -{ 55 -#endif 56 - 57 -/** \addtogroup speck SPECK wavelet codec */ 58 -/*@{*/ 59 - 60 -#include <common.h> 61 -#include <list.h> 62 -#include <bit_io.h> 63 - 64 -/** Pixel set of type 'point' */ 65 -#define TYPE_POINT 0 66 -/** Pixel set of type 'S' */ 67 -#define TYPE_S 1 68 -/** Pixel set of type 'I' */ 69 -#define TYPE_I 2 70 -/** Empty pixel set */ 71 -#define TYPE_EMPTY 3 72 - 73 -/** Processing sets of type 'S' */ 74 -#define STAGE_S 0 75 -/** Processing sets of type 'I' */ 76 -#define STAGE_I 1 77 - 78 -/** Minimal SPECK buffer size */ 79 -#define MIN_SPECK_BUF_SIZE 1 80 -/** Reserve 6 bits for \a theshold_bits parameter */ 81 -#define THRESHOLD_BITS 6 82 - 83 -/** Cast data pointer as \ref pixel_set structure */ 84 -#define PIXEL_SET(_set) ((pixel_set *) (_set->data)) 85 -/** Select inserting index for array of LIS slots */ 86 -#define SLOT_INDEX(_set) (number_of_bits(MIN(_set->width, _set->height)) - 1) 87 - 88 -/** Break if buffer is full */ 89 -#define BREAK_IF_OVERFLOW(_x) if (_x == BIT_BUFFER_OVERFLOW) break 90 -/** Return if buffer is full */ 91 -#define RETURN_IF_OVERFLOW(_x) if (_x == BIT_BUFFER_OVERFLOW) return _x 92 -/** Break if buffer is empty */ 93 -#define BREAK_IF_UNDERFLOW(_x) if (_x == BIT_BUFFER_UNDERFLOW) break 94 -/** Return if buffer is empty */ 95 -#define RETURN_IF_UNDERFLOW(_x) if (_x == BIT_BUFFER_UNDERFLOW) return _x 96 -/** Contunue if list is empty */ 97 -#define CONTINUE_IF_EMPTY(_x) if (LIST_IS_EMPTY(_x)) continue 98 - 99 -/** This structure represents pixel_set */ 100 - typedef struct pixel_set_tag 101 - { 102 - /** Set type */ 103 - short type; 104 - /** X coordinate */ 105 - short x; 106 - /** Y coordinate */ 107 - short y; 108 - /** Set width */ 109 - short width; 110 - /** Set height */ 111 - short height; 112 - } pixel_set; 113 - 114 -/** Find maximal coefficient 115 - * 116 - * This function returns absolute value of maximal 117 - * wavelet coefficient. 118 - * 119 - * \param channel Channel 120 - * \param channel_size Channel size 121 - * 122 - * \return Maximal coefficient value */ 123 - local int max_coeff (int **channel, int channel_size); 124 - 125 -/** Validate set 126 - * 127 - * The process of splitting, moving and testing sets in the SPECK 128 - * algorithm is a bit tricky. This function can be thought as a very 129 - * strict validation tool. 130 - * 131 - * \param set Set to validate 132 - * \param channel_size Channel size 133 - * 134 - * \return \c 1 for valid sets and \c 0 for invalid ones */ 135 - local int validate_set (pixel_set * set, int channel_size); 136 - 137 -/** Significance test 138 - * 139 - * The purpose of this function is to compare \a set against \a threshold. 140 - * If the \a set have a coefficient greater than or equal to \a threshold, 141 - * then it is said that the \a set is significant. If all coefficients 142 - * of the \a set are below \a threshold, then it is said that the \a set 143 - * is insignificant. 144 - * 145 - * \param set Set to test 146 - * \param threshold Threshold to compare against 147 - * \param channel Channel 148 - * \param channel_size Channel size 149 - * 150 - * \return \c 1 for significant sets and \c 0 for insignificant ones */ 151 - local int significance_test (pixel_set * set, int threshold, 152 - int **channel, int channel_size); 153 - 154 -/** Select partition type 155 - * 156 - * This function selects type of the \a set. 157 - * 158 - * \param set Set 159 - * 160 - * \return \c VOID */ 161 - local void select_part_type (pixel_set * set); 162 - 163 -/** Split set 164 - * 165 - * This function splits the \a set into pieces. Actual 166 - * splitting rule is defined within SPECK algorithm. 167 - * 168 - * \param set Set to split 169 - * \param part1 First part 170 - * \param part2 Second part 171 - * \param part3 Third part 172 - * \param part4 Fourth part 173 - * \param channel_size Channel size 174 - * 175 - * \return \c VOID */ 176 - local void split_set (pixel_set * set, pixel_set * part1, pixel_set * part2, 177 - pixel_set * part3, pixel_set * part4, 178 - int channel_size); 179 - 180 -/** Allocate array of LIS slots 181 - * 182 - * This function allocates array of LIS slots. 183 - * 184 - * \param channel_size Channel size 185 - * 186 - * \return Pointer to newly allocated structure */ 187 - local linked_list **alloc_LIS_slots (int channel_size); 188 - 189 -/** Release array of LIS slots 190 - * 191 - * This function releases array of LIS slots. 192 - * 193 - * \param LIS_slots Array of LIS slots 194 - * \param channel_size Channel size 195 - * 196 - * \return \c VOID */ 197 - local void free_LIS_slots (linked_list ** LIS_slots, int channel_size); 198 - 199 -/** Assign set attributes 200 - * 201 - * This function assigns \a set attributes to the \a node. 202 - * 203 - * \param node Destination node 204 - * \param set Source set 205 - * 206 - * \return \c VOID */ 207 - local void assign_set (list_node * node, pixel_set * set); 208 - 209 -/** Reset channel 210 - * 211 - * This function resets all \a channel components to zero. 212 - * 213 - * \param channel Channel 214 - * \param channel_size Channel size 215 - * 216 - * \return \c VOID */ 217 - local void zero_channel (int **channel, int channel_size); 218 - 219 -/** Encode set of type 'S' 220 - * 221 - * This function encodes \a set of type 'S'. 222 - * 223 - * \param channel Channel 224 - * \param channel_size Channel size 225 - * \param set Set to encode 226 - * \param LIS_slots Array of LIS slots 227 - * \param LSP List of Significant Pixels 228 - * \param bb Bit-buffer 229 - * \param threshold Threshold 230 - * 231 - * \return Either \ref BIT_BUFFER_OK or \ref BIT_BUFFER_OVERFLOW */ 232 - local int speck_encode_S (int **channel, int channel_size, 233 - pixel_set * set, linked_list ** LIS_slots, 234 - linked_list * LSP, bit_buffer * bb, 235 - int threshold); 236 - 237 -/** Process set of type 'S' 238 - * 239 - * This function extracts \ref pixel_set structure from the \a node, 240 - * and encodes it using \ref speck_encode_S function. 241 - * 242 - * \param channel Channel 243 - * \param channel_size Channel size 244 - * \param node Current node 245 - * \param slot Current LIS slot 246 - * \param LIS_slots Array of LIS slots 247 - * \param LSP List of Significant Pixels 248 - * \param bb Bit-buffer 249 - * \param threshold Threshold 250 - * \param coding_stage Either \ref STAGE_S or \ref STAGE_I 251 - * 252 - * \return Either \ref BIT_BUFFER_OK or \ref BIT_BUFFER_OVERFLOW */ 253 - local int speck_process_S (int **channel, int channel_size, 254 - list_node * node, linked_list * slot, 255 - linked_list ** LIS_slots, linked_list * LSP, 256 - bit_buffer * bb, int threshold, 257 - int coding_stage); 258 - 259 -/** Encode set of type 'I' 260 - * 261 - * This function encodes set of type 'I'. 262 - * 263 - * \param channel Channel 264 - * \param channel_size Channel size 265 - * \param I Set of type I 266 - * \param LIS_slots Array of LIS slots 267 - * \param LSP List of Significant Pixels 268 - * \param bb Bit-buffer 269 - * \param threshold Threshold 270 - * 271 - * \return Either \ref BIT_BUFFER_OK or \ref BIT_BUFFER_OVERFLOW */ 272 - local int speck_encode_I (int **channel, int channel_size, pixel_set * I, 273 - linked_list ** LIS_slots, linked_list * LSP, 274 - bit_buffer * bb, int threshold); 275 - 276 -/** Process set of type 'I' 277 - * 278 - * This function encodes set \a I using \ref speck_encode_I function. 279 - * 280 - * \param channel Channel 281 - * \param channel_size Channel size 282 - * \param I Set of type I 283 - * \param LIS_slots Array of LIS slots 284 - * \param LSP List of Significant Pixels 285 - * \param bb Bit-buffer 286 - * \param threshold Threshold 287 - * 288 - * \return Either \ref BIT_BUFFER_OK or \ref BIT_BUFFER_OVERFLOW */ 289 - local int speck_process_I (int **channel, int channel_size, pixel_set * I, 290 - linked_list ** LIS_slots, linked_list * LSP, 291 - bit_buffer * bb, int threshold); 292 - 293 -/** Encode sorting pass 294 - * 295 - * The SPECK encoding algorithm alternates two types of passes 296 - * through the data: sorting pass and refinement pass. This 297 - * function implements the first one. 298 - * 299 - * \param channel Channel 300 - * \param channel_size Channel size 301 - * \param LIS_slots Array of LIS slots 302 - * \param LSP List of Significant Pixels 303 - * \param I Set of type I 304 - * \param bb Bit-buffer 305 - * \param threshold Threshold 306 - * 307 - * \return Either \ref BIT_BUFFER_OK or \ref BIT_BUFFER_OVERFLOW */ 308 - local int encode_sorting_pass (int **channel, int channel_size, 309 - linked_list ** LIS_slots, linked_list * LSP, 310 - pixel_set * I, bit_buffer * bb, 311 - int threshold); 312 - 313 -/** Encode refinement pass 314 - * 315 - * The SPECK encoding algorithm alternates two types of passes 316 - * through the data: sorting pass and refinement pass. This 317 - * function implements the second one. 318 - * 319 - * \param channel Channel 320 - * \param LSP List of Significant Pixels 321 - * \param bb Bit-buffer 322 - * \param threshold Threshold 323 - * 324 - * \return Either \ref BIT_BUFFER_OK or \ref BIT_BUFFER_OVERFLOW */ 325 - local int encode_refinement_pass (int **channel, linked_list * LSP, 326 - bit_buffer * bb, int threshold); 327 - 328 -/** Decode set of type 'S' 329 - * 330 - * This function is inverse to \ref speck_encode_S. 331 - * 332 - * \param channel Channel 333 - * \param channel_size Channel size 334 - * \param set Set to decode 335 - * \param LIS_slots Array of LIS slots 336 - * \param LSP List of Significant Pixels 337 - * \param bb Bit-buffer 338 - * \param threshold Threshold 339 - * 340 - * \return Either \ref BIT_BUFFER_OK or \ref BIT_BUFFER_UNDERFLOW */ 341 - local int speck_decode_S (int **channel, int channel_size, 342 - pixel_set * set, linked_list ** LIS_slots, 343 - linked_list * LSP, bit_buffer * bb, 344 - int threshold); 345 - 346 -/** Unprocess set of type 'S' 347 - * 348 - * This function is inverse to \ref speck_process_S. 349 - * 350 - * \param channel Channel 351 - * \param channel_size Channel size 352 - * \param node Current node 353 - * \param slot Current LIS slot 354 - * \param LIS_slots Array of LIS slots 355 - * \param LSP List of Significant Pixels 356 - * \param bb Bit-buffer 357 - * \param threshold Threshold 358 - * \param coding_stage Either \ref STAGE_S or \ref STAGE_I 359 - * 360 - * \return Either \ref BIT_BUFFER_OK or \ref BIT_BUFFER_UNDERFLOW */ 361 - local int speck_unprocess_S (int **channel, int channel_size, 362 - list_node * node, linked_list * slot, 363 - linked_list ** LIS_slots, 364 - linked_list * LSP, bit_buffer * bb, 365 - int threshold, int coding_stage); 366 - 367 -/** Decode set of type 'I' 368 - * 369 - * This function is inverse to \ref speck_encode_I. 370 - * 371 - * \param channel Channel 372 - * \param channel_size Channel size 373 - * \param I Set of type I 374 - * \param LIS_slots Array of LIS slots 375 - * \param LSP List of Significant Pixels 376 - * \param bb Bit-buffer 377 - * \param threshold Threshold 378 - * 379 - * \return Either \ref BIT_BUFFER_OK or \ref BIT_BUFFER_UNDERFLOW */ 380 - local int speck_decode_I (int **channel, int channel_size, 381 - pixel_set * I, linked_list ** LIS_slots, 382 - linked_list * LSP, bit_buffer * bb, 383 - int threshold); 384 - 385 -/** Unprocess set of type 'I' 386 - * 387 - * This function is inverse to \ref speck_process_I. 388 - * 389 - * \param channel Channel 390 - * \param channel_size Channel size 391 - * \param I Set of type I 392 - * \param LIS_slots Array of LIS slots 393 - * \param LSP List of Significant Pixels 394 - * \param bb Bit-buffer 395 - * \param threshold Threshold 396 - * 397 - * \return Either \ref BIT_BUFFER_OK or \ref BIT_BUFFER_UNDERFLOW */ 398 - local int speck_unprocess_I (int **channel, int channel_size, 399 - pixel_set * I, linked_list ** LIS_slots, 400 - linked_list * LSP, bit_buffer * bb, 401 - int threshold); 402 - 403 -/** Decode sorting pass 404 - * 405 - * The SPECK decoding algorithm alternates two types of passes 406 - * through the data: sorting pass and refinement pass. This 407 - * function implements the first one. 408 - * 409 - * \param channel Channel 410 - * \param channel_size Channel size 411 - * \param LIS_slots Array of LIS slots 412 - * \param LSP List of Significant Pixels 413 - * \param I Set of type I 414 - * \param bb Bit-buffer 415 - * \param threshold Threshold 416 - * 417 - * \return Either \ref BIT_BUFFER_OK or \ref BIT_BUFFER_UNDERFLOW */ 418 - local int decode_sorting_pass (int **channel, int channel_size, 419 - linked_list ** LIS_slots, 420 - linked_list * LSP, pixel_set * I, 421 - bit_buffer * bb, int threshold); 422 - 423 -/** Decode refinement pass 424 - * 425 - * The SPECK decoding algorithm alternates two types of passes 426 - * through the data: sorting pass and refinement pass. This 427 - * function implements the second one. 428 - * 429 - * \param channel Channel 430 - * \param LSP List of Significant Pixels 431 - * \param bb Bit-buffer 432 - * \param threshold Threshold 433 - * 434 - * \return Either \ref BIT_BUFFER_OK or \ref BIT_BUFFER_UNDERFLOW */ 435 - local int decode_refinement_pass (int **channel, linked_list * LSP, 436 - bit_buffer * bb, int threshold); 437 - 438 -/** Initialize SPECK encoder or decoder 439 - * 440 - * This function initializes SPECK encoder or decoder. 441 - * 442 - * \param LIS_slots Array of LIS slots 443 - * \param I Set of type I 444 - * \param channel_size Channel size 445 - * \param mode Either \ref MODE_NORMAL or \ref MODE_OTLPF 446 - * 447 - * \return \c VOID */ 448 - local void speck_init (linked_list ** LIS_slots, pixel_set * I, 449 - int channel_size, int mode); 450 - 451 -/** Encode channel using SPECK algorithm 452 - * 453 - * This function encodes \a channel of size \a channel_size 454 - * into the buffer \a buf of size \a buf_size. 455 - * 456 - * \note Depending on encoding mode, minimal channel 457 - * size is \c 2 (for \ref MODE_NORMAL) or \c 3 458 - * (for \ref MODE_OTLPF). 459 - * 460 - * \note Minimal buffer size is \ref MIN_SPECK_BUF_SIZE 461 - * 462 - * \param channel Channel 463 - * \param channel_size Channel size 464 - * \param buf Buffer 465 - * \param buf_size Buffer size 466 - * 467 - * \return Number of bytes in \a buf actualy used by encoder */ 468 - int speck_encode (int **channel, int channel_size, 469 - unsigned char *buf, int buf_size); 470 - 471 -/** Decode channel using SPECK algorithm 472 - * 473 - * This function decodes \a channel of size \a channel_size 474 - * from the buffer \a buf of size \a buf_size. 475 - * 476 - * \note Depending on encoding mode, minimal channel 477 - * size is \c 2 (for \ref MODE_NORMAL) or \c 3 478 - * (for \ref MODE_OTLPF). 479 - * 480 - * \note Minimal buffer size is \ref MIN_SPECK_BUF_SIZE 481 - * 482 - * \param buf Buffer 483 - * \param buf_size Buffer size 484 - * \param channel Channel 485 - * \param channel_size Channel size 486 - * 487 - * \return \c VOID */ 488 - void speck_decode (unsigned char *buf, int buf_size, 489 - int **channel, int channel_size); 490 - 491 -/*@}*/ 492 - 493 -#ifdef __cplusplus 494 -} 495 -#endif 496 - 497 -#endif /* __SPECK_H__ */
Changes to headers/Makefile.am.
1 1 2 -noinst_HEADERS = rasterlite_internals.h 2 +noinst_HEADERS = rasterlite_tiff_hdrs.h rasterlite_internals.h 3 3 include_HEADERS = rasterlite.h 4 4
Changes to headers/Makefile.in.
1 -# Makefile.in generated by automake 1.10.1 from Makefile.am. 1 +# Makefile.in generated by automake 1.11.1 from Makefile.am. 2 2 # @configure_input@ 3 3 4 4 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 5 -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. 5 +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, 6 +# Inc. 6 7 # This Makefile.in is free software; the Free Software Foundation 7 8 # gives unlimited permission to copy and/or distribute it, 8 9 # with or without modifications, as long as this notice is preserved. 9 10 10 11 # This program is distributed in the hope that it will be useful, 11 12 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without 12 13 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A 13 14 # PARTICULAR PURPOSE. 14 15 15 16 @SET_MAKE@ 16 17 17 18 VPATH = @srcdir@ 18 19 pkgdatadir = $(datadir)/@PACKAGE@ 19 -pkglibdir = $(libdir)/@PACKAGE@ 20 20 pkgincludedir = $(includedir)/@PACKAGE@ 21 +pkglibdir = $(libdir)/@PACKAGE@ 22 +pkglibexecdir = $(libexecdir)/@PACKAGE@ 21 23 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd 22 24 install_sh_DATA = $(install_sh) -c -m 644 23 25 install_sh_PROGRAM = $(install_sh) -c 24 26 install_sh_SCRIPT = $(install_sh) -c 25 27 INSTALL_HEADER = $(INSTALL_DATA) 26 28 transform = $(program_transform_name) 27 29 NORMAL_INSTALL = : ................................................................................ 37 39 $(srcdir)/Makefile.am $(srcdir)/Makefile.in 38 40 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 39 41 am__aclocal_m4_deps = $(top_srcdir)/configure.ac 40 42 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 41 43 $(ACLOCAL_M4) 42 44 mkinstalldirs = $(install_sh) -d 43 45 CONFIG_CLEAN_FILES = 46 +CONFIG_CLEAN_VPATH_FILES = 44 47 SOURCES = 45 48 DIST_SOURCES = 46 49 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; 47 50 am__vpath_adj = case $$p in \ 48 51 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ 49 52 *) f=$$p;; \ 50 53 esac; 51 -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; 54 +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; 55 +am__install_max = 40 56 +am__nobase_strip_setup = \ 57 + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` 58 +am__nobase_strip = \ 59 + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" 60 +am__nobase_list = $(am__nobase_strip_setup); \ 61 + for p in $$list; do echo "$$p $$p"; done | \ 62 + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ 63 + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ 64 + if (++n[$$2] == $(am__install_max)) \ 65 + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ 66 + END { for (dir in files) print dir, files[dir] }' 67 +am__base_list = \ 68 + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ 69 + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' 52 70 am__installdirs = "$(DESTDIR)$(includedir)" 53 -includeHEADERS_INSTALL = $(INSTALL_HEADER) 54 71 HEADERS = $(include_HEADERS) $(noinst_HEADERS) 55 72 ETAGS = etags 56 73 CTAGS = ctags 57 74 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 58 75 ACLOCAL = @ACLOCAL@ 59 76 AMTAR = @AMTAR@ 60 77 AR = @AR@ ................................................................................ 73 90 CXXDEPMODE = @CXXDEPMODE@ 74 91 CXXFLAGS = @CXXFLAGS@ 75 92 CYGPATH_W = @CYGPATH_W@ 76 93 DEFS = @DEFS@ 77 94 DEPDIR = @DEPDIR@ 78 95 DLLTOOL = @DLLTOOL@ 79 96 DSYMUTIL = @DSYMUTIL@ 80 -ECHO = @ECHO@ 97 +DUMPBIN = @DUMPBIN@ 81 98 ECHO_C = @ECHO_C@ 82 99 ECHO_N = @ECHO_N@ 83 100 ECHO_T = @ECHO_T@ 84 101 EGREP = @EGREP@ 85 102 EXEEXT = @EXEEXT@ 86 -F77 = @F77@ 87 -FFLAGS = @FFLAGS@ 103 +FGREP = @FGREP@ 88 104 GREP = @GREP@ 89 105 INSTALL = @INSTALL@ 90 106 INSTALL_DATA = @INSTALL_DATA@ 91 107 INSTALL_PROGRAM = @INSTALL_PROGRAM@ 92 108 INSTALL_SCRIPT = @INSTALL_SCRIPT@ 93 109 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ 110 +LD = @LD@ 94 111 LDFLAGS = @LDFLAGS@ 95 112 LIBOBJS = @LIBOBJS@ 96 113 LIBS = @LIBS@ 114 +LIBSPATIALITE_CFLAGS = @LIBSPATIALITE_CFLAGS@ 115 +LIBSPATIALITE_LIBS = @LIBSPATIALITE_LIBS@ 97 116 LIBTOOL = @LIBTOOL@ 117 +LIPO = @LIPO@ 98 118 LN_S = @LN_S@ 99 119 LTLIBOBJS = @LTLIBOBJS@ 100 120 MAINT = @MAINT@ 101 121 MAKEINFO = @MAKEINFO@ 102 122 MKDIR_P = @MKDIR_P@ 123 +NM = @NM@ 103 124 NMEDIT = @NMEDIT@ 104 125 OBJDUMP = @OBJDUMP@ 105 126 OBJEXT = @OBJEXT@ 127 +OTOOL = @OTOOL@ 128 +OTOOL64 = @OTOOL64@ 106 129 PACKAGE = @PACKAGE@ 107 130 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ 108 131 PACKAGE_NAME = @PACKAGE_NAME@ 109 132 PACKAGE_STRING = @PACKAGE_STRING@ 110 133 PACKAGE_TARNAME = @PACKAGE_TARNAME@ 134 +PACKAGE_URL = @PACKAGE_URL@ 111 135 PACKAGE_VERSION = @PACKAGE_VERSION@ 112 136 PATH_SEPARATOR = @PATH_SEPARATOR@ 137 +PKG_CONFIG = @PKG_CONFIG@ 138 +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ 139 +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ 113 140 RANLIB = @RANLIB@ 114 141 SED = @SED@ 115 142 SET_MAKE = @SET_MAKE@ 116 143 SHELL = @SHELL@ 117 144 STRIP = @STRIP@ 118 145 VERSION = @VERSION@ 119 146 abs_builddir = @abs_builddir@ 120 147 abs_srcdir = @abs_srcdir@ 121 148 abs_top_builddir = @abs_top_builddir@ 122 149 abs_top_srcdir = @abs_top_srcdir@ 123 150 ac_ct_CC = @ac_ct_CC@ 124 151 ac_ct_CXX = @ac_ct_CXX@ 125 -ac_ct_F77 = @ac_ct_F77@ 152 +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 126 153 am__include = @am__include@ 127 154 am__leading_dot = @am__leading_dot@ 128 155 am__quote = @am__quote@ 129 156 am__tar = @am__tar@ 130 157 am__untar = @am__untar@ 131 158 bindir = @bindir@ 132 159 build = @build@ ................................................................................ 149 176 includedir = @includedir@ 150 177 infodir = @infodir@ 151 178 install_sh = @install_sh@ 152 179 libdir = @libdir@ 153 180 libexecdir = @libexecdir@ 154 181 localedir = @localedir@ 155 182 localstatedir = @localstatedir@ 183 +lt_ECHO = @lt_ECHO@ 156 184 mandir = @mandir@ 157 185 mkdir_p = @mkdir_p@ 158 186 oldincludedir = @oldincludedir@ 159 187 pdfdir = @pdfdir@ 160 188 prefix = @prefix@ 161 189 program_transform_name = @program_transform_name@ 162 190 psdir = @psdir@ 163 191 sbindir = @sbindir@ 164 192 sharedstatedir = @sharedstatedir@ 165 193 srcdir = @srcdir@ 166 194 sysconfdir = @sysconfdir@ 167 195 target_alias = @target_alias@ 196 +top_build_prefix = @top_build_prefix@ 168 197 top_builddir = @top_builddir@ 169 198 top_srcdir = @top_srcdir@ 170 -noinst_HEADERS = rasterlite_internals.h 199 +noinst_HEADERS = rasterlite_tiff_hdrs.h rasterlite_internals.h 171 200 include_HEADERS = rasterlite.h 172 201 all: all-am 173 202 174 203 .SUFFIXES: 175 204 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) 176 205 @for dep in $?; do \ 177 206 case '$(am__configure_deps)' in \ 178 207 *$$dep*) \ 179 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ 180 - && exit 0; \ 208 + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ 209 + && { if test -f $@; then exit 0; else break; fi; }; \ 181 210 exit 1;; \ 182 211 esac; \ 183 212 done; \ 184 - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign headers/Makefile'; \ 185 - cd $(top_srcdir) && \ 186 - $(AUTOMAKE) --foreign headers/Makefile 213 + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign headers/Makefile'; \ 214 + $(am__cd) $(top_srcdir) && \ 215 + $(AUTOMAKE) --foreign headers/Makefile 187 216 .PRECIOUS: Makefile 188 217 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status 189 218 @case '$?' in \ 190 219 *config.status*) \ 191 220 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ 192 221 *) \ 193 222 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ................................................................................ 197 226 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) 198 227 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 199 228 200 229 $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 201 230 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 202 231 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) 203 232 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 233 +$(am__aclocal_m4_deps): 204 234 205 235 mostlyclean-libtool: 206 236 -rm -f *.lo 207 237 208 238 clean-libtool: 209 239 -rm -rf .libs _libs 210 240 install-includeHEADERS: $(include_HEADERS) 211 241 @$(NORMAL_INSTALL) 212 242 test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)" 213 - @list='$(include_HEADERS)'; for p in $$list; do \ 243 + @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ 244 + for p in $$list; do \ 214 245 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ 215 - f=$(am__strip_dir) \ 216 - echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ 217 - $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ 246 + echo "$$d$$p"; \ 247 + done | $(am__base_list) | \ 248 + while read files; do \ 249 + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ 250 + $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ 218 251 done 219 252 220 253 uninstall-includeHEADERS: 221 254 @$(NORMAL_UNINSTALL) 222 - @list='$(include_HEADERS)'; for p in $$list; do \ 223 - f=$(am__strip_dir) \ 224 - echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ 225 - rm -f "$(DESTDIR)$(includedir)/$$f"; \ 226 - done 255 + @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ 256 + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ 257 + test -n "$$files" || exit 0; \ 258 + echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \ 259 + cd "$(DESTDIR)$(includedir)" && rm -f $$files 227 260 228 261 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) 229 262 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ 230 263 unique=`for i in $$list; do \ 231 264 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 232 265 done | \ 233 - $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ 266 + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ 234 267 END { if (nonempty) { for (i in files) print i; }; }'`; \ 235 268 mkid -fID $$unique 236 269 tags: TAGS 237 270 238 271 TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ 239 272 $(TAGS_FILES) $(LISP) 240 - tags=; \ 273 + set x; \ 241 274 here=`pwd`; \ 242 275 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ 243 276 unique=`for i in $$list; do \ 244 277 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 245 278 done | \ 246 279 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ 247 280 END { if (nonempty) { for (i in files) print i; }; }'`; \ 248 - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ 281 + shift; \ 282 + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ 249 283 test -n "$$unique" || unique=$$empty_fix; \ 250 - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 251 - $$tags $$unique; \ 284 + if test $$# -gt 0; then \ 285 + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 286 + "$$@" $$unique; \ 287 + else \ 288 + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 289 + $$unique; \ 290 + fi; \ 252 291 fi 253 292 ctags: CTAGS 254 293 CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ 255 294 $(TAGS_FILES) $(LISP) 256 - tags=; \ 257 295 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ 258 296 unique=`for i in $$list; do \ 259 297 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 260 298 done | \ 261 299 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ 262 300 END { if (nonempty) { for (i in files) print i; }; }'`; \ 263 - test -z "$(CTAGS_ARGS)$$tags$$unique" \ 301 + test -z "$(CTAGS_ARGS)$$unique" \ 264 302 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ 265 - $$tags $$unique 303 + $$unique 266 304 267 305 GTAGS: 268 306 here=`$(am__cd) $(top_builddir) && pwd` \ 269 - && cd $(top_srcdir) \ 270 - && gtags -i $(GTAGS_ARGS) $$here 307 + && $(am__cd) $(top_srcdir) \ 308 + && gtags -i $(GTAGS_ARGS) "$$here" 271 309 272 310 distclean-tags: 273 311 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags 274 312 275 313 distdir: $(DISTFILES) 276 314 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ 277 315 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ................................................................................ 284 322 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ 285 323 sort -u` ;; \ 286 324 esac; \ 287 325 for file in $$dist_files; do \ 288 326 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ 289 327 if test -d $$d/$$file; then \ 290 328 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ 329 + if test -d "$(distdir)/$$file"; then \ 330 + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ 331 + fi; \ 291 332 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ 292 - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ 333 + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ 334 + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ 293 335 fi; \ 294 - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ 336 + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ 295 337 else \ 296 - test -f $(distdir)/$$file \ 297 - || cp -p $$d/$$file $(distdir)/$$file \ 338 + test -f "$(distdir)/$$file" \ 339 + || cp -p $$d/$$file "$(distdir)/$$file" \ 298 340 || exit 1; \ 299 341 fi; \ 300 342 done 301 343 check-am: all-am 302 344 check: check-am 303 345 all-am: Makefile $(HEADERS) 304 346 installdirs: ................................................................................ 321 363 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install 322 364 mostlyclean-generic: 323 365 324 366 clean-generic: 325 367 326 368 distclean-generic: 327 369 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) 370 + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) 328 371 329 372 maintainer-clean-generic: 330 373 @echo "This command is intended for maintainers to use" 331 374 @echo "it deletes files that may require special tools to rebuild." 332 375 clean: clean-am 333 376 334 377 clean-am: clean-generic clean-libtool mostlyclean-am ................................................................................ 338 381 distclean-am: clean-am distclean-generic distclean-tags 339 382 340 383 dvi: dvi-am 341 384 342 385 dvi-am: 343 386 344 387 html: html-am 388 + 389 +html-am: 345 390 346 391 info: info-am 347 392 348 393 info-am: 349 394 350 395 install-data-am: install-includeHEADERS 351 396 352 397 install-dvi: install-dvi-am 398 + 399 +install-dvi-am: 353 400 354 401 install-exec-am: 355 402 356 403 install-html: install-html-am 404 + 405 +install-html-am: 357 406 358 407 install-info: install-info-am 408 + 409 +install-info-am: 359 410 360 411 install-man: 361 412 362 413 install-pdf: install-pdf-am 414 + 415 +install-pdf-am: 363 416 364 417 install-ps: install-ps-am 418 + 419 +install-ps-am: 365 420 366 421 installcheck-am: 367 422 368 423 maintainer-clean: maintainer-clean-am 369 424 -rm -f Makefile 370 425 maintainer-clean-am: distclean-am maintainer-clean-generic 371 426 ................................................................................ 393 448 install-exec-am install-html install-html-am \ 394 449 install-includeHEADERS install-info install-info-am \ 395 450 install-man install-pdf install-pdf-am install-ps \ 396 451 install-ps-am install-strip installcheck installcheck-am \ 397 452 installdirs maintainer-clean maintainer-clean-generic \ 398 453 mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ 399 454 ps ps-am tags uninstall uninstall-am uninstall-includeHEADERS 455 + 400 456 401 457 # Tell versions [3.59,3.63) of GNU make to not export all variables. 402 458 # Otherwise a system limit (for SysV at least) may be exceeded. 403 459 .NOEXPORT:
Changes to headers/rasterlite.h.
1 1 /* 2 2 / rasterlite.h 3 3 / 4 4 / public RasterLite declarations 5 5 / 6 -/ version 1.0, 2009 June 1 6 +/ version 1.1a, 2011 November 12 7 7 / 8 8 / Author: Sandro Furieri a.furieri@lqt.it 9 9 / 10 10 / Copyright (C) 2009 Alessandro Furieri 11 11 / 12 12 / This program is free software: you can redistribute it and/or modify 13 -/ it under the terms of the GNU General Public License as published by 13 +/ it under the terms of the GNU Lesser General Public License as published by 14 14 / the Free Software Foundation, either version 3 of the License, or 15 15 / (at your option) any later version. 16 16 / 17 17 / This program is distributed in the hope that it will be useful, 18 18 / but WITHOUT ANY WARRANTY; without even the implied warranty of 19 19 / MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 -/ GNU General Public License for more details. 20 +/ GNU Lesser General Public License for more details. 21 21 / 22 -/ You should have received a copy of the GNU General Public License 22 +/ You should have received a copy of the GNU Lesser General Public License 23 23 / along with this program. If not, see <http://www.gnu.org/licenses/>. 24 24 / 25 25 */ 26 26 27 27 #ifdef DLL_EXPORT 28 28 #define RASTERLITE_DECLARE __declspec(dllexport) 29 29 #else ................................................................................ 142 142 const char **auth_name, 143 143 int *auth_srid, 144 144 const char **ref_sys_name, 145 145 const char **proj4text); 146 146 RASTERLITE_DECLARE int rasterliteGetExtent (void *handle, double *min_x, 147 147 double *min_y, double *max_x, 148 148 double *max_y); 149 - RASTERLITE_DECLARE int rasterliteWaveletToPng (const void *blob, 150 - int blob_size, 151 - void **png_blob, 152 - int *png_size); 153 149 RASTERLITE_DECLARE int rasterliteExportGeoTiff (void *handle, 154 150 const char *img_path, 155 151 void *raster, int size, 156 152 double cx, double cy, 157 153 double pixel_x_size, 158 154 double pixel_y_size, 159 155 int width, int height); ................................................................................ 160 156 RASTERLITE_DECLARE int rasterliteGetBestAccess (void *handle, 161 157 double pixel_size, 162 158 double *pixel_x_size, 163 159 double *pixel_y_size, 164 160 sqlite3_stmt ** stmt, 165 161 int *use_rtree); 166 162 163 +/* 164 +/ utility functions returning a Raw image 165 +*/ 166 + RASTERLITE_DECLARE int rasterliteJpegBlobToRawImage (const void *blob, 167 + int blob_size, 168 + int raw_format, 169 + void **raw, int *width, 170 + int *height); 171 + RASTERLITE_DECLARE int rasterlitePngBlobToRawImage (const void *blob, 172 + int blob_size, 173 + int raw_format, 174 + void **raw, int *width, 175 + int *height); 176 + RASTERLITE_DECLARE int rasterliteGifBlobToRawImage (const void *blob, 177 + int blob_size, 178 + int raw_format, 179 + void **raw, int *width, 180 + int *height); 181 + RASTERLITE_DECLARE int rasterliteTiffBlobToRawImage (const void *blob, 182 + int blob_size, 183 + int raw_format, 184 + void **raw, int *width, 185 + int *height); 186 + 187 +/* 188 +/ utility functions generating an image file from a Raw Image 189 +*/ 190 + RASTERLITE_DECLARE int rasterliteRawImageToJpegFile (const void *raw, 191 + int raw_format, 192 + int width, int height, 193 + const char *path, 194 + int quality); 195 + RASTERLITE_DECLARE int rasterliteRawImageToPngFile (const void *raw, 196 + int raw_format, 197 + int width, int height, 198 + const char *path); 199 + RASTERLITE_DECLARE int rasterliteRawImageToGifFile (const void *raw, 200 + int raw_format, 201 + int width, int height, 202 + const char *path); 203 + RASTERLITE_DECLARE int rasterliteRawImageToGeoTiffFile (const void *raw, 204 + int raw_format, 205 + int width, 206 + int height, 207 + const char *path, 208 + double x_size, 209 + double y_size, 210 + double xllcorner, 211 + double yllcorner, 212 + const char 213 + *proj4text); 214 + 215 +/* 216 +/ utility functions generating an image mem-buffer from a Raw Image 217 +*/ 218 + RASTERLITE_DECLARE unsigned char *rasterliteRawImageToJpegMemBuf (const void 219 + *raw, 220 + int 221 + raw_format, 222 + int width, 223 + int 224 + height, 225 + int *size, 226 + int 227 + quality); 228 + RASTERLITE_DECLARE unsigned char *rasterliteRawImageToPngMemBuf (const void 229 + *raw, 230 + int 231 + raw_format, 232 + int width, 233 + int height, 234 + int *size); 235 + RASTERLITE_DECLARE unsigned char *rasterliteRawImageToGifMemBuf (const void 236 + *raw, 237 + int 238 + raw_format, 239 + int width, 240 + int height, 241 + int *size); 242 + RASTERLITE_DECLARE unsigned char *rasterliteRawImageToTiffMemBuf (const void 243 + *raw, 244 + int 245 + raw_format, 246 + int width, 247 + int 248 + height, 249 + int 250 + *size); 251 + 167 252 #ifdef __cplusplus 168 253 } 169 254 #endif 170 255 171 256 #endif /* _RASTERLITE_H */
Changes to headers/rasterlite_internals.h.
1 1 /* 2 2 / rasterlite_internals.h 3 3 / 4 4 / internal declarations 5 5 / 6 -/ version 1.0, 2009 June 1 6 +/ version 1.1a, 2011 November 12 7 7 / 8 8 / Author: Sandro Furieri a.furieri@lqt.it 9 9 / 10 10 / Copyright (C) 2009 Alessandro Furieri 11 11 / 12 12 / This program is free software: you can redistribute it and/or modify 13 -/ it under the terms of the GNU General Public License as published by 13 +/ it under the terms of the GNU Lesser General Public License as published by 14 14 / the Free Software Foundation, either version 3 of the License, or 15 15 / (at your option) any later version. 16 16 / 17 17 / This program is distributed in the hope that it will be useful, 18 18 / but WITHOUT ANY WARRANTY; without even the implied warranty of 19 19 / MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 -/ GNU General Public License for more details. 20 +/ GNU Lesser General Public License for more details. 21 21 / 22 -/ You should have received a copy of the GNU General Public License 22 +/ You should have received a copy of the GNU Lesser General Public License 23 23 / along with this program. If not, see <http://www.gnu.org/licenses/>. 24 24 / 25 25 */ 26 26 27 27 #define COLORSPACE_MONOCHROME 1 28 28 #define COLORSPACE_PALETTE 2 29 29 #define COLORSPACE_GRAYSCALE 3 ................................................................................ 43 43 #define IMAGE_GIF_PALETTE 111 44 44 45 45 #define NTILES 8192 46 46 47 47 #define STRATEGY_RTREE 1 48 48 #define STRATEGY_PLAIN 2 49 49 50 +#define RASTERLITE_TRUE -1 51 +#define RASTERLITE_FALSE -2 52 + 50 53 #define true_color(r, g, b) (((r) << 16) + ((g) << 8) + (b)) 51 54 #define image_set_pixel(img, x, y, color) img->pixels[y][x] = color 52 55 #define true_color_get_red(c) (((c) & 0xFF0000) >> 16) 53 56 #define true_color_get_green(c) (((c) & 0x00FF00) >> 8) 54 57 #define true_color_get_blue(c) ((c) & 0x0000FF) 55 58 56 59 struct tile_info ................................................................................ 87 90 double pixel_y; /* the Y pixel size [in map units] */ 88 91 int tile_height; /* the TILE preferred height [in pixels] */ 89 92 int tile_width; /* the TILE preferred width [in pixels] */ 90 93 sqlite3 *handle; /* SQLite handle */ 91 94 sqlite3_stmt *stmt; /* SQL preparared statement: INSERT INTO xx_rasters */ 92 95 const char *table; /* the DB table name */ 93 96 int image_type; /* the preferred image type [to be used for tiles] */ 94 - int quality_factor; /* the quality factor for JPEG or Wavelet compression */ 97 + int quality_factor; /* the quality factor for JPEG compression */ 95 98 struct tile_info tiles[NTILES]; 96 99 }; 97 100 98 101 struct source_item 99 102 { 100 103 /* a raster source item */ 101 104 char *name; ................................................................................ 178 181 /* a generic RGB image */ 179 182 int **pixels; 180 183 int sx; 181 184 int sy; 182 185 int color_space; 183 186 } rasterliteImage; 184 187 185 -typedef rasterliteImage *rasterliteImagePrt; 188 +typedef rasterliteImage *rasterliteImagePtr; 186 189 187 -extern rasterliteImagePrt image_create (int sx, int sy); 188 -extern void image_destroy (rasterliteImagePrt img); 189 -extern void image_fill (const rasterliteImagePrt img, int color); 190 -extern void make_thumbnail (const rasterliteImagePrt thumbnail, 191 - const rasterliteImagePrt image); 192 -extern void image_resize (const rasterliteImagePrt dst, 193 - const rasterliteImagePrt src); 190 +extern rasterliteImagePtr image_create (int sx, int sy); 191 +extern void image_destroy (rasterliteImagePtr img); 192 +extern void image_fill (const rasterliteImagePtr img, int color); 193 +extern void make_thumbnail (const rasterliteImagePtr thumbnail, 194 + const rasterliteImagePtr image); 195 +extern void image_resize (const rasterliteImagePtr dst, 196 + const rasterliteImagePtr src); 194 197 195 -extern void *image_to_jpeg (const rasterliteImagePrt img, int *size, 198 +extern void *image_to_jpeg (const rasterliteImagePtr img, int *size, 196 199 int quality); 197 -extern void *image_to_jpeg_grayscale (const rasterliteImagePrt img, int *size, 200 +extern void *image_to_jpeg_grayscale (const rasterliteImagePtr img, int *size, 198 201 int quality); 199 -extern void *image_to_wavelet (const rasterliteImagePrt img, int *size, 200 - int ratio); 201 -extern void *image_to_wavelet_grayscale (const rasterliteImagePrt img, 202 - int *size, int ratio); 203 -extern void *image_to_png_palette (const rasterliteImagePrt img, int *size); 204 -extern void *image_to_png_grayscale (const rasterliteImagePrt img, int *size); 205 -extern void *image_to_png_rgb (const rasterliteImagePrt img, int *size); 206 -extern void *image_to_gif (const rasterliteImagePrt img, int *size); 207 -extern void *image_to_tiff_fax4 (const rasterliteImagePrt img, int *size); 208 -extern void *image_to_tiff_palette (const rasterliteImagePrt img, int *size); 209 -extern void *image_to_tiff_grayscale (const rasterliteImagePrt img, int *size); 210 -extern void *image_to_tiff_rgb (const rasterliteImagePrt img, int *size); 211 -extern void *image_to_rgb_array (const rasterliteImagePrt img, int *size); 202 +extern void *image_to_png_palette (const rasterliteImagePtr img, int *size); 203 +extern void *image_to_png_grayscale (const rasterliteImagePtr img, int *size); 204 +extern void *image_to_png_rgb (const rasterliteImagePtr img, int *size); 205 +extern void *image_to_gif (const rasterliteImagePtr img, int *size); 206 +extern void *image_to_tiff_fax4 (const rasterliteImagePtr img, int *size); 207 +extern void *image_to_tiff_palette (const rasterliteImagePtr img, int *size); 208 +extern void *image_to_tiff_grayscale (const rasterliteImagePtr img, int *size); 209 +extern void *image_to_tiff_rgb (const rasterliteImagePtr img, int *size); 210 + 211 +extern void *image_to_rgb_array (const rasterliteImagePtr img, int *size); 212 212 extern void *image_to_rgba_array (int transparent_color, 213 - const rasterliteImagePrt img, int *size); 213 + const rasterliteImagePtr img, int *size); 214 214 extern void *image_to_argb_array (int transparent_color, 215 - const rasterliteImagePrt img, int *size); 216 -extern void *image_to_bgr_array (const rasterliteImagePrt img, int *size); 215 + const rasterliteImagePtr img, int *size); 216 +extern void *image_to_bgr_array (const rasterliteImagePtr img, int *size); 217 217 extern void *image_to_bgra_array (int transparent_color, 218 - const rasterliteImagePrt img, int *size); 218 + const rasterliteImagePtr img, int *size); 219 + 220 +extern rasterliteImagePtr image_from_rgb_array (const void *raw, int width, 221 + int height); 222 +extern rasterliteImagePtr image_from_rgba_array (const void *raw, int width, 223 + int height); 224 +extern rasterliteImagePtr image_from_argb_array (const void *raw, int width, 225 + int height); 226 +extern rasterliteImagePtr image_from_bgr_array (const void *raw, int width, 227 + int height); 228 +extern rasterliteImagePtr image_from_bgra_array (const void *raw, int width, 229 + int height); 230 + 231 +extern rasterliteImagePtr image_from_jpeg (int size, const void *data); 232 +extern rasterliteImagePtr image_from_png (int size, const void *data); 233 +extern rasterliteImagePtr image_from_gif (int size, const void *data); 234 +extern rasterliteImagePtr image_from_tiff (int size, const void *data); 219 235 220 -extern rasterliteImagePrt image_from_jpeg (int size, const void *data); 221 -extern rasterliteImagePrt image_from_png (int size, const void *data); 222 -extern rasterliteImagePrt image_from_gif (int size, const void *data); 223 -extern rasterliteImagePrt image_from_tiff (int size, const void *data); 224 -extern rasterliteImagePrt image_from_wavelet (int size, const void *data); 236 +extern int is_image_monochrome (const rasterliteImagePtr img); 237 +extern int is_image_grayscale (const rasterliteImagePtr img); 238 +extern int is_image_palette256 (const rasterliteImagePtr img); 239 +extern void image_resample_as_palette256 (const rasterliteImagePtr img); 225 240 226 241 extern int write_geotiff (const char *path, const void *raster, int size, 227 242 double xsize, double ysize, double xllcorner, 228 243 double yllcorner, const char *proj4text); 229 244 230 245 /* 231 246 /
Added headers/rasterlite_tiff_hdrs.h.
1 +/* 2 +/ rasterlite_tiff_hrds.h 3 +/ 4 +/ internal declarations supporting geotiff 5 +/ 6 +/ version 1.1a, 2011 November 12 7 +/ 8 +/ Author: Brad Hards bradh@frogmouth.net 9 +/ 10 +/ Copyright (C) 2012 Alessandro Furieri 11 +/ 12 +/ This program is free software: you can redistribute it and/or modify 13 +/ it under the terms of the GNU Lesser General Public License as published by 14 +/ the Free Software Foundation, either version 3 of the License, or 15 +/ (at your option) any later version. 16 +/ 17 +/ This program is distributed in the hope that it will be useful, 18 +/ but WITHOUT ANY WARRANTY; without even the implied warranty of 19 +/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 +/ GNU Lesser General Public License for more details. 21 +/ 22 +/ You should have received a copy of the GNU Lesser General Public License 23 +/ along with this program. If not, see <http://www.gnu.org/licenses/>. 24 +/ 25 +*/ 26 + 27 +#ifndef _RASTERLITE_TIFF_HDRS_H 28 +#define _RASTERLITE_TIFF_HDRS_H 29 + 30 +#ifdef HAVE_GEOTIFF_GEOTIFF_H 31 +#include <geotiff/geotiff.h> 32 +#include <geotiff/xtiffio.h> 33 +#include <geotiff/geo_tiffp.h> 34 +#include <geotiff/geo_keyp.h> 35 +#include <geotiff/geovalues.h> 36 +#include <geotiff/geo_normalize.h> 37 +#elif HAVE_LIBGEOTIFF_GEOTIFF_H 38 +#include <libgeotiff/geotiff.h> 39 +#include <libgeotiff/xtiffio.h> 40 +#include <libgeotiff/geo_tiffp.h> 41 +#include <libgeotiff/geo_keyp.h> 42 +#include <libgeotiff/geovalues.h> 43 +#include <libgeotiff/geo_normalize.h> 44 +#else 45 +#include <geotiff.h> 46 +#include <xtiffio.h> 47 +#include <geo_tiffp.h> 48 +#include <geo_keyp.h> 49 +#include <geovalues.h> 50 +#include <geo_normalize.h> 51 +#endif 52 + 53 +#endif
Changes to install-sh.
1 -#!/bin/sh 2 -# install - install a program, script, or datafile 3 - 4 -scriptversion=2006-12-25.00 5 - 6 -# This originates from X11R5 (mit/util/scripts/install.sh), which was 7 -# later released in X11R6 (xc/config/util/install.sh) with the 8 -# following copyright and license. 9 -# 10 -# Copyright (C) 1994 X Consortium 11 -# 12 -# Permission is hereby granted, free of charge, to any person obtaining a copy 13 -# of this software and associated documentation files (the "Software"), to 14 -# deal in the Software without restriction, including without limitation the 15 -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 16 -# sell copies of the Software, and to permit persons to whom the Software is 17 -# furnished to do so, subject to the following conditions: 18 -# 19 -# The above copyright notice and this permission notice shall be included in 20 -# all copies or substantial portions of the Software. 21 -# 22 -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 23 -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 24 -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 25 -# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- 27 -# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 28 -# 29 -# Except as contained in this notice, the name of the X Consortium shall not 30 -# be used in advertising or otherwise to promote the sale, use or other deal- 31 -# ings in this Software without prior written authorization from the X Consor- 32 -# tium. 33 -# 34 -# 35 -# FSF changes to this file are in the public domain. 36 -# 37 -# Calling this script install-sh is preferred over install.sh, to prevent 38 -# `make' implicit rules from creating a file called install from it 39 -# when there is no Makefile. 40 -# 41 -# This script is compatible with the BSD install script, but was written 42 -# from scratch. 43 - 44 -nl=' 45 -' 46 -IFS=" "" $nl" 47 - 48 -# set DOITPROG to echo to test this script 49 - 50 -# Don't use :- since 4.3BSD and earlier shells don't like it. 51 -doit=${DOITPROG-} 52 -if test -z "$doit"; then 53 - doit_exec=exec 54 -else 55 - doit_exec=$doit 56 -fi 57 - 58 -# Put in absolute file names if you don't have them in your path; 59 -# or use environment vars. 60 - 61 -chgrpprog=${CHGRPPROG-chgrp} 62 -chmodprog=${CHMODPROG-chmod} 63 -chownprog=${CHOWNPROG-chown} 64 -cmpprog=${CMPPROG-cmp} 65 -cpprog=${CPPROG-cp} 66 -mkdirprog=${MKDIRPROG-mkdir} 67 -mvprog=${MVPROG-mv} 68 -rmprog=${RMPROG-rm} 69 -stripprog=${STRIPPROG-strip} 70 - 71 -posix_glob='?' 72 -initialize_posix_glob=' 73 - test "$posix_glob" != "?" || { 74 - if (set -f) 2>/dev/null; then 75 - posix_glob= 76 - else 77 - posix_glob=: 78 - fi 79 - } 80 -' 81 - 82 -posix_mkdir= 83 - 84 -# Desired mode of installed file. 85 -mode=0755 86 - 87 -chgrpcmd= 88 -chmodcmd=$chmodprog 89 -chowncmd= 90 -mvcmd=$mvprog 91 -rmcmd="$rmprog -f" 92 -stripcmd= 93 - 94 -src= 95 -dst= 96 -dir_arg= 97 -dst_arg= 98 - 99 -copy_on_change=false 100 -no_target_directory= 101 - 102 -usage="\ 103 -Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE 104 - or: $0 [OPTION]... SRCFILES... DIRECTORY 105 - or: $0 [OPTION]... -t DIRECTORY SRCFILES... 106 - or: $0 [OPTION]... -d DIRECTORIES... 107 - 108 -In the 1st form, copy SRCFILE to DSTFILE. 109 -In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. 110 -In the 4th, create DIRECTORIES. 111 - 112 -Options: 113 - --help display this help and exit. 114 - --version display version info and exit. 115 - 116 - -c (ignored) 117 - -C install only if different (preserve the last data modification time) 118 - -d create directories instead of installing files. 119 - -g GROUP $chgrpprog installed files to GROUP. 120 - -m MODE $chmodprog installed files to MODE. 121 - -o USER $chownprog installed files to USER. 122 - -s $stripprog installed files. 123 - -t DIRECTORY install into DIRECTORY. 124 - -T report an error if DSTFILE is a directory. 125 - 126 -Environment variables override the default commands: 127 - CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG 128 - RMPROG STRIPPROG 129 -" 130 - 131 -while test $# -ne 0; do 132 - case $1 in 133 - -c) ;; 134 - 135 - -C) copy_on_change=true;; 136 - 137 - -d) dir_arg=true;; 138 - 139 - -g) chgrpcmd="$chgrpprog $2" 140 - shift;; 141 - 142 - --help) echo "$usage"; exit $?;; 143 - 144 - -m) mode=$2 145 - case $mode in 146 - *' '* | *' '* | *' 147 -'* | *'*'* | *'?'* | *'['*) 148 - echo "$0: invalid mode: $mode" >&2 149 - exit 1;; 150 - esac 151 - shift;; 152 - 153 - -o) chowncmd="$chownprog $2" 154 - shift;; 155 - 156 - -s) stripcmd=$stripprog;; 157 - 158 - -t) dst_arg=$2 159 - shift;; 160 - 161 - -T) no_target_directory=true;; 162 - 163 - --version) echo "$0 $scriptversion"; exit $?;; 164 - 165 - --) shift 166 - break;; 167 - 168 - -*) echo "$0: invalid option: $1" >&2 169 - exit 1;; 170 - 171 - *) break;; 172 - esac 173 - shift 174 -done 175 - 176 -if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then 177 - # When -d is used, all remaining arguments are directories to create. 178 - # When -t is used, the destination is already specified. 179 - # Otherwise, the last argument is the destination. Remove it from $@. 180 - for arg 181 - do 182 - if test -n "$dst_arg"; then 183 - # $@ is not empty: it contains at least $arg. 184 - set fnord "$@" "$dst_arg" 185 - shift # fnord 186 - fi 187 - shift # arg 188 - dst_arg=$arg 189 - done 190 -fi 191 - 192 -if test $# -eq 0; then 193 - if test -z "$dir_arg"; then 194 - echo "$0: no input file specified." >&2 195 - exit 1 196 - fi 197 - # It's OK to call `install-sh -d' without argument. 198 - # This can happen when creating conditional directories. 199 - exit 0 200 -fi 201 - 202 -if test -z "$dir_arg"; then 203 - trap '(exit $?); exit' 1 2 13 15 204 - 205 - # Set umask so as not to create temps with too-generous modes. 206 - # However, 'strip' requires both read and write access to temps. 207 - case $mode in 208 - # Optimize common cases. 209 - *644) cp_umask=133;; 210 - *755) cp_umask=22;; 211 - 212 - *[0-7]) 213 - if test -z "$stripcmd"; then 214 - u_plus_rw= 215 - else 216 - u_plus_rw='% 200' 217 - fi 218 - cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; 219 - *) 220 - if test -z "$stripcmd"; then 221 - u_plus_rw= 222 - else 223 - u_plus_rw=,u+rw 224 - fi 225 - cp_umask=$mode$u_plus_rw;; 226 - esac 227 -fi 228 - 229 -for src 230 -do 231 - # Protect names starting with `-'. 232 - case $src in 233 - -*) src=./$src;; 234 - esac 235 - 236 - if test -n "$dir_arg"; then 237 - dst=$src 238 - dstdir=$dst 239 - test -d "$dstdir" 240 - dstdir_status=$? 241 - else 242 - 243 - # Waiting for this to be detected by the "$cpprog $src $dsttmp" command 244 - # might cause directories to be created, which would be especially bad 245 - # if $src (and thus $dsttmp) contains '*'. 246 - if test ! -f "$src" && test ! -d "$src"; then 247 - echo "$0: $src does not exist." >&2 248 - exit 1 249 - fi 250 - 251 - if test -z "$dst_arg"; then 252 - echo "$0: no destination specified." >&2 253 - exit 1 254 - fi 255 - 256 - dst=$dst_arg 257 - # Protect names starting with `-'. 258 - case $dst in 259 - -*) dst=./$dst;; 260 - esac 261 - 262 - # If destination is a directory, append the input filename; won't work 263 - # if double slashes aren't ignored. 264 - if test -d "$dst"; then 265 - if test -n "$no_target_directory"; then 266 - echo "$0: $dst_arg: Is a directory" >&2 267 - exit 1 268 - fi 269 - dstdir=$dst 270 - dst=$dstdir/`basename "$src"` 271 - dstdir_status=0 272 - else 273 - # Prefer dirname, but fall back on a substitute if dirname fails. 274 - dstdir=` 275 - (dirname "$dst") 2>/dev/null || 276 - expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ 277 - X"$dst" : 'X\(//\)[^/]' \| \ 278 - X"$dst" : 'X\(//\)$' \| \ 279 - X"$dst" : 'X\(/\)' \| . 2>/dev/null || 280 - echo X"$dst" | 281 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ 282 - s//\1/ 283 - q 284 - } 285 - /^X\(\/\/\)[^/].*/{ 286 - s//\1/ 287 - q 288 - } 289 - /^X\(\/\/\)$/{ 290 - s//\1/ 291 - q 292 - } 293 - /^X\(\/\).*/{ 294 - s//\1/ 295 - q 296 - } 297 - s/.*/./; q' 298 - ` 299 - 300 - test -d "$dstdir" 301 - dstdir_status=$? 302 - fi 303 - fi 304 - 305 - obsolete_mkdir_used=false 306 - 307 - if test $dstdir_status != 0; then 308 - case $posix_mkdir in 309 - '') 310 - # Create intermediate dirs using mode 755 as modified by the umask. 311 - # This is like FreeBSD 'install' as of 1997-10-28. 312 - umask=`umask` 313 - case $stripcmd.$umask in 314 - # Optimize common cases. 315 - *[2367][2367]) mkdir_umask=$umask;; 316 - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; 317 - 318 - *[0-7]) 319 - mkdir_umask=`expr $umask + 22 \ 320 - - $umask % 100 % 40 + $umask % 20 \ 321 - - $umask % 10 % 4 + $umask % 2 322 - `;; 323 - *) mkdir_umask=$umask,go-w;; 324 - esac 325 - 326 - # With -d, create the new directory with the user-specified mode. 327 - # Otherwise, rely on $mkdir_umask. 328 - if test -n "$dir_arg"; then 329 - mkdir_mode=-m$mode 330 - else 331 - mkdir_mode= 332 - fi 333 - 334 - posix_mkdir=false 335 - case $umask in 336 - *[123567][0-7][0-7]) 337 - # POSIX mkdir -p sets u+wx bits regardless of umask, which 338 - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. 339 - ;; 340 - *) 341 - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ 342 - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 343 - 344 - if (umask $mkdir_umask && 345 - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 346 - then 347 - if test -z "$dir_arg" || { 348 - # Check for POSIX incompatibilities with -m. 349 - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or 350 - # other-writeable bit of parent directory when it shouldn't. 351 - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. 352 - ls_ld_tmpdir=`ls -ld "$tmpdir"` 353 - case $ls_ld_tmpdir in 354 - d????-?r-*) different_mode=700;; 355 - d????-?--*) different_mode=755;; 356 - *) false;; 357 - esac && 358 - $mkdirprog -m$different_mode -p -- "$tmpdir" && { 359 - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` 360 - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" 361 - } 362 - } 363 - then posix_mkdir=: 364 - fi 365 - rmdir "$tmpdir/d" "$tmpdir" 366 - else 367 - # Remove any dirs left behind by ancient mkdir implementations. 368 - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null 369 - fi 370 - trap '' 0;; 371 - esac;; 372 - esac 373 - 374 - if 375 - $posix_mkdir && ( 376 - umask $mkdir_umask && 377 - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" 378 - ) 379 - then : 380 - else 381 - 382 - # The umask is ridiculous, or mkdir does not conform to POSIX, 383 - # or it failed possibly due to a race condition. Create the 384 - # directory the slow way, step by step, checking for races as we go. 385 - 386 - case $dstdir in 387 - /*) prefix='/';; 388 - -*) prefix='./';; 389 - *) prefix='';; 390 - esac 391 - 392 - eval "$initialize_posix_glob" 393 - 394 - oIFS=$IFS 395 - IFS=/ 396 - $posix_glob set -f 397 - set fnord $dstdir 398 - shift 399 - $posix_glob set +f 400 - IFS=$oIFS 401 - 402 - prefixes= 403 - 404 - for d 405 - do 406 - test -z "$d" && continue 407 - 408 - prefix=$prefix$d 409 - if test -d "$prefix"; then 410 - prefixes= 411 - else 412 - if $posix_mkdir; then 413 - (umask=$mkdir_umask && 414 - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break 415 - # Don't fail if two instances are running concurrently. 416 - test -d "$prefix" || exit 1 417 - else 418 - case $prefix in 419 - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; 420 - *) qprefix=$prefix;; 421 - esac 422 - prefixes="$prefixes '$qprefix'" 423 - fi 424 - fi 425 - prefix=$prefix/ 426 - done 427 - 428 - if test -n "$prefixes"; then 429 - # Don't fail if two instances are running concurrently. 430 - (umask $mkdir_umask && 431 - eval "\$doit_exec \$mkdirprog $prefixes") || 432 - test -d "$dstdir" || exit 1 433 - obsolete_mkdir_used=true 434 - fi 435 - fi 436 - fi 437 - 438 - if test -n "$dir_arg"; then 439 - { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && 440 - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && 441 - { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || 442 - test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 443 - else 444 - 445 - # Make a couple of temp file names in the proper directory. 446 - dsttmp=$dstdir/_inst.$$_ 447 - rmtmp=$dstdir/_rm.$$_ 448 - 449 - # Trap to clean up those temp files at exit. 450 - trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 451 - 452 - # Copy the file name to the temp name. 453 - (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && 454 - 455 - # and set any options; do chmod last to preserve setuid bits. 456 - # 457 - # If any of these fail, we abort the whole thing. If we want to 458 - # ignore errors from any of these, just make sure not to ignore 459 - # errors from the above "$doit $cpprog $src $dsttmp" command. 460 - # 461 - { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && 462 - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && 463 - { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && 464 - { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && 465 - 466 - # If -C, don't bother to copy if it wouldn't change the file. 467 - if $copy_on_change && 468 - old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && 469 - new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && 470 - 471 - eval "$initialize_posix_glob" && 472 - $posix_glob set -f && 473 - set X $old && old=:$2:$4:$5:$6 && 474 - set X $new && new=:$2:$4:$5:$6 && 475 - $posix_glob set +f && 476 - 477 - test "$old" = "$new" && 478 - $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 479 - then 480 - rm -f "$dsttmp" 481 - else 482 - # Rename the file to the real destination. 483 - $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || 484 - 485 - # The rename failed, perhaps because mv can't rename something else 486 - # to itself, or perhaps because mv is so ancient that it does not 487 - # support -f. 488 - { 489 - # Now remove or move aside any old file at destination location. 490 - # We try this two ways since rm can't unlink itself on some 491 - # systems and the destination file might be busy for other 492 - # reasons. In this case, the final cleanup might fail but the new 493 - # file should still install successfully. 494 - { 495 - test ! -f "$dst" || 496 - $doit $rmcmd -f "$dst" 2>/dev/null || 497 - { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && 498 - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } 499 - } || 500 - { echo "$0: cannot unlink or rename $dst" >&2 501 - (exit 1); exit 1 502 - } 503 - } && 504 - 505 - # Now rename the file to the real destination. 506 - $doit $mvcmd "$dsttmp" "$dst" 507 - } 508 - fi || exit 1 509 - 510 - trap '' 0 511 - fi 512 -done 513 - 514 -# Local variables: 515 -# eval: (add-hook 'write-file-hooks 'time-stamp) 516 -# time-stamp-start: "scriptversion=" 517 -# time-stamp-format: "%:y-%02m-%02d.%02H" 518 -# time-stamp-end: "$" 519 -# End: 1 +/usr/share/automake-1.11/install-sh
Changes to lib/Makefile.am.
1 1 2 -AM_CFLAGS = -D_LARGE_FILE=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 2 +AM_CFLAGS = -D_LARGE_FILE=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 \ 3 + @LIBSPATIALITE_CFLAGS@ 3 4 4 5 INCLUDES = @CFLAGS@ 5 6 INCLUDES += -I$(top_srcdir)/headers 6 -INCLUDES += -I$(top_srcdir)/epsilon 7 7 8 8 lib_LTLIBRARIES = librasterlite.la 9 9 10 10 librasterlite_la_SOURCES = \ 11 11 rasterlite_io.c \ 12 12 rasterlite_image.c \ 13 + rasterlite_aux.c \ 14 + rasterlite_quantize.c \ 13 15 rasterlite_gif.c \ 14 16 rasterlite_png.c \ 15 17 rasterlite_jpeg.c \ 16 18 rasterlite_tiff.c \ 17 - rasterlite_wavelet.c \ 18 19 rasterlite.c 19 20 20 -librasterlite_la_LDFLAGS = -version-info 1:0:0 -no-undefined 21 +librasterlite_la_LDFLAGS = -version-info 1:0:1 -no-undefined 21 22 22 -librasterlite_la_LIBADD = \ 23 - ../epsilon/libepsilon.la \ 23 +librasterlite_la_LIBADD = @LIBSPATIALITE_LIBS@ \ 24 24 -lgeotiff -ltiff -ljpeg -lpng -lspatialite -lproj 25 25
Changes to lib/Makefile.in.
1 -# Makefile.in generated by automake 1.10.1 from Makefile.am. 1 +# Makefile.in generated by automake 1.11.1 from Makefile.am. 2 2 # @configure_input@ 3 3 4 4 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 5 -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. 5 +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, 6 +# Inc. 6 7 # This Makefile.in is free software; the Free Software Foundation 7 8 # gives unlimited permission to copy and/or distribute it, 8 9 # with or without modifications, as long as this notice is preserved. 9 10 10 11 # This program is distributed in the hope that it will be useful, 11 12 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without 12 13 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A 13 14 # PARTICULAR PURPOSE. 14 15 15 16 @SET_MAKE@ 16 17 17 18 VPATH = @srcdir@ 18 19 pkgdatadir = $(datadir)/@PACKAGE@ 19 -pkglibdir = $(libdir)/@PACKAGE@ 20 20 pkgincludedir = $(includedir)/@PACKAGE@ 21 +pkglibdir = $(libdir)/@PACKAGE@ 22 +pkglibexecdir = $(libexecdir)/@PACKAGE@ 21 23 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd 22 24 install_sh_DATA = $(install_sh) -c -m 644 23 25 install_sh_PROGRAM = $(install_sh) -c 24 26 install_sh_SCRIPT = $(install_sh) -c 25 27 INSTALL_HEADER = $(INSTALL_DATA) 26 28 transform = $(program_transform_name) 27 29 NORMAL_INSTALL = : ................................................................................ 36 38 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in 37 39 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 38 40 am__aclocal_m4_deps = $(top_srcdir)/configure.ac 39 41 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 40 42 $(ACLOCAL_M4) 41 43 mkinstalldirs = $(install_sh) -d 42 44 CONFIG_CLEAN_FILES = 45 +CONFIG_CLEAN_VPATH_FILES = 43 46 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; 44 47 am__vpath_adj = case $$p in \ 45 48 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ 46 49 *) f=$$p;; \ 47 50 esac; 48 -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; 51 +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; 52 +am__install_max = 40 53 +am__nobase_strip_setup = \ 54 + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` 55 +am__nobase_strip = \ 56 + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" 57 +am__nobase_list = $(am__nobase_strip_setup); \ 58 + for p in $$list; do echo "$$p $$p"; done | \ 59 + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ 60 + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ 61 + if (++n[$$2] == $(am__install_max)) \ 62 + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ 63 + END { for (dir in files) print dir, files[dir] }' 64 +am__base_list = \ 65 + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ 66 + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' 49 67 am__installdirs = "$(DESTDIR)$(libdir)" 50 -libLTLIBRARIES_INSTALL = $(INSTALL) 51 68 LTLIBRARIES = $(lib_LTLIBRARIES) 52 -librasterlite_la_DEPENDENCIES = ../epsilon/libepsilon.la 69 +librasterlite_la_DEPENDENCIES = 53 70 am_librasterlite_la_OBJECTS = rasterlite_io.lo rasterlite_image.lo \ 54 - rasterlite_gif.lo rasterlite_png.lo rasterlite_jpeg.lo \ 55 - rasterlite_tiff.lo rasterlite_wavelet.lo rasterlite.lo 71 + rasterlite_aux.lo rasterlite_quantize.lo rasterlite_gif.lo \ 72 + rasterlite_png.lo rasterlite_jpeg.lo rasterlite_tiff.lo \ 73 + rasterlite.lo 56 74 librasterlite_la_OBJECTS = $(am_librasterlite_la_OBJECTS) 57 75 librasterlite_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ 58 76 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ 59 77 $(librasterlite_la_LDFLAGS) $(LDFLAGS) -o $@ 60 78 DEFAULT_INCLUDES = -I.@am__isrc@ 61 79 depcomp = $(SHELL) $(top_srcdir)/depcomp 62 80 am__depfiles_maybe = depfiles 81 +am__mv = mv -f 63 82 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ 64 83 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) 65 84 LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ 66 85 --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ 67 86 $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) 68 87 CCLD = $(CC) 69 88 LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ................................................................................ 92 111 CXXDEPMODE = @CXXDEPMODE@ 93 112 CXXFLAGS = @CXXFLAGS@ 94 113 CYGPATH_W = @CYGPATH_W@ 95 114 DEFS = @DEFS@ 96 115 DEPDIR = @DEPDIR@ 97 116 DLLTOOL = @DLLTOOL@ 98 117 DSYMUTIL = @DSYMUTIL@ 99 -ECHO = @ECHO@ 118 +DUMPBIN = @DUMPBIN@ 100 119 ECHO_C = @ECHO_C@ 101 120 ECHO_N = @ECHO_N@ 102 121 ECHO_T = @ECHO_T@ 103 122 EGREP = @EGREP@ 104 123 EXEEXT = @EXEEXT@ 105 -F77 = @F77@ 106 -FFLAGS = @FFLAGS@ 124 +FGREP = @FGREP@ 107 125 GREP = @GREP@ 108 126 INSTALL = @INSTALL@ 109 127 INSTALL_DATA = @INSTALL_DATA@ 110 128 INSTALL_PROGRAM = @INSTALL_PROGRAM@ 111 129 INSTALL_SCRIPT = @INSTALL_SCRIPT@ 112 130 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ 131 +LD = @LD@ 113 132 LDFLAGS = @LDFLAGS@ 114 133 LIBOBJS = @LIBOBJS@ 115 134 LIBS = @LIBS@ 135 +LIBSPATIALITE_CFLAGS = @LIBSPATIALITE_CFLAGS@ 136 +LIBSPATIALITE_LIBS = @LIBSPATIALITE_LIBS@ 116 137 LIBTOOL = @LIBTOOL@ 138 +LIPO = @LIPO@ 117 139 LN_S = @LN_S@ 118 140 LTLIBOBJS = @LTLIBOBJS@ 119 141 MAINT = @MAINT@ 120 142 MAKEINFO = @MAKEINFO@ 121 143 MKDIR_P = @MKDIR_P@ 144 +NM = @NM@ 122 145 NMEDIT = @NMEDIT@ 123 146 OBJDUMP = @OBJDUMP@ 124 147 OBJEXT = @OBJEXT@ 148 +OTOOL = @OTOOL@ 149 +OTOOL64 = @OTOOL64@ 125 150 PACKAGE = @PACKAGE@ 126 151 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ 127 152 PACKAGE_NAME = @PACKAGE_NAME@ 128 153 PACKAGE_STRING = @PACKAGE_STRING@ 129 154 PACKAGE_TARNAME = @PACKAGE_TARNAME@ 155 +PACKAGE_URL = @PACKAGE_URL@ 130 156 PACKAGE_VERSION = @PACKAGE_VERSION@ 131 157 PATH_SEPARATOR = @PATH_SEPARATOR@ 158 +PKG_CONFIG = @PKG_CONFIG@ 159 +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ 160 +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ 132 161 RANLIB = @RANLIB@ 133 162 SED = @SED@ 134 163 SET_MAKE = @SET_MAKE@ 135 164 SHELL = @SHELL@ 136 165 STRIP = @STRIP@ 137 166 VERSION = @VERSION@ 138 167 abs_builddir = @abs_builddir@ 139 168 abs_srcdir = @abs_srcdir@ 140 169 abs_top_builddir = @abs_top_builddir@ 141 170 abs_top_srcdir = @abs_top_srcdir@ 142 171 ac_ct_CC = @ac_ct_CC@ 143 172 ac_ct_CXX = @ac_ct_CXX@ 144 -ac_ct_F77 = @ac_ct_F77@ 173 +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 145 174 am__include = @am__include@ 146 175 am__leading_dot = @am__leading_dot@ 147 176 am__quote = @am__quote@ 148 177 am__tar = @am__tar@ 149 178 am__untar = @am__untar@ 150 179 bindir = @bindir@ 151 180 build = @build@ ................................................................................ 168 197 includedir = @includedir@ 169 198 infodir = @infodir@ 170 199 install_sh = @install_sh@ 171 200 libdir = @libdir@ 172 201 libexecdir = @libexecdir@ 173 202 localedir = @localedir@ 174 203 localstatedir = @localstatedir@ 204 +lt_ECHO = @lt_ECHO@ 175 205 mandir = @mandir@ 176 206 mkdir_p = @mkdir_p@ 177 207 oldincludedir = @oldincludedir@ 178 208 pdfdir = @pdfdir@ 179 209 prefix = @prefix@ 180 210 program_transform_name = @program_transform_name@ 181 211 psdir = @psdir@ 182 212 sbindir = @sbindir@ 183 213 sharedstatedir = @sharedstatedir@ 184 214 srcdir = @srcdir@ 185 215 sysconfdir = @sysconfdir@ 186 216 target_alias = @target_alias@ 217 +top_build_prefix = @top_build_prefix@ 187 218 top_builddir = @top_builddir@ 188 219 top_srcdir = @top_srcdir@ 189 -AM_CFLAGS = -D_LARGE_FILE=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 190 -INCLUDES = @CFLAGS@ -I$(top_srcdir)/headers -I$(top_srcdir)/epsilon 220 +AM_CFLAGS = -D_LARGE_FILE=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 \ 221 + @LIBSPATIALITE_CFLAGS@ 222 + 223 +INCLUDES = @CFLAGS@ -I$(top_srcdir)/headers 191 224 lib_LTLIBRARIES = librasterlite.la 192 225 librasterlite_la_SOURCES = \ 193 226 rasterlite_io.c \ 194 227 rasterlite_image.c \ 228 + rasterlite_aux.c \ 229 + rasterlite_quantize.c \ 195 230 rasterlite_gif.c \ 196 231 rasterlite_png.c \ 197 232 rasterlite_jpeg.c \ 198 233 rasterlite_tiff.c \ 199 - rasterlite_wavelet.c \ 200 234 rasterlite.c 201 235 202 -librasterlite_la_LDFLAGS = -version-info 1:0:0 -no-undefined 203 -librasterlite_la_LIBADD = \ 204 - ../epsilon/libepsilon.la \ 236 +librasterlite_la_LDFLAGS = -version-info 1:0:1 -no-undefined 237 +librasterlite_la_LIBADD = @LIBSPATIALITE_LIBS@ \ 205 238 -lgeotiff -ltiff -ljpeg -lpng -lspatialite -lproj 206 239 207 240 all: all-am 208 241 209 242 .SUFFIXES: 210 243 .SUFFIXES: .c .lo .o .obj 211 244 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) 212 245 @for dep in $?; do \ 213 246 case '$(am__configure_deps)' in \ 214 247 *$$dep*) \ 215 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ 216 - && exit 0; \ 248 + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ 249 + && { if test -f $@; then exit 0; else break; fi; }; \ 217 250 exit 1;; \ 218 251 esac; \ 219 252 done; \ 220 - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lib/Makefile'; \ 221 - cd $(top_srcdir) && \ 222 - $(AUTOMAKE) --foreign lib/Makefile 253 + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lib/Makefile'; \ 254 + $(am__cd) $(top_srcdir) && \ 255 + $(AUTOMAKE) --foreign lib/Makefile 223 256 .PRECIOUS: Makefile 224 257 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status 225 258 @case '$?' in \ 226 259 *config.status*) \ 227 260 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ 228 261 *) \ 229 262 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ................................................................................ 233 266 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) 234 267 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 235 268 236 269 $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 237 270 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 238 271 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) 239 272 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 273 +$(am__aclocal_m4_deps): 240 274 install-libLTLIBRARIES: $(lib_LTLIBRARIES) 241 275 @$(NORMAL_INSTALL) 242 276 test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" 243 - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ 277 + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ 278 + list2=; for p in $$list; do \ 244 279 if test -f $$p; then \ 245 - f=$(am__strip_dir) \ 246 - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ 247 - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ 280 + list2="$$list2 $$p"; \ 248 281 else :; fi; \ 249 - done 282 + done; \ 283 + test -z "$$list2" || { \ 284 + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ 285 + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ 286 + } 250 287 251 288 uninstall-libLTLIBRARIES: 252 289 @$(NORMAL_UNINSTALL) 253 - @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ 254 - p=$(am__strip_dir) \ 255 - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ 256 - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ 290 + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ 291 + for p in $$list; do \ 292 + $(am__strip_dir) \ 293 + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ 294 + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ 257 295 done 258 296 259 297 clean-libLTLIBRARIES: 260 298 -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) 261 299 @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ 262 300 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ 263 301 test "$$dir" != "$$p" || dir=.; \ ................................................................................ 270 308 mostlyclean-compile: 271 309 -rm -f *.$(OBJEXT) 272 310 273 311 distclean-compile: 274 312 -rm -f *.tab.c 275 313 276 314 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rasterlite.Plo@am__quote@ 315 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rasterlite_aux.Plo@am__quote@ 277 316 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rasterlite_gif.Plo@am__quote@ 278 317 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rasterlite_image.Plo@am__quote@ 279 318 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rasterlite_io.Plo@am__quote@ 280 319 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rasterlite_jpeg.Plo@am__quote@ 281 320 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rasterlite_png.Plo@am__quote@ 321 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rasterlite_quantize.Plo@am__quote@ 282 322 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rasterlite_tiff.Plo@am__quote@ 283 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rasterlite_wavelet.Plo@am__quote@ 284 323 285 324 .c.o: 286 325 @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< 287 -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 326 +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 288 327 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 289 328 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 290 329 @am__fastdepCC_FALSE@ $(COMPILE) -c $< 291 330 292 331 .c.obj: 293 332 @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` 294 -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 333 +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 295 334 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 296 335 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 297 336 @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` 298 337 299 338 .c.lo: 300 339 @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< 301 -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo 340 +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo 302 341 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ 303 342 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 304 343 @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< 305 344 306 345 mostlyclean-libtool: 307 346 -rm -f *.lo 308 347 ................................................................................ 310 349 -rm -rf .libs _libs 311 350 312 351 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) 313 352 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ 314 353 unique=`for i in $$list; do \ 315 354 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 316 355 done | \ 317 - $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ 356 + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ 318 357 END { if (nonempty) { for (i in files) print i; }; }'`; \ 319 358 mkid -fID $$unique 320 359 tags: TAGS 321 360 322 361 TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ 323 362 $(TAGS_FILES) $(LISP) 324 - tags=; \ 363 + set x; \ 325 364 here=`pwd`; \ 326 365 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ 327 366 unique=`for i in $$list; do \ 328 367 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 329 368 done | \ 330 369 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ 331 370 END { if (nonempty) { for (i in files) print i; }; }'`; \ 332 - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ 371 + shift; \ 372 + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ 333 373 test -n "$$unique" || unique=$$empty_fix; \ 334 - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 335 - $$tags $$unique; \ 374 + if test $$# -gt 0; then \ 375 + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 376 + "$$@" $$unique; \ 377 + else \ 378 + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 379 + $$unique; \ 380 + fi; \ 336 381 fi 337 382 ctags: CTAGS 338 383 CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ 339 384 $(TAGS_FILES) $(LISP) 340 - tags=; \ 341 385 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ 342 386 unique=`for i in $$list; do \ 343 387 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 344 388 done | \ 345 389 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ 346 390 END { if (nonempty) { for (i in files) print i; }; }'`; \ 347 - test -z "$(CTAGS_ARGS)$$tags$$unique" \ 391 + test -z "$(CTAGS_ARGS)$$unique" \ 348 392 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ 349 - $$tags $$unique 393 + $$unique 350 394 351 395 GTAGS: 352 396 here=`$(am__cd) $(top_builddir) && pwd` \ 353 - && cd $(top_srcdir) \ 354 - && gtags -i $(GTAGS_ARGS) $$here 397 + && $(am__cd) $(top_srcdir) \ 398 + && gtags -i $(GTAGS_ARGS) "$$here" 355 399 356 400 distclean-tags: 357 401 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags 358 402 359 403 distdir: $(DISTFILES) 360 404 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ 361 405 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ................................................................................ 368 412 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ 369 413 sort -u` ;; \ 370 414 esac; \ 371 415 for file in $$dist_files; do \ 372 416 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ 373 417 if test -d $$d/$$file; then \ 374 418 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ 419 + if test -d "$(distdir)/$$file"; then \ 420 + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ 421 + fi; \ 375 422 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ 376 - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ 423 + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ 424 + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ 377 425 fi; \ 378 - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ 426 + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ 379 427 else \ 380 - test -f $(distdir)/$$file \ 381 - || cp -p $$d/$$file $(distdir)/$$file \ 428 + test -f "$(distdir)/$$file" \ 429 + || cp -p $$d/$$file "$(distdir)/$$file" \ 382 430 || exit 1; \ 383 431 fi; \ 384 432 done 385 433 check-am: all-am 386 434 check: check-am 387 435 all-am: Makefile $(LTLIBRARIES) 388 436 installdirs: ................................................................................ 405 453 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install 406 454 mostlyclean-generic: 407 455 408 456 clean-generic: 409 457 410 458 distclean-generic: 411 459 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) 460 + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) 412 461 413 462 maintainer-clean-generic: 414 463 @echo "This command is intended for maintainers to use" 415 464 @echo "it deletes files that may require special tools to rebuild." 416 465 clean: clean-am 417 466 418 467 clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ ................................................................................ 425 474 distclean-tags 426 475 427 476 dvi: dvi-am 428 477 429 478 dvi-am: 430 479 431 480 html: html-am 481 + 482 +html-am: 432 483 433 484 info: info-am 434 485 435 486 info-am: 436 487 437 488 install-data-am: 438 489 439 490 install-dvi: install-dvi-am 491 + 492 +install-dvi-am: 440 493 441 494 install-exec-am: install-libLTLIBRARIES 442 495 443 496 install-html: install-html-am 497 + 498 +install-html-am: 444 499 445 500 install-info: install-info-am 501 + 502 +install-info-am: 446 503 447 504 install-man: 448 505 449 506 install-pdf: install-pdf-am 507 + 508 +install-pdf-am: 450 509 451 510 install-ps: install-ps-am 511 + 512 +install-ps-am: 452 513 453 514 installcheck-am: 454 515 455 516 maintainer-clean: maintainer-clean-am 456 517 -rm -rf ./$(DEPDIR) 457 518 -rm -f Makefile 458 519 maintainer-clean-am: distclean-am maintainer-clean-generic ................................................................................ 483 544 install-html-am install-info install-info-am \ 484 545 install-libLTLIBRARIES install-man install-pdf install-pdf-am \ 485 546 install-ps install-ps-am install-strip installcheck \ 486 547 installcheck-am installdirs maintainer-clean \ 487 548 maintainer-clean-generic mostlyclean mostlyclean-compile \ 488 549 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ 489 550 tags uninstall uninstall-am uninstall-libLTLIBRARIES 551 + 490 552 491 553 # Tell versions [3.59,3.63) of GNU make to not export all variables. 492 554 # Otherwise a system limit (for SysV at least) may be exceeded. 493 555 .NOEXPORT:
Changes to lib/rasterlite.c.
1 1 /* 2 2 / rasterlite.c 3 3 / 4 4 / the RasterLite library core 5 5 / 6 -/ version 1.0, 2009 June 1 6 +/ version 1.1a, 2011 November 12 7 7 / 8 8 / Author: Sandro Furieri a.furieri@lqt.it 9 9 / 10 10 / Copyright (C) 2009 Alessandro Furieri 11 11 / 12 12 / This program is free software: you can redistribute it and/or modify 13 -/ it under the terms of the GNU General Public License as published by 13 +/ it under the terms of the GNU Lesser General Public License as published by 14 14 / the Free Software Foundation, either version 3 of the License, or 15 15 / (at your option) any later version. 16 16 / 17 17 / This program is distributed in the hope that it will be useful, 18 18 / but WITHOUT ANY WARRANTY; without even the implied warranty of 19 19 / MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 -/ GNU General Public License for more details. 20 +/ GNU Lesser General Public License for more details. 21 21 / 22 -/ You should have received a copy of the GNU General Public License 22 +/ You should have received a copy of the GNU Lesser General Public License 23 23 / along with this program. If not, see <http://www.gnu.org/licenses/>. 24 24 / 25 25 */ 26 26 27 27 #include <stdlib.h> 28 28 #include <stdio.h> 29 29 #include <string.h> 30 30 #include <float.h> 31 31 #include <math.h> 32 32 33 -#include <geotiff.h> 34 -#include <xtiffio.h> 35 -#include <geo_normalize.h> 36 -#include <geovalues.h> 33 +#include "rasterlite_tiff_hdrs.h" 37 34 #include <tiffio.h> 38 35 36 +#ifdef SPATIALITE_AMALGAMATION 39 37 #include <spatialite/sqlite3.h> 38 +#else 39 +#include <sqlite3.h> 40 +#endif 41 + 40 42 #include <spatialite/gaiaexif.h> 41 43 #include <spatialite/gaiageo.h> 42 44 #include <spatialite.h> 43 45 44 46 #include "rasterlite.h" 45 47 #include "rasterlite_internals.h" 46 48 ................................................................................ 720 722 /* best access strategy: TABLE SCAN */ 721 723 *strategy = STRATEGY_PLAIN; 722 724 } 723 725 return RASTERLITE_OK; 724 726 } 725 727 726 728 static void 727 -mark_gray_rectangle (rasterliteImagePrt output, int base_x, int base_y, 729 +mark_gray_rectangle (rasterliteImagePtr output, int base_x, int base_y, 728 730 int width, int height) 729 731 { 730 732 /* marking a gray rectangle */ 731 733 int x; 732 734 int y; 733 735 int dst_x; 734 736 int dst_y; ................................................................................ 753 755 else 754 756 image_set_pixel (output, dst_x, dst_y, fill_color); 755 757 } 756 758 } 757 759 } 758 760 759 761 static void 760 -copy_rectangle (rasterliteImagePrt output, rasterliteImagePrt input, 762 +copy_rectangle (rasterliteImagePtr output, rasterliteImagePtr input, 761 763 int transparent_color, int base_x, int base_y) 762 764 { 763 765 /* copying a raster rectangle */ 764 766 int x; 765 767 int y; 766 768 int dst_x; 767 769 int dst_y; ................................................................................ 826 828 sqlite3_stmt *stmt; 827 829 double map_width = (double) width * ext_pixel_x_size; 828 830 double map_height = (double) height * ext_pixel_y_size; 829 831 double min_x = cx - (map_width / 2.0); 830 832 double max_x = cx + (map_width / 2.0); 831 833 double min_y = cy - (map_height / 2.0); 832 834 double max_y = cy + (map_height / 2.0); 833 - rasterliteImagePrt output = NULL; 835 + rasterliteImagePtr output = NULL; 834 836 reset_error (handle); 835 837 if (handle->handle == NULL || handle->stmt_rtree == NULL 836 838 || handle->stmt_plain == NULL) 837 839 { 838 840 sprintf (error, "invalid datasource"); 839 841 set_error (handle, error); 840 842 *raster = NULL; ................................................................................ 892 894 ret = sqlite3_step (stmt); 893 895 if (ret == SQLITE_DONE) 894 896 break; /* end of result set */ 895 897 if (ret == SQLITE_ROW) 896 898 { 897 899 /* retrieving query values */ 898 900 gaiaGeomCollPtr geom = NULL; 899 - rasterliteImagePrt img = NULL; 901 + rasterliteImagePtr img = NULL; 900 902 if (sqlite3_column_type (stmt, 0) == SQLITE_BLOB) 901 903 { 902 904 /* fetching Geometry */ 903 905 const void *blob = sqlite3_column_blob (stmt, 0); 904 906 int blob_size = sqlite3_column_bytes (stmt, 0); 905 907 geom = 906 908 gaiaFromSpatiaLiteBlobWkb ((const unsigned char *) ................................................................................ 948 950 else 949 951 { 950 952 /* resizing the raster tile */ 951 953 if (new_width == img->sx && new_height == img->sy) 952 954 ; 953 955 else 954 956 { 955 - rasterliteImagePrt img2 = img; 957 + rasterliteImagePtr img2 = img; 956 958 img = image_create (new_width, new_height); 957 959 image_resize (img, img2); 958 960 image_destroy (img2); 959 961 } 960 962 /* drawing the raster tile */ 961 963 copy_rectangle (output, img, 962 964 handle->transparent_color, ................................................................................ 1167 1169 sqlite3_stmt *stmt; 1168 1170 double map_width = (double) width * ext_pixel_x_size; 1169 1171 double map_height = (double) height * ext_pixel_y_size; 1170 1172 double min_x = cx - (map_width / 2.0); 1171 1173 double max_x = cx + (map_width / 2.0); 1172 1174 double min_y = cy - (map_height / 2.0); 1173 1175 double max_y = cy + (map_height / 2.0); 1174 - rasterliteImagePrt output = NULL; 1176 + rasterliteImagePtr output = NULL; 1175 1177 reset_error (handle); 1176 1178 if (handle->handle == NULL || handle->stmt_rtree == NULL 1177 1179 || handle->stmt_plain == NULL) 1178 1180 { 1179 1181 sprintf (error, "invalid datasource"); 1180 1182 set_error (handle, error); 1181 1183 *raster = NULL; ................................................................................ 1245 1247 ret = sqlite3_step (stmt); 1246 1248 if (ret == SQLITE_DONE) 1247 1249 break; /* end of result set */ 1248 1250 if (ret == SQLITE_ROW) 1249 1251 { 1250 1252 /* retrieving query values */ 1251 1253 gaiaGeomCollPtr geom = NULL; 1252 - rasterliteImagePrt img = NULL; 1254 + rasterliteImagePtr img = NULL; 1253 1255 if (sqlite3_column_type (stmt, 0) == SQLITE_BLOB) 1254 1256 { 1255 1257 /* fetching Geometry */ 1256 1258 const void *blob = sqlite3_column_blob (stmt, 0); 1257 1259 int blob_size = sqlite3_column_bytes (stmt, 0); 1258 1260 geom = 1259 1261 gaiaFromSpatiaLiteBlobWkb ((const unsigned char *) ................................................................................ 1301 1303 else 1302 1304 { 1303 1305 /* resizing the raster tile */ 1304 1306 if (new_width == img->sx && new_height == img->sy) 1305 1307 ; 1306 1308 else 1307 1309 { 1308 - rasterliteImagePrt img2 = img; 1310 + rasterliteImagePtr img2 = img; 1309 1311 img = image_create (new_width, new_height); 1310 1312 image_resize (img, img2); 1311 1313 image_destroy (img2); 1312 1314 } 1313 1315 /* drawing the raster tile */ 1314 1316 copy_rectangle (output, img, 1315 1317 handle->transparent_color, ................................................................................ 1564 1566 RASTERLITE_DECLARE const char * 1565 1567 rasterliteGetSpatialiteVersion (void *ext_handle) 1566 1568 { 1567 1569 rasterlitePtr handle = (rasterlitePtr) ext_handle; 1568 1570 return handle->spatialite_version; 1569 1571 } 1570 1572 1571 -RASTERLITE_DECLARE int 1572 -rasterliteWaveletToPng (const void *blob, int blob_size, void **png_blob, 1573 - int *png_size) 1574 -{ 1575 -/* transforming a Wavelet compressed image into a PNG */ 1576 - rasterliteImagePrt img; 1577 - void *png; 1578 - int sz; 1579 - img = image_from_wavelet (blob_size, blob); 1580 - if (!img) 1581 - { 1582 - *png_size = 0; 1583 - *png_blob = NULL; 1584 - return RASTERLITE_ERROR; 1585 - } 1586 - if (img->color_space == COLORSPACE_GRAYSCALE) 1587 - png = image_to_png_grayscale (img, &sz); 1588 - else 1589 - png = image_to_png_rgb (img, &sz); 1590 - *png_size = sz; 1591 - *png_blob = png; 1592 - return RASTERLITE_OK; 1593 -} 1594 - 1595 1573 RASTERLITE_DECLARE int 1596 1574 rasterliteExportGeoTiff (void *handle, const char *img_path, void *raster, 1597 1575 int size, double cx, double cy, double pixel_x_size, 1598 1576 double pixel_y_size, int width, int height) 1599 1577 { 1600 1578 /* exporting a TIFF as a GeoTIFF */ 1601 1579 double xllcorner;
Added lib/rasterlite_aux.c.
1 +/* 2 +/ rasterlite_aux.c 3 +/ 4 +/ RAW image helpers 5 +/ 6 +/ version 1.1a, 2011 November 12 7 +/ 8 +/ Author: Sandro Furieri a.furieri@lqt.it 9 +/ 10 +/ Copyright (C) 2009 Alessandro Furieri 11 +/ 12 +/ This program is free software: you can redistribute it and/or modify 13 +/ it under the terms of the GNU Lesser General Public License as published by 14 +/ the Free Software Foundation, either version 3 of the License, or 15 +/ (at your option) any later version. 16 +/ 17 +/ This program is distributed in the hope that it will be useful, 18 +/ but WITHOUT ANY WARRANTY; without even the implied warranty of 19 +/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 +/ GNU Lesser General Public License for more details. 21 +/ 22 +/ You should have received a copy of the GNU Lesser General Public License 23 +/ along with this program. If not, see <http://www.gnu.org/licenses/>. 24 +/ 25 +*/ 26 + 27 +#include <stdlib.h> 28 +#include <stdio.h> 29 +#include <string.h> 30 +#include <float.h> 31 +#include <math.h> 32 + 33 +#ifdef _WIN32 34 +#include <io.h> 35 +#else 36 +#include <unistd.h> 37 +#endif 38 + 39 +#include "rasterlite_tiff_hdrs.h" 40 +#include <tiffio.h> 41 + 42 +#ifdef SPATIALITE_AMALGAMATION 43 +#include <spatialite/sqlite3.h> 44 +#else 45 +#include <sqlite3.h> 46 +#endif 47 + 48 +#include <spatialite/gaiaexif.h> 49 +#include <spatialite/gaiageo.h> 50 +#include <spatialite.h> 51 + 52 +#include "rasterlite.h" 53 +#include "rasterlite_internals.h" 54 + 55 +RASTERLITE_DECLARE int 56 +rasterliteJpegBlobToRawImage (const void *blob, int blob_size, int raw_format, 57 + void **raw, int *width, int *height) 58 +{ 59 +/* decompressing a Jpeg compressed image and returning a RAW image */ 60 + void *raw_array; 61 + int size; 62 + rasterliteImagePtr img = NULL; 63 + char *errmsg; 64 + 65 + if (raw_format == GAIA_RGB_ARRAY || raw_format == GAIA_RGBA_ARRAY 66 + || raw_format == GAIA_ARGB_ARRAY || raw_format == GAIA_BGR_ARRAY 67 + || raw_format == GAIA_BGRA_ARRAY) 68 + ; 69 + else 70 + { 71 + errmsg = "invalid raster RAW format"; 72 + goto error; 73 + } 74 + 75 + img = image_from_jpeg (blob_size, blob); 76 + if (!img) 77 + { 78 + errmsg = "Jpeg decoder error"; 79 + goto error; 80 + } 81 + 82 + if (raw_format == GAIA_RGB_ARRAY) 83 + { 84 + raw_array = image_to_rgb_array (img, &size); 85 + if (!raw_array) 86 + { 87 + errmsg = "RGB ARRAY generation error"; 88 + goto error; 89 + } 90 + } 91 + if (raw_format == GAIA_RGBA_ARRAY) 92 + { 93 + raw_array = image_to_rgba_array (-1, img, &size); 94 + if (!raw_array) 95 + { 96 + errmsg = "RGBA ARRAY generation error"; 97 + goto error; 98 + } 99 + } 100 + if (raw_format == GAIA_ARGB_ARRAY) 101 + { 102 + raw_array = image_to_argb_array (-1, img, &size); 103 + if (!raw_array) 104 + { 105 + errmsg = "ARGB ARRAY generation error"; 106 + goto error; 107 + } 108 + } 109 + if (raw_format == GAIA_BGR_ARRAY) 110 + { 111 + raw_array = image_to_bgr_array (img, &size); 112 + if (!raw_array) 113 + { 114 + errmsg = "BGR ARRAY generation error"; 115 + goto error; 116 + } 117 + } 118 + if (raw_format == GAIA_BGRA_ARRAY) 119 + { 120 + raw_array = image_to_bgra_array (-1, img, &size); 121 + if (!raw_array) 122 + { 123 + errmsg = "BGRA ARRAY generation error"; 124 + goto error; 125 + } 126 + } 127 + 128 + image_destroy (img); 129 + *raw = raw_array; 130 + *width = img->sx; 131 + *height = img->sy; 132 + return RASTERLITE_OK; 133 + 134 + error: 135 + fprintf (stderr, "%s\n", errmsg); 136 + if (img) 137 + image_destroy (img); 138 + *raw = NULL; 139 + *width = 0; 140 + *height = 0; 141 + return RASTERLITE_ERROR; 142 +} 143 + 144 +RASTERLITE_DECLARE int 145 +rasterlitePngBlobToRawImage (const void *blob, int blob_size, int raw_format, 146 + void **raw, int *width, int *height) 147 +{ 148 +/* decompressing a Png compressed image and returning a RAW image*/ 149 + void *raw_array; 150 + int size; 151 + rasterliteImagePtr img = NULL; 152 + char *errmsg; 153 + 154 + if (raw_format == GAIA_RGB_ARRAY || raw_format == GAIA_RGBA_ARRAY 155 + || raw_format == GAIA_ARGB_ARRAY || raw_format == GAIA_BGR_ARRAY 156 + || raw_format == GAIA_BGRA_ARRAY) 157 + ; 158 + else 159 + { 160 + errmsg = "invalid raster RAW format"; 161 + goto error; 162 + } 163 + 164 + img = image_from_png (blob_size, blob); 165 + if (!img) 166 + { 167 + errmsg = "Png decoder error"; 168 + goto error; 169 + } 170 + 171 + if (raw_format == GAIA_RGB_ARRAY) 172 + { 173 + raw_array = image_to_rgb_array (img, &size); 174 + if (!raw_array) 175 + { 176 + errmsg = "RGB ARRAY generation error"; 177 + goto error; 178 + } 179 + } 180 + if (raw_format == GAIA_RGBA_ARRAY) 181 + { 182 + raw_array = image_to_rgba_array (-1, img, &size); 183 + if (!raw_array) 184 + { 185 + errmsg = "RGBA ARRAY generation error"; 186 + goto error; 187 + } 188 + } 189 + if (raw_format == GAIA_ARGB_ARRAY) 190 + { 191 + raw_array = image_to_argb_array (-1, img, &size); 192 + if (!raw_array) 193 + { 194 + errmsg = "ARGB ARRAY generation error"; 195 + goto error; 196 + } 197 + } 198 + if (raw_format == GAIA_BGR_ARRAY) 199 + { 200 + raw_array = image_to_bgr_array (img, &size); 201 + if (!raw_array) 202 + { 203 + errmsg = "BGR ARRAY generation error"; 204 + goto error; 205 + } 206 + } 207 + if (raw_format == GAIA_BGRA_ARRAY) 208 + { 209 + raw_array = image_to_bgra_array (-1, img, &size); 210 + if (!raw_array) 211 + { 212 + errmsg = "BGRA ARRAY generation error"; 213 + goto error; 214 + } 215 + } 216 + 217 + image_destroy (img); 218 + *raw = raw_array; 219 + *width = img->sx; 220 + *height = img->sy; 221 + return RASTERLITE_OK; 222 + 223 + error: 224 + fprintf (stderr, "%s\n", errmsg); 225 + if (img) 226 + image_destroy (img); 227 + *raw = NULL; 228 + *width = 0; 229 + *height = 0; 230 + return RASTERLITE_ERROR; 231 +} 232 + 233 +RASTERLITE_DECLARE int 234 +rasterliteGifBlobToRawImage (const void *blob, int blob_size, int raw_format, 235 + void **raw, int *width, int *height) 236 +{ 237 +/* decompressing a GIF compressed image and returning a RAW image */ 238 + void *raw_array; 239 + int size; 240 + rasterliteImagePtr img = NULL; 241 + char *errmsg; 242 + 243 + if (raw_format == GAIA_RGB_ARRAY || raw_format == GAIA_RGBA_ARRAY 244 + || raw_format == GAIA_ARGB_ARRAY || raw_format == GAIA_BGR_ARRAY 245 + || raw_format == GAIA_BGRA_ARRAY) 246 + ; 247 + else 248 + { 249 + errmsg = "invalid raster RAW format"; 250 + goto error; 251 + } 252 + 253 + img = image_from_gif (blob_size, blob); 254 + if (!img) 255 + { 256 + errmsg = "Gif decoder error"; 257 + goto error; 258 + } 259 + 260 + if (raw_format == GAIA_RGB_ARRAY) 261 + { 262 + raw_array = image_to_rgb_array (img, &size); 263 + if (!raw_array) 264 + { 265 + errmsg = "RGB ARRAY generation error"; 266 + goto error; 267 + } 268 + } 269 + if (raw_format == GAIA_RGBA_ARRAY) 270 + { 271 + raw_array = image_to_rgba_array (-1, img, &size); 272 + if (!raw_array) 273 + { 274 + errmsg = "RGBA ARRAY generation error"; 275 + goto error; 276 + } 277 + } 278 + if (raw_format == GAIA_ARGB_ARRAY) 279 + { 280 + raw_array = image_to_argb_array (-1, img, &size); 281 + if (!raw_array) 282 + { 283 + errmsg = "ARGB ARRAY generation error"; 284 + goto error; 285 + } 286 + } 287 + if (raw_format == GAIA_BGR_ARRAY) 288 + { 289 + raw_array = image_to_bgr_array (img, &size); 290 + if (!raw_array) 291 + { 292 + errmsg = "BGR ARRAY generation error"; 293 + goto error; 294 + } 295 + } 296 + if (raw_format == GAIA_BGRA_ARRAY) 297 + { 298 + raw_array = image_to_bgra_array (-1, img, &size); 299 + if (!raw_array) 300 + { 301 + errmsg = "BGRA ARRAY generation error"; 302 + goto error; 303 + } 304 + } 305 + 306 + image_destroy (img); 307 + *raw = raw_array; 308 + *width = img->sx; 309 + *height = img->sy; 310 + return RASTERLITE_OK; 311 + 312 + error: 313 + fprintf (stderr, "%s\n", errmsg); 314 + if (img) 315 + image_destroy (img); 316 + *raw = NULL; 317 + *width = 0; 318 + *height = 0; 319 + return RASTERLITE_ERROR; 320 +} 321 + 322 +RASTERLITE_DECLARE int 323 +rasterliteTiffBlobToRawImage (const void *blob, int blob_size, int raw_format, 324 + void **raw, int *width, int *height) 325 +{ 326 +/* decoding a TIFF encoded image and returning a RAW image */ 327 + void *raw_array; 328 + int size; 329 + rasterliteImagePtr img = NULL; 330 + char *errmsg; 331 + 332 + if (raw_format == GAIA_RGB_ARRAY || raw_format == GAIA_RGBA_ARRAY 333 + || raw_format == GAIA_ARGB_ARRAY || raw_format == GAIA_BGR_ARRAY 334 + || raw_format == GAIA_BGRA_ARRAY) 335 + ; 336 + else 337 + { 338 + errmsg = "invalid raster RAW format"; 339 + goto error; 340 + } 341 + 342 + img = image_from_tiff (blob_size, blob); 343 + if (!img) 344 + { 345 + errmsg = "Tiff decoder error"; 346 + goto error; 347 + } 348 + 349 + if (raw_format == GAIA_RGB_ARRAY) 350 + { 351 + raw_array = image_to_rgb_array (img, &size); 352 + if (!raw_array) 353 + { 354 + errmsg = "RGB ARRAY generation error"; 355 + goto error; 356 + } 357 + } 358 + if (raw_format == GAIA_RGBA_ARRAY) 359 + { 360 + raw_array = image_to_rgba_array (-1, img, &size); 361 + if (!raw_array) 362 + { 363 + errmsg = "RGBA ARRAY generation error"; 364 + goto error; 365 + } 366 + } 367 + if (raw_format == GAIA_ARGB_ARRAY) 368 + { 369 + raw_array = image_to_argb_array (-1, img, &size); 370 + if (!raw_array) 371 + { 372 + errmsg = "ARGB ARRAY generation error"; 373 + goto error; 374 + } 375 + } 376 + if (raw_format == GAIA_BGR_ARRAY) 377 + { 378 + raw_array = image_to_bgr_array (img, &size); 379 + if (!raw_array) 380 + { 381 + errmsg = "BGR ARRAY generation error"; 382 + goto error; 383 + } 384 + } 385 + if (raw_format == GAIA_BGRA_ARRAY) 386 + { 387 + raw_array = image_to_bgra_array (-1, img, &size); 388 + if (!raw_array) 389 + { 390 + errmsg = "BGRA ARRAY generation error"; 391 + goto error; 392 + } 393 + } 394 + 395 + image_destroy (img); 396 + *raw = raw_array; 397 + *width = img->sx; 398 + *height = img->sy; 399 + return RASTERLITE_OK; 400 + 401 + error: 402 + fprintf (stderr, "%s\n", errmsg); 403 + if (img) 404 + image_destroy (img); 405 + *raw = NULL; 406 + *width = 0; 407 + *height = 0; 408 + return RASTERLITE_ERROR; 409 +} 410 + 411 +RASTERLITE_DECLARE int 412 +rasterliteRawImageToJpegFile (const void *raw, int raw_format, int width, 413 + int height, const char *path, int quality) 414 +{ 415 +/* exports a RAW image into a JPEG compressed file */ 416 + rasterliteImagePtr img = NULL; 417 + void *blob = NULL; 418 + int blob_size; 419 + char *errmsg; 420 + int err = 0; 421 + FILE *out; 422 + 423 + if (raw == NULL) 424 + { 425 + errmsg = "NULL RAW image"; 426 + goto error; 427 + } 428 + if (width <= 0 || height <= 0) 429 + { 430 + errmsg = "invalid RAW image width/height"; 431 + goto error; 432 + } 433 + if (raw_format == GAIA_RGB_ARRAY || raw_format == GAIA_RGBA_ARRAY 434 + || raw_format == GAIA_ARGB_ARRAY || raw_format == GAIA_BGR_ARRAY 435 + || raw_format == GAIA_BGRA_ARRAY) 436 + ; 437 + else 438 + { 439 + errmsg = "invalid raster RAW format"; 440 + goto error; 441 + } 442 + if (raw_format == GAIA_RGB_ARRAY) 443 + { 444 + img = image_from_rgb_array (raw, width, height); 445 + if (!img) 446 + { 447 + errmsg = "unable to get an image from RGB ARRAY"; 448 + goto error; 449 + } 450 + } 451 + if (raw_format == GAIA_RGBA_ARRAY) 452 + { 453 + img = image_from_rgba_array (raw, width, height); 454 + if (!img) 455 + { 456 + errmsg = "unable to get an image from RGBA ARRAY"; 457 + goto error; 458 + } 459 + } 460 + if (raw_format == GAIA_ARGB_ARRAY) 461 + { 462 + img = image_from_argb_array (raw, width, height); 463 + if (!img) 464 + { 465 + errmsg = "unable to get an image from ARGB ARRAY"; 466 + goto error; 467 + } 468 + } 469 + if (raw_format == GAIA_BGR_ARRAY) 470 + { 471 + img = image_from_bgr_array (raw, width, height); 472 + if (!img) 473 + { 474 + errmsg = "unable to get an image from BGR ARRAY"; 475 + goto error; 476 + } 477 + } 478 + if (raw_format == GAIA_BGRA_ARRAY) 479 + { 480 + img = image_from_bgra_array (raw, width, height); 481 + if (!img) 482 + { 483 + errmsg = "unable to get an image from BGRA ARRAY"; 484 + goto error; 485 + } 486 + } 487 + 488 +/* compressing as JPEG */ 489 + if (is_image_grayscale (img) == RASTERLITE_TRUE) 490 + blob = image_to_jpeg_grayscale (img, &blob_size, quality); 491 + else 492 + blob = image_to_jpeg (img, &blob_size, quality); 493 + if (!blob) 494 + { 495 + errmsg = "Jpeg encoder error"; 496 + goto error; 497 + } 498 + 499 +/* exporting to file */ 500 + out = fopen (path, "wb"); 501 + if (out == NULL) 502 + { 503 + errmsg = "Unable to create output image"; 504 + goto error; 505 + } 506 + if (fwrite (blob, 1, blob_size, out) != (size_t) blob_size) 507 + err = 1; 508 + fclose (out); 509 + if (err) 510 + { 511 + unlink (path); 512 + goto error; 513 + } 514 + free (blob); 515 + image_destroy (img); 516 + return RASTERLITE_OK; 517 + 518 + error: 519 + fprintf (stderr, "%s\n", errmsg); 520 + if (img) 521 + image_destroy (img); 522 + if (blob) 523 + free (blob); 524 + return RASTERLITE_ERROR; 525 +} 526 + 527 +RASTERLITE_DECLARE unsigned char * 528 +rasterliteRawImageToJpegMemBuf (const void *raw, int raw_format, int width, 529 + int height, int *size, int quality) 530 +{ 531 +/* exports a RAW image into a JPEG compressed memory buffer */ 532 + rasterliteImagePtr img = NULL; 533 + void *blob = NULL; 534 + int blob_size; 535 + char *errmsg; 536 + int err = 0; 537 + 538 + if (raw == NULL) 539 + { 540 + errmsg = "NULL RAW image"; 541 + goto error; 542 + } 543 + if (width <= 0 || height <= 0) 544 + { 545 + errmsg = "invalid RAW image width/height"; 546 + goto error; 547 + } 548 + if (raw_format == GAIA_RGB_ARRAY || raw_format == GAIA_RGBA_ARRAY 549 + || raw_format == GAIA_ARGB_ARRAY || raw_format == GAIA_BGR_ARRAY 550 + || raw_format == GAIA_BGRA_ARRAY) 551 + ; 552 + else 553 + { 554 + errmsg = "invalid raster RAW format"; 555 + goto error; 556 + } 557 + if (raw_format == GAIA_RGB_ARRAY) 558 + { 559 + img = image_from_rgb_array (raw, width, height); 560 + if (!img) 561 + { 562 + errmsg = "unable to get an image from RGB ARRAY"; 563 + goto error; 564 + } 565 + } 566 + if (raw_format == GAIA_RGBA_ARRAY) 567 + { 568 + img = image_from_rgba_array (raw, width, height); 569 + if (!img) 570 + { 571 + errmsg = "unable to get an image from RGBA ARRAY"; 572 + goto error; 573 + } 574 + } 575 + if (raw_format == GAIA_ARGB_ARRAY) 576 + { 577 + img = image_from_argb_array (raw, width, height); 578 + if (!img) 579 + { 580 + errmsg = "unable to get an image from ARGB ARRAY"; 581 + goto error; 582 + } 583 + } 584 + if (raw_format == GAIA_BGR_ARRAY) 585 + { 586 + img = image_from_bgr_array (raw, width, height); 587 + if (!img) 588 + { 589 + errmsg = "unable to get an image from BGR ARRAY"; 590 + goto error; 591 + } 592 + } 593 + if (raw_format == GAIA_BGRA_ARRAY) 594 + { 595 + img = image_from_bgra_array (raw, width, height); 596 + if (!img) 597 + { 598 + errmsg = "unable to get an image from BGRA ARRAY"; 599 + goto error; 600 + } 601 + } 602 + 603 +/* compressing as JPEG */ 604 + if (is_image_grayscale (img) == RASTERLITE_TRUE) 605 + blob = image_to_jpeg_grayscale (img, &blob_size, quality); 606 + else 607 + blob = image_to_jpeg (img, &blob_size, quality); 608 + if (!blob) 609 + { 610 + errmsg = "Jpeg encoder error"; 611 + goto error; 612 + } 613 + 614 +/* exporting the memory buffer */ 615 + image_destroy (img); 616 + *size = blob_size; 617 + return blob; 618 + 619 + error: 620 + fprintf (stderr, "%s\n", errmsg); 621 + if (img) 622 + image_destroy (img); 623 + if (blob) 624 + free (blob); 625 + *size = 0; 626 + return NULL; 627 +} 628 + 629 +RASTERLITE_DECLARE int 630 +rasterliteRawImageToPngFile (const void *raw, int raw_format, int width, 631 + int height, const char *path) 632 +{ 633 +/* exports a RAW image into a PNG compressed file */ 634 + rasterliteImagePtr img = NULL; 635 + void *blob = NULL; 636 + int blob_size; 637 + char *errmsg; 638 + int err = 0; 639 + FILE *out; 640 + 641 + if (raw == NULL) 642 + { 643 + errmsg = "NULL RAW image"; 644 + goto error; 645 + } 646 + if (width <= 0 || height <= 0) 647 + { 648 + errmsg = "invalid RAW image width/height"; 649 + goto error; 650 + } 651 + if (raw_format == GAIA_RGB_ARRAY || raw_format == GAIA_RGBA_ARRAY 652 + || raw_format == GAIA_ARGB_ARRAY || raw_format == GAIA_BGR_ARRAY 653 + || raw_format == GAIA_BGRA_ARRAY) 654 + ; 655 + else 656 + { 657 + errmsg = "invalid raster RAW format"; 658 + goto error; 659 + } 660 + if (raw_format == GAIA_RGB_ARRAY) 661 + { 662 + img = image_from_rgb_array (raw, width, height); 663 + if (!img) 664 + { 665 + errmsg = "unable to get an image from RGB ARRAY"; 666 + goto error; 667 + } 668 + } 669 + if (raw_format == GAIA_RGBA_ARRAY) 670 + { 671 + img = image_from_rgba_array (raw, width, height); 672 + if (!img) 673 + { 674 + errmsg = "unable to get an image from RGBA ARRAY"; 675 + goto error; 676 + } 677 + } 678 + if (raw_format == GAIA_ARGB_ARRAY) 679 + { 680 + img = image_from_argb_array (raw, width, height); 681 + if (!img) 682 + { 683 + errmsg = "unable to get an image from ARGB ARRAY"; 684 + goto error; 685 + } 686 + } 687 + if (raw_format == GAIA_BGR_ARRAY) 688 + { 689 + img = image_from_bgr_array (raw, width, height); 690 + if (!img) 691 + { 692 + errmsg = "unable to get an image from BGR ARRAY"; 693 + goto error; 694 + } 695 + } 696 + if (raw_format == GAIA_BGRA_ARRAY) 697 + { 698 + img = image_from_bgra_array (raw, width, height); 699 + if (!img) 700 + { 701 + errmsg = "unable to get an image from BGRA ARRAY"; 702 + goto error; 703 + } 704 + } 705 + 706 +/* compressing as PNG */ 707 + if (is_image_grayscale (img) == RASTERLITE_TRUE) 708 + blob = image_to_png_grayscale (img, &blob_size); 709 + else if (is_image_palette256 (img) == RASTERLITE_TRUE) 710 + blob = image_to_png_palette (img, &blob_size); 711 + else 712 + blob = image_to_png_rgb (img, &blob_size); 713 + if (!blob) 714 + { 715 + errmsg = "Png encoder error"; 716 + goto error; 717 + } 718 + 719 +/* exporting to file */ 720 + out = fopen (path, "wb"); 721 + if (out == NULL) 722 + { 723 + errmsg = "Unable to create output image"; 724 + goto error; 725 + } 726 + if (fwrite (blob, 1, blob_size, out) != (size_t) blob_size) 727 + err = 1; 728 + fclose (out); 729 + if (err) 730 + { 731 + unlink (path); 732 + goto error; 733 + } 734 + free (blob); 735 + image_destroy (img); 736 + return RASTERLITE_OK; 737 + 738 + error: 739 + fprintf (stderr, "%s\n", errmsg); 740 + if (img) 741 + image_destroy (img); 742 + if (blob) 743 + free (blob); 744 + return RASTERLITE_ERROR; 745 +} 746 + 747 +RASTERLITE_DECLARE unsigned char * 748 +rasterliteRawImageToPngMemBuf (const void *raw, int raw_format, int width, 749 + int height, int *size) 750 +{ 751 +/* exports a RAW image into a PNG compressed memory buffer */ 752 + rasterliteImagePtr img = NULL; 753 + void *blob = NULL; 754 + int blob_size; 755 + char *errmsg; 756 + int err = 0; 757 + 758 + if (raw == NULL) 759 + { 760 + errmsg = "NULL RAW image"; 761 + goto error; 762 + } 763 + if (width <= 0 || height <= 0) 764 + { 765 + errmsg = "invalid RAW image width/height"; 766 + goto error; 767 + } 768 + if (raw_format == GAIA_RGB_ARRAY || raw_format == GAIA_RGBA_ARRAY 769 + || raw_format == GAIA_ARGB_ARRAY || raw_format == GAIA_BGR_ARRAY 770 + || raw_format == GAIA_BGRA_ARRAY) 771 + ; 772 + else 773 + { 774 + errmsg = "invalid raster RAW format"; 775 + goto error; 776 + } 777 + if (raw_format == GAIA_RGB_ARRAY) 778 + { 779 + img = image_from_rgb_array (raw, width, height); 780 + if (!img) 781 + { 782 + errmsg = "unable to get an image from RGB ARRAY"; 783 + goto error; 784 + } 785 + } 786 + if (raw_format == GAIA_RGBA_ARRAY) 787 + { 788 + img = image_from_rgba_array (raw, width, height); 789 + if (!img) 790 + { 791 + errmsg = "unable to get an image from RGBA ARRAY"; 792 + goto error; 793 + } 794 + } 795 + if (raw_format == GAIA_ARGB_ARRAY) 796 + { 797 + img = image_from_argb_array (raw, width, height); 798 + if (!img) 799 + { 800 + errmsg = "unable to get an image from ARGB ARRAY"; 801 + goto error; 802 + } 803 + } 804 + if (raw_format == GAIA_BGR_ARRAY) 805 + { 806 + img = image_from_bgr_array (raw, width, height); 807 + if (!img) 808 + { 809 + errmsg = "unable to get an image from BGR ARRAY"; 810 + goto error; 811 + } 812 + } 813 + if (raw_format == GAIA_BGRA_ARRAY) 814 + { 815 + img = image_from_bgra_array (raw, width, height); 816 + if (!img) 817 + { 818 + errmsg = "unable to get an image from BGRA ARRAY"; 819 + goto error; 820 + } 821 + } 822 + 823 +/* compressing as PNG */ 824 + if (is_image_grayscale (img) == RASTERLITE_TRUE) 825 + blob = image_to_png_grayscale (img, &blob_size); 826 + else if (is_image_palette256 (img) == RASTERLITE_TRUE) 827 + blob = image_to_png_palette (img, &blob_size); 828 + else 829 + blob = image_to_png_rgb (img, &blob_size); 830 + if (!blob) 831 + { 832 + errmsg = "Png encoder error"; 833 + goto error; 834 + } 835 + 836 +/* exporting the memory buffer */ 837 + image_destroy (img); 838 + *size = blob_size; 839 + return blob; 840 + 841 + error: 842 + fprintf (stderr, "%s\n", errmsg); 843 + if (img) 844 + image_destroy (img); 845 + if (blob) 846 + free (blob); 847 + *size = 0; 848 + return NULL; 849 +} 850 + 851 +RASTERLITE_DECLARE int 852 +rasterliteRawImageToGifFile (const void *raw, int raw_format, int width, 853 + int height, const char *path) 854 +{ 855 +/* exports a RAW image into a GIF compressed file */ 856 + rasterliteImagePtr img = NULL; 857 + void *blob = NULL; 858 + int blob_size; 859 + char *errmsg; 860 + int err = 0; 861 + FILE *out; 862 + 863 + if (raw == NULL) 864 + { 865 + errmsg = "NULL RAW image"; 866 + goto error; 867 + } 868 + if (width <= 0 || height <= 0) 869 + { 870 + errmsg = "invalid RAW image width/height"; 871 + goto error; 872 + } 873 + if (raw_format == GAIA_RGB_ARRAY || raw_format == GAIA_RGBA_ARRAY 874 + || raw_format == GAIA_ARGB_ARRAY || raw_format == GAIA_BGR_ARRAY 875 + || raw_format == GAIA_BGRA_ARRAY) 876 + ; 877 + else 878 + { 879 + errmsg = "invalid raster RAW format"; 880 + goto error; 881 + } 882 + if (raw_format == GAIA_RGB_ARRAY) 883 + { 884 + img = image_from_rgb_array (raw, width, height); 885 + if (!img) 886 + { 887 + errmsg = "unable to get an image from RGB ARRAY"; 888 + goto error; 889 + } 890 + } 891 + if (raw_format == GAIA_RGBA_ARRAY) 892 + { 893 + img = image_from_rgba_array (raw, width, height); 894 + if (!img) 895 + { 896 + errmsg = "unable to get an image from RGBA ARRAY"; 897 + goto error; 898 + } 899 + } 900 + if (raw_format == GAIA_ARGB_ARRAY) 901 + { 902 + img = image_from_argb_array (raw, width, height); 903 + if (!img) 904 + { 905 + errmsg = "unable to get an image from ARGB ARRAY"; 906 + goto error; 907 + } 908 + } 909 + if (raw_format == GAIA_BGR_ARRAY) 910 + { 911 + img = image_from_bgr_array (raw, width, height); 912 + if (!img) 913 + { 914 + errmsg = "unable to get an image from BGR ARRAY"; 915 + goto error; 916 + } 917 + } 918 + if (raw_format == GAIA_BGRA_ARRAY) 919 + { 920 + img = image_from_bgra_array (raw, width, height); 921 + if (!img) 922 + { 923 + errmsg = "unable to get an image from BGRA ARRAY"; 924 + goto error; 925 + } 926 + } 927 + 928 +/* compressing as GIF */ 929 + if (is_image_palette256 (img) == RASTERLITE_FALSE) 930 + image_resample_as_palette256 (img); 931 + 932 + blob = image_to_gif (img, &blob_size); 933 + if (!blob) 934 + { 935 + errmsg = "Gif encoder error"; 936 + goto error; 937 + } 938 + 939 +/* exporting to file */ 940 + out = fopen (path, "wb"); 941 + if (out == NULL) 942 + { 943 + errmsg = "Unable to create output image"; 944 + goto error; 945 + } 946 + if (fwrite (blob, 1, blob_size, out) != (size_t) blob_size) 947 + err = 1; 948 + fclose (out); 949 + if (err) 950 + { 951 + unlink (path); 952 + goto error; 953 + } 954 + free (blob); 955 + image_destroy (img); 956 + return RASTERLITE_OK; 957 + 958 + error: 959 + fprintf (stderr, "%s\n", errmsg); 960 + if (img) 961 + image_destroy (img); 962 + if (blob) 963 + free (blob); 964 + return RASTERLITE_ERROR; 965 +} 966 + 967 +RASTERLITE_DECLARE unsigned char * 968 +rasterliteRawImageToGifMemBuf (const void *raw, int raw_format, int width, 969 + int height, int *size) 970 +{ 971 +/* exports a RAW image into a GIF compressed memory buffer */ 972 + rasterliteImagePtr img = NULL; 973 + void *blob = NULL; 974 + int blob_size; 975 + char *errmsg; 976 + int err = 0; 977 + 978 + if (raw == NULL) 979 + { 980 + errmsg = "NULL RAW image"; 981 + goto error; 982 + } 983 + if (width <= 0 || height <= 0) 984 + { 985 + errmsg = "invalid RAW image width/height"; 986 + goto error; 987 + } 988 + if (raw_format == GAIA_RGB_ARRAY || raw_format == GAIA_RGBA_ARRAY 989 + || raw_format == GAIA_ARGB_ARRAY || raw_format == GAIA_BGR_ARRAY 990 + || raw_format == GAIA_BGRA_ARRAY) 991 + ; 992 + else 993 + { 994 + errmsg = "invalid raster RAW format"; 995 + goto error; 996 + } 997 + if (raw_format == GAIA_RGB_ARRAY) 998 + { 999 + img = image_from_rgb_array (raw, width, height); 1000 + if (!img) 1001 + { 1002 + errmsg = "unable to get an image from RGB ARRAY"; 1003 + goto error; 1004 + } 1005 + } 1006 + if (raw_format == GAIA_RGBA_ARRAY) 1007 + { 1008 + img = image_from_rgba_array (raw, width, height); 1009 + if (!img) 1010 + { 1011 + errmsg = "unable to get an image from RGBA ARRAY"; 1012 + goto error; 1013 + } 1014 + } 1015 + if (raw_format == GAIA_ARGB_ARRAY) 1016 + { 1017 + img = image_from_argb_array (raw, width, height); 1018 + if (!img) 1019 + { 1020 + errmsg = "unable to get an image from ARGB ARRAY"; 1021 + goto error; 1022 + } 1023 + } 1024 + if (raw_format == GAIA_BGR_ARRAY) 1025 + { 1026 + img = image_from_bgr_array (raw, width, height); 1027 + if (!img) 1028 + { 1029 + errmsg = "unable to get an image from BGR ARRAY"; 1030 + goto error; 1031 + } 1032 + } 1033 + if (raw_format == GAIA_BGRA_ARRAY) 1034 + { 1035 + img = image_from_bgra_array (raw, width, height); 1036 + if (!img) 1037 + { 1038 + errmsg = "unable to get an image from BGRA ARRAY"; 1039 + goto error; 1040 + } 1041 + } 1042 + 1043 +/* compressing as GIF */ 1044 + if (is_image_palette256 (img) == RASTERLITE_FALSE) 1045 + image_resample_as_palette256 (img); 1046 + 1047 + blob = image_to_gif (img, &blob_size); 1048 + if (!blob) 1049 + { 1050 + errmsg = "Gif encoder error"; 1051 + goto error; 1052 + } 1053 + 1054 +/* exporting the memory buffer */ 1055 + image_destroy (img); 1056 + *size = blob_size; 1057 + return blob; 1058 + 1059 + error: 1060 + fprintf (stderr, "%s\n", errmsg); 1061 + if (img) 1062 + image_destroy (img); 1063 + if (blob) 1064 + free (blob); 1065 + *size = 0; 1066 + return NULL; 1067 +} 1068 + 1069 +RASTERLITE_DECLARE int 1070 +rasterliteRawImageToGeoTiffFile (const void *raw, int raw_format, int width, 1071 + int height, const char *path, double x_size, 1072 + double y_size, double xllcorner, 1073 + double yllcorner, const char *proj4text) 1074 +{ 1075 +/* exports a RAW image into a TIFF encoded file */ 1076 + rasterliteImagePtr img = NULL; 1077 + void *blob = NULL; 1078 + int blob_size; 1079 + char *errmsg; 1080 + 1081 + if (raw == NULL) 1082 + { 1083 + errmsg = "NULL RAW image"; 1084 + goto error; 1085 + } 1086 + if (width <= 0 || height <= 0) 1087 + { 1088 + errmsg = "invalid RAW image width/height"; 1089 + goto error; 1090 + } 1091 + if (raw_format == GAIA_RGB_ARRAY || raw_format == GAIA_RGBA_ARRAY 1092 + || raw_format == GAIA_ARGB_ARRAY || raw_format == GAIA_BGR_ARRAY 1093 + || raw_format == GAIA_BGRA_ARRAY) 1094 + ; 1095 + else 1096 + { 1097 + errmsg = "invalid raster RAW format"; 1098 + goto error; 1099 + } 1100 + if (raw_format == GAIA_RGB_ARRAY) 1101 + { 1102 + img = image_from_rgb_array (raw, width, height); 1103 + if (!img) 1104 + { 1105 + errmsg = "unable to get an image from RGB ARRAY"; 1106 + goto error; 1107 + } 1108 + } 1109 + if (raw_format == GAIA_RGBA_ARRAY) 1110 + { 1111 + img = image_from_rgba_array (raw, width, height); 1112 + if (!img) 1113 + { 1114 + errmsg = "unable to get an image from RGBA ARRAY"; 1115 + goto error; 1116 + } 1117 + } 1118 + if (raw_format == GAIA_ARGB_ARRAY) 1119 + { 1120 + img = image_from_argb_array (raw, width, height); 1121 + if (!img) 1122 + { 1123 + errmsg = "unable to get an image from ARGB ARRAY"; 1124 + goto error; 1125 + } 1126 + } 1127 + if (raw_format == GAIA_BGR_ARRAY) 1128 + { 1129 + img = image_from_bgr_array (raw, width, height); 1130 + if (!img) 1131 + { 1132 + errmsg = "unable to get an image from BGR ARRAY"; 1133 + goto error; 1134 + } 1135 + } 1136 + if (raw_format == GAIA_BGRA_ARRAY) 1137 + { 1138 + img = image_from_bgra_array (raw, width, height); 1139 + if (!img) 1140 + { 1141 + errmsg = "unable to get an image from BGRA ARRAY"; 1142 + goto error; 1143 + } 1144 + } 1145 + 1146 +/* encoding as TIFF */ 1147 + if (is_image_monochrome (img) == RASTERLITE_TRUE) 1148 + blob = image_to_tiff_fax4 (img, &blob_size); 1149 + else if (is_image_grayscale (img) == RASTERLITE_TRUE) 1150 + blob = image_to_tiff_grayscale (img, &blob_size); 1151 + else if (is_image_palette256 (img) == RASTERLITE_TRUE) 1152 + blob = image_to_tiff_palette (img, &blob_size); 1153 + else 1154 + blob = image_to_tiff_rgb (img, &blob_size); 1155 + if (!blob) 1156 + { 1157 + errmsg = "Tiff encoder error"; 1158 + goto error; 1159 + } 1160 + 1161 +/* exporting to file as GeoTiff */ 1162 + if (!write_geotiff 1163 + (path, blob, blob_size, x_size, y_size, xllcorner, yllcorner, 1164 + proj4text)) 1165 + { 1166 + errmsg = "Unable to create output image"; 1167 + goto error; 1168 + } 1169 + free (blob); 1170 + image_destroy (img); 1171 + return RASTERLITE_OK; 1172 + 1173 + error: 1174 + fprintf (stderr, "%s\n", errmsg); 1175 + if (img) 1176 + image_destroy (img); 1177 + if (blob) 1178 + free (blob); 1179 + return RASTERLITE_ERROR; 1180 +} 1181 + 1182 +RASTERLITE_DECLARE unsigned char * 1183 +rasterliteRawImageToTiffMemBuf (const void *raw, int raw_format, int width, 1184 + int height, int *size) 1185 +{ 1186 +/* exports a RAW image into a TIFF encoded memory buffer */ 1187 + rasterliteImagePtr img = NULL; 1188 + void *blob = NULL; 1189 + int blob_size; 1190 + char *errmsg; 1191 + 1192 + if (raw == NULL) 1193 + { 1194 + errmsg = "NULL RAW image"; 1195 + goto error; 1196 + } 1197 + if (width <= 0 || height <= 0) 1198 + { 1199 + errmsg = "invalid RAW image width/height"; 1200 + goto error; 1201 + } 1202 + if (raw_format == GAIA_RGB_ARRAY || raw_format == GAIA_RGBA_ARRAY 1203 + || raw_format == GAIA_ARGB_ARRAY || raw_format == GAIA_BGR_ARRAY 1204 + || raw_format == GAIA_BGRA_ARRAY) 1205 + ; 1206 + else 1207 + { 1208 + errmsg = "invalid raster RAW format"; 1209 + goto error; 1210 + } 1211 + if (raw_format == GAIA_RGB_ARRAY) 1212 + { 1213 + img = image_from_rgb_array (raw, width, height); 1214 + if (!img) 1215 + { 1216 + errmsg = "unable to get an image from RGB ARRAY"; 1217 + goto error; 1218 + } 1219 + } 1220 + if (raw_format == GAIA_RGBA_ARRAY) 1221 + { 1222 + img = image_from_rgba_array (raw, width, height); 1223 + if (!img) 1224 + { 1225 + errmsg = "unable to get an image from RGBA ARRAY"; 1226 + goto error; 1227 + } 1228 + } 1229 + if (raw_format == GAIA_ARGB_ARRAY) 1230 + { 1231 + img = image_from_argb_array (raw, width, height); 1232 + if (!img) 1233 + { 1234 + errmsg = "unable to get an image from ARGB ARRAY"; 1235 + goto error; 1236 + } 1237 + } 1238 + if (raw_format == GAIA_BGR_ARRAY) 1239 + { 1240 + img = image_from_bgr_array (raw, width, height); 1241 + if (!img) 1242 + { 1243 + errmsg = "unable to get an image from BGR ARRAY"; 1244 + goto error; 1245 + } 1246 + } 1247 + if (raw_format == GAIA_BGRA_ARRAY) 1248 + { 1249 + img = image_from_bgra_array (raw, width, height); 1250 + if (!img) 1251 + { 1252 + errmsg = "unable to get an image from BGRA ARRAY"; 1253 + goto error; 1254 + } 1255 + } 1256 + 1257 +/* encoding as TIFF */ 1258 + if (is_image_monochrome (img) == RASTERLITE_TRUE) 1259 + blob = image_to_tiff_fax4 (img, &blob_size); 1260 + else if (is_image_grayscale (img) == RASTERLITE_TRUE) 1261 + blob = image_to_tiff_grayscale (img, &blob_size); 1262 + else if (is_image_palette256 (img) == RASTERLITE_TRUE) 1263 + blob = image_to_tiff_palette (img, &blob_size); 1264 + else 1265 + blob = image_to_tiff_rgb (img, &blob_size); 1266 + if (!blob) 1267 + { 1268 + errmsg = "Tiff encoder error"; 1269 + goto error; 1270 + } 1271 + 1272 +/* exporting the memory buffer */ 1273 + image_destroy (img); 1274 + *size = blob_size; 1275 + return blob; 1276 + 1277 + error: 1278 + fprintf (stderr, "%s\n", errmsg); 1279 + if (img) 1280 + image_destroy (img); 1281 + if (blob) 1282 + free (blob); 1283 + *size = 0; 1284 + return NULL; 1285 +}
Changes to lib/rasterlite_gif.c.
1 1 /* 2 2 / rasterlite_gif.c 3 3 / 4 4 / GIF auxiliary helpers 5 5 / 6 -/ version 1.0, 2009 June 1 6 +/ version 1.1a, 2011 November 12 7 7 / 8 8 / Author: Sandro Furieri a.furieri@lqt.it 9 9 / 10 10 / Copyright (C) 2009 Alessandro Furieri 11 11 / 12 12 / This program is free software: you can redistribute it and/or modify 13 -/ it under the terms of the GNU General Public License as published by 13 +/ it under the terms of the GNU Lesser General Public License as published by 14 14 / the Free Software Foundation, either version 3 of the License, or 15 15 / (at your option) any later version. 16 16 / 17 17 / This program is distributed in the hope that it will be useful, 18 18 / but WITHOUT ANY WARRANTY; without even the implied warranty of 19 19 / MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 -/ GNU General Public License for more details. 20 +/ GNU Lesser General Public License for more details. 21 21 / 22 -/ You should have received a copy of the GNU General Public License 22 +/ You should have received a copy of the GNU Lesser General Public License 23 23 / along with this program. If not, see <http://www.gnu.org/licenses/>. 24 24 / 25 25 */ 26 26 27 27 #include <stdio.h> 28 28 #include <math.h> 29 29 #include <string.h> 30 30 #include <stdlib.h> 31 31 32 -#include <spatialite/sqlite3.h> 33 -#include <spatialite/gaiageo.h> 34 - 35 32 #include <tiffio.h> 36 33 34 +#ifdef SPATIALITE_AMALGAMATION 35 +#include <spatialite/sqlite3.h> 36 +#else 37 +#include <sqlite3.h> 38 +#endif 39 + 40 +#include <spatialite/gaiageo.h> 41 + 37 42 #include "rasterlite_internals.h" 38 43 39 44 /* 40 45 / 41 46 / DISCLAIMER: 42 47 / all the following code merely is an 'ad hoc' adaption 43 48 / deriving from the original GD lib code ................................................................................ 364 369 { 365 370 int rv; 366 371 rv = LWZReadByte_ (fd, sd, flag, input_code_size, ZeroDataBlockP); 367 372 return (rv); 368 373 } 369 374 370 375 static void 371 -ReadImage (rasterliteImagePrt im, xgdIOCtx * fd, int len, int height, 376 +ReadImage (rasterliteImagePtr im, xgdIOCtx * fd, int len, int height, 372 377 unsigned char (*cmap)[256], int interlace, int *ZeroDataBlockP) 373 378 { 374 379 unsigned char c; 375 380 int v; 376 381 int xpos = 0, ypos = 0, pass = 0; 377 382 int i; 378 383 int red[256]; ................................................................................ 521 526 break; 522 527 } 523 528 } 524 529 } 525 530 } 526 531 527 532 static int 528 -GIFNextPixel (rasterliteImagePrt img, GifCtx * ctx) 533 +GIFNextPixel (rasterliteImagePtr img, GifCtx * ctx) 529 534 { 530 535 int r; 531 536 int **ptpixels = img->pixels; 532 537 int *pThisRow; 533 538 if (ctx->CountDown == 0) 534 539 return EOF; 535 540 --(ctx->CountDown); ................................................................................ 669 674 { 670 675 xgdPutC (w & 0xFF, out); 671 676 xgdPutC ((w >> 8) & 0xFF, out); 672 677 return 0; 673 678 } 674 679 675 680 static void 676 -GIFcompress (int init_bits, xgdIOCtxPtr outfile, rasterliteImagePrt img, 681 +GIFcompress (int init_bits, xgdIOCtxPtr outfile, rasterliteImagePtr img, 677 682 GifCtx * ctx) 678 683 { 679 684 /* 680 685 * compress stdin to stdout 681 686 * 682 687 * Algorithm: use open addressing double hashing (no chaining) on the 683 688 * prefix code / next character combination. We do a variant of Knuth's ................................................................................ 768 773 ++(ctx->out_count); 769 774 output ((code_int) ctx->EOFCode, ctx); 770 775 } 771 776 772 777 static void 773 778 GIFEncode (xgdIOCtxPtr fp, int GWidth, int GHeight, int GInterlace, 774 779 int Background, int Transparent, int BitsPerPixel, int *Red, 775 - int *Green, int *Blue, rasterliteImagePrt img) 780 + int *Green, int *Blue, rasterliteImagePtr img) 776 781 { 777 782 int B; 778 783 int RWidth, RHeight; 779 784 int LeftOfs, TopOfs; 780 785 int Resolution; 781 786 int ColorMapSize; 782 787 int InitCodeSize; ................................................................................ 858 863 else if (colors <= 128) 859 864 bpp = 7; 860 865 else if (colors <= 256) 861 866 bpp = 8; 862 867 return bpp; 863 868 } 864 869 865 -static rasterliteImagePrt 870 +static rasterliteImagePtr 866 871 xgdImageCreateFromGifCtx (xgdIOCtxPtr fd) 867 872 { 868 873 int BitPixel; 869 874 int Transparent = (-1); 870 875 unsigned char buf[16]; 871 876 unsigned char c; 872 877 unsigned char ColorMap[3][MAXCOLORMAPSIZE]; 873 878 unsigned char localColorMap[3][MAXCOLORMAPSIZE]; 874 879 int imw, imh, screen_width, screen_height; 875 880 int gif87a, useGlobalColormap; 876 881 int bitPixel; 877 882 int ZeroDataBlock = FALSE; 878 883 int haveGlobalColormap; 879 - rasterliteImagePrt im = 0; 884 + rasterliteImagePtr im = 0; 880 885 if (!ReadOK (fd, buf, 6)) 881 886 { 882 887 return 0; 883 888 } 884 889 if (strncmp ((char *) buf, "GIF", 3) != 0) 885 890 { 886 891 return 0; ................................................................................ 984 989 { 985 990 return 0; 986 991 } 987 992 return im; 988 993 } 989 994 990 995 static void 991 -xgdImageGifCtx (rasterliteImagePrt img, xgdIOCtxPtr out) 996 +xgdImageGifCtx (rasterliteImagePtr img, xgdIOCtxPtr out) 992 997 { 993 998 int BitsPerPixel; 994 999 int mapping[256]; 995 1000 int Red[256]; 996 1001 int Green[256]; 997 1002 int Blue[256]; 998 1003 int i, j, colors; ................................................................................ 1024 1029 } 1025 1030 BitsPerPixel = colorstobpp (colors); 1026 1031 GIFEncode (out, img->sx, img->sy, 0, 0, -1, BitsPerPixel, Red, Green, Blue, 1027 1032 img); 1028 1033 } 1029 1034 1030 1035 extern void * 1031 -image_to_gif (const rasterliteImagePrt img, int *size) 1036 +image_to_gif (const rasterliteImagePtr img, int *size) 1032 1037 { 1033 1038 /* compressing an image as GIF */ 1034 1039 void *rv; 1035 1040 xgdIOCtx *out = xgdNewDynamicCtx (2048, NULL); 1036 1041 xgdImageGifCtx (img, out); 1037 1042 rv = xgdDPExtractData (out, size); 1038 1043 out->xgd_free (out); 1039 1044 return rv; 1040 1045 } 1041 1046 1042 -extern rasterliteImagePrt 1047 +extern rasterliteImagePtr 1043 1048 image_from_gif (int size, const void *data) 1044 1049 { 1045 1050 /* uncompressing a GIF */ 1046 - rasterliteImagePrt img; 1051 + rasterliteImagePtr img; 1047 1052 xgdIOCtx *in = xgdNewDynamicCtxEx (size, data, 0); 1048 1053 img = xgdImageCreateFromGifCtx (in); 1049 1054 img->color_space = COLORSPACE_PALETTE; 1050 1055 in->xgd_free (in); 1051 1056 return img; 1052 1057 }
Changes to lib/rasterlite_image.c.
1 1 /* 2 2 / rasterlite_image.c 3 3 / 4 4 / image methods 5 5 / 6 -/ version 1.0, 2009 June 1 6 +/ version 1.1a, 2011 November 12 7 7 / 8 8 / Author: Sandro Furieri a.furieri@lqt.it 9 9 / 10 10 / Copyright (C) 2009 Alessandro Furieri 11 11 / 12 12 / This program is free software: you can redistribute it and/or modify 13 -/ it under the terms of the GNU General Public License as published by 13 +/ it under the terms of the GNU Lesser General Public License as published by 14 14 / the Free Software Foundation, either version 3 of the License, or 15 15 / (at your option) any later version. 16 16 / 17 17 / This program is distributed in the hope that it will be useful, 18 18 / but WITHOUT ANY WARRANTY; without even the implied warranty of 19 19 / MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 -/ GNU General Public License for more details. 20 +/ GNU Lesser General Public License for more details. 21 21 / 22 -/ You should have received a copy of the GNU General Public License 22 +/ You should have received a copy of the GNU Lesser General Public License 23 23 / along with this program. If not, see <http://www.gnu.org/licenses/>. 24 24 / 25 25 */ 26 26 27 27 #include <stdio.h> 28 28 #include <stdlib.h> 29 29 #include <string.h> 30 +#include <float.h> 30 31 #include <limits.h> 31 32 32 33 #include <tiffio.h> 34 + 35 +#ifdef SPATIALITE_AMALGAMATION 33 36 #include <spatialite/sqlite3.h> 37 +#else 38 +#include <sqlite3.h> 39 +#endif 40 + 34 41 #include <spatialite/gaiageo.h> 35 42 36 43 #include "rasterlite_internals.h" 37 44 38 -extern rasterliteImagePrt 45 +extern rasterliteImagePtr 39 46 image_create (int sx, int sy) 40 47 { 41 48 /* 42 49 / creating a generic RGB image 43 50 / vaguely inspired by GD lib 44 51 */ 45 52 int i; 46 53 int i2; 47 - rasterliteImagePrt img; 54 + rasterliteImagePtr img; 48 55 img = malloc (sizeof (rasterliteImage)); 49 56 if (!img) 50 57 return NULL; 51 58 img->pixels = NULL; 52 59 img->sx = sx; 53 60 img->sy = sy; 54 61 img->color_space = COLORSPACE_RGB; ................................................................................ 70 77 return NULL; 71 78 } 72 79 } 73 80 return img; 74 81 } 75 82 76 83 extern void 77 -image_destroy (rasterliteImagePrt img) 84 +image_destroy (rasterliteImagePtr img) 78 85 { 79 86 /* 80 87 / destroying a generic RGB image 81 88 / vaguely inspired by GD lib 82 89 */ 83 90 int i; 84 91 if (img->pixels) ................................................................................ 87 94 free (img->pixels[i]); 88 95 free (img->pixels); 89 96 } 90 97 free (img); 91 98 } 92 99 93 100 extern void 94 -image_fill (const rasterliteImagePrt img, int color) 101 +image_fill (const rasterliteImagePtr img, int color) 95 102 { 96 103 /* filling the image with given color */ 97 104 int x; 98 105 int y; 99 106 if (img->pixels) 100 107 { 101 108 for (y = 0; y < img->sy; y++) ................................................................................ 103 110 for (x = 0; x < img->sx; x++) 104 111 img->pixels[y][x] = color; 105 112 } 106 113 } 107 114 } 108 115 109 116 static void 110 -shrink_by (const rasterliteImagePrt dst, const rasterliteImagePrt src) 117 +shrink_by (const rasterliteImagePtr dst, const rasterliteImagePtr src) 111 118 { 112 119 /* 113 120 / this code is widely base upon the original wxWidgets gwxImage wxImage::ShrinkBy(() function 114 121 */ 115 122 int xFactor = src->sx / dst->sx; 116 123 int yFactor = src->sy / dst->sy; 117 124 int x; 118 125 int y; 119 126 int x1; 120 127 int y1; 121 128 int y_offset; 122 - unsigned int avgRed = 0; 123 - unsigned int avgGreen = 0; 124 - unsigned int avgBlue = 0; 125 - unsigned int counter = 0; 129 + int x_offset; 126 130 int pixel; 127 - printf ("shrink\n"); 128 - fflush (stdout); 129 131 for (y = 0; y < dst->sy; y++) 130 132 { 131 133 for (x = 0; x < dst->sx; x++) 132 134 { 133 135 /* determine average */ 136 + unsigned int avgRed = 0; 137 + unsigned int avgGreen = 0; 138 + unsigned int avgBlue = 0; 139 + unsigned int counter = 0; 134 140 for (y1 = 0; y1 < yFactor; ++y1) 135 141 { 136 142 y_offset = (y * yFactor + y1) * src->sx; 137 143 for (x1 = 0; x1 < xFactor; ++x1) 138 144 { 139 - pixel = src->pixels[y1][x1]; 145 + x_offset = (x * xFactor) + x1; 146 + pixel = src->pixels[y_offset][x_offset]; 140 147 avgRed += true_color_get_red (pixel); 141 148 avgGreen += true_color_get_green (pixel); 142 149 avgBlue += true_color_get_blue (pixel); 143 150 counter++; 144 151 } 145 152 } 146 153 pixel = ................................................................................ 148 155 (avgBlue / counter)); 149 156 dst->pixels[y][x] = pixel; 150 157 } 151 158 } 152 159 } 153 160 154 161 extern void 155 -image_resize (const rasterliteImagePrt dst, const rasterliteImagePrt src) 162 +image_resize (const rasterliteImagePtr dst, const rasterliteImagePtr src) 156 163 { 157 164 /* 158 165 / this function builds an ordinary quality resized image, applying pixel replication 159 166 / 160 167 / this code is widely base upon the original wxWidgets gwxImage wxImage::Scale(() function 161 168 / wxIMAGE_QUALITY_NORMAL 162 169 */ ................................................................................ 188 195 y += y_delta; 189 196 } 190 197 } 191 198 192 199 #define floor2(exp) ((long) exp) 193 200 194 201 extern void 195 -make_thumbnail (const rasterliteImagePrt thumbnail, 196 - const rasterliteImagePrt image) 202 +make_thumbnail (const rasterliteImagePtr thumbnail, 203 + const rasterliteImagePtr image) 197 204 { 198 205 /* 199 206 / this function builds an high quality thumbnail image, applying pixel interpolation 200 207 / 201 208 / this code is widely base upon the original GD gdImageCopyResampled() function 202 209 */ 203 210 int x, y; ................................................................................ 289 296 true_color ((int) red, (int) green, 290 297 (int) blue)); 291 298 } 292 299 } 293 300 } 294 301 295 302 extern void * 296 -image_to_rgb_array (const rasterliteImagePrt img, int *size) 303 +image_to_rgb_array (const rasterliteImagePtr img, int *size) 297 304 { 298 305 /* building a flat RGB array from this image */ 299 306 int x; 300 307 int y; 301 308 int pixel; 302 309 unsigned char *data = NULL; 303 310 unsigned char *p; ................................................................................ 317 324 } 318 325 } 319 326 *size = sz; 320 327 return data; 321 328 } 322 329 323 330 extern void * 324 -image_to_rgba_array (int transparent_color, const rasterliteImagePrt img, 331 +image_to_rgba_array (int transparent_color, const rasterliteImagePtr img, 325 332 int *size) 326 333 { 327 334 /* building a flat RGBA array from this image */ 328 335 int x; 329 336 int y; 330 337 int pixel; 331 338 int r; ................................................................................ 358 365 } 359 366 } 360 367 *size = sz; 361 368 return data; 362 369 } 363 370 364 371 extern void * 365 -image_to_argb_array (int transparent_color, const rasterliteImagePrt img, 372 +image_to_argb_array (int transparent_color, const rasterliteImagePtr img, 366 373 int *size) 367 374 { 368 375 /* building a flat ARGB array from this image */ 369 376 int x; 370 377 int y; 371 378 int pixel; 372 379 int r; ................................................................................ 399 406 } 400 407 } 401 408 *size = sz; 402 409 return data; 403 410 } 404 411 405 412 extern void * 406 -image_to_bgr_array (const rasterliteImagePrt img, int *size) 413 +image_to_bgr_array (const rasterliteImagePtr img, int *size) 407 414 { 408 415 /* building a flat BGR array from this image */ 409 416 int x; 410 417 int y; 411 418 int pixel; 412 419 unsigned char *data = NULL; 413 420 unsigned char *p; ................................................................................ 427 434 } 428 435 } 429 436 *size = sz; 430 437 return data; 431 438 } 432 439 433 440 extern void * 434 -image_to_bgra_array (int transparent_color, const rasterliteImagePrt img, 441 +image_to_bgra_array (int transparent_color, const rasterliteImagePtr img, 435 442 int *size) 436 443 { 437 444 /* building a flat BGRA array from this image */ 438 445 int x; 439 446 int y; 440 447 int pixel; 441 448 int r; ................................................................................ 466 473 *p++ = r; 467 474 *p++ = a; 468 475 } 469 476 } 470 477 *size = sz; 471 478 return data; 472 479 } 480 + 481 +extern rasterliteImagePtr 482 +image_from_rgb_array (const void *raw, int width, int height) 483 +{ 484 +/* building an image form this flat RGB array */ 485 + int x; 486 + int y; 487 + int r; 488 + int g; 489 + int b; 490 + int pixel; 491 + const unsigned char *data = raw; 492 + const unsigned char *p; 493 + rasterliteImagePtr img = image_create (width, height); 494 + if (!img) 495 + return NULL; 496 + for (y = 0; y < img->sy; y++) 497 + { 498 + p = data + (y * (width * 3)); 499 + for (x = 0; x < img->sx; x++) 500 + { 501 + r = *p++; 502 + g = *p++; 503 + b = *p++; 504 + pixel = true_color (r, g, b); 505 + img->pixels[y][x] = pixel; 506 + } 507 + } 508 + return img; 509 +} 510 + 511 +extern rasterliteImagePtr 512 +image_from_rgba_array (const void *raw, int width, int height) 513 +{ 514 +/* building an image form this flat RGBA array */ 515 + int x; 516 + int y; 517 + int r; 518 + int g; 519 + int b; 520 + int alpha; 521 + int pixel; 522 + const unsigned char *data = raw; 523 + const unsigned char *p; 524 + rasterliteImagePtr img = image_create (width, height); 525 + if (!img) 526 + return NULL; 527 + for (y = 0; y < img->sy; y++) 528 + { 529 + p = data + (y * (width * 4)); 530 + for (x = 0; x < img->sx; x++) 531 + { 532 + r = *p++; 533 + g = *p++; 534 + b = *p++; 535 + alpha = *p++; 536 + pixel = true_color (r, g, b); 537 + img->pixels[y][x] = pixel; 538 + } 539 + } 540 + return img; 541 +} 542 + 543 +extern rasterliteImagePtr 544 +image_from_argb_array (const void *raw, int width, int height) 545 +{ 546 +/* building an image form this flat ARGB array */ 547 + int x; 548 + int y; 549 + int r; 550 + int g; 551 + int b; 552 + int alpha; 553 + int pixel; 554 + const unsigned char *data = raw; 555 + const unsigned char *p; 556 + rasterliteImagePtr img = image_create (width, height); 557 + if (!img) 558 + return NULL; 559 + for (y = 0; y < img->sy; y++) 560 + { 561 + p = data + (y * (width * 4)); 562 + for (x = 0; x < img->sx; x++) 563 + { 564 + 565 + alpha = *p++; 566 + r = *p++; 567 + g = *p++; 568 + b = *p++; 569 + pixel = true_color (r, g, b); 570 + img->pixels[y][x] = pixel; 571 + } 572 + } 573 + return img; 574 +} 575 + 576 +extern rasterliteImagePtr 577 +image_from_bgr_array (const void *raw, int width, int height) 578 +{ 579 +/* building an image form this flat BGR array */ 580 + int x; 581 + int y; 582 + int r; 583 + int g; 584 + int b; 585 + int pixel; 586 + const unsigned char *data = raw; 587 + const unsigned char *p; 588 + rasterliteImagePtr img = image_create (width, height); 589 + if (!img) 590 + return NULL; 591 + for (y = 0; y < img->sy; y++) 592 + { 593 + p = data + (y * (width * 3)); 594 + for (x = 0; x < img->sx; x++) 595 + { 596 + b = *p++; 597 + g = *p++; 598 + r = *p++; 599 + pixel = true_color (r, g, b); 600 + img->pixels[y][x] = pixel; 601 + } 602 + } 603 + return img; 604 +} 605 + 606 +extern rasterliteImagePtr 607 +image_from_bgra_array (const void *raw, int width, int height) 608 +{ 609 +/* building an image form this flat BGRA array */ 610 + int x; 611 + int y; 612 + int r; 613 + int g; 614 + int b; 615 + int alpha; 616 + int pixel; 617 + const unsigned char *data = raw; 618 + const unsigned char *p; 619 + rasterliteImagePtr img = image_create (width, height); 620 + if (!img) 621 + return NULL; 622 + for (y = 0; y < img->sy; y++) 623 + { 624 + p = data + (y * (width * 4)); 625 + for (x = 0; x < img->sx; x++) 626 + { 627 + b = *p++; 628 + g = *p++; 629 + r = *p++; 630 + alpha = *p++; 631 + pixel = true_color (r, g, b); 632 + img->pixels[y][x] = pixel; 633 + } 634 + } 635 + return img; 636 +} 637 + 638 +extern int 639 +is_image_monochrome (rasterliteImagePtr img) 640 +{ 641 +/* checking if this Image is into the Monochrome colorspace */ 642 + int x; 643 + int y; 644 + int pixel; 645 + int r; 646 + int g; 647 + int b; 648 + for (y = 0; y < img->sy; y++) 649 + { 650 + for (x = 0; x < img->sx; x++) 651 + { 652 + pixel = img->pixels[y][x]; 653 + r = true_color_get_red (pixel); 654 + g = true_color_get_green (pixel); 655 + b = true_color_get_blue (pixel); 656 + if (r == 0 && g == 0 && b == 0) 657 + continue; 658 + if (r == 255 && g == 255 && b == 255) 659 + continue; 660 + return RASTERLITE_FALSE; 661 + } 662 + } 663 + return RASTERLITE_TRUE; 664 +} 665 + 666 +extern int 667 +is_image_grayscale (rasterliteImagePtr img) 668 +{ 669 +/* checking if this Image is into the GrayScale colorspace */ 670 + int x; 671 + int y; 672 + int pixel; 673 + int r; 674 + int g; 675 + int b; 676 + for (y = 0; y < img->sy; y++) 677 + { 678 + for (x = 0; x < img->sx; x++) 679 + { 680 + pixel = img->pixels[y][x]; 681 + r = true_color_get_red (pixel); 682 + g = true_color_get_green (pixel); 683 + b = true_color_get_blue (pixel); 684 + if (r == g && r == b) 685 + continue; 686 + return RASTERLITE_FALSE; 687 + } 688 + } 689 + return RASTERLITE_TRUE; 690 +} 691 + 692 +static void 693 +palette_init (int *palette) 694 +{ 695 +/* initializing an empty palette */ 696 + int x; 697 + for (x = 0; x < 256; x++) 698 + palette[x] = INT_MAX; 699 +} 700 + 701 +static int 702 +palette_check (int *palette, int pixel) 703 +{ 704 + int x; 705 + for (x = 0; x < 256; x++) 706 + { 707 + if (palette[x] == pixel) 708 + return RASTERLITE_TRUE; 709 + if (palette[x] == INT_MAX) 710 + { 711 + palette[x] = pixel; 712 + return RASTERLITE_TRUE; 713 + } 714 + } 715 + return RASTERLITE_FALSE; 716 +} 717 + 718 +extern int 719 +is_image_palette256 (rasterliteImagePtr img) 720 +{ 721 +/* checking if this Image may be represented using a 256 colors palette */ 722 + int x; 723 + int y; 724 + int pixel; 725 + int palette[256]; 726 + palette_init (palette); 727 + for (y = 0; y < img->sy; y++) 728 + { 729 + for (x = 0; x < img->sx; x++) 730 + { 731 + pixel = img->pixels[y][x]; 732 + if (palette_check (palette, pixel) == RASTERLITE_TRUE) 733 + continue; 734 + return RASTERLITE_FALSE; 735 + } 736 + } 737 + return RASTERLITE_TRUE; 738 +}
Changes to lib/rasterlite_io.c.
1 1 /* 2 2 / rasterlite_io.c 3 3 / 4 4 / IO helper methods 5 5 / 6 -/ version 1.0, 2009 June 1 6 +/ version 1.1a, 2011 November 12 7 7 / 8 8 / Author: Sandro Furieri a.furieri@lqt.it 9 9 / 10 10 / Copyright (C) 2009 Alessandro Furieri 11 11 / 12 12 / This program is free software: you can redistribute it and/or modify 13 -/ it under the terms of the GNU General Public License as published by 13 +/ it under the terms of the GNU Lesser General Public License as published by 14 14 / the Free Software Foundation, either version 3 of the License, or 15 15 / (at your option) any later version. 16 16 / 17 17 / This program is distributed in the hope that it will be useful, 18 18 / but WITHOUT ANY WARRANTY; without even the implied warranty of 19 19 / MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 -/ GNU General Public License for more details. 20 +/ GNU Lesser General Public License for more details. 21 21 / 22 -/ You should have received a copy of the GNU General Public License 22 +/ You should have received a copy of the GNU Lesser General Public License 23 23 / along with this program. If not, see <http://www.gnu.org/licenses/>. 24 24 / 25 25 */ 26 26 27 27 #include <stdio.h> 28 28 #include <stdlib.h> 29 29 #include <string.h> 30 30 #include <limits.h> 31 31 32 32 #include <tiffio.h> 33 + 34 +#ifdef SPATIALITE_AMALGAMATION 33 35 #include <spatialite/sqlite3.h> 36 +#else 37 +#include <sqlite3.h> 38 +#endif 39 + 34 40 #include <spatialite/gaiageo.h> 35 41 36 42 #include "rasterlite_internals.h" 37 43 38 44 #define TRUE 1 39 45 #define FALSE 0 40 46
Changes to lib/rasterlite_jpeg.c.
1 1 /* 2 2 / rasterlite_jpeg.c 3 3 / 4 4 / JPEG auxiliary helpers 5 5 / 6 -/ version 1.0, 2009 June 1 6 +/ version 1.1a, 2011 November 12 7 7 / 8 8 / Author: Sandro Furieri a.furieri@lqt.it 9 9 / 10 10 / Copyright (C) 2009 Alessandro Furieri 11 11 / 12 12 / This program is free software: you can redistribute it and/or modify 13 -/ it under the terms of the GNU General Public License as published by 13 +/ it under the terms of the GNU Lesser General Public License as published by 14 14 / the Free Software Foundation, either version 3 of the License, or 15 15 / (at your option) any later version. 16 16 / 17 17 / This program is distributed in the hope that it will be useful, 18 18 / but WITHOUT ANY WARRANTY; without even the implied warranty of 19 19 / MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 -/ GNU General Public License for more details. 20 +/ GNU Lesser General Public License for more details. 21 21 / 22 -/ You should have received a copy of the GNU General Public License 22 +/ You should have received a copy of the GNU Lesser General Public License 23 23 / along with this program. If not, see <http://www.gnu.org/licenses/>. 24 24 / 25 25 */ 26 26 27 27 #include <stdio.h> 28 28 #include <stdlib.h> 29 29 #include <setjmp.h> 30 30 #include <limits.h> 31 31 #include <string.h> 32 32 33 -#include <spatialite/sqlite3.h> 34 -#include <spatialite/gaiageo.h> 35 - 36 33 #include <tiffio.h> 37 - 38 34 #include <jpeglib.h> 39 35 #include <jerror.h> 40 36 37 +#ifdef SPATIALITE_AMALGAMATION 38 +#include <spatialite/sqlite3.h> 39 +#else 40 +#include <sqlite3.h> 41 +#endif 42 + 43 +#include <spatialite/gaiageo.h> 44 + 41 45 #include "rasterlite_internals.h" 42 46 43 47 /* 44 48 / 45 49 / DISCLAIMER: 46 50 / all the following code merely is an 'ad hoc' adaption 47 51 / deriving from the original GD lib code ................................................................................ 107 111 fprintf (stderr, "jpeg-wrappeg: EXTREMELY fatal error: jmpbuf" 108 112 " unrecoverable; terminating\n"); 109 113 } 110 114 fflush (stderr); 111 115 exit (99); 112 116 } 113 117 114 -void 118 +static void 115 119 init_source (j_decompress_ptr cinfo) 116 120 { 117 121 my_src_ptr src = (my_src_ptr) cinfo->src; 118 122 src->start_of_file = TRUE; 119 123 } 120 124 121 125 #define END_JPEG_SEQUENCE "\r\n[*]--:END JPEG:--[*]\r\n" 122 -safeboolean 126 +static safeboolean 123 127 fill_input_buffer (j_decompress_ptr cinfo) 124 128 { 125 129 my_src_ptr src = (my_src_ptr) cinfo->src; 126 130 int nbytes = 0; 127 131 memset (src->buffer, 0, INPUT_BUF_SIZE); 128 132 while (nbytes < INPUT_BUF_SIZE) 129 133 { ................................................................................ 151 155 } 152 156 src->pub.next_input_byte = src->buffer; 153 157 src->pub.bytes_in_buffer = nbytes; 154 158 src->start_of_file = FALSE; 155 159 return TRUE; 156 160 } 157 161 158 -void 162 +static void 159 163 skip_input_data (j_decompress_ptr cinfo, long num_bytes) 160 164 { 161 165 my_src_ptr src = (my_src_ptr) cinfo->src; 162 166 if (num_bytes > 0) 163 167 { 164 168 while (num_bytes > (long) src->pub.bytes_in_buffer) 165 169 { ................................................................................ 167 171 (void) fill_input_buffer (cinfo); 168 172 } 169 173 src->pub.next_input_byte += (size_t) num_bytes; 170 174 src->pub.bytes_in_buffer -= (size_t) num_bytes; 171 175 } 172 176 } 173 177 174 -void 178 +static void 175 179 term_source (j_decompress_ptr cinfo) 176 180 { 177 181 if (cinfo) 178 182 return; /* does absolutely nothing - required in order to suppress warnings */ 179 183 } 180 184 181 185 static void ................................................................................ 255 259 dest->pub.init_destination = init_destination; 256 260 dest->pub.empty_output_buffer = empty_output_buffer; 257 261 dest->pub.term_destination = term_destination; 258 262 dest->outfile = outfile; 259 263 } 260 264 261 265 static void 262 -xgdImageJpegCtx (rasterliteImagePrt img, xgdIOCtx * outfile, int quality, 266 +xgdImageJpegCtx (rasterliteImagePtr img, xgdIOCtx * outfile, int quality, 263 267 int mode) 264 268 { 265 269 struct jpeg_compress_struct cinfo; 266 270 struct jpeg_error_mgr jerr; 267 271 int i, j, jidx; 268 272 volatile JSAMPROW row = 0; 269 273 JSAMPROW rowptr[1]; ................................................................................ 368 372 k = 255 - k; 369 373 } 370 374 return true_color ((255 - c) * (255 - k) / 255, 371 375 (255 - m) * (255 - k) / 255, 372 376 (255 - y) * (255 - k) / 255); 373 377 } 374 378 375 -static rasterliteImagePrt 379 +static rasterliteImagePtr 376 380 xgdImageCreateFromJpegCtx (xgdIOCtx * infile) 377 381 { 378 382 struct jpeg_decompress_struct cinfo; 379 383 struct jpeg_error_mgr jerr; 380 384 jmpbuf_wrapper jmpbufw; 381 385 volatile JSAMPROW row = 0; 382 - volatile rasterliteImagePrt img = 0; 386 + volatile rasterliteImagePtr img = 0; 383 387 JSAMPROW rowptr[1]; 384 388 int i, j, retval; 385 389 JDIMENSION nrows; 386 390 int channels = 3; 387 391 int inverted = 0; 388 392 memset (&cinfo, 0, sizeof (cinfo)); 389 393 memset (&jerr, 0, sizeof (jerr)); ................................................................................ 390 394 cinfo.err = jpeg_std_error (&jerr); 391 395 cinfo.client_data = &jmpbufw; 392 396 if (setjmp (jmpbufw.jmpbuf) != 0) 393 397 { 394 398 if (row) 395 399 free (row); 396 400 if (img) 397 - image_destroy ((rasterliteImagePrt) img); 401 + image_destroy ((rasterliteImagePtr) img); 398 402 return 0; 399 403 } 400 404 cinfo.err->error_exit = fatal_jpeg_error; 401 405 jpeg_create_decompress (&cinfo); 402 406 jpeg_xgdIOCtx_src (&cinfo, infile); 403 407 jpeg_save_markers (&cinfo, JPEG_APP0 + 14, 256); 404 408 retval = jpeg_read_header (&cinfo, TRUE); ................................................................................ 569 573 } 570 574 } 571 575 if (jpeg_finish_decompress (&cinfo) != TRUE) 572 576 fprintf (stderr, 573 577 "jpeg-wrapper: warning: jpeg_finish_decompress reports suspended data source\n"); 574 578 jpeg_destroy_decompress (&cinfo); 575 579 free (row); 576 - return (rasterliteImagePrt) img; 580 + return (rasterliteImagePtr) img; 577 581 error: 578 582 jpeg_destroy_decompress (&cinfo); 579 583 if (row) 580 584 free (row); 581 585 if (img) 582 - image_destroy ((rasterliteImagePrt) img); 586 + image_destroy ((rasterliteImagePtr) img); 583 587 return 0; 584 588 } 585 589 586 590 extern void * 587 -image_to_jpeg (const rasterliteImagePrt img, int *size, int quality) 591 +image_to_jpeg (const rasterliteImagePtr img, int *size, int quality) 588 592 { 589 593 /* compressing an image as JPEG RGB */ 590 594 void *rv; 591 595 xgdIOCtx *out = xgdNewDynamicCtx (2048, NULL); 592 596 xgdImageJpegCtx (img, out, quality, IMAGE_JPEG_RGB); 593 597 rv = xgdDPExtractData (out, size); 594 598 out->xgd_free (out); 595 599 return rv; 596 600 } 597 601 598 602 extern void * 599 -image_to_jpeg_grayscale (const rasterliteImagePrt img, int *size, int quality) 603 +image_to_jpeg_grayscale (const rasterliteImagePtr img, int *size, int quality) 600 604 { 601 605 /* compressing an image as JPEG GRAYSCALE */ 602 606 void *rv; 603 607 xgdIOCtx *out = xgdNewDynamicCtx (2048, NULL); 604 608 xgdImageJpegCtx (img, out, quality, IMAGE_JPEG_BW); 605 609 rv = xgdDPExtractData (out, size); 606 610 out->xgd_free (out); 607 611 return rv; 608 612 } 609 613 610 -extern rasterliteImagePrt 614 +extern rasterliteImagePtr 611 615 image_from_jpeg (int size, const void *data) 612 616 { 613 617 /* uncompressing a JPEG */ 614 - rasterliteImagePrt img; 618 + rasterliteImagePtr img; 615 619 xgdIOCtx *in = xgdNewDynamicCtxEx (size, data, 0); 616 620 img = xgdImageCreateFromJpegCtx (in); 617 621 in->xgd_free (in); 618 622 return img; 619 623 }
Changes to lib/rasterlite_png.c.
1 1 /* 2 2 / rasterlite_png.c 3 3 / 4 4 / PNG auxiliary helpers 5 5 / 6 -/ version 1.0, 2009 June 1 6 +/ version 1.1a, 2011 November 12 7 7 / 8 8 / Author: Sandro Furieri a.furieri@lqt.it 9 9 / 10 10 / Copyright (C) 2009 Alessandro Furieri 11 11 / 12 12 / This program is free software: you can redistribute it and/or modify 13 -/ it under the terms of the GNU General Public License as published by 13 +/ it under the terms of the GNU Lesser General Public License as published by 14 14 / the Free Software Foundation, either version 3 of the License, or 15 15 / (at your option) any later version. 16 16 / 17 17 / This program is distributed in the hope that it will be useful, 18 18 / but WITHOUT ANY WARRANTY; without even the implied warranty of 19 19 / MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 -/ GNU General Public License for more details. 20 +/ GNU Lesser General Public License for more details. 21 21 / 22 -/ You should have received a copy of the GNU General Public License 22 +/ You should have received a copy of the GNU Lesser General Public License 23 23 / along with this program. If not, see <http://www.gnu.org/licenses/>. 24 24 / 25 25 */ 26 26 27 27 #include <stdio.h> 28 28 #include <math.h> 29 29 #include <string.h> 30 30 #include <stdlib.h> 31 31 32 -#include <spatialite/sqlite3.h> 33 -#include <spatialite/gaiageo.h> 34 - 35 32 #include <tiffio.h> 36 - 37 33 #include <png.h> 38 34 35 +#ifdef SPATIALITE_AMALGAMATION 36 +#include <spatialite/sqlite3.h> 37 +#else 38 +#include <sqlite3.h> 39 +#endif 40 + 41 +#include <spatialite/gaiageo.h> 42 + 39 43 #define TRUE 1 40 44 #define FALSE 0 41 45 42 46 #include "rasterlite_internals.h" 43 47 44 48 /* 45 49 / ................................................................................ 96 100 static void 97 101 xgdPngFlushData (png_structp png_ptr) 98 102 { 99 103 if (png_ptr) 100 104 return; /* does absolutely nothing - required in order to suppress warnings */ 101 105 } 102 106 103 -static rasterliteImagePrt 107 +static rasterliteImagePtr 104 108 xgdImageCreateFromPngCtx (xgdIOCtx * infile) 105 109 { 106 110 png_byte sig[8]; 107 111 png_structp png_ptr; 108 112 png_infop info_ptr; 109 113 png_uint_32 width, height, rowbytes, w, h; 110 114 int bit_depth, color_type, interlace_type; ................................................................................ 111 115 int num_palette; 112 116 png_colorp palette; 113 117 int red[256]; 114 118 int green[256]; 115 119 int blue[256]; 116 120 png_bytep image_data = NULL; 117 121 png_bytepp row_pointers = NULL; 118 - rasterliteImagePrt im = NULL; 122 + rasterliteImagePtr im = NULL; 119 123 int i, j; 120 124 volatile int palette_allocated = FALSE; 121 125 memset (sig, 0, sizeof (sig)); 122 126 if (xgdGetBuf (sig, 8, infile) < 8) 123 127 { 124 128 return NULL; 125 129 } 126 - if (!png_check_sig (sig, 8)) 130 + if (png_sig_cmp (sig, 0, 8)) 127 131 { 128 132 return NULL; 129 133 } 130 134 #ifndef PNG_SETJMP_NOT_SUPPORTED 131 135 png_ptr = 132 136 png_create_read_struct (PNG_LIBPNG_VER_STRING, &xgdPngJmpbufStruct, 133 137 xgdPngErrorHandler, NULL); ................................................................................ 346 350 } 347 351 free (image_data); 348 352 free (row_pointers); 349 353 return im; 350 354 } 351 355 352 356 static void 353 -xgdImagePngCtxPalette (rasterliteImagePrt img, xgdIOCtx * outfile, int level) 357 +xgdImagePngCtxPalette (rasterliteImagePtr img, xgdIOCtx * outfile, int level) 354 358 { 355 359 int i, j, bit_depth = 0, interlace_type; 356 360 int width = img->sx; 357 361 int height = img->sy; 358 362 int mapping[256]; 359 363 int colors; 360 364 png_color palette[256]; ................................................................................ 468 472 for (j = 0; j < height; ++j) 469 473 free (row_pointers[j]); 470 474 free (row_pointers); 471 475 png_destroy_write_struct (&png_ptr, &info_ptr); 472 476 } 473 477 474 478 static void 475 -xgdImagePngCtxGrayscale (rasterliteImagePrt img, xgdIOCtx * outfile, int level) 479 +xgdImagePngCtxGrayscale (rasterliteImagePtr img, xgdIOCtx * outfile, int level) 476 480 { 477 481 int i, j, bit_depth = 0, interlace_type; 478 482 int width = img->sx; 479 483 int height = img->sy; 480 484 png_structp png_ptr; 481 485 png_infop info_ptr; 482 486 png_bytep *row_pointers; ................................................................................ 552 556 for (j = 0; j < height; ++j) 553 557 free (row_pointers[j]); 554 558 free (row_pointers); 555 559 png_destroy_write_struct (&png_ptr, &info_ptr); 556 560 } 557 561 558 562 static void 559 -xgdImagePngCtxRgb (rasterliteImagePrt img, xgdIOCtx * outfile, int level) 563 +xgdImagePngCtxRgb (rasterliteImagePtr img, xgdIOCtx * outfile, int level) 560 564 { 561 565 int i, j, bit_depth = 0, interlace_type; 562 566 int width = img->sx; 563 567 int height = img->sy; 564 568 png_structp png_ptr; 565 569 png_infop info_ptr; 566 570 png_bytep *row_pointers; ................................................................................ 644 648 for (j = 0; j < height; ++j) 645 649 free (row_pointers[j]); 646 650 free (row_pointers); 647 651 png_destroy_write_struct (&png_ptr, &info_ptr); 648 652 } 649 653 650 654 extern void * 651 -image_to_png_palette (const rasterliteImagePrt img, int *size) 655 +image_to_png_palette (const rasterliteImagePtr img, int *size) 652 656 { 653 657 /* compressing an image as PNG PALETTE */ 654 658 void *rv; 655 659 xgdIOCtx *out = xgdNewDynamicCtx (2048, NULL); 656 660 xgdImagePngCtxPalette (img, out, -1); 657 661 rv = xgdDPExtractData (out, size); 658 662 out->xgd_free (out); 659 663 return rv; 660 664 } 661 665 662 666 extern void * 663 -image_to_png_grayscale (const rasterliteImagePrt img, int *size) 667 +image_to_png_grayscale (const rasterliteImagePtr img, int *size) 664 668 { 665 669 /* compressing an image as PNG GRAYSCALE */ 666 670 void *rv; 667 671 xgdIOCtx *out = xgdNewDynamicCtx (2048, NULL); 668 672 xgdImagePngCtxGrayscale (img, out, -1); 669 673 rv = xgdDPExtractData (out, size); 670 674 out->xgd_free (out); 671 675 return rv; 672 676 } 673 677 674 678 extern void * 675 -image_to_png_rgb (const rasterliteImagePrt img, int *size) 679 +image_to_png_rgb (const rasterliteImagePtr img, int *size) 676 680 { 677 681 /* compressing an image as PNG RGB */ 678 682 void *rv; 679 683 xgdIOCtx *out = xgdNewDynamicCtx (2048, NULL); 680 684 xgdImagePngCtxRgb (img, out, -1); 681 685 rv = xgdDPExtractData (out, size); 682 686 out->xgd_free (out); 683 687 return rv; 684 688 } 685 689 686 -extern rasterliteImagePrt 690 +extern rasterliteImagePtr 687 691 image_from_png (int size, const void *data) 688 692 { 689 693 /* uncompressing a PNG */ 690 - rasterliteImagePrt img; 694 + rasterliteImagePtr img; 691 695 xgdIOCtx *in = xgdNewDynamicCtxEx (size, data, 0); 692 696 img = xgdImageCreateFromPngCtx (in); 693 697 in->xgd_free (in); 694 698 return img; 695 699 }
Added lib/rasterlite_quantize.c.
1 +/* 2 +/ rasterlite_quantize.c 3 +/ 4 +/ quantization methods 5 +/ 6 +/ version 1.1a, 2011 November 12 7 +/ 8 +/ Author: Sandro Furieri a.furieri@lqt.it 9 +/ 10 +/ Copyright (C) 2009 Alessandro Furieri 11 +/ 12 +/ This program is free software: you can redistribute it and/or modify 13 +/ it under the terms of the GNU Lesser General Public License as published by 14 +/ the Free Software Foundation, either version 3 of the License, or 15 +/ (at your option) any later version. 16 +/ 17 +/ This program is distributed in the hope that it will be useful, 18 +/ but WITHOUT ANY WARRANTY; without even the implied warranty of 19 +/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 +/ GNU Lesser General Public License for more details. 21 +/ 22 +/ You should have received a copy of the GNU Lesser General Public License 23 +/ along with this program. If not, see <http://www.gnu.org/licenses/>. 24 +/ 25 +*/ 26 + 27 +/* 28 +/ 29 +/ DISCLAIMER: 30 +/ all the following code merely is an 'ad hoc' adaption 31 +/ of the following LGPLed code: 32 +/ 33 +////////////////////////////////////////////////////////////////////////////// 34 +/ 35 + median.c: median cut - reducing a high color bitmap to certain number of colors 36 + 37 + Copyright (C) 2001, 2002 Martin Weber 38 + 39 + This library is free software; you can redistribute it and/or 40 + modify it under the terms of the GNU Lesser General Public License 41 + as published by the Free Software Foundation; either version 2.1 of 42 + the License, or (at your option) any later version. 43 + 44 + This library is distributed in the hope that it will be useful, but 45 + WITHOUT ANY WARRANTY; without even the implied warranty of 46 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 47 + Lesser General Public License for more details. 48 + 49 + You should have received a copy of the GNU Lesser General Public 50 + License along with this library; if not, write to the Free Software 51 + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 52 + USA. 53 +*/ 54 + 55 +#include <stdlib.h> 56 + 57 +#include <tiffio.h> 58 + 59 +#ifdef SPATIALITE_AMALGAMATION 60 +#include <spatialite/sqlite3.h> 61 +#else 62 +#include <sqlite3.h> 63 +#endif 64 + 65 +#include <spatialite/gaiageo.h> 66 + 67 +#include "rasterlite_internals.h" 68 + 69 +#define MAXNUMCOLORS 256 70 + 71 +/* scale RGB distances by *2,*3,*1 */ 72 +#define R_SCALE <<1 73 +#define G_SCALE *3 74 +#define B_SCALE 75 + 76 +#define BITS_IN_SAMPLE 8 77 + 78 +#define R_SHIFT (BITS_IN_SAMPLE - PRECISION_R) 79 +#define G_SHIFT (BITS_IN_SAMPLE - PRECISION_G) 80 +#define B_SHIFT (BITS_IN_SAMPLE - PRECISION_B) 81 + 82 +#define PRECISION_R 7 83 +#define PRECISION_G 7 84 +#define PRECISION_B 7 85 + 86 +#define HIST_R_ELEMS (1<<PRECISION_R) 87 +#define HIST_G_ELEMS (1<<PRECISION_G) 88 +#define HIST_B_ELEMS (1<<PRECISION_B) 89 + 90 +#define MR HIST_G_ELEMS*HIST_B_ELEMS 91 +#define MG HIST_B_ELEMS 92 + 93 +typedef unsigned long ColorFreq; 94 +typedef ColorFreq *Histogram; 95 + 96 +typedef struct 97 +{ 98 + int desired_number_of_colors; /* Number of colors we will allow */ 99 + int actual_number_of_colors; /* Number of colors actually needed */ 100 + int cmap[256]; /* colormap created by quantization */ 101 + ColorFreq freq[256]; 102 + Histogram histogram; /* holds the histogram */ 103 +} QuantizeObj; 104 + 105 +typedef struct 106 +{ 107 + /* The bounds of the box (inclusive); expressed as histogram indexes */ 108 + int Rmin, Rmax; 109 + int Gmin, Gmax; 110 + int Bmin, Bmax; 111 + /* The volume (actually 2-norm) of the box */ 112 + int volume; 113 + /* The number of nonzero histogram cells within this box */ 114 + long colorcount; 115 +} box, *boxptr; 116 + 117 +static void 118 +zero_histogram_rgb (Histogram histogram) 119 +{ 120 + int r, g, b; 121 + for (r = 0; r < HIST_R_ELEMS; r++) 122 + for (g = 0; g < HIST_G_ELEMS; g++) 123 + for (b = 0; b < HIST_B_ELEMS; b++) 124 + histogram[r * MR + g * MG + b] = 0; 125 +} 126 + 127 +static void 128 +generate_histogram_rgb (Histogram histogram, rasterliteImagePtr image) 129 +{ 130 + int pixel; 131 + int x; 132 + int y; 133 + int r; 134 + int g; 135 + int b; 136 + ColorFreq *col; 137 + 138 + zero_histogram_rgb (histogram); 139 + 140 + for (y = 0; y < image->sy; y++) 141 + { 142 + for (x = 0; x < image->sx; x++) 143 + { 144 + pixel = image->pixels[y][x]; 145 + r = true_color_get_red (pixel); 146 + g = true_color_get_green (pixel); 147 + b = true_color_get_blue (pixel); 148 + col = &histogram[(r >> R_SHIFT) * MR 149 + + (g >> G_SHIFT) * MG + (b >> B_SHIFT)]; 150 + (*col)++; 151 + } 152 + } 153 +} 154 + 155 + 156 +static boxptr 157 +find_biggest_volume (boxptr boxlist, int numboxes) 158 +/* Find the splittable box with the largest (scaled) volume */ 159 +/* Returns 0 if no splittable boxes remain */ 160 +{ 161 + boxptr boxp; 162 + int i; 163 + int maxv = 0; 164 + boxptr which = 0; 165 + 166 + for (i = 0, boxp = boxlist; i < numboxes; i++, boxp++) 167 + { 168 + if (boxp->volume > maxv) 169 + { 170 + which = boxp; 171 + maxv = boxp->volume; 172 + } 173 + } 174 + 175 + return which; 176 +} 177 + 178 + 179 +static void 180 +update_box_rgb (Histogram histogram, boxptr boxp) 181 +/* Shrink the min/max bounds of a box to enclose only nonzero elements, */ 182 +/* and recompute its volume and population */ 183 +{ 184 + ColorFreq *histp; 185 + int R, G, B; 186 + int Rmin, Rmax, Gmin, Gmax, Bmin, Bmax; 187 + int dist0, dist1, dist2; 188 + long ccount; 189 + 190 + Rmin = boxp->Rmin; 191 + Rmax = boxp->Rmax; 192 + Gmin = boxp->Gmin; 193 + Gmax = boxp->Gmax; 194 + Bmin = boxp->Bmin; 195 + Bmax = boxp->Bmax; 196 + 197 + if (Rmax > Rmin) 198 + for (R = Rmin; R <= Rmax; R++) 199 + for (G = Gmin; G <= Gmax; G++) 200 + { 201 + histp = histogram + R * MR + G * MG + Bmin; 202 + for (B = Bmin; B <= Bmax; B++) 203 + if (*histp++ != 0) 204 + { 205 + boxp->Rmin = Rmin = R; 206 + goto have_Rmin; 207 + } 208 + } 209 + have_Rmin: 210 + if (Rmax > Rmin) 211 + for (R = Rmax; R >= Rmin; R--) 212 + for (G = Gmin; G <= Gmax; G++) 213 + { 214 + histp = histogram + R * MR + G * MG + Bmin; 215 + for (B = Bmin; B <= Bmax; B++) 216 + if (*histp++ != 0) 217 + { 218 + boxp->Rmax = Rmax = R; 219 + goto have_Rmax; 220 + } 221 + } 222 + have_Rmax: 223 + if (Gmax > Gmin) 224 + for (G = Gmin; G <= Gmax; G++) 225 + for (R = Rmin; R <= Rmax; R++) 226 + { 227 + histp = histogram + R * MR + G * MG + Bmin; 228 + for (B = Bmin; B <= Bmax; B++) 229 + if (*histp++ != 0) 230 + { 231 + boxp->Gmin = Gmin = G; 232 + goto have_Gmin; 233 + } 234 + } 235 + have_Gmin: 236 + if (Gmax > Gmin) 237 + for (G = Gmax; G >= Gmin; G--) 238 + for (R = Rmin; R <= Rmax; R++) 239 + { 240 + histp = histogram + R * MR + G * MG + Bmin; 241 + for (B = Bmin; B <= Bmax; B++) 242 + if (*histp++ != 0) 243 + { 244 + boxp->Gmax = Gmax = G; 245 + goto have_Gmax; 246 + } 247 + } 248 + have_Gmax: 249 + if (Bmax > Bmin) 250 + for (B = Bmin; B <= Bmax; B++) 251 + for (R = Rmin; R <= Rmax; R++) 252 + { 253 + histp = histogram + R * MR + Gmin * MG + B; 254 + for (G = Gmin; G <= Gmax; G++, histp += MG) 255 + if (*histp != 0) 256 + { 257 + boxp->Bmin = Bmin = B; 258 + goto have_Bmin; 259 + } 260 + } 261 + have_Bmin: 262 + if (Bmax > Bmin) 263 + for (B = Bmax; B >= Bmin; B--) 264 + for (R = Rmin; R <= Rmax; R++) 265 + { 266 + histp = histogram + R * MR + Gmin * MG + B; 267 + for (G = Gmin; G <= Gmax; G++, histp += MG) 268 + if (*histp != 0) 269 + { 270 + boxp->Bmax = Bmax = B; 271 + goto have_Bmax; 272 + } 273 + } 274 + have_Bmax: 275 + 276 + /* Update box volume. 277 + * We use 2-norm rather than real volume here; this biases the method 278 + * against making long narrow boxes, and it has the side benefit that 279 + * a box is splittable iff norm > 0. 280 + * Since the differences are expressed in histogram-cell units, 281 + * we have to shift back to JSAMPLE units to get consistent distances; 282 + * after which, we scale according to the selected distance scale factors. 283 + */ 284 + dist0 = Rmax - Rmin; 285 + dist1 = Gmax - Gmin; 286 + dist2 = Bmax - Bmin; 287 + boxp->volume = dist0 * dist0 + dist1 * dist1 + dist2 * dist2; 288 + 289 + /* Now scan remaining volume of box and compute population */ 290 + ccount = 0; 291 + for (R = Rmin; R <= Rmax; R++) 292 + for (G = Gmin; G <= Gmax; G++) 293 + { 294 + histp = histogram + R * MR + G * MG + Bmin; 295 + for (B = Bmin; B <= Bmax; B++, histp++) 296 + if (*histp != 0) 297 + { 298 + ccount++; 299 + } 300 + } 301 + 302 + boxp->colorcount = ccount; 303 +} 304 + 305 + 306 +static int 307 +median_cut_rgb (Histogram histogram, boxptr boxlist, int numboxes, 308 + int desired_colors) 309 +/* Repeatedly select and split the largest box until we have enough boxes */ 310 +{ 311 + int n, lb; 312 + int R, G, B, cmax; 313 + boxptr b1, b2; 314 + 315 + while (numboxes < desired_colors) 316 + { 317 + /* Select box to split. 318 + * Current algorithm: by population for first half, then by volume. 319 + */ 320 + b1 = find_biggest_volume (boxlist, numboxes); 321 + 322 + if (b1 == 0) /* no splittable boxes left! */ 323 + break; 324 + b2 = boxlist + numboxes; /* where new box will go */ 325 + /* Copy the color bounds to the new box. */ 326 + b2->Rmax = b1->Rmax; 327 + b2->Gmax = b1->Gmax; 328 + b2->Bmax = b1->Bmax; 329 + b2->Rmin = b1->Rmin; 330 + b2->Gmin = b1->Gmin; 331 + b2->Bmin = b1->Bmin; 332 + /* Choose which axis to split the box on. 333 + * Current algorithm: longest scaled axis. 334 + * See notes in update_box about scaling distances. 335 + */ 336 + R = b1->Rmax - b1->Rmin; 337 + G = b1->Gmax - b1->Gmin; 338 + B = b1->Bmax - b1->Bmin; 339 + /* We want to break any ties in favor of green, then red, blue last. 340 + */ 341 + cmax = G; 342 + n = 1; 343 + if (R > cmax) 344 + { 345 + cmax = R; 346 + n = 0; 347 + } 348 + if (B > cmax) 349 + { 350 + n = 2; 351 + } 352 + /* Choose split point along selected axis, and update box bounds. 353 + * Current algorithm: split at halfway point. 354 + * (Since the box has been shrunk to minimum volume, 355 + * any split will produce two nonempty subboxes.) 356 + * Note that lb value is max for lower box, so must be < old max. 357 + */ 358 + switch (n) 359 + { 360 + case 0: 361 + lb = (b1->Rmax + b1->Rmin) / 2; 362 + b1->Rmax = lb; 363 + b2->Rmin = lb + 1; 364 + break; 365 + case 1: 366 + lb = (b1->Gmax + b1->Gmin) / 2; 367 + b1->Gmax = lb; 368 + b2->Gmin = lb + 1; 369 + break; 370 + case 2: 371 + lb = (b1->Bmax + b1->Bmin) / 2; 372 + b1->Bmax = lb; 373 + b2->Bmin = lb + 1; 374 + break; 375 + } 376 + /* Update stats for boxes */ 377 + update_box_rgb (histogram, b1); 378 + update_box_rgb (histogram, b2); 379 + numboxes++; 380 + } 381 + return numboxes; 382 +} 383 + 384 + 385 +static void 386 +compute_color_rgb (QuantizeObj * quantobj, Histogram histogram, 387 + boxptr boxp, int icolor) 388 +/* Compute representative color for a box, put it in colormap[icolor] */ 389 +{ 390 + /* Current algorithm: mean weighted by pixels (not colors) */ 391 + /* Note it is important to get the rounding correct! */ 392 + ColorFreq *histp; 393 + int R, G, B; 394 + int Rmin, Rmax; 395 + int Gmin, Gmax; 396 + int Bmin, Bmax; 397 + unsigned long count; 398 + unsigned long total = 0; 399 + unsigned long Rtotal = 0; 400 + unsigned long Gtotal = 0; 401 + unsigned long Btotal = 0; 402 + int pixel; 403 + int r; 404 + int g; 405 + int b; 406 + 407 + Rmin = boxp->Rmin; 408 + Rmax = boxp->Rmax; 409 + Gmin = boxp->Gmin; 410 + Gmax = boxp->Gmax; 411 + Bmin = boxp->Bmin; 412 + Bmax = boxp->Bmax; 413 + 414 + for (R = Rmin; R <= Rmax; R++) 415 + for (G = Gmin; G <= Gmax; G++) 416 + { 417 + histp = histogram + R * MR + G * MG + Bmin; 418 + for (B = Bmin; B <= Bmax; B++) 419 + { 420 + if ((count = *histp++) != 0) 421 + { 422 + total += count; 423 + Rtotal += 424 + ((R << R_SHIFT) + ((1 << R_SHIFT) >> 1)) * count; 425 + Gtotal += 426 + ((G << G_SHIFT) + ((1 << G_SHIFT) >> 1)) * count; 427 + Btotal += 428 + ((B << B_SHIFT) + ((1 << B_SHIFT) >> 1)) * count; 429 + } 430 + } 431 + } 432 + 433 + r = (unsigned char) ((Rtotal + (total >> 1)) / total); 434 + g = (unsigned char) ((Gtotal + (total >> 1)) / total); 435 + b = (unsigned char) ((Btotal + (total >> 1)) / total); 436 + pixel = true_color (r, g, b); 437 + quantobj->cmap[icolor] = pixel; 438 + quantobj->freq[icolor] = total; 439 +} 440 + 441 + 442 +static void 443 +select_colors_rgb (QuantizeObj * quantobj, Histogram histogram) 444 +/* Master routine for color selection */ 445 +{ 446 + boxptr boxlist; 447 + int numboxes; 448 + int desired = quantobj->desired_number_of_colors; 449 + int i; 450 + 451 + /* Allocate workspace for box list */ 452 + boxlist = malloc (desired * sizeof (box)); 453 + 454 + /* Initialize one box containing whole space */ 455 + numboxes = 1; 456 + boxlist[0].Rmin = 0; 457 + boxlist[0].Rmax = (1 << PRECISION_R) - 1; 458 + boxlist[0].Gmin = 0; 459 + boxlist[0].Gmax = (1 << PRECISION_G) - 1; 460 + boxlist[0].Bmin = 0; 461 + boxlist[0].Bmax = (1 << PRECISION_B) - 1; 462 + /* Shrink it to actually-used volume and set its statistics */ 463 + update_box_rgb (histogram, boxlist); 464 + /* Perform median-cut to produce final box list */ 465 + numboxes = median_cut_rgb (histogram, boxlist, numboxes, desired); 466 + quantobj->actual_number_of_colors = numboxes; 467 + /* Compute the representative color for each box, fill colormap */ 468 + for (i = 0; i < numboxes; i++) 469 + compute_color_rgb (quantobj, histogram, boxlist + i, i); 470 + free (boxlist); 471 +} 472 + 473 + 474 +/* 475 + * These routines are concerned with the time-critical task of mapping input 476 + * colors to the nearest color in the selected colormap. 477 + * 478 + * We re-use the histogram space as an "inverse color map", essentially a 479 + * cache for the results of nearest-color searches. All colors within a 480 + * histogram cell will be mapped to the same colormap entry, namely the one 481 + * closest to the cell's center. This may not be quite the closest entry to 482 + * the actual input color, but it's almost as good. A zero in the cache 483 + * indicates we haven't found the nearest color for that cell yet; the array 484 + * is cleared to zeroes before starting the mapping pass. When we find the 485 + * nearest color for a cell, its colormap index plus one is recorded in the 486 + * cache for future use. The pass2 scanning routines call fill_inverse_cmap 487 + * when they need to use an unfilled entry in the cache. 488 + * 489 + * Our method of efficiently finding nearest colors is based on the "locally 490 + * sorted search" idea described by Heckbert and on the incremental distance 491 + * calculation described by Spencer W. Thomas in chapter III.1 of Graphics 492 + * Gems II (James Arvo, ed. Academic Press, 1991). Thomas points out that 493 + * the distances from a given colormap entry to each cell of the histogram can 494 + * be computed quickly using an incremental method: the differences between 495 + * distances to adjacent cells themselves differ by a constant. This allows a 496 + * fairly fast implementation of the "brute force" approach of computing the 497 + * distance from every colormap entry to every histogram cell. Unfortunately, 498 + * it needs a work array to hold the best-distance-so-far for each histogram 499 + * cell (because the inner loop has to be over cells, not colormap entries). 500 + * The work array elements have to be ints, so the work array would need 501 + * 256Kb at our recommended precision. This is not feasible in DOS machines. 502 + 503 +[ 256*1024/4 = 65,536 ] 504 + 505 + * To get around these problems, we apply Thomas' method to compute the 506 + * nearest colors for only the cells within a small subbox of the histogram. 507 + * The work array need be only as big as the subbox, so the memory usage 508 + * problem is solved. Furthermore, we need not fill subboxes that are never 509 + * referenced in pass2; many images use only part of the color gamut, so a 510 + * fair amount of work is saved. An additional advantage of this 511 + * approach is that we can apply Heckbert's locality criterion to quickly 512 + * eliminate colormap entries that are far away from the subbox; typically 513 + * three-fourths of the colormap entries are rejected by Heckbert's criterion, 514 + * and we need not compute their distances to individual cells in the subbox. 515 + * The speed of this approach is heavily influenced by the subbox size: too 516 + * small means too much overhead, too big loses because Heckbert's criterion 517 + * can't eliminate as many colormap entries. Empirically the best subbox 518 + * size seems to be about 1/512th of the histogram (1/8th in each direction). 519 + * 520 + * Thomas' article also describes a refined method which is asymptotically 521 + * faster than the brute-force method, but it is also far more complex and 522 + * cannot efficiently be applied to small subboxes. It is therefore not 523 + * useful for programs intended to be portable to DOS machines. On machines 524 + * with plenty of memory, filling the whole histogram in one shot with Thomas' 525 + * refined method might be faster than the present code --- but then again, 526 + * it might not be any faster, and it's certainly more complicated. 527 + */ 528 + 529 +/* log2(histogram cells in update box) for each axis; this can be adjusted */ 530 +#define BOX_R_LOG (PRECISION_R-3) 531 +#define BOX_G_LOG (PRECISION_G-3) 532 +#define BOX_B_LOG (PRECISION_B-3) 533 + 534 +#define BOX_R_ELEMS (1<<BOX_R_LOG) /* # of hist cells in update box */ 535 +#define BOX_G_ELEMS (1<<BOX_G_LOG) 536 +#define BOX_B_ELEMS (1<<BOX_B_LOG) 537 + 538 +#define BOX_R_SHIFT (R_SHIFT + BOX_R_LOG) 539 +#define BOX_G_SHIFT (G_SHIFT + BOX_G_LOG) 540 +#define BOX_B_SHIFT (B_SHIFT + BOX_B_LOG) 541 + 542 +/* 543 + * The next three routines implement inverse colormap filling. They could 544 + * all be folded into one big routine, but splitting them up this way saves 545 + * some stack space (the mindist[] and bestdist[] arrays need not coexist) 546 + * and may allow some compilers to produce better code by registerizing more 547 + * inner-loop variables. 548 + */ 549 + 550 +static int 551 +find_nearby_colors (QuantizeObj * quantobj, int minR, int minG, 552 + int minB, int *colorlist) 553 +/* Locate the colormap entries close enough to an update box to be candidates 554 + * for the nearest entry to some cell(s) in the update box. The update box 555 + * is specified by the center coordinates of its first cell. The number of 556 + * candidate colormap entries is returned, and their colormap indexes are 557 + * placed in colorlist[]. 558 + * This routine uses Heckbert's "locally sorted search" criterion to select 559 + * the colors that need further consideration. 560 + */ 561 +{ 562 + int numcolors = quantobj->actual_number_of_colors; 563 + int maxR, maxG, maxB; 564 + int centerR, centerG, centerB; 565 + int i, x, ncolors; 566 + int minmaxdist, min_dist = 0, max_dist, tdist; 567 + int mindist[MAXNUMCOLORS]; /* min distance to colormap entry i */ 568 + int pixel; 569 + int r; 570 + int g; 571 + int b; 572 + 573 + /* Compute TRUE coordinates of update box's upper corner and center. 574 + * Actually we compute the coordinates of the center of the upper-corner 575 + * histogram cell, which are the upper bounds of the volume we care about. 576 + * Note that since ">>" rounds down, the "center" values may be closer to 577 + * min than to max; hence comparisons to them must be "<=", not "<". 578 + */ 579 + maxR = minR + ((1 << BOX_R_SHIFT) - (1 << R_SHIFT)); 580 + centerR = (minR + maxR) >> 1; 581 + maxG = minG + ((1 << BOX_G_SHIFT) - (1 << G_SHIFT)); 582 + centerG = (minG + maxG) >> 1; 583 + maxB = minB + ((1 << BOX_B_SHIFT) - (1 << B_SHIFT)); 584 + centerB = (minB + maxB) >> 1; 585 + 586 + /* For each color in colormap, find: 587 + * 1. its minimum squared-distance to any point in the update box 588 + * (zero if color is within update box); 589 + * 2. its maximum squared-distance to any point in the update box. 590 + * Both of these can be found by considering only the corners of the box. 591 + * We save the minimum distance for each color in mindist[]; 592 + * only the smallest maximum distance is of interest. 593 + */ 594 + minmaxdist = 0x7FFFFFFFL; 595 + 596 + for (i = 0; i < numcolors; i++) 597 + { 598 + /* We compute the squared-R-distance term, then add in the other two. */ 599 + pixel = quantobj->cmap[i]; 600 + r = true_color_get_red (pixel); 601 + g = true_color_get_green (pixel); 602 + b = true_color_get_blue (pixel); 603 + x = r; 604 + if (x < minR) 605 + { 606 + tdist = (x - minR) R_SCALE; 607 + min_dist = tdist * tdist; 608 + tdist = (x - maxR) R_SCALE; 609 + max_dist = tdist * tdist; 610 + } 611 + else if (x > maxR) 612 + { 613 + tdist = (x - maxR) R_SCALE; 614 + min_dist = tdist * tdist; 615 + tdist = (x - minR) R_SCALE; 616 + max_dist = tdist * tdist; 617 + } 618 + else 619 + { 620 + /* within cell range so no contribution to min_dist */ 621 + min_dist = 0; 622 + if (x <= centerR) 623 + { 624 + tdist = (x - maxR) R_SCALE; 625 + max_dist = tdist * tdist; 626 + } 627 + else 628 + { 629 + tdist = (x - minR) R_SCALE; 630 + max_dist = tdist * tdist; 631 + } 632 + } 633 + 634 + x = g; 635 + if (x < minG) 636 + { 637 + tdist = (x - minG) G_SCALE; 638 + min_dist += tdist * tdist; 639 + tdist = (x - maxG) G_SCALE; 640 + max_dist += tdist * tdist; 641 + } 642 + else if (x > maxG) 643 + { 644 + tdist = (x - maxG) G_SCALE; 645 + min_dist += tdist * tdist; 646 + tdist = (x - minG) G_SCALE; 647 + max_dist += tdist * tdist; 648 + } 649 + else 650 + { 651 + /* within cell range so no contribution to min_dist */ 652 + if (x <= centerG) 653 + { 654 + tdist = (x - maxG) G_SCALE; 655 + max_dist += tdist * tdist; 656 + } 657 + else 658 + { 659 + tdist = (x - minG) G_SCALE; 660 + max_dist += tdist * tdist; 661 + } 662 + } 663 + 664 + x = b; 665 + if (x < minB) 666 + { 667 + tdist = (x - minB) B_SCALE; 668 + min_dist += tdist * tdist; 669 + tdist = (x - maxB) B_SCALE; 670 + max_dist += tdist * tdist; 671 + } 672 + else if (x > maxB) 673 + { 674 + tdist = (x - maxB) B_SCALE; 675 + min_dist += tdist * tdist; 676 + tdist = (x - minB) B_SCALE; 677 + max_dist += tdist * tdist; 678 + } 679 + else 680 + { 681 + /* within cell range so no contribution to min_dist */ 682 + if (x <= centerB) 683 + { 684 + tdist = (x - maxB) B_SCALE; 685 + max_dist += tdist * tdist; 686 + } 687 + else 688 + { 689 + tdist = (x - minB) B_SCALE; 690 + max_dist += tdist * tdist; 691 + } 692 + } 693 + 694 + mindist[i] = min_dist; /* save away the results */ 695 + if (max_dist < minmaxdist) 696 + minmaxdist = max_dist; 697 + } 698 + 699 + /* Now we know that no cell in the update box is more than minmaxdist 700 + * away from some colormap entry. Therefore, only colors that are 701 + * within minmaxdist of some part of the box need be considered. 702 + */ 703 + ncolors = 0; 704 + for (i = 0; i < numcolors; i++) 705 + { 706 + if (mindist[i] <= minmaxdist) 707 + colorlist[ncolors++] = i; 708 + } 709 + return ncolors; 710 +} 711 + 712 + 713 +static void 714 +find_best_colors (QuantizeObj * quantobj, int minR, int minG, 715 + int minB, int numcolors, int *colorlist, int *bestcolor) 716 +/* Find the closest colormap entry for each cell in the update box, 717 + given the list of candidate colors prepared by find_nearby_colors. 718 + Return the indexes of the closest entries in the bestcolor[] array. 719 + This routine uses Thomas' incremental distance calculation method to 720 + find the distance from a colormap entry to successive cells in the box. 721 + */ 722 +{ 723 + int iR, iG, iB; 724 + int i, icolor; 725 + int *bptr; /* pointer into bestdist[] array */ 726 + int *cptr; /* pointer into bestcolor[] array */ 727 + int dist0, dist1; /* initial distance values */ 728 + int dist2; /* current distance in inner loop */ 729 + int xx0, xx1; /* distance increments */ 730 + int xx2; 731 + int inR, inG, inB; /* initial values for increments */ 732 + int pixel; 733 + int r; 734 + int g; 735 + int b; 736 + 737 + /* This array holds the distance to the nearest-so-far color for each cell */ 738 + int bestdist[BOX_R_ELEMS * BOX_G_ELEMS * BOX_B_ELEMS]; 739 + 740 + /* Initialize best-distance for each cell of the update box */ 741 + bptr = bestdist; 742 + for (i = BOX_R_ELEMS * BOX_G_ELEMS * BOX_B_ELEMS - 1; i >= 0; i--) 743 + *bptr++ = 0x7FFFFFFFL; 744 + 745 + /* For each color selected by find_nearby_colors, 746 + * compute its distance to the center of each cell in the box. 747 + * If that's less than best-so-far, update best distance and color number. 748 + */ 749 + 750 + /* Nominal steps between cell centers ("x" in Thomas article) */ 751 +#define STEP_R ((1 << R_SHIFT) R_SCALE) 752 +#define STEP_G ((1 << G_SHIFT) G_SCALE) 753 +#define STEP_B ((1 << B_SHIFT) B_SCALE) 754 + 755 + for (i = 0; i < numcolors; i++) 756 + { 757 + icolor = colorlist[i]; 758 + /* Compute (square of) distance from minR/G/B to this color */ 759 + pixel = quantobj->cmap[icolor]; 760 + r = true_color_get_red (pixel); 761 + g = true_color_get_green (pixel); 762 + b = true_color_get_blue (pixel); 763 + inR = (minR - r) R_SCALE; 764 + dist0 = inR * inR; 765 + inG = (minG - g) G_SCALE; 766 + dist0 += inG * inG; 767 + inB = (minB - b) B_SCALE; 768 + dist0 += inB * inB; 769 + /* Form the initial difference increments */ 770 + inR = inR * (2 * STEP_R) + STEP_R * STEP_R; 771 + inG = inG * (2 * STEP_G) + STEP_G * STEP_G; 772 + inB = inB * (2 * STEP_B) + STEP_B * STEP_B; 773 + /* Now loop over all cells in box, updating distance per Thomas method */ 774 + bptr = bestdist; 775 + cptr = bestcolor; 776 + xx0 = inR; 777 + for (iR = BOX_R_ELEMS - 1; iR >= 0; iR--) 778 + { 779 + dist1 = dist0; 780 + xx1 = inG; 781 + for (iG = BOX_G_ELEMS - 1; iG >= 0; iG--) 782 + { 783 + dist2 = dist1; 784 + xx2 = inB; 785 + for (iB = BOX_B_ELEMS - 1; iB >= 0; iB--) 786 + { 787 + if (dist2 < *bptr) 788 + { 789 + *bptr = dist2; 790 + *cptr = icolor; 791 + } 792 + dist2 += xx2; 793 + xx2 += 2 * STEP_B * STEP_B; 794 + bptr++; 795 + cptr++; 796 + } 797 + dist1 += xx1; 798 + xx1 += 2 * STEP_G * STEP_G; 799 + } 800 + dist0 += xx0; 801 + xx0 += 2 * STEP_R * STEP_R; 802 + } 803 + } 804 +} 805 + 806 +static void 807 +fill_inverse_cmap_rgb (QuantizeObj * quantobj, Histogram histogram, 808 + int R, int G, int B) 809 +/* Fill the inverse-colormap entries in the update box that contains 810 + histogram cell R/G/B. (Only that one cell MUST be filled, but 811 + we can fill as many others as we wish.) */ 812 +{ 813 + int minR, minG, minB; /* lower left corner of update box */ 814 + int iR, iG, iB; 815 + int *cptr; /* pointer into bestcolor[] array */ 816 + ColorFreq *cachep; /* pointer into main cache array */ 817 + /* This array lists the candidate colormap indexes. */ 818 + int colorlist[MAXNUMCOLORS]; 819 + int numcolors; /* number of candidate colors */ 820 + /* This array holds the actually closest colormap index for each cell. */ 821 + int bestcolor[BOX_R_ELEMS * BOX_G_ELEMS * BOX_B_ELEMS]; 822 + 823 + /* Convert cell coordinates to update box ID */ 824 + R >>= BOX_R_LOG; 825 + G >>= BOX_G_LOG; 826 + B >>= BOX_B_LOG; 827 + 828 + /* Compute TRUE coordinates of update box's origin corner. 829 + * Actually we compute the coordinates of the center of the corner 830 + * histogram cell, which are the lower bounds of the volume we care about. 831 + */ 832 + minR = (R << BOX_R_SHIFT) + ((1 << R_SHIFT) >> 1); 833 + minG = (G << BOX_G_SHIFT) + ((1 << G_SHIFT) >> 1); 834 + minB = (B << BOX_B_SHIFT) + ((1 << B_SHIFT) >> 1); 835 + 836 + /* Determine which colormap entries are close enough to be candidates 837 + * for the nearest entry to some cell in the update box. 838 + */ 839 + numcolors = find_nearby_colors (quantobj, minR, minG, minB, colorlist); 840 + 841 + /* Determine the actually nearest colors. */ 842 + find_best_colors (quantobj, minR, minG, minB, numcolors, colorlist, 843 + bestcolor); 844 + 845 + /* Save the best color numbers (plus 1) in the main cache array */ 846 + R <<= BOX_R_LOG; /* convert ID back to base cell indexes */ 847 + G <<= BOX_G_LOG; 848 + B <<= BOX_B_LOG; 849 + cptr = bestcolor; 850 + for (iR = 0; iR < BOX_R_ELEMS; iR++) 851 + { 852 + for (iG = 0; iG < BOX_G_ELEMS; iG++) 853 + { 854 + cachep = &histogram[(R + iR) * MR + (G + iG) * MG + B]; 855 + for (iB = 0; iB < BOX_B_ELEMS; iB++) 856 + { 857 + *cachep++ = (*cptr++) + 1; 858 + } 859 + } 860 + } 861 +} 862 + 863 +/* This is pass 1 */ 864 +static void 865 +median_cut_pass1_rgb (QuantizeObj * quantobj, rasterliteImagePtr image) 866 +{ 867 + generate_histogram_rgb (quantobj->histogram, image); 868 + select_colors_rgb (quantobj, quantobj->histogram); 869 +} 870 + 871 + 872 +/* Map some rows of pixels to the output colormapped representation. */ 873 +static void 874 +median_cut_pass2_rgb (QuantizeObj * quantobj, rasterliteImagePtr image) 875 + /* This version performs no dithering */ 876 +{ 877 + Histogram histogram = quantobj->histogram; 878 + ColorFreq *cachep; 879 + int R, G, B; 880 + int origR, origG, origB; 881 + int row, col; 882 + int width = image->sx; 883 + int height = image->sy; 884 + int pixel; 885 + 886 + zero_histogram_rgb (histogram); 887 + 888 + for (row = 0; row < height; row++) 889 + { 890 + for (col = 0; col < width; col++) 891 + { 892 + /* get pixel value and index into the cache */ 893 + pixel = image->pixels[row][col]; 894 + origR = true_color_get_red (pixel); 895 + origG = true_color_get_green (pixel); 896 + origB = true_color_get_blue (pixel); 897 + 898 + /* get pixel value and index into the cache */ 899 + R = origR >> R_SHIFT; 900 + G = origG >> G_SHIFT; 901 + B = origB >> B_SHIFT; 902 + cachep = &histogram[R * MR + G * MG + B]; 903 + /* If we have not seen this color before, find nearest 904 + colormap entry and update the cache */ 905 + if (*cachep == 0) 906 + { 907 + fill_inverse_cmap_rgb (quantobj, histogram, R, G, B); 908 + } 909 + /* Now emit the colormap index for this cell */ 910 + pixel = quantobj->cmap[*cachep - 1]; 911 + image->pixels[row][col] = pixel; 912 + } 913 + } 914 +} 915 + 916 +static QuantizeObj * 917 +initialize_median_cut (int num_colors) 918 +{ 919 + QuantizeObj *quantobj; 920 + 921 + /* Initialize the data structures */ 922 + quantobj = malloc (sizeof (QuantizeObj)); 923 + 924 + quantobj->histogram = malloc (sizeof (ColorFreq) * 925 + HIST_R_ELEMS * HIST_G_ELEMS * HIST_B_ELEMS); 926 + quantobj->desired_number_of_colors = num_colors; 927 + 928 + return quantobj; 929 +} 930 + 931 +static void 932 +quantize_object_free (QuantizeObj * quantobj) 933 +{ 934 + free (quantobj->histogram); 935 + free (quantobj); 936 +} 937 + 938 +extern void 939 +image_resample_as_palette256 (const rasterliteImagePtr img) 940 +{ 941 +/* applies quantization to the current image, so to get 256 colors */ 942 + QuantizeObj *quantobj; 943 + 944 + /* If a pointer was sent in, let's use it. */ 945 + quantobj = initialize_median_cut (256); 946 + median_cut_pass1_rgb (quantobj, img); 947 + median_cut_pass2_rgb (quantobj, img); 948 + quantize_object_free (quantobj); 949 +}
Changes to lib/rasterlite_tiff.c.
1 1 /* 2 2 / rasterlite_tiff.c 3 3 / 4 4 / TIFF auxiliary helpers 5 5 / 6 -/ version 1.0, 2009 June 1 6 +/ version 1.1a, 2011 November 12 7 7 / 8 8 / Author: Sandro Furieri a.furieri@lqt.it 9 9 / 10 10 / Copyright (C) 2009 Alessandro Furieri 11 11 / 12 12 / This program is free software: you can redistribute it and/or modify 13 -/ it under the terms of the GNU General Public License as published by 13 +/ it under the terms of the GNU Lesser General Public License as published by 14 14 / the Free Software Foundation, either version 3 of the License, or 15 15 / (at your option) any later version. 16 16 / 17 17 / This program is distributed in the hope that it will be useful, 18 18 / but WITHOUT ANY WARRANTY; without even the implied warranty of 19 19 / MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 -/ GNU General Public License for more details. 20 +/ GNU Lesser General Public License for more details. 21 21 / 22 -/ You should have received a copy of the GNU General Public License 22 +/ You should have received a copy of the GNU Lesser General Public License 23 23 / along with this program. If not, see <http://www.gnu.org/licenses/>. 24 24 / 25 25 */ 26 26 27 27 #include <stdio.h> 28 28 #include <math.h> 29 29 #include <string.h> 30 30 #include <stdlib.h> 31 31 32 -#include <geotiff.h> 33 -#include <xtiffio.h> 34 -#include <geo_tiffp.h> 35 -#include <geo_keyp.h> 36 -#include <geovalues.h> 37 -#include <geo_normalize.h> 32 +#include "rasterlite_tiff_hdrs.h" 38 33 34 +#ifdef SPATIALITE_AMALGAMATION 39 35 #include <spatialite/sqlite3.h> 36 +#else 37 +#include <sqlite3.h> 38 +#endif 39 + 40 40 #include <spatialite/gaiageo.h> 41 41 42 42 #include "rasterlite_internals.h" 43 43 44 44 struct memfile 45 45 { 46 46 /* a struct emulating a file [memory mapped] */ ................................................................................ 143 143 { 144 144 if (clientdata || data || offset) 145 145 return; /* does absolutely nothing - required in order to suppress warnings */ 146 146 return; 147 147 } 148 148 149 149 extern void * 150 -image_to_tiff_fax4 (const rasterliteImagePrt img, int *size) 150 +image_to_tiff_fax4 (const rasterliteImagePtr img, int *size) 151 151 { 152 152 /* compressing a bi-level (monocrhome) image as TIFF FAX-4 */ 153 153 unsigned char *tiff_image = NULL; 154 154 TIFF *out; 155 155 int row; 156 156 int col; 157 157 int strip_rows; ................................................................................ 272 272 *size = clientdata.eof; 273 273 } 274 274 free (clientdata.buffer); 275 275 return tiff_image; 276 276 } 277 277 278 278 extern void * 279 -image_to_tiff_palette (const rasterliteImagePrt img, int *size) 279 +image_to_tiff_palette (const rasterliteImagePtr img, int *size) 280 280 { 281 281 /* compressing a palettte image as TIFF PALETTE */ 282 282 unsigned char *tiff_image = NULL; 283 283 TIFF *out; 284 284 int row; 285 285 int col; 286 286 int extimated_size; ................................................................................ 369 369 *size = clientdata.eof; 370 370 } 371 371 free (clientdata.buffer); 372 372 return tiff_image; 373 373 } 374 374 375 375 extern void * 376 -image_to_tiff_grayscale (const rasterliteImagePrt img, int *size) 376 +image_to_tiff_grayscale (const rasterliteImagePtr img, int *size) 377 377 { 378 378 /* compressing a grayscale image as TIFF GRAYSCALE */ 379 379 unsigned char *tiff_image = NULL; 380 380 TIFF *out; 381 381 int row; 382 382 int col; 383 383 int extimated_size; ................................................................................ 435 435 *size = clientdata.eof; 436 436 } 437 437 free (clientdata.buffer); 438 438 return tiff_image; 439 439 } 440 440 441 441 extern void * 442 -image_to_tiff_rgb (const rasterliteImagePrt img, int *size) 442 +image_to_tiff_rgb (const rasterliteImagePtr img, int *size) 443 443 { 444 444 /* compressing an RGBimage as TIFF RGB */ 445 445 unsigned char *tiff_image = NULL; 446 446 TIFF *out; 447 447 int row; 448 448 int col; 449 449 int extimated_size; ................................................................................ 502 502 memcpy (tiff_image, clientdata.buffer, clientdata.eof); 503 503 *size = clientdata.eof; 504 504 } 505 505 free (clientdata.buffer); 506 506 return tiff_image; 507 507 } 508 508 509 -extern rasterliteImagePrt 509 +extern rasterliteImagePtr 510 510 image_from_tiff (int size, const void *data) 511 511 { 512 512 /* uncompressing a TIFF */ 513 - rasterliteImagePrt img; 513 + rasterliteImagePtr img; 514 514 uint16 bits_per_sample; 515 515 uint16 samples_per_pixel; 516 516 uint16 photometric; 517 517 uint32 width = 0; 518 518 uint32 height = 0; 519 519 uint32 rows_strip = 0; 520 520 uint32 *raster = NULL;
Deleted lib/rasterlite_wavelet.c.
1 -/* 2 -/ rasterlite_wavelet.c 3 -/ 4 -/ WAVELET auxiliary helpers 5 -/ 6 -/ version 1.0, 2009 June 5 7 -/ 8 -/ Author: Sandro Furieri a.furieri@lqt.it 9 -/ 10 -/ Copyright (C) 2009 Alessandro Furieri 11 -/ 12 -/ This program is free software: you can redistribute it and/or modify 13 -/ it under the terms of the GNU General Public License as published by 14 -/ the Free Software Foundation, either version 3 of the License, or 15 -/ (at your option) any later version. 16 -/ 17 -/ This program is distributed in the hope that it will be useful, 18 -/ but WITHOUT ANY WARRANTY; without even the implied warranty of 19 -/ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 -/ GNU General Public License for more details. 21 -/ 22 -/ You should have received a copy of the GNU General Public License 23 -/ along with this program. If not, see <http://www.gnu.org/licenses/>. 24 -/ 25 -*/ 26 - 27 -#include <stdio.h> 28 -#include <math.h> 29 -#include <string.h> 30 -#include <stdlib.h> 31 - 32 -#include <epsilon.h> 33 - 34 -#include <spatialite/sqlite3.h> 35 -#include <spatialite/gaiageo.h> 36 - 37 -#include <tiffio.h> 38 - 39 -#include "rasterlite_internals.h" 40 - 41 -/* 42 -/ 43 -/ this code is widely based upon the cmd_encode_file.c 44 -/ source from the 'epsilon' library 45 -/ 46 -*/ 47 - 48 -#define BIORTHOGONAL 1 49 - 50 -#define MAX(_x, _y) ((_x) > (_y) ? (_x) : (_y)) 51 - 52 -typedef struct decode_ctx_tag 53 -{ 54 - int buf_size; 55 - int n_blocks; 56 - int *done_blocks; 57 - int W; 58 - int H; 59 - int max_block_w; 60 - int max_block_h; 61 - rasterliteImagePrt img; 62 - int image_type; 63 - unsigned char *input; 64 - int in_size; 65 - int in_base; 66 - int in_current; 67 - int *clear_len; 68 - int *stop_flag; 69 -} decode_ctx; 70 - 71 -typedef struct encode_ctx_tag 72 -{ 73 - char *filter_id; 74 - int block_size; 75 - int mode; 76 - int bytes_per_block; 77 - double Y_ratio; 78 - double Cb_ratio; 79 - double Cr_ratio; 80 - int resample; 81 - int W; 82 - int H; 83 - rasterliteImagePrt img; 84 - int image_type; 85 - unsigned char *output; 86 - int out_size; 87 - int out_current; 88 - int n_blocks; 89 - int *done_blocks; 90 - int *clear_len; 91 - int *stop_flag; 92 -} encode_ctx; 93 - 94 -static int 95 -get_byte (decode_ctx * ctx) 96 -{ 97 -/* fetching the next byte from the input source */ 98 - if (ctx->in_current < ctx->in_size) 99 - return *(ctx->input + ctx->in_current++); 100 - return EOF; 101 -} 102 - 103 -static int 104 -decoder_read_next_block (decode_ctx * ctx, unsigned char *buf, int *buf_size) 105 -{ 106 -/* inserting input into the input buffer [decompressed image] */ 107 - unsigned char *next_byte; 108 - int bytes_left; 109 - int ch; 110 -/* Copy no more than *buf_size bytes */ 111 - bytes_left = *buf_size; 112 - next_byte = buf; 113 -/* Find first non-marker byte */ 114 - for (;;) 115 - { 116 - ch = get_byte (ctx); 117 - if (ch == EOF) 118 - return 0; 119 - if (ch != EPS_MARKER) 120 - { 121 - *next_byte++ = (unsigned char) ch; 122 - bytes_left--; 123 - break; 124 - } 125 - } 126 -/* Copy data until next marker, EOF or buffer end */ 127 - for (;;) 128 - { 129 - ch = get_byte (ctx); 130 - if ((ch == EOF) || (ch == EPS_MARKER)) 131 - break; 132 -/* No more space in the buffer or currupted data. Continue until EOF or syncronization marker */ 133 - if (!bytes_left) 134 - continue; 135 - *next_byte++ = (unsigned char) ch; 136 - bytes_left--; 137 - } 138 -/* Actual number of read bytes */ 139 - *buf_size = next_byte - buf; 140 - return 1; 141 -} 142 - 143 -static int 144 -guess_wavelet_type (decode_ctx * ctx, int *ext_type, int *width, int *height, 145 - int *max_block_w, int *max_block_h) 146 -{ 147 -/* Block buffer */ 148 - unsigned char *buf; 149 - int buf_size; 150 -/* Image characteristics */ 151 - int W; 152 - int H; 153 - int w; 154 - int h; 155 - int type; 156 -/* Allocate block buffer */ 157 - buf_size = MAX (EPS_MAX_GRAYSCALE_BUF, EPS_MAX_TRUECOLOR_BUF); 158 - buf = (unsigned char *) eps_xmalloc (buf_size); 159 - W = H = w = h = type = -1; 160 -/* For all blocks */ 161 - while (1) 162 - { 163 - eps_block_header hdr; 164 - /* Read next block */ 165 - if (!decoder_read_next_block (ctx, buf, &buf_size)) 166 - break; 167 -/* Parse block header */ 168 - if (eps_read_block_header (buf, buf_size, &hdr) != EPS_OK) 169 - continue; 170 -/* Check block header CRC */ 171 - if (hdr.chk_flag == EPS_BAD_CRC) 172 - continue; 173 -/* Image type */ 174 - if (type == -1) 175 - type = hdr.block_type; 176 - else 177 - { 178 - if (type != hdr.block_type) 179 - return 0; 180 - } 181 -/* Image width */ 182 - if (W == -1) 183 - W = type == EPS_GRAYSCALE_BLOCK ? hdr.uhdr.gs.W : hdr.uhdr.tc.W; 184 - else 185 - { 186 - if (type == EPS_GRAYSCALE_BLOCK ? W != hdr.uhdr.gs.W : W != 187 - hdr.uhdr.tc.W) 188 - return 0; 189 - } 190 -/* Image height */ 191 - if (H == -1) 192 - H = type == EPS_GRAYSCALE_BLOCK ? hdr.uhdr.gs.H : hdr.uhdr.tc.H; 193 - else 194 - { 195 - if (type == EPS_GRAYSCALE_BLOCK ? H != hdr.uhdr.gs.H : H != 196 - hdr.uhdr.tc.H) 197 - return 0; 198 - } 199 -/* Maximal block width and height */ 200 - if (type == EPS_GRAYSCALE_BLOCK) 201 - { 202 - if (hdr.uhdr.gs.w > w) 203 - w = hdr.uhdr.gs.w; 204 - if (hdr.uhdr.gs.h > h) 205 - h = hdr.uhdr.gs.h; 206 - } 207 - else 208 - { 209 - if (hdr.uhdr.tc.w > w) 210 - w = hdr.uhdr.tc.w; 211 - if (hdr.uhdr.tc.h > h) 212 - h = hdr.uhdr.tc.h; 213 - } 214 - } 215 -/* Rewind file and free buffer */ 216 - ctx->in_current = ctx->in_base; 217 - free (buf); 218 -/* Buggy file */ 219 - if (type == -1 || W == -1 || H == -1 || w == -1 || h == -1) 220 - return 0; 221 -/* Save results */ 222 - *ext_type = 223 - (type == EPS_GRAYSCALE_BLOCK) ? IMAGE_WAVELET_BW : IMAGE_WAVELET_RGB; 224 - *width = W; 225 - *height = H; 226 - *max_block_w = w; 227 - *max_block_h = h; 228 - return 1; 229 -} 230 - 231 -static int 232 -encoder_read_grayscale (rasterliteImagePrt img, unsigned char **Y, int x, 233 - int y, int width, int height) 234 -{ 235 -/* fetching GRAYSCALE pixels from the uncompressed image */ 236 - int j; 237 - int i; 238 - int pixel; 239 - int *p_scan; 240 -/* Check params for consistency */ 241 - if (x < 0 || y < 0) 242 - return 0; 243 - if (x >= img->sx || y >= img->sy) 244 - return 0; 245 - if (width <= 0 || height <= 0) 246 - return 0; 247 - if (x + width > img->sx) 248 - return 0; 249 - if (y + height > img->sy) 250 - return 0; 251 - for (j = 0; j < height; j++) 252 - { 253 - /* fetching image rows */ 254 - p_scan = img->pixels[y + j]; 255 - p_scan += x; 256 - for (i = 0; i < width; i++) 257 - { 258 - /* fetching pixel by scanline */ 259 - pixel = *p_scan++; 260 - Y[j][i] = true_color_get_red (pixel); 261 - } 262 - } 263 - return 1; 264 -} 265 - 266 -static int 267 -encoder_read_rgb (rasterliteImagePrt img, unsigned char **R, unsigned char **G, 268 - unsigned char **B, int x, int y, int width, int height) 269 -{ 270 -/* fetching RGB pixels from the uncompressed image */ 271 - int j; 272 - int i; 273 - int pixel; 274 - int *p_scan; 275 -/* Check params for consistency */ 276 - if (x < 0 || y < 0) 277 - return 0; 278 - if (x >= img->sx || y >= img->sy) 279 - return 0; 280 - if (width <= 0 || height <= 0) 281 - return 0; 282 - if (x + width > img->sx) 283 - return 0; 284 - if (y + height > img->sy) 285 - return 0; 286 - for (j = 0; j < height; j++) 287 - { 288 - /* fetching image rows */ 289 - p_scan = img->pixels[y + j]; 290 - p_scan += x; 291 - for (i = 0; i < width; i++) 292 - { 293 - /* fetching pixel by scanline */ 294 - pixel = *p_scan++; 295 - R[j][i] = true_color_get_red (pixel); 296 - G[j][i] = true_color_get_green (pixel); 297 - B[j][i] = true_color_get_blue (pixel); 298 - } 299 - } 300 - return 1; 301 -} 302 - 303 -static int 304 -decoder_write_grayscale (rasterliteImagePrt img, unsigned char **Y, int x, 305 - int y, int width, int height) 306 -{ 307 -/* feeding grayscale pixels into the uncompressed image */ 308 - int i; 309 - int j; 310 - int gray; 311 - int *p_scan; 312 -/* Check params for consistency */ 313 - if ((x < 0) || (y < 0)) 314 - return 0; 315 - if (x >= img->sx || y >= img->sy) 316 - return 0; 317 - if (width <= 0 || height <= 0) 318 - return 0; 319 - if (x + width > img->sx) 320 - return 0; 321 - if (y + height > img->sy) 322 - return 0; 323 - for (j = 0; j < height; j++) 324 - { 325 - p_scan = img->pixels[y + j]; 326 - p_scan += x; 327 - for (i = 0; i < width; i++) 328 - { 329 - gray = Y[j][i]; 330 - *p_scan++ = true_color (gray, gray, gray); 331 - } 332 - } 333 - return 1; 334 -} 335 - 336 -static int 337 -decoder_write_rgb (rasterliteImagePrt img, unsigned char **R, 338 - unsigned char **G, unsigned char **B, int x, int y, 339 - int width, int height) 340 -{ 341 -/* feeding RGB pixels into the uncompressed image */ 342 - int i; 343 - int j; 344 - int red; 345 - int green; 346 - int blue; 347 - int *p_scan; 348 -/* Check params for consistency */ 349 - if ((x < 0) || (y < 0)) 350 - return 0; 351 - if (x >= img->sx || y >= img->sy) 352 - return 0; 353 - if (width <= 0 || height <= 0) 354 - return 0; 355 - if (x + width > img->sx) 356 - return 0; 357 - if (y + height > img->sy) 358 - return 0; 359 - for (j = 0; j < height; j++) 360 - { 361 - p_scan = img->pixels[y + j]; 362 - p_scan += x; 363 - for (i = 0; i < width; i++) 364 - { 365 - red = R[j][i]; 366 - green = G[j][i]; 367 - blue = B[j][i]; 368 - *p_scan++ = true_color (red, green, blue); 369 - } 370 - } 371 - return 1; 372 -} 373 - 374 -static int 375 -encoder_write_next_block (encode_ctx * ctx, unsigned char *buf, int buf_size) 376 -{ 377 -/* inserting output into the output buffer [compressed image] */ 378 - if (ctx->out_current + buf_size + 1 > ctx->out_size) 379 - return 0; 380 -/* Write data */ 381 - memcpy (ctx->output + ctx->out_current, buf, buf_size); 382 - ctx->out_current += buf_size; 383 -/* Write syncronization marker */ 384 - *(ctx->output + ctx->out_current) = EPS_MARKER; 385 - ctx->out_current++; 386 - return 1; 387 -} 388 - 389 -static int 390 -encode_blocks (encode_ctx * ctx) 391 -{ 392 -/* Input buffers */ 393 - unsigned char **Y; 394 - unsigned char **R; 395 - unsigned char **G; 396 - unsigned char **B; 397 -/* Output buffer */ 398 - unsigned char *buf; 399 - int buf_size; 400 - int x; 401 - int y; 402 - int w; 403 - int h; 404 - char header[128]; 405 -/* Handy shortcuts */ 406 - int block_size = ctx->block_size; 407 - int W = ctx->W; 408 - int H = ctx->H; 409 -/* Error flag */ 410 - int error_flag = 0; 411 -/* Write wavelet image header */ 412 - strcpy (header, "StartWaveletsImage$$"); 413 - if (!encoder_write_next_block 414 - (ctx, (unsigned char *) header, strlen (header))) 415 - { 416 - error_flag = 1; 417 - fprintf (stderr, "Waveletets-wrapper: Cannot write header\n"); 418 - goto error; 419 - } 420 -/* Allocate input buffers */ 421 - if (ctx->image_type == IMAGE_WAVELET_BW) 422 - Y = (unsigned char **) eps_malloc_2D (block_size, block_size, 423 - sizeof (unsigned char)); 424 - else 425 - { 426 - R = (unsigned char **) eps_malloc_2D (block_size, block_size, 427 - sizeof (unsigned char)); 428 - G = (unsigned char **) eps_malloc_2D (block_size, block_size, 429 - sizeof (unsigned char)); 430 - B = (unsigned char **) eps_malloc_2D (block_size, block_size, 431 - sizeof (unsigned char)); 432 - } 433 -/* Allocate output buffer */ 434 - buf = (unsigned char *) eps_xmalloc (ctx->bytes_per_block); 435 -/* Process all blocks */ 436 - for (y = 0; y < H; y += block_size) 437 - { 438 - for (x = 0; x < W; x += block_size) 439 - { 440 - /* Block width */ 441 - if (x + block_size > W) 442 - w = W - x; 443 - else 444 - w = block_size; 445 - /* Block height */ 446 - if (y + block_size > H) 447 - h = H - y; 448 - else 449 - h = block_size; 450 - /* Output buffer size (not including marker) */ 451 - buf_size = ctx->bytes_per_block - 1; 452 - if (ctx->image_type == IMAGE_WAVELET_BW) 453 - { 454 - /* Read next block */ 455 - if (!encoder_read_grayscale (ctx->img, Y, x, y, w, h)) 456 - { 457 - error_flag = 1; 458 - fprintf (stderr, 459 - "Waveletets-wrapper: Cannot read block\n"); 460 - goto error; 461 - } 462 - /* Encode block */ 463 - if (eps_encode_grayscale_block 464 - (Y, W, H, w, h, x, y, buf, &buf_size, ctx->filter_id, 465 - ctx->mode) != EPS_OK) 466 - { 467 - /* All function parameters are checked at the moment, so everything except EPS_OK is a logical error. */ 468 - error_flag = 1; 469 - fprintf (stderr, 470 - "Waveletets-wrapper: encoder error\n"); 471 - goto error; 472 - } 473 - /* Write encoded block */ 474 - if (!encoder_write_next_block (ctx, buf, buf_size)) 475 - { 476 - error_flag = 1; 477 - fprintf (stderr, 478 - "Waveletets-wrapper: Cannot write block\n"); 479 - goto error; 480 - } 481 - } 482 - else 483 - { 484 - /* Read next block */ 485 - if (!encoder_read_rgb (ctx->img, R, G, B, x, y, w, h)) 486 - { 487 - error_flag = 1; 488 - fprintf (stderr, 489 - "Waveletets-wrapper: Cannot read block\n"); 490 - goto error; 491 - } 492 - /* Encode block */ 493 - if (eps_encode_truecolor_block 494 - (R, G, B, W, H, w, h, x, y, ctx->resample, buf, 495 - &buf_size, (int) (ctx->Y_ratio), 496 - (int) (ctx->Cb_ratio), (int) (ctx->Cr_ratio), 497 - ctx->filter_id, ctx->mode) != EPS_OK) 498 - { 499 - /* All function parameters are checked at the moment, so everything except EPS_OK is a logical error. */ 500 - error_flag = 1; 501 - fprintf (stderr, 502 - "Waveletets-wrapper: encoder error\n"); 503 - goto error; 504 - } 505 - /* Write encoded block */ 506 - if (!encoder_write_next_block (ctx, buf, buf_size)) 507 - { 508 - error_flag = 1; 509 - fprintf (stderr, 510 - "Waveletets-wrapper: Cannot write block\n"); 511 - goto error; 512 - } 513 - } 514 - } 515 - } 516 -/* Write wavelet image footer */ 517 - strcpy (header, "$$EndWaveletsImage"); 518 - if (!encoder_write_next_block 519 - (ctx, (unsigned char *) header, strlen (header))) 520 - { 521 - error_flag = 1; 522 - fprintf (stderr, "Waveletets-wrapper: Cannot write footer\n"); 523 - goto error; 524 - } 525 - error: 526 -/* Free input buffers */ 527 - if (ctx->image_type == IMAGE_WAVELET_BW) 528 - eps_free_2D ((void **) Y, block_size, block_size); 529 - else 530 - { 531 - eps_free_2D ((void **) R, block_size, block_size); 532 - eps_free_2D ((void **) G, block_size, block_size); 533 - eps_free_2D ((void **) B, block_size, block_size); 534 - } 535 -/* Free output buffer */ 536 - free (buf); 537 -/* Return 0 for success or 1 for error */ 538 - return error_flag; 539 -} 540 - 541 -static void * 542 -wavelet_compress (rasterliteImagePrt img, int *size, int ratio, int image_type) 543 -{ 544 -/* preparing the compression */ 545 - int W; 546 - int H; 547 - int bytes_per_block; 548 - int x_blocks; 549 - int y_blocks; 550 - int n_blocks; 551 - int block_size = 257; 552 - int data_size; 553 - int done_blocks = 0; 554 - int clear_len = 0; 555 - int stop_flag = 0; 556 - encode_ctx ctx; 557 - int ret; 558 -/* Get image width and height */ 559 - W = img->sx; 560 - H = img->sy; 561 - data_size = img->sx * img->sy; 562 - if (image_type != IMAGE_WAVELET_BW) 563 - data_size *= 3; 564 -/* Compute number of blocks */ 565 - if (W % block_size) 566 - x_blocks = W / block_size + 1; 567 - else 568 - x_blocks = W / block_size; 569 - if (H % block_size) 570 - y_blocks = H / block_size + 1; 571 - else 572 - y_blocks = H / block_size; 573 -/* Compute number of bytes per block */ 574 - n_blocks = x_blocks * y_blocks; 575 - bytes_per_block = (int) ((double) data_size / (ratio * n_blocks)); 576 -/* Clip buffer size if needed */ 577 - if (image_type == IMAGE_WAVELET_BW) 578 - bytes_per_block = MAX (bytes_per_block, EPS_MIN_GRAYSCALE_BUF + 1); 579 - else 580 - bytes_per_block = MAX (bytes_per_block, EPS_MIN_TRUECOLOR_BUF + 1); 581 - /* Prepare CTXs */ 582 - ctx.filter_id = malloc (strlen ("daub97lift") + 1); 583 - strcpy (ctx.filter_id, "daub97lift"); 584 - ctx.block_size = block_size; 585 - ctx.mode = EPS_MODE_OTLPF; 586 - ctx.bytes_per_block = bytes_per_block; 587 - ctx.Y_ratio = EPS_Y_RT; 588 - ctx.Cb_ratio = EPS_Cb_RT; 589 - ctx.Cr_ratio = EPS_Cr_RT; 590 - ctx.resample = EPS_RESAMPLE_420; 591 - ctx.W = W; 592 - ctx.H = H; 593 - ctx.img = img; 594 - ctx.image_type = image_type; 595 - ctx.output = malloc (1024 * 1024); 596 - ctx.out_size = 1024 * 1024; 597 - ctx.out_current = 0; 598 - ctx.n_blocks = n_blocks; 599 - ctx.done_blocks = &done_blocks; 600 - ctx.clear_len = &clear_len; 601 - ctx.stop_flag = &stop_flag; 602 -/* performing actual encoding */ 603 - ret = encode_blocks (&ctx); 604 -/* memory clean-up */ 605 - free (ctx.filter_id); 606 - if (ret) 607 - { 608 - /* error case */ 609 - free (ctx.output); 610 - *size = 0; 611 - return NULL; 612 - } 613 - *size = ctx.out_current; 614 - return ctx.output; 615 -} 616 - 617 -static int 618 -decode_blocks (decode_ctx * ctx) 619 -{ 620 -/* Input buffer */ 621 - unsigned char *buf; 622 -/* Output buffers */ 623 - unsigned char **Y; 624 - unsigned char **R; 625 - unsigned char **G; 626 - unsigned char **B; 627 -/* Handy shortcuts */ 628 - int max_block_w = ctx->max_block_w; 629 - int max_block_h = ctx->max_block_h; 630 - int W = ctx->W; 631 - int H = ctx->H; 632 -/* Error flag */ 633 - int error_flag = 0; 634 -/* Allocate input buffer */ 635 - buf = (unsigned char *) eps_xmalloc (ctx->buf_size); 636 -/* Allocate output buffers */ 637 - if (ctx->image_type == IMAGE_WAVELET_BW) 638 - Y = (unsigned char **) eps_malloc_2D (max_block_w, max_block_h, 639 - sizeof (unsigned char)); 640 - else 641 - { 642 - R = (unsigned char **) eps_malloc_2D (max_block_w, max_block_h, 643 - sizeof (unsigned char)); 644 - G = (unsigned char **) eps_malloc_2D (max_block_w, max_block_h, 645 - sizeof (unsigned char)); 646 - B = (unsigned char **) eps_malloc_2D (max_block_w, max_block_h, 647 - sizeof (unsigned char)); 648 - } 649 -/* Process blocks */ 650 - while (1) 651 - { 652 - eps_block_header hdr; 653 - int real_buf_size = ctx->buf_size; 654 - int rc; 655 - /* Are there any unprocessed blocks? */ 656 - if (*ctx->done_blocks == ctx->n_blocks) 657 - break; 658 - else 659 - (*ctx->done_blocks)++; 660 - /* Read next input block */ 661 - if (!decoder_read_next_block (ctx, buf, &real_buf_size)) 662 - { 663 - error_flag = 1; 664 - fprintf (stderr, "Waveletets-wrapper: Cannot read block\n"); 665 - goto error; 666 - } 667 - /* Parse and check block header */ 668 - rc = eps_read_block_header (buf, real_buf_size, &hdr); 669 - if (rc != EPS_OK) 670 - { 671 - error_flag = 1; 672 - fprintf (stderr, "Waveletets-wrapper: Malformed block\n"); 673 - goto error; 674 - } 675 - /* Check header CRC flag */ 676 - if (hdr.chk_flag == EPS_BAD_CRC) 677 - { 678 - error_flag = 1; 679 - fprintf (stderr, "Wavelet-wrapper: Incorrect header CRC\n"); 680 - goto error; 681 - } 682 - /* Check data CRC flag */ 683 - if (hdr.crc_flag == EPS_BAD_CRC) 684 - { 685 - error_flag = 1; 686 - fprintf (stderr, "Wavelet-wrapper: Incorrect data CRC\n"); 687 - goto error; 688 - } 689 - if (ctx->image_type == IMAGE_WAVELET_BW) 690 - { 691 - /* Skip over broken blocks */ 692 - if ((hdr.uhdr.gs.W != W) || (hdr.uhdr.gs.H != H)) 693 - continue; 694 - /* All function parameters are checked at the moment so everything except EPS_OK is a logical error. */ 695 - rc = eps_decode_grayscale_block (Y, buf, &hdr); 696 - if (rc != EPS_OK) 697 - { 698 - error_flag = 1; 699 - fprintf (stderr, "Wavelet-wrapper: decode error\n"); 700 - goto error; 701 - } 702 - if (!decoder_write_grayscale 703 - (ctx->img, Y, hdr.uhdr.gs.x, hdr.uhdr.gs.y, hdr.uhdr.gs.w, 704 - hdr.uhdr.gs.h)) 705 - { 706 - error_flag = 1; 707 - fprintf (stderr, "Wavelet-wrapper: cannot write block\n"); 708 - goto error; 709 - } 710 - } 711 - else 712 - { 713 - /* Skip over broken blocks */ 714 - if ((hdr.uhdr.tc.W != W) || (hdr.uhdr.tc.H != H)) 715 - continue; 716 - /* Decode block */ 717 - rc = eps_decode_truecolor_block (R, G, B, buf, &hdr); 718 - if (rc != EPS_OK) 719 - { 720 - error_flag = 1; 721 - fprintf (stderr, "Wavelet-wrapper: decode error\n"); 722 - goto error; 723 - } 724 - /* Write encoded block */ 725 - if (!decoder_write_rgb 726 - (ctx->img, R, G, B, hdr.uhdr.tc.x, hdr.uhdr.tc.y, 727 - hdr.uhdr.tc.w, hdr.uhdr.tc.h)) 728 - { 729 - error_flag = 1; 730 - fprintf (stderr, "Wavelet-wrapper: cannot write block\n"); 731 - goto error; 732 - } 733 - } 734 - } 735 - error: 736 -/* Free input buffer */ 737 - free (buf); 738 -/* Free output buffers */ 739 - if (ctx->image_type == IMAGE_WAVELET_BW) 740 - eps_free_2D ((void **) Y, max_block_w, max_block_h); 741 - else 742 - { 743 - eps_free_2D ((void **) R, max_block_w, max_block_h); 744 - eps_free_2D ((void **) G, max_block_w, max_block_h); 745 - eps_free_2D ((void **) B, max_block_w, max_block_h); 746 - } 747 -/* Return 0 for success or 1 for error */ 748 - return error_flag; 749 -} 750 - 751 -static int 752 -check_header (const void *data, int size) 753 -{ 754 -/* checking the SpatiaLite header */ 755 - int len; 756 - char to_check[64]; 757 - strcpy (to_check, "StartWaveletsImage$$"); 758 - len = strlen (to_check) + 1; 759 - if (size > len) 760 - { 761 - if (memcmp ((char *) data, to_check, len) == 0) 762 - return len; 763 - } 764 - return 0; 765 -} 766 - 767 -static int 768 -check_footer (const void *data, int size) 769 -{ 770 -/* checking the SpatiaLite footer */ 771 - int len; 772 - char to_check[64]; 773 - strcpy (to_check, "$$EndWaveletsImage"); 774 - len = strlen (to_check) + 1; 775 - if (size > len) 776 - { 777 - if (memcmp ((char *) data + (size - len), to_check, len) == 0) 778 - return len; 779 - } 780 - return 0; 781 -} 782 - 783 -static rasterliteImagePrt 784 -wavelet_uncompress (int size, const void *data) 785 -{ 786 -/* preparing the decompression */ 787 - rasterliteImagePrt img; 788 - int ret; 789 - decode_ctx ctx; 790 -/* Input buffer size */ 791 - int buf_size; 792 -/* Miscellaneous block stuff */ 793 - int max_block_w; 794 - int max_block_h; 795 - int x_blocks; 796 - int y_blocks; 797 - int n_blocks; 798 - int done_blocks = 0; 799 - int clear_len = 0; 800 - int stop_flag = 0; 801 - int W; 802 - int H; 803 - int ext_type; 804 - int len; 805 -/* checking the SpatiaLite header and footer */ 806 - ctx.input = (unsigned char *) data; 807 - ctx.in_size = size; 808 - ctx.in_current = 0; 809 - len = check_header (data, size); 810 - if (len) 811 - ctx.in_current += len; 812 - else 813 - return NULL; 814 - len = check_footer (data, size); 815 - if (len) 816 - ctx.in_size -= len; 817 - else 818 - return NULL; 819 - ctx.in_base = ctx.in_current; 820 - if (!guess_wavelet_type 821 - (&ctx, &ext_type, &W, &H, &max_block_w, &max_block_h)) 822 - return NULL; 823 - img = image_create (W, H); 824 -/* Compute number of blocks */ 825 - if (W % max_block_w) 826 - x_blocks = W / max_block_w + 1; 827 - else 828 - x_blocks = W / max_block_w; 829 - if (H % max_block_h) 830 - y_blocks = H / max_block_h + 1; 831 - else 832 - y_blocks = H / max_block_h; 833 -/* Compute total number of blocks in the file */ 834 - n_blocks = x_blocks * y_blocks; 835 - stop_flag = 0; 836 -/* Prepare CTXs */ 837 - if (ext_type == IMAGE_WAVELET_RGB) 838 - { 839 - img->color_space = COLORSPACE_RGB; 840 - buf_size = EPS_MAX_GRAYSCALE_BUF; 841 - } 842 - else 843 - { 844 - img->color_space = COLORSPACE_GRAYSCALE; 845 - buf_size = EPS_MAX_TRUECOLOR_BUF; 846 - } 847 - ctx.buf_size = buf_size; 848 - ctx.n_blocks = n_blocks; 849 - ctx.done_blocks = &done_blocks; 850 - ctx.clear_len = &clear_len; 851 - ctx.W = W; 852 - ctx.H = H; 853 - ctx.img = img; 854 - ctx.max_block_w = max_block_w; 855 - ctx.max_block_h = max_block_h; 856 - ctx.stop_flag = &stop_flag; 857 -/* Decode blocks */ 858 - ret = decode_blocks (&ctx); 859 - if (ret == 0) 860 - return img; 861 - image_destroy (img); 862 - return NULL; 863 -} 864 - 865 -extern void * 866 -image_to_wavelet (const rasterliteImagePrt img, int *size, int ratio) 867 -{ 868 -/* compressing an image as WAVELET RGB */ 869 - return wavelet_compress (img, size, ratio, IMAGE_WAVELET_RGB); 870 -} 871 - 872 -extern void * 873 -image_to_wavelet_grayscale (const rasterliteImagePrt img, int *size, int ratio) 874 -{ 875 -/* compressing an image as JPEG WAVELET GRAYSCALE */ 876 - return wavelet_compress (img, size, ratio, IMAGE_WAVELET_BW); 877 -} 878 - 879 -extern rasterliteImagePrt 880 -image_from_wavelet (int size, const void *data) 881 -{ 882 -/* uncompressing a WAVELET compressed image */ 883 - rasterliteImagePrt img; 884 - img = wavelet_uncompress (size, data); 885 - return img; 886 -}
Deleted librasterlite.def.
1 -LIBRARY rasterlite.dll 2 -EXPORTS 3 -rasterliteClose 4 -rasterliteExportGeoTiff 5 -rasterliteGetBackgroundColor 6 -rasterliteGetBestAccess 7 -rasterliteGetExtent 8 -rasterliteGetLastError 9 -rasterliteGetLevels 10 -rasterliteGetPath 11 -rasterliteGetRaster 12 -rasterliteGetRaster2 13 -rasterliteGetRasterByRect 14 -rasterliteGetRasterByRect2 15 -rasterliteGetResolution 16 -rasterliteGetSpatialiteVersion 17 -rasterliteGetSqliteVersion 18 -rasterliteGetSrid 19 -rasterliteGetTablePrefix 20 -rasterliteGetTransparentColor 21 -rasterliteHasTransparentColor 22 -rasterliteIsError 23 -rasterliteOpen 24 -rasterliteSetBackgroundColor 25 -rasterliteSetTransparentColor 26 -rasterliteWaveletToPng
Changes to ltmain.sh.
1 -# ltmain.sh - Provide generalized library-building support services. 2 -# NOTE: Changing this file will not affect anything until you rerun configure. 3 -# 4 -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 5 -# 2007, 2008 Free Software Foundation, Inc. 6 -# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 7 -# 8 -# This program is free software; you can redistribute it and/or modify 9 -# it under the terms of the GNU General Public License as published by 10 -# the Free Software Foundation; either version 2 of the License, or 11 -# (at your option) any later version. 12 -# 13 -# This program is distributed in the hope that it will be useful, but 14 -# WITHOUT ANY WARRANTY; without even the implied warranty of 15 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 -# General Public License for more details. 17 -# 18 -# You should have received a copy of the GNU General Public License 19 -# along with this program; if not, write to the Free Software 20 -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 21 -# 22 -# As a special exception to the GNU General Public License, if you 23 -# distribute this file as part of a program that contains a 24 -# configuration script generated by Autoconf, you may include it under 25 -# the same distribution terms that you use for the rest of that program. 26 - 27 -basename="s,^.*/,,g" 28 - 29 -# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh 30 -# is ksh but when the shell is invoked as "sh" and the current value of 31 -# the _XPG environment variable is not equal to 1 (one), the special 32 -# positional parameter $0, within a function call, is the name of the 33 -# function. 34 -progpath="$0" 35 - 36 -# The name of this program: 37 -progname=`echo "$progpath" | $SED $basename` 38 -modename="$progname" 39 - 40 -# Global variables: 41 -EXIT_SUCCESS=0 42 -EXIT_FAILURE=1 43 - 44 -PROGRAM=ltmain.sh 45 -PACKAGE=libtool 46 -VERSION="1.5.26 Debian 1.5.26-1ubuntu1" 47 -TIMESTAMP=" (1.1220.2.493 2008/02/01 16:58:18)" 48 - 49 -# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). 50 -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then 51 - emulate sh 52 - NULLCMD=: 53 - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which 54 - # is contrary to our usage. Disable this feature. 55 - alias -g '${1+"$@"}'='"$@"' 56 - setopt NO_GLOB_SUBST 57 -else 58 - case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac 59 -fi 60 -BIN_SH=xpg4; export BIN_SH # for Tru64 61 -DUALCASE=1; export DUALCASE # for MKS sh 62 - 63 -# Check that we have a working $echo. 64 -if test "X$1" = X--no-reexec; then 65 - # Discard the --no-reexec flag, and continue. 66 - shift 67 -elif test "X$1" = X--fallback-echo; then 68 - # Avoid inline document here, it may be left over 69 - : 70 -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then 71 - # Yippee, $echo works! 72 - : 73 -else 74 - # Restart under the correct shell, and then maybe $echo will work. 75 - exec $SHELL "$progpath" --no-reexec ${1+"$@"} 76 -fi 77 - 78 -if test "X$1" = X--fallback-echo; then 79 - # used as fallback echo 80 - shift 81 - cat <<EOF 82 -$* 83 -EOF 84 - exit $EXIT_SUCCESS 85 -fi 86 - 87 -default_mode= 88 -help="Try \`$progname --help' for more information." 89 -magic="%%%MAGIC variable%%%" 90 -mkdir="mkdir" 91 -mv="mv -f" 92 -rm="rm -f" 93 - 94 -# Sed substitution that helps us do robust quoting. It backslashifies 95 -# metacharacters that are still active within double-quoted strings. 96 -Xsed="${SED}"' -e 1s/^X//' 97 -sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' 98 -# test EBCDIC or ASCII 99 -case `echo X|tr X '\101'` in 100 - A) # ASCII based system 101 - # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr 102 - SP2NL='tr \040 \012' 103 - NL2SP='tr \015\012 \040\040' 104 - ;; 105 - *) # EBCDIC based system 106 - SP2NL='tr \100 \n' 107 - NL2SP='tr \r\n \100\100' 108 - ;; 109 -esac 110 - 111 -# NLS nuisances. 112 -# Only set LANG and LC_ALL to C if already set. 113 -# These must not be set unconditionally because not all systems understand 114 -# e.g. LANG=C (notably SCO). 115 -# We save the old values to restore during execute mode. 116 -lt_env= 117 -for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES 118 -do 119 - eval "if test \"\${$lt_var+set}\" = set; then 120 - save_$lt_var=\$$lt_var 121 - lt_env=\"$lt_var=\$$lt_var \$lt_env\" 122 - $lt_var=C 123 - export $lt_var 124 - fi" 125 -done 126 - 127 -if test -n "$lt_env"; then 128 - lt_env="env $lt_env" 129 -fi 130 - 131 -# Make sure IFS has a sensible default 132 -lt_nl=' 133 -' 134 -IFS=" $lt_nl" 135 - 136 -if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then 137 - $echo "$modename: not configured to build any kind of library" 1>&2 138 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 139 - exit $EXIT_FAILURE 140 -fi 141 - 142 -# Global variables. 143 -mode=$default_mode 144 -nonopt= 145 -prev= 146 -prevopt= 147 -run= 148 -show="$echo" 149 -show_help= 150 -execute_dlfiles= 151 -duplicate_deps=no 152 -preserve_args= 153 -lo2o="s/\\.lo\$/.${objext}/" 154 -o2lo="s/\\.${objext}\$/.lo/" 155 -extracted_archives= 156 -extracted_serial=0 157 - 158 -##################################### 159 -# Shell function definitions: 160 -# This seems to be the best place for them 161 - 162 -# func_mktempdir [string] 163 -# Make a temporary directory that won't clash with other running 164 -# libtool processes, and avoids race conditions if possible. If 165 -# given, STRING is the basename for that directory. 166 -func_mktempdir () 167 -{ 168 - my_template="${TMPDIR-/tmp}/${1-$progname}" 169 - 170 - if test "$run" = ":"; then 171 - # Return a directory name, but don't create it in dry-run mode 172 - my_tmpdir="${my_template}-$$" 173 - else 174 - 175 - # If mktemp works, use that first and foremost 176 - my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` 177 - 178 - if test ! -d "$my_tmpdir"; then 179 - # Failing that, at least try and use $RANDOM to avoid a race 180 - my_tmpdir="${my_template}-${RANDOM-0}$$" 181 - 182 - save_mktempdir_umask=`umask` 183 - umask 0077 184 - $mkdir "$my_tmpdir" 185 - umask $save_mktempdir_umask 186 - fi 187 - 188 - # If we're not in dry-run mode, bomb out on failure 189 - test -d "$my_tmpdir" || { 190 - $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 191 - exit $EXIT_FAILURE 192 - } 193 - fi 194 - 195 - $echo "X$my_tmpdir" | $Xsed 196 -} 197 - 198 - 199 -# func_win32_libid arg 200 -# return the library type of file 'arg' 201 -# 202 -# Need a lot of goo to handle *both* DLLs and import libs 203 -# Has to be a shell function in order to 'eat' the argument 204 -# that is supplied when $file_magic_command is called. 205 -func_win32_libid () 206 -{ 207 - win32_libid_type="unknown" 208 - win32_fileres=`file -L $1 2>/dev/null` 209 - case $win32_fileres in 210 - *ar\ archive\ import\ library*) # definitely import 211 - win32_libid_type="x86 archive import" 212 - ;; 213 - *ar\ archive*) # could be an import, or static 214 - if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ 215 - $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then 216 - win32_nmres=`eval $NM -f posix -A $1 | \ 217 - $SED -n -e '1,100{ 218 - / I /{ 219 - s,.*,import, 220 - p 221 - q 222 - } 223 - }'` 224 - case $win32_nmres in 225 - import*) win32_libid_type="x86 archive import";; 226 - *) win32_libid_type="x86 archive static";; 227 - esac 228 - fi 229 - ;; 230 - *DLL*) 231 - win32_libid_type="x86 DLL" 232 - ;; 233 - *executable*) # but shell scripts are "executable" too... 234 - case $win32_fileres in 235 - *MS\ Windows\ PE\ Intel*) 236 - win32_libid_type="x86 DLL" 237 - ;; 238 - esac 239 - ;; 240 - esac 241 - $echo $win32_libid_type 242 -} 243 - 244 - 245 -# func_infer_tag arg 246 -# Infer tagged configuration to use if any are available and 247 -# if one wasn't chosen via the "--tag" command line option. 248 -# Only attempt this if the compiler in the base compile 249 -# command doesn't match the default compiler. 250 -# arg is usually of the form 'gcc ...' 251 -func_infer_tag () 252 -{ 253 - if test -n "$available_tags" && test -z "$tagname"; then 254 - CC_quoted= 255 - for arg in $CC; do 256 - case $arg in 257 - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 258 - arg="\"$arg\"" 259 - ;; 260 - esac 261 - CC_quoted="$CC_quoted $arg" 262 - done 263 - case $@ in 264 - # Blanks in the command may have been stripped by the calling shell, 265 - # but not from the CC environment variable when configure was run. 266 - " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; 267 - # Blanks at the start of $base_compile will cause this to fail 268 - # if we don't check for them as well. 269 - *) 270 - for z in $available_tags; do 271 - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then 272 - # Evaluate the configuration. 273 - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" 274 - CC_quoted= 275 - for arg in $CC; do 276 - # Double-quote args containing other shell metacharacters. 277 - case $arg in 278 - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 279 - arg="\"$arg\"" 280 - ;; 281 - esac 282 - CC_quoted="$CC_quoted $arg" 283 - done 284 - case "$@ " in 285 - " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) 286 - # The compiler in the base compile command matches 287 - # the one in the tagged configuration. 288 - # Assume this is the tagged configuration we want. 289 - tagname=$z 290 - break 291 - ;; 292 - esac 293 - fi 294 - done 295 - # If $tagname still isn't set, then no tagged configuration 296 - # was found and let the user know that the "--tag" command 297 - # line option must be used. 298 - if test -z "$tagname"; then 299 - $echo "$modename: unable to infer tagged configuration" 300 - $echo "$modename: specify a tag with \`--tag'" 1>&2 301 - exit $EXIT_FAILURE 302 -# else 303 -# $echo "$modename: using $tagname tagged configuration" 304 - fi 305 - ;; 306 - esac 307 - fi 308 -} 309 - 310 - 311 -# func_extract_an_archive dir oldlib 312 -func_extract_an_archive () 313 -{ 314 - f_ex_an_ar_dir="$1"; shift 315 - f_ex_an_ar_oldlib="$1" 316 - 317 - $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" 318 - $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? 319 - if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then 320 - : 321 - else 322 - $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 323 - exit $EXIT_FAILURE 324 - fi 325 -} 326 - 327 -# func_extract_archives gentop oldlib ... 328 -func_extract_archives () 329 -{ 330 - my_gentop="$1"; shift 331 - my_oldlibs=${1+"$@"} 332 - my_oldobjs="" 333 - my_xlib="" 334 - my_xabs="" 335 - my_xdir="" 336 - my_status="" 337 - 338 - $show "${rm}r $my_gentop" 339 - $run ${rm}r "$my_gentop" 340 - $show "$mkdir $my_gentop" 341 - $run $mkdir "$my_gentop" 342 - my_status=$? 343 - if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then 344 - exit $my_status 345 - fi 346 - 347 - for my_xlib in $my_oldlibs; do 348 - # Extract the objects. 349 - case $my_xlib in 350 - [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; 351 - *) my_xabs=`pwd`"/$my_xlib" ;; 352 - esac 353 - my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` 354 - my_xlib_u=$my_xlib 355 - while :; do 356 - case " $extracted_archives " in 357 - *" $my_xlib_u "*) 358 - extracted_serial=`expr $extracted_serial + 1` 359 - my_xlib_u=lt$extracted_serial-$my_xlib ;; 360 - *) break ;; 361 - esac 362 - done 363 - extracted_archives="$extracted_archives $my_xlib_u" 364 - my_xdir="$my_gentop/$my_xlib_u" 365 - 366 - $show "${rm}r $my_xdir" 367 - $run ${rm}r "$my_xdir" 368 - $show "$mkdir $my_xdir" 369 - $run $mkdir "$my_xdir" 370 - exit_status=$? 371 - if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then 372 - exit $exit_status 373 - fi 374 - case $host in 375 - *-darwin*) 376 - $show "Extracting $my_xabs" 377 - # Do not bother doing anything if just a dry run 378 - if test -z "$run"; then 379 - darwin_orig_dir=`pwd` 380 - cd $my_xdir || exit $? 381 - darwin_archive=$my_xabs 382 - darwin_curdir=`pwd` 383 - darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` 384 - darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` 385 - if test -n "$darwin_arches"; then 386 - darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` 387 - darwin_arch= 388 - $show "$darwin_base_archive has multiple architectures $darwin_arches" 389 - for darwin_arch in $darwin_arches ; do 390 - mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" 391 - lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" 392 - cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" 393 - func_extract_an_archive "`pwd`" "${darwin_base_archive}" 394 - cd "$darwin_curdir" 395 - $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" 396 - done # $darwin_arches 397 - ## Okay now we have a bunch of thin objects, gotta fatten them up :) 398 - darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` 399 - darwin_file= 400 - darwin_files= 401 - for darwin_file in $darwin_filelist; do 402 - darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` 403 - lipo -create -output "$darwin_file" $darwin_files 404 - done # $darwin_filelist 405 - ${rm}r unfat-$$ 406 - cd "$darwin_orig_dir" 407 - else 408 - cd "$darwin_orig_dir" 409 - func_extract_an_archive "$my_xdir" "$my_xabs" 410 - fi # $darwin_arches 411 - fi # $run 412 - ;; 413 - *) 414 - func_extract_an_archive "$my_xdir" "$my_xabs" 415 - ;; 416 - esac 417 - my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` 418 - done 419 - func_extract_archives_result="$my_oldobjs" 420 -} 421 -# End of Shell function definitions 422 -##################################### 423 - 424 -# Darwin sucks 425 -eval std_shrext=\"$shrext_cmds\" 426 - 427 -disable_libs=no 428 - 429 -# Parse our command line options once, thoroughly. 430 -while test "$#" -gt 0 431 -do 432 - arg="$1" 433 - shift 434 - 435 - case $arg in 436 - -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; 437 - *) optarg= ;; 438 - esac 439 - 440 - # If the previous option needs an argument, assign it. 441 - if test -n "$prev"; then 442 - case $prev in 443 - execute_dlfiles) 444 - execute_dlfiles="$execute_dlfiles $arg" 445 - ;; 446 - tag) 447 - tagname="$arg" 448 - preserve_args="${preserve_args}=$arg" 449 - 450 - # Check whether tagname contains only valid characters 451 - case $tagname in 452 - *[!-_A-Za-z0-9,/]*) 453 - $echo "$progname: invalid tag name: $tagname" 1>&2 454 - exit $EXIT_FAILURE 455 - ;; 456 - esac 457 - 458 - case $tagname in 459 - CC) 460 - # Don't test for the "default" C tag, as we know, it's there, but 461 - # not specially marked. 462 - ;; 463 - *) 464 - if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then 465 - taglist="$taglist $tagname" 466 - # Evaluate the configuration. 467 - eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" 468 - else 469 - $echo "$progname: ignoring unknown tag $tagname" 1>&2 470 - fi 471 - ;; 472 - esac 473 - ;; 474 - *) 475 - eval "$prev=\$arg" 476 - ;; 477 - esac 478 - 479 - prev= 480 - prevopt= 481 - continue 482 - fi 483 - 484 - # Have we seen a non-optional argument yet? 485 - case $arg in 486 - --help) 487 - show_help=yes 488 - ;; 489 - 490 - --version) 491 - echo "\ 492 -$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP 493 - 494 -Copyright (C) 2008 Free Software Foundation, Inc. 495 -This is free software; see the source for copying conditions. There is NO 496 -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 497 - exit $? 498 - ;; 499 - 500 - --config) 501 - ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath 502 - # Now print the configurations for the tags. 503 - for tagname in $taglist; do 504 - ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" 505 - done 506 - exit $? 507 - ;; 508 - 509 - --debug) 510 - $echo "$progname: enabling shell trace mode" 511 - set -x 512 - preserve_args="$preserve_args $arg" 513 - ;; 514 - 515 - --dry-run | -n) 516 - run=: 517 - ;; 518 - 519 - --features) 520 - $echo "host: $host" 521 - if test "$build_libtool_libs" = yes; then 522 - $echo "enable shared libraries" 523 - else 524 - $echo "disable shared libraries" 525 - fi 526 - if test "$build_old_libs" = yes; then 527 - $echo "enable static libraries" 528 - else 529 - $echo "disable static libraries" 530 - fi 531 - exit $? 532 - ;; 533 - 534 - --finish) mode="finish" ;; 535 - 536 - --mode) prevopt="--mode" prev=mode ;; 537 - --mode=*) mode="$optarg" ;; 538 - 539 - --preserve-dup-deps) duplicate_deps="yes" ;; 540 - 541 - --quiet | --silent) 542 - show=: 543 - preserve_args="$preserve_args $arg" 544 - ;; 545 - 546 - --tag) 547 - prevopt="--tag" 548 - prev=tag 549 - preserve_args="$preserve_args --tag" 550 - ;; 551 - --tag=*) 552 - set tag "$optarg" ${1+"$@"} 553 - shift 554 - prev=tag 555 - preserve_args="$preserve_args --tag" 556 - ;; 557 - 558 - -dlopen) 559 - prevopt="-dlopen" 560 - prev=execute_dlfiles 561 - ;; 562 - 563 - -*) 564 - $echo "$modename: unrecognized option \`$arg'" 1>&2 565 - $echo "$help" 1>&2 566 - exit $EXIT_FAILURE 567 - ;; 568 - 569 - *) 570 - nonopt="$arg" 571 - break 572 - ;; 573 - esac 574 -done 575 - 576 -if test -n "$prevopt"; then 577 - $echo "$modename: option \`$prevopt' requires an argument" 1>&2 578 - $echo "$help" 1>&2 579 - exit $EXIT_FAILURE 580 -fi 581 - 582 -case $disable_libs in 583 -no) 584 - ;; 585 -shared) 586 - build_libtool_libs=no 587 - build_old_libs=yes 588 - ;; 589 -static) 590 - build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` 591 - ;; 592 -esac 593 - 594 -# If this variable is set in any of the actions, the command in it 595 -# will be execed at the end. This prevents here-documents from being 596 -# left over by shells. 597 -exec_cmd= 598 - 599 -if test -z "$show_help"; then 600 - 601 - # Infer the operation mode. 602 - if test -z "$mode"; then 603 - $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 604 - $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 605 - case $nonopt in 606 - *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) 607 - mode=link 608 - for arg 609 - do 610 - case $arg in 611 - -c) 612 - mode=compile 613 - break 614 - ;; 615 - esac 616 - done 617 - ;; 618 - *db | *dbx | *strace | *truss) 619 - mode=execute 620 - ;; 621 - *install*|cp|mv) 622 - mode=install 623 - ;; 624 - *rm) 625 - mode=uninstall 626 - ;; 627 - *) 628 - # If we have no mode, but dlfiles were specified, then do execute mode. 629 - test -n "$execute_dlfiles" && mode=execute 630 - 631 - # Just use the default operation mode. 632 - if test -z "$mode"; then 633 - if test -n "$nonopt"; then 634 - $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 635 - else 636 - $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 637 - fi 638 - fi 639 - ;; 640 - esac 641 - fi 642 - 643 - # Only execute mode is allowed to have -dlopen flags. 644 - if test -n "$execute_dlfiles" && test "$mode" != execute; then 645 - $echo "$modename: unrecognized option \`-dlopen'" 1>&2 646 - $echo "$help" 1>&2 647 - exit $EXIT_FAILURE 648 - fi 649 - 650 - # Change the help message to a mode-specific one. 651 - generic_help="$help" 652 - help="Try \`$modename --help --mode=$mode' for more information." 653 - 654 - # These modes are in order of execution frequency so that they run quickly. 655 - case $mode in 656 - # libtool compile mode 657 - compile) 658 - modename="$modename: compile" 659 - # Get the compilation command and the source file. 660 - base_compile= 661 - srcfile="$nonopt" # always keep a non-empty value in "srcfile" 662 - suppress_opt=yes 663 - suppress_output= 664 - arg_mode=normal 665 - libobj= 666 - later= 667 - 668 - for arg 669 - do 670 - case $arg_mode in 671 - arg ) 672 - # do not "continue". Instead, add this to base_compile 673 - lastarg="$arg" 674 - arg_mode=normal 675 - ;; 676 - 677 - target ) 678 - libobj="$arg" 679 - arg_mode=normal 680 - continue 681 - ;; 682 - 683 - normal ) 684 - # Accept any command-line options. 685 - case $arg in 686 - -o) 687 - if test -n "$libobj" ; then 688 - $echo "$modename: you cannot specify \`-o' more than once" 1>&2 689 - exit $EXIT_FAILURE 690 - fi 691 - arg_mode=target 692 - continue 693 - ;; 694 - 695 - -static | -prefer-pic | -prefer-non-pic) 696 - later="$later $arg" 697 - continue 698 - ;; 699 - 700 - -no-suppress) 701 - suppress_opt=no 702 - continue 703 - ;; 704 - 705 - -Xcompiler) 706 - arg_mode=arg # the next one goes into the "base_compile" arg list 707 - continue # The current "srcfile" will either be retained or 708 - ;; # replaced later. I would guess that would be a bug. 709 - 710 - -Wc,*) 711 - args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` 712 - lastarg= 713 - save_ifs="$IFS"; IFS=',' 714 - for arg in $args; do 715 - IFS="$save_ifs" 716 - 717 - # Double-quote args containing other shell metacharacters. 718 - # Many Bourne shells cannot handle close brackets correctly 719 - # in scan sets, so we specify it separately. 720 - case $arg in 721 - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 722 - arg="\"$arg\"" 723 - ;; 724 - esac 725 - lastarg="$lastarg $arg" 726 - done 727 - IFS="$save_ifs" 728 - lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` 729 - 730 - # Add the arguments to base_compile. 731 - base_compile="$base_compile $lastarg" 732 - continue 733 - ;; 734 - 735 - * ) 736 - # Accept the current argument as the source file. 737 - # The previous "srcfile" becomes the current argument. 738 - # 739 - lastarg="$srcfile" 740 - srcfile="$arg" 741 - ;; 742 - esac # case $arg 743 - ;; 744 - esac # case $arg_mode 745 - 746 - # Aesthetically quote the previous argument. 747 - lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` 748 - 749 - case $lastarg in 750 - # Double-quote args containing other shell metacharacters. 751 - # Many Bourne shells cannot handle close brackets correctly 752 - # in scan sets, and some SunOS ksh mistreat backslash-escaping 753 - # in scan sets (worked around with variable expansion), 754 - # and furthermore cannot handle '|' '&' '(' ')' in scan sets 755 - # at all, so we specify them separately. 756 - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 757 - lastarg="\"$lastarg\"" 758 - ;; 759 - esac 760 - 761 - base_compile="$base_compile $lastarg" 762 - done # for arg 763 - 764 - case $arg_mode in 765 - arg) 766 - $echo "$modename: you must specify an argument for -Xcompile" 767 - exit $EXIT_FAILURE 768 - ;; 769 - target) 770 - $echo "$modename: you must specify a target with \`-o'" 1>&2 771 - exit $EXIT_FAILURE 772 - ;; 773 - *) 774 - # Get the name of the library object. 775 - [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` 776 - ;; 777 - esac 778 - 779 - # Recognize several different file suffixes. 780 - # If the user specifies -o file.o, it is replaced with file.lo 781 - xform='[cCFSifmso]' 782 - case $libobj in 783 - *.ada) xform=ada ;; 784 - *.adb) xform=adb ;; 785 - *.ads) xform=ads ;; 786 - *.asm) xform=asm ;; 787 - *.c++) xform=c++ ;; 788 - *.cc) xform=cc ;; 789 - *.ii) xform=ii ;; 790 - *.class) xform=class ;; 791 - *.cpp) xform=cpp ;; 792 - *.cxx) xform=cxx ;; 793 - *.[fF][09]?) xform=[fF][09]. ;; 794 - *.for) xform=for ;; 795 - *.java) xform=java ;; 796 - *.obj) xform=obj ;; 797 - *.sx) xform=sx ;; 798 - esac 799 - 800 - libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` 801 - 802 - case $libobj in 803 - *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; 804 - *) 805 - $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 806 - exit $EXIT_FAILURE 807 - ;; 808 - esac 809 - 810 - func_infer_tag $base_compile 811 - 812 - for arg in $later; do 813 - case $arg in 814 - -static) 815 - build_old_libs=yes 816 - continue 817 - ;; 818 - 819 - -prefer-pic) 820 - pic_mode=yes 821 - continue 822 - ;; 823 - 824 - -prefer-non-pic) 825 - pic_mode=no 826 - continue 827 - ;; 828 - esac 829 - done 830 - 831 - qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` 832 - case $qlibobj in 833 - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 834 - qlibobj="\"$qlibobj\"" ;; 835 - esac 836 - test "X$libobj" != "X$qlibobj" \ 837 - && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ 838 - && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." 839 - objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` 840 - xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` 841 - if test "X$xdir" = "X$obj"; then 842 - xdir= 843 - else 844 - xdir=$xdir/ 845 - fi 846 - lobj=${xdir}$objdir/$objname 847 - 848 - if test -z "$base_compile"; then 849 - $echo "$modename: you must specify a compilation command" 1>&2 850 - $echo "$help" 1>&2 851 - exit $EXIT_FAILURE 852 - fi 853 - 854 - # Delete any leftover library objects. 855 - if test "$build_old_libs" = yes; then 856 - removelist="$obj $lobj $libobj ${libobj}T" 857 - else 858 - removelist="$lobj $libobj ${libobj}T" 859 - fi 860 - 861 - $run $rm $removelist 862 - trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 863 - 864 - # On Cygwin there's no "real" PIC flag so we must build both object types 865 - case $host_os in 866 - cygwin* | mingw* | pw32* | os2*) 867 - pic_mode=default 868 - ;; 869 - esac 870 - if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then 871 - # non-PIC code in shared libraries is not supported 872 - pic_mode=default 873 - fi 874 - 875 - # Calculate the filename of the output object if compiler does 876 - # not support -o with -c 877 - if test "$compiler_c_o" = no; then 878 - output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} 879 - lockfile="$output_obj.lock" 880 - removelist="$removelist $output_obj $lockfile" 881 - trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 882 - else 883 - output_obj= 884 - need_locks=no 885 - lockfile= 886 - fi 887 - 888 - # Lock this critical section if it is needed 889 - # We use this script file to make the link, it avoids creating a new file 890 - if test "$need_locks" = yes; then 891 - until $run ln "$progpath" "$lockfile" 2>/dev/null; do 892 - $show "Waiting for $lockfile to be removed" 893 - sleep 2 894 - done 895 - elif test "$need_locks" = warn; then 896 - if test -f "$lockfile"; then 897 - $echo "\ 898 -*** ERROR, $lockfile exists and contains: 899 -`cat $lockfile 2>/dev/null` 900 - 901 -This indicates that another process is trying to use the same 902 -temporary object file, and libtool could not work around it because 903 -your compiler does not support \`-c' and \`-o' together. If you 904 -repeat this compilation, it may succeed, by chance, but you had better 905 -avoid parallel builds (make -j) in this platform, or get a better 906 -compiler." 907 - 908 - $run $rm $removelist 909 - exit $EXIT_FAILURE 910 - fi 911 - $echo "$srcfile" > "$lockfile" 912 - fi 913 - 914 - if test -n "$fix_srcfile_path"; then 915 - eval srcfile=\"$fix_srcfile_path\" 916 - fi 917 - qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` 918 - case $qsrcfile in 919 - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 920 - qsrcfile="\"$qsrcfile\"" ;; 921 - esac 922 - 923 - $run $rm "$libobj" "${libobj}T" 924 - 925 - # Create a libtool object file (analogous to a ".la" file), 926 - # but don't create it if we're doing a dry run. 927 - test -z "$run" && cat > ${libobj}T <<EOF 928 -# $libobj - a libtool object file 929 -# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 930 -# 931 -# Please DO NOT delete this file! 932 -# It is necessary for linking the library. 933 - 934 -# Name of the PIC object. 935 -EOF 936 - 937 - # Only build a PIC object if we are building libtool libraries. 938 - if test "$build_libtool_libs" = yes; then 939 - # Without this assignment, base_compile gets emptied. 940 - fbsd_hideous_sh_bug=$base_compile 941 - 942 - if test "$pic_mode" != no; then 943 - command="$base_compile $qsrcfile $pic_flag" 944 - else 945 - # Don't build PIC code 946 - command="$base_compile $qsrcfile" 947 - fi 948 - 949 - if test ! -d "${xdir}$objdir"; then 950 - $show "$mkdir ${xdir}$objdir" 951 - $run $mkdir ${xdir}$objdir 952 - exit_status=$? 953 - if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then 954 - exit $exit_status 955 - fi 956 - fi 957 - 958 - if test -z "$output_obj"; then 959 - # Place PIC objects in $objdir 960 - command="$command -o $lobj" 961 - fi 962 - 963 - $run $rm "$lobj" "$output_obj" 964 - 965 - $show "$command" 966 - if $run eval $lt_env "$command"; then : 967 - else 968 - test -n "$output_obj" && $run $rm $removelist 969 - exit $EXIT_FAILURE 970 - fi 971 - 972 - if test "$need_locks" = warn && 973 - test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 974 - $echo "\ 975 -*** ERROR, $lockfile contains: 976 -`cat $lockfile 2>/dev/null` 977 - 978 -but it should contain: 979 -$srcfile 980 - 981 -This indicates that another process is trying to use the same 982 -temporary object file, and libtool could not work around it because 983 -your compiler does not support \`-c' and \`-o' together. If you 984 -repeat this compilation, it may succeed, by chance, but you had better 985 -avoid parallel builds (make -j) in this platform, or get a better 986 -compiler." 987 - 988 - $run $rm $removelist 989 - exit $EXIT_FAILURE 990 - fi 991 - 992 - # Just move the object if needed, then go on to compile the next one 993 - if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then 994 - $show "$mv $output_obj $lobj" 995 - if $run $mv $output_obj $lobj; then : 996 - else 997 - error=$? 998 - $run $rm $removelist 999 - exit $error 1000 - fi 1001 - fi 1002 - 1003 - # Append the name of the PIC object to the libtool object file. 1004 - test -z "$run" && cat >> ${libobj}T <<EOF 1005 -pic_object='$objdir/$objname' 1006 - 1007 -EOF 1008 - 1009 - # Allow error messages only from the first compilation. 1010 - if test "$suppress_opt" = yes; then 1011 - suppress_output=' >/dev/null 2>&1' 1012 - fi 1013 - else 1014 - # No PIC object so indicate it doesn't exist in the libtool 1015 - # object file. 1016 - test -z "$run" && cat >> ${libobj}T <<EOF 1017 -pic_object=none 1018 - 1019 -EOF 1020 - fi 1021 - 1022 - # Only build a position-dependent object if we build old libraries. 1023 - if test "$build_old_libs" = yes; then 1024 - if test "$pic_mode" != yes; then 1025 - # Don't build PIC code 1026 - command="$base_compile $qsrcfile" 1027 - else 1028 - command="$base_compile $qsrcfile $pic_flag" 1029 - fi 1030 - if test "$compiler_c_o" = yes; then 1031 - command="$command -o $obj" 1032 - fi 1033 - 1034 - # Suppress compiler output if we already did a PIC compilation. 1035 - command="$command$suppress_output" 1036 - $run $rm "$obj" "$output_obj" 1037 - $show "$command" 1038 - if $run eval $lt_env "$command"; then : 1039 - else 1040 - $run $rm $removelist 1041 - exit $EXIT_FAILURE 1042 - fi 1043 - 1044 - if test "$need_locks" = warn && 1045 - test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then 1046 - $echo "\ 1047 -*** ERROR, $lockfile contains: 1048 -`cat $lockfile 2>/dev/null` 1049 - 1050 -but it should contain: 1051 -$srcfile 1052 - 1053 -This indicates that another process is trying to use the same 1054 -temporary object file, and libtool could not work around it because 1055 -your compiler does not support \`-c' and \`-o' together. If you 1056 -repeat this compilation, it may succeed, by chance, but you had better 1057 -avoid parallel builds (make -j) in this platform, or get a better 1058 -compiler." 1059 - 1060 - $run $rm $removelist 1061 - exit $EXIT_FAILURE 1062 - fi 1063 - 1064 - # Just move the object if needed 1065 - if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then 1066 - $show "$mv $output_obj $obj" 1067 - if $run $mv $output_obj $obj; then : 1068 - else 1069 - error=$? 1070 - $run $rm $removelist 1071 - exit $error 1072 - fi 1073 - fi 1074 - 1075 - # Append the name of the non-PIC object the libtool object file. 1076 - # Only append if the libtool object file exists. 1077 - test -z "$run" && cat >> ${libobj}T <<EOF 1078 -# Name of the non-PIC object. 1079 -non_pic_object='$objname' 1080 - 1081 -EOF 1082 - else 1083 - # Append the name of the non-PIC object the libtool object file. 1084 - # Only append if the libtool object file exists. 1085 - test -z "$run" && cat >> ${libobj}T <<EOF 1086 -# Name of the non-PIC object. 1087 -non_pic_object=none 1088 - 1089 -EOF 1090 - fi 1091 - 1092 - $run $mv "${libobj}T" "${libobj}" 1093 - 1094 - # Unlock the critical section if it was locked 1095 - if test "$need_locks" != no; then 1096 - $run $rm "$lockfile" 1097 - fi 1098 - 1099 - exit $EXIT_SUCCESS 1100 - ;; 1101 - 1102 - # libtool link mode 1103 - link | relink) 1104 - modename="$modename: link" 1105 - case $host in 1106 - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 1107 - # It is impossible to link a dll without this setting, and 1108 - # we shouldn't force the makefile maintainer to figure out 1109 - # which system we are compiling for in order to pass an extra 1110 - # flag for every libtool invocation. 1111 - # allow_undefined=no 1112 - 1113 - # FIXME: Unfortunately, there are problems with the above when trying 1114 - # to make a dll which has undefined symbols, in which case not 1115 - # even a static library is built. For now, we need to specify 1116 - # -no-undefined on the libtool link line when we can be certain 1117 - # that all symbols are satisfied, otherwise we get a static library. 1118 - allow_undefined=yes 1119 - ;; 1120 - *) 1121 - allow_undefined=yes 1122 - ;; 1123 - esac 1124 - libtool_args="$nonopt" 1125 - base_compile="$nonopt $@" 1126 - compile_command="$nonopt" 1127 - finalize_command="$nonopt" 1128 - 1129 - compile_rpath= 1130 - finalize_rpath= 1131 - compile_shlibpath= 1132 - finalize_shlibpath= 1133 - convenience= 1134 - old_convenience= 1135 - deplibs= 1136 - old_deplibs= 1137 - compiler_flags= 1138 - linker_flags= 1139 - dllsearchpath= 1140 - lib_search_path=`pwd` 1141 - inst_prefix_dir= 1142 - 1143 - avoid_version=no 1144 - dlfiles= 1145 - dlprefiles= 1146 - dlself=no 1147 - export_dynamic=no 1148 - export_symbols= 1149 - export_symbols_regex= 1150 - generated= 1151 - libobjs= 1152 - ltlibs= 1153 - module=no 1154 - no_install=no 1155 - objs= 1156 - non_pic_objects= 1157 - notinst_path= # paths that contain not-installed libtool libraries 1158 - precious_files_regex= 1159 - prefer_static_libs=no 1160 - preload=no 1161 - prev= 1162 - prevarg= 1163 - release= 1164 - rpath= 1165 - xrpath= 1166 - perm_rpath= 1167 - temp_rpath= 1168 - thread_safe=no 1169 - vinfo= 1170 - vinfo_number=no 1171 - single_module="${wl}-single_module" 1172 - 1173 - func_infer_tag $base_compile 1174 - 1175 - # We need to know -static, to get the right output filenames. 1176 - for arg 1177 - do 1178 - case $arg in 1179 - -all-static | -static | -static-libtool-libs) 1180 - case $arg in 1181 - -all-static) 1182 - if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then 1183 - $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 1184 - fi 1185 - if test -n "$link_static_flag"; then 1186 - dlopen_self=$dlopen_self_static 1187 - fi 1188 - prefer_static_libs=yes 1189 - ;; 1190 - -static) 1191 - if test -z "$pic_flag" && test -n "$link_static_flag"; then 1192 - dlopen_self=$dlopen_self_static 1193 - fi 1194 - prefer_static_libs=built 1195 - ;; 1196 - -static-libtool-libs) 1197 - if test -z "$pic_flag" && test -n "$link_static_flag"; then 1198 - dlopen_self=$dlopen_self_static 1199 - fi 1200 - prefer_static_libs=yes 1201 - ;; 1202 - esac 1203 - build_libtool_libs=no 1204 - build_old_libs=yes 1205 - break 1206 - ;; 1207 - esac 1208 - done 1209 - 1210 - # See if our shared archives depend on static archives. 1211 - test -n "$old_archive_from_new_cmds" && build_old_libs=yes 1212 - 1213 - # Go through the arguments, transforming them on the way. 1214 - while test "$#" -gt 0; do 1215 - arg="$1" 1216 - shift 1217 - case $arg in 1218 - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1219 - qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test 1220 - ;; 1221 - *) qarg=$arg ;; 1222 - esac 1223 - libtool_args="$libtool_args $qarg" 1224 - 1225 - # If the previous option needs an argument, assign it. 1226 - if test -n "$prev"; then 1227 - case $prev in 1228 - output) 1229 - compile_command="$compile_command @OUTPUT@" 1230 - finalize_command="$finalize_command @OUTPUT@" 1231 - ;; 1232 - esac 1233 - 1234 - case $prev in 1235 - dlfiles|dlprefiles) 1236 - if test "$preload" = no; then 1237 - # Add the symbol object into the linking commands. 1238 - compile_command="$compile_command @SYMFILE@" 1239 - finalize_command="$finalize_command @SYMFILE@" 1240 - preload=yes 1241 - fi 1242 - case $arg in 1243 - *.la | *.lo) ;; # We handle these cases below. 1244 - force) 1245 - if test "$dlself" = no; then 1246 - dlself=needless 1247 - export_dynamic=yes 1248 - fi 1249 - prev= 1250 - continue 1251 - ;; 1252 - self) 1253 - if test "$prev" = dlprefiles; then 1254 - dlself=yes 1255 - elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then 1256 - dlself=yes 1257 - else 1258 - dlself=needless 1259 - export_dynamic=yes 1260 - fi 1261 - prev= 1262 - continue 1263 - ;; 1264 - *) 1265 - if test "$prev" = dlfiles; then 1266 - dlfiles="$dlfiles $arg" 1267 - else 1268 - dlprefiles="$dlprefiles $arg" 1269 - fi 1270 - prev= 1271 - continue 1272 - ;; 1273 - esac 1274 - ;; 1275 - expsyms) 1276 - export_symbols="$arg" 1277 - if test ! -f "$arg"; then 1278 - $echo "$modename: symbol file \`$arg' does not exist" 1279 - exit $EXIT_FAILURE 1280 - fi 1281 - prev= 1282 - continue 1283 - ;; 1284 - expsyms_regex) 1285 - export_symbols_regex="$arg" 1286 - prev= 1287 - continue 1288 - ;; 1289 - inst_prefix) 1290 - inst_prefix_dir="$arg" 1291 - prev= 1292 - continue 1293 - ;; 1294 - precious_regex) 1295 - precious_files_regex="$arg" 1296 - prev= 1297 - continue 1298 - ;; 1299 - release) 1300 - release="-$arg" 1301 - prev= 1302 - continue 1303 - ;; 1304 - objectlist) 1305 - if test -f "$arg"; then 1306 - save_arg=$arg 1307 - moreargs= 1308 - for fil in `cat $save_arg` 1309 - do 1310 -# moreargs="$moreargs $fil" 1311 - arg=$fil 1312 - # A libtool-controlled object. 1313 - 1314 - # Check to see that this really is a libtool object. 1315 - if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 1316 - pic_object= 1317 - non_pic_object= 1318 - 1319 - # Read the .lo file 1320 - # If there is no directory component, then add one. 1321 - case $arg in 1322 - */* | *\\*) . $arg ;; 1323 - *) . ./$arg ;; 1324 - esac 1325 - 1326 - if test -z "$pic_object" || \ 1327 - test -z "$non_pic_object" || 1328 - test "$pic_object" = none && \ 1329 - test "$non_pic_object" = none; then 1330 - $echo "$modename: cannot find name of object for \`$arg'" 1>&2 1331 - exit $EXIT_FAILURE 1332 - fi 1333 - 1334 - # Extract subdirectory from the argument. 1335 - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 1336 - if test "X$xdir" = "X$arg"; then 1337 - xdir= 1338 - else 1339 - xdir="$xdir/" 1340 - fi 1341 - 1342 - if test "$pic_object" != none; then 1343 - # Prepend the subdirectory the object is found in. 1344 - pic_object="$xdir$pic_object" 1345 - 1346 - if test "$prev" = dlfiles; then 1347 - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 1348 - dlfiles="$dlfiles $pic_object" 1349 - prev= 1350 - continue 1351 - else 1352 - # If libtool objects are unsupported, then we need to preload. 1353 - prev=dlprefiles 1354 - fi 1355 - fi 1356 - 1357 - # CHECK ME: I think I busted this. -Ossama 1358 - if test "$prev" = dlprefiles; then 1359 - # Preload the old-style object. 1360 - dlprefiles="$dlprefiles $pic_object" 1361 - prev= 1362 - fi 1363 - 1364 - # A PIC object. 1365 - libobjs="$libobjs $pic_object" 1366 - arg="$pic_object" 1367 - fi 1368 - 1369 - # Non-PIC object. 1370 - if test "$non_pic_object" != none; then 1371 - # Prepend the subdirectory the object is found in. 1372 - non_pic_object="$xdir$non_pic_object" 1373 - 1374 - # A standard non-PIC object 1375 - non_pic_objects="$non_pic_objects $non_pic_object" 1376 - if test -z "$pic_object" || test "$pic_object" = none ; then 1377 - arg="$non_pic_object" 1378 - fi 1379 - else 1380 - # If the PIC object exists, use it instead. 1381 - # $xdir was prepended to $pic_object above. 1382 - non_pic_object="$pic_object" 1383 - non_pic_objects="$non_pic_objects $non_pic_object" 1384 - fi 1385 - else 1386 - # Only an error if not doing a dry-run. 1387 - if test -z "$run"; then 1388 - $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 1389 - exit $EXIT_FAILURE 1390 - else 1391 - # Dry-run case. 1392 - 1393 - # Extract subdirectory from the argument. 1394 - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 1395 - if test "X$xdir" = "X$arg"; then 1396 - xdir= 1397 - else 1398 - xdir="$xdir/" 1399 - fi 1400 - 1401 - pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` 1402 - non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` 1403 - libobjs="$libobjs $pic_object" 1404 - non_pic_objects="$non_pic_objects $non_pic_object" 1405 - fi 1406 - fi 1407 - done 1408 - else 1409 - $echo "$modename: link input file \`$save_arg' does not exist" 1410 - exit $EXIT_FAILURE 1411 - fi 1412 - arg=$save_arg 1413 - prev= 1414 - continue 1415 - ;; 1416 - rpath | xrpath) 1417 - # We need an absolute path. 1418 - case $arg in 1419 - [\\/]* | [A-Za-z]:[\\/]*) ;; 1420 - *) 1421 - $echo "$modename: only absolute run-paths are allowed" 1>&2 1422 - exit $EXIT_FAILURE 1423 - ;; 1424 - esac 1425 - if test "$prev" = rpath; then 1426 - case "$rpath " in 1427 - *" $arg "*) ;; 1428 - *) rpath="$rpath $arg" ;; 1429 - esac 1430 - else 1431 - case "$xrpath " in 1432 - *" $arg "*) ;; 1433 - *) xrpath="$xrpath $arg" ;; 1434 - esac 1435 - fi 1436 - prev= 1437 - continue 1438 - ;; 1439 - xcompiler) 1440 - compiler_flags="$compiler_flags $qarg" 1441 - prev= 1442 - compile_command="$compile_command $qarg" 1443 - finalize_command="$finalize_command $qarg" 1444 - continue 1445 - ;; 1446 - xlinker) 1447 - linker_flags="$linker_flags $qarg" 1448 - compiler_flags="$compiler_flags $wl$qarg" 1449 - prev= 1450 - compile_command="$compile_command $wl$qarg" 1451 - finalize_command="$finalize_command $wl$qarg" 1452 - continue 1453 - ;; 1454 - xcclinker) 1455 - linker_flags="$linker_flags $qarg" 1456 - compiler_flags="$compiler_flags $qarg" 1457 - prev= 1458 - compile_command="$compile_command $qarg" 1459 - finalize_command="$finalize_command $qarg" 1460 - continue 1461 - ;; 1462 - shrext) 1463 - shrext_cmds="$arg" 1464 - prev= 1465 - continue 1466 - ;; 1467 - darwin_framework|darwin_framework_skip) 1468 - test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" 1469 - compile_command="$compile_command $arg" 1470 - finalize_command="$finalize_command $arg" 1471 - prev= 1472 - continue 1473 - ;; 1474 - *) 1475 - eval "$prev=\"\$arg\"" 1476 - prev= 1477 - continue 1478 - ;; 1479 - esac 1480 - fi # test -n "$prev" 1481 - 1482 - prevarg="$arg" 1483 - 1484 - case $arg in 1485 - -all-static) 1486 - if test -n "$link_static_flag"; then 1487 - compile_command="$compile_command $link_static_flag" 1488 - finalize_command="$finalize_command $link_static_flag" 1489 - fi 1490 - continue 1491 - ;; 1492 - 1493 - -allow-undefined) 1494 - # FIXME: remove this flag sometime in the future. 1495 - $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 1496 - continue 1497 - ;; 1498 - 1499 - -avoid-version) 1500 - avoid_version=yes 1501 - continue 1502 - ;; 1503 - 1504 - -dlopen) 1505 - prev=dlfiles 1506 - continue 1507 - ;; 1508 - 1509 - -dlpreopen) 1510 - prev=dlprefiles 1511 - continue 1512 - ;; 1513 - 1514 - -export-dynamic) 1515 - export_dynamic=yes 1516 - continue 1517 - ;; 1518 - 1519 - -export-symbols | -export-symbols-regex) 1520 - if test -n "$export_symbols" || test -n "$export_symbols_regex"; then 1521 - $echo "$modename: more than one -exported-symbols argument is not allowed" 1522 - exit $EXIT_FAILURE 1523 - fi 1524 - if test "X$arg" = "X-export-symbols"; then 1525 - prev=expsyms 1526 - else 1527 - prev=expsyms_regex 1528 - fi 1529 - continue 1530 - ;; 1531 - 1532 - -framework|-arch|-isysroot) 1533 - case " $CC " in 1534 - *" ${arg} ${1} "* | *" ${arg} ${1} "*) 1535 - prev=darwin_framework_skip ;; 1536 - *) compiler_flags="$compiler_flags $arg" 1537 - prev=darwin_framework ;; 1538 - esac 1539 - compile_command="$compile_command $arg" 1540 - finalize_command="$finalize_command $arg" 1541 - continue 1542 - ;; 1543 - 1544 - -inst-prefix-dir) 1545 - prev=inst_prefix 1546 - continue 1547 - ;; 1548 - 1549 - # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* 1550 - # so, if we see these flags be careful not to treat them like -L 1551 - -L[A-Z][A-Z]*:*) 1552 - case $with_gcc/$host in 1553 - no/*-*-irix* | /*-*-irix*) 1554 - compile_command="$compile_command $arg" 1555 - finalize_command="$finalize_command $arg" 1556 - ;; 1557 - esac 1558 - continue 1559 - ;; 1560 - 1561 - -L*) 1562 - dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` 1563 - # We need an absolute path. 1564 - case $dir in 1565 - [\\/]* | [A-Za-z]:[\\/]*) ;; 1566 - *) 1567 - absdir=`cd "$dir" && pwd` 1568 - if test -z "$absdir"; then 1569 - $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 1570 - absdir="$dir" 1571 - notinst_path="$notinst_path $dir" 1572 - fi 1573 - dir="$absdir" 1574 - ;; 1575 - esac 1576 - case "$deplibs " in 1577 - *" -L$dir "*) ;; 1578 - *) 1579 - deplibs="$deplibs -L$dir" 1580 - lib_search_path="$lib_search_path $dir" 1581 - ;; 1582 - esac 1583 - case $host in 1584 - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 1585 - testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` 1586 - case :$dllsearchpath: in 1587 - *":$dir:"*) ;; 1588 - *) dllsearchpath="$dllsearchpath:$dir";; 1589 - esac 1590 - case :$dllsearchpath: in 1591 - *":$testbindir:"*) ;; 1592 - *) dllsearchpath="$dllsearchpath:$testbindir";; 1593 - esac 1594 - ;; 1595 - esac 1596 - continue 1597 - ;; 1598 - 1599 - -l*) 1600 - if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then 1601 - case $host in 1602 - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) 1603 - # These systems don't actually have a C or math library (as such) 1604 - continue 1605 - ;; 1606 - *-*-os2*) 1607 - # These systems don't actually have a C library (as such) 1608 - test "X$arg" = "X-lc" && continue 1609 - ;; 1610 - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 1611 - # Do not include libc due to us having libc/libc_r. 1612 - test "X$arg" = "X-lc" && continue 1613 - ;; 1614 - *-*-rhapsody* | *-*-darwin1.[012]) 1615 - # Rhapsody C and math libraries are in the System framework 1616 - deplibs="$deplibs -framework System" 1617 - continue 1618 - ;; 1619 - *-*-sco3.2v5* | *-*-sco5v6*) 1620 - # Causes problems with __ctype 1621 - test "X$arg" = "X-lc" && continue 1622 - ;; 1623 - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) 1624 - # Compiler inserts libc in the correct place for threads to work 1625 - test "X$arg" = "X-lc" && continue 1626 - ;; 1627 - esac 1628 - elif test "X$arg" = "X-lc_r"; then 1629 - case $host in 1630 - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 1631 - # Do not include libc_r directly, use -pthread flag. 1632 - continue 1633 - ;; 1634 - esac 1635 - fi 1636 - deplibs="$deplibs $arg" 1637 - continue 1638 - ;; 1639 - 1640 - # Tru64 UNIX uses -model [arg] to determine the layout of C++ 1641 - # classes, name mangling, and exception handling. 1642 - -model) 1643 - compile_command="$compile_command $arg" 1644 - compiler_flags="$compiler_flags $arg" 1645 - finalize_command="$finalize_command $arg" 1646 - prev=xcompiler 1647 - continue 1648 - ;; 1649 - 1650 - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) 1651 - compiler_flags="$compiler_flags $arg" 1652 - compile_command="$compile_command $arg" 1653 - finalize_command="$finalize_command $arg" 1654 - continue 1655 - ;; 1656 - 1657 - -multi_module) 1658 - single_module="${wl}-multi_module" 1659 - continue 1660 - ;; 1661 - 1662 - -module) 1663 - module=yes 1664 - continue 1665 - ;; 1666 - 1667 - # -64, -mips[0-9] enable 64-bit mode on the SGI compiler 1668 - # -r[0-9][0-9]* specifies the processor on the SGI compiler 1669 - # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler 1670 - # +DA*, +DD* enable 64-bit mode on the HP compiler 1671 - # -q* pass through compiler args for the IBM compiler 1672 - # -m* pass through architecture-specific compiler args for GCC 1673 - # -m*, -t[45]*, -txscale* pass through architecture-specific 1674 - # compiler args for GCC 1675 - # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC 1676 - # -F/path gives path to uninstalled frameworks, gcc on darwin 1677 - # @file GCC response files 1678 - -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ 1679 - -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) 1680 - 1681 - # Unknown arguments in both finalize_command and compile_command need 1682 - # to be aesthetically quoted because they are evaled later. 1683 - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 1684 - case $arg in 1685 - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1686 - arg="\"$arg\"" 1687 - ;; 1688 - esac 1689 - compile_command="$compile_command $arg" 1690 - finalize_command="$finalize_command $arg" 1691 - compiler_flags="$compiler_flags $arg" 1692 - continue 1693 - ;; 1694 - 1695 - -shrext) 1696 - prev=shrext 1697 - continue 1698 - ;; 1699 - 1700 - -no-fast-install) 1701 - fast_install=no 1702 - continue 1703 - ;; 1704 - 1705 - -no-install) 1706 - case $host in 1707 - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*) 1708 - # The PATH hackery in wrapper scripts is required on Windows 1709 - # and Darwin in order for the loader to find any dlls it needs. 1710 - $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 1711 - $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 1712 - fast_install=no 1713 - ;; 1714 - *) no_install=yes ;; 1715 - esac 1716 - continue 1717 - ;; 1718 - 1719 - -no-undefined) 1720 - allow_undefined=no 1721 - continue 1722 - ;; 1723 - 1724 - -objectlist) 1725 - prev=objectlist 1726 - continue 1727 - ;; 1728 - 1729 - -o) prev=output ;; 1730 - 1731 - -precious-files-regex) 1732 - prev=precious_regex 1733 - continue 1734 - ;; 1735 - 1736 - -release) 1737 - prev=release 1738 - continue 1739 - ;; 1740 - 1741 - -rpath) 1742 - prev=rpath 1743 - continue 1744 - ;; 1745 - 1746 - -R) 1747 - prev=xrpath 1748 - continue 1749 - ;; 1750 - 1751 - -R*) 1752 - dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` 1753 - # We need an absolute path. 1754 - case $dir in 1755 - [\\/]* | [A-Za-z]:[\\/]*) ;; 1756 - *) 1757 - $echo "$modename: only absolute run-paths are allowed" 1>&2 1758 - exit $EXIT_FAILURE 1759 - ;; 1760 - esac 1761 - case "$xrpath " in 1762 - *" $dir "*) ;; 1763 - *) xrpath="$xrpath $dir" ;; 1764 - esac 1765 - continue 1766 - ;; 1767 - 1768 - -static | -static-libtool-libs) 1769 - # The effects of -static are defined in a previous loop. 1770 - # We used to do the same as -all-static on platforms that 1771 - # didn't have a PIC flag, but the assumption that the effects 1772 - # would be equivalent was wrong. It would break on at least 1773 - # Digital Unix and AIX. 1774 - continue 1775 - ;; 1776 - 1777 - -thread-safe) 1778 - thread_safe=yes 1779 - continue 1780 - ;; 1781 - 1782 - -version-info) 1783 - prev=vinfo 1784 - continue 1785 - ;; 1786 - -version-number) 1787 - prev=vinfo 1788 - vinfo_number=yes 1789 - continue 1790 - ;; 1791 - 1792 - -Wc,*) 1793 - args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` 1794 - arg= 1795 - save_ifs="$IFS"; IFS=',' 1796 - for flag in $args; do 1797 - IFS="$save_ifs" 1798 - case $flag in 1799 - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1800 - flag="\"$flag\"" 1801 - ;; 1802 - esac 1803 - arg="$arg $wl$flag" 1804 - compiler_flags="$compiler_flags $flag" 1805 - done 1806 - IFS="$save_ifs" 1807 - arg=`$echo "X$arg" | $Xsed -e "s/^ //"` 1808 - ;; 1809 - 1810 - -Wl,*) 1811 - args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` 1812 - arg= 1813 - save_ifs="$IFS"; IFS=',' 1814 - for flag in $args; do 1815 - IFS="$save_ifs" 1816 - case $flag in 1817 - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1818 - flag="\"$flag\"" 1819 - ;; 1820 - esac 1821 - arg="$arg $wl$flag" 1822 - compiler_flags="$compiler_flags $wl$flag" 1823 - linker_flags="$linker_flags $flag" 1824 - done 1825 - IFS="$save_ifs" 1826 - arg=`$echo "X$arg" | $Xsed -e "s/^ //"` 1827 - ;; 1828 - 1829 - -Xcompiler) 1830 - prev=xcompiler 1831 - continue 1832 - ;; 1833 - 1834 - -Xlinker) 1835 - prev=xlinker 1836 - continue 1837 - ;; 1838 - 1839 - -XCClinker) 1840 - prev=xcclinker 1841 - continue 1842 - ;; 1843 - 1844 - # Some other compiler flag. 1845 - -* | +*) 1846 - # Unknown arguments in both finalize_command and compile_command need 1847 - # to be aesthetically quoted because they are evaled later. 1848 - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 1849 - case $arg in 1850 - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1851 - arg="\"$arg\"" 1852 - ;; 1853 - esac 1854 - ;; 1855 - 1856 - *.$objext) 1857 - # A standard object. 1858 - objs="$objs $arg" 1859 - ;; 1860 - 1861 - *.lo) 1862 - # A libtool-controlled object. 1863 - 1864 - # Check to see that this really is a libtool object. 1865 - if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 1866 - pic_object= 1867 - non_pic_object= 1868 - 1869 - # Read the .lo file 1870 - # If there is no directory component, then add one. 1871 - case $arg in 1872 - */* | *\\*) . $arg ;; 1873 - *) . ./$arg ;; 1874 - esac 1875 - 1876 - if test -z "$pic_object" || \ 1877 - test -z "$non_pic_object" || 1878 - test "$pic_object" = none && \ 1879 - test "$non_pic_object" = none; then 1880 - $echo "$modename: cannot find name of object for \`$arg'" 1>&2 1881 - exit $EXIT_FAILURE 1882 - fi 1883 - 1884 - # Extract subdirectory from the argument. 1885 - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 1886 - if test "X$xdir" = "X$arg"; then 1887 - xdir= 1888 - else 1889 - xdir="$xdir/" 1890 - fi 1891 - 1892 - if test "$pic_object" != none; then 1893 - # Prepend the subdirectory the object is found in. 1894 - pic_object="$xdir$pic_object" 1895 - 1896 - if test "$prev" = dlfiles; then 1897 - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then 1898 - dlfiles="$dlfiles $pic_object" 1899 - prev= 1900 - continue 1901 - else 1902 - # If libtool objects are unsupported, then we need to preload. 1903 - prev=dlprefiles 1904 - fi 1905 - fi 1906 - 1907 - # CHECK ME: I think I busted this. -Ossama 1908 - if test "$prev" = dlprefiles; then 1909 - # Preload the old-style object. 1910 - dlprefiles="$dlprefiles $pic_object" 1911 - prev= 1912 - fi 1913 - 1914 - # A PIC object. 1915 - libobjs="$libobjs $pic_object" 1916 - arg="$pic_object" 1917 - fi 1918 - 1919 - # Non-PIC object. 1920 - if test "$non_pic_object" != none; then 1921 - # Prepend the subdirectory the object is found in. 1922 - non_pic_object="$xdir$non_pic_object" 1923 - 1924 - # A standard non-PIC object 1925 - non_pic_objects="$non_pic_objects $non_pic_object" 1926 - if test -z "$pic_object" || test "$pic_object" = none ; then 1927 - arg="$non_pic_object" 1928 - fi 1929 - else 1930 - # If the PIC object exists, use it instead. 1931 - # $xdir was prepended to $pic_object above. 1932 - non_pic_object="$pic_object" 1933 - non_pic_objects="$non_pic_objects $non_pic_object" 1934 - fi 1935 - else 1936 - # Only an error if not doing a dry-run. 1937 - if test -z "$run"; then 1938 - $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 1939 - exit $EXIT_FAILURE 1940 - else 1941 - # Dry-run case. 1942 - 1943 - # Extract subdirectory from the argument. 1944 - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` 1945 - if test "X$xdir" = "X$arg"; then 1946 - xdir= 1947 - else 1948 - xdir="$xdir/" 1949 - fi 1950 - 1951 - pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` 1952 - non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` 1953 - libobjs="$libobjs $pic_object" 1954 - non_pic_objects="$non_pic_objects $non_pic_object" 1955 - fi 1956 - fi 1957 - ;; 1958 - 1959 - *.$libext) 1960 - # An archive. 1961 - deplibs="$deplibs $arg" 1962 - old_deplibs="$old_deplibs $arg" 1963 - continue 1964 - ;; 1965 - 1966 - *.la) 1967 - # A libtool-controlled library. 1968 - 1969 - if test "$prev" = dlfiles; then 1970 - # This library was specified with -dlopen. 1971 - dlfiles="$dlfiles $arg" 1972 - prev= 1973 - elif test "$prev" = dlprefiles; then 1974 - # The library was specified with -dlpreopen. 1975 - dlprefiles="$dlprefiles $arg" 1976 - prev= 1977 - else 1978 - deplibs="$deplibs $arg" 1979 - fi 1980 - continue 1981 - ;; 1982 - 1983 - # Some other compiler argument. 1984 - *) 1985 - # Unknown arguments in both finalize_command and compile_command need 1986 - # to be aesthetically quoted because they are evaled later. 1987 - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 1988 - case $arg in 1989 - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 1990 - arg="\"$arg\"" 1991 - ;; 1992 - esac 1993 - ;; 1994 - esac # arg 1995 - 1996 - # Now actually substitute the argument into the commands. 1997 - if test -n "$arg"; then 1998 - compile_command="$compile_command $arg" 1999 - finalize_command="$finalize_command $arg" 2000 - fi 2001 - done # argument parsing loop 2002 - 2003 - if test -n "$prev"; then 2004 - $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 2005 - $echo "$help" 1>&2 2006 - exit $EXIT_FAILURE 2007 - fi 2008 - 2009 - if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then 2010 - eval arg=\"$export_dynamic_flag_spec\" 2011 - compile_command="$compile_command $arg" 2012 - finalize_command="$finalize_command $arg" 2013 - fi 2014 - 2015 - oldlibs= 2016 - # calculate the name of the file, without its directory 2017 - outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` 2018 - libobjs_save="$libobjs" 2019 - 2020 - if test -n "$shlibpath_var"; then 2021 - # get the directories listed in $shlibpath_var 2022 - eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` 2023 - else 2024 - shlib_search_path= 2025 - fi 2026 - eval sys_lib_search_path=\"$sys_lib_search_path_spec\" 2027 - eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" 2028 - 2029 - output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` 2030 - if test "X$output_objdir" = "X$output"; then 2031 - output_objdir="$objdir" 2032 - else 2033 - output_objdir="$output_objdir/$objdir" 2034 - fi 2035 - # Create the object directory. 2036 - if test ! -d "$output_objdir"; then 2037 - $show "$mkdir $output_objdir" 2038 - $run $mkdir $output_objdir 2039 - exit_status=$? 2040 - if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then 2041 - exit $exit_status 2042 - fi 2043 - fi 2044 - 2045 - # Determine the type of output 2046 - case $output in 2047 - "") 2048 - $echo "$modename: you must specify an output file" 1>&2 2049 - $echo "$help" 1>&2 2050 - exit $EXIT_FAILURE 2051 - ;; 2052 - *.$libext) linkmode=oldlib ;; 2053 - *.lo | *.$objext) linkmode=obj ;; 2054 - *.la) linkmode=lib ;; 2055 - *) linkmode=prog ;; # Anything else should be a program. 2056 - esac 2057 - 2058 - case $host in 2059 - *cygwin* | *mingw* | *pw32*) 2060 - # don't eliminate duplications in $postdeps and $predeps 2061 - duplicate_compiler_generated_deps=yes 2062 - ;; 2063 - *) 2064 - duplicate_compiler_generated_deps=$duplicate_deps 2065 - ;; 2066 - esac 2067 - specialdeplibs= 2068 - 2069 - libs= 2070 - # Find all interdependent deplibs by searching for libraries 2071 - # that are linked more than once (e.g. -la -lb -la) 2072 - for deplib in $deplibs; do 2073 - if test "X$duplicate_deps" = "Xyes" ; then 2074 - case "$libs " in 2075 - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 2076 - esac 2077 - fi 2078 - libs="$libs $deplib" 2079 - done 2080 - 2081 - if test "$linkmode" = lib; then 2082 - libs="$predeps $libs $compiler_lib_search_path $postdeps" 2083 - 2084 - # Compute libraries that are listed more than once in $predeps 2085 - # $postdeps and mark them as special (i.e., whose duplicates are 2086 - # not to be eliminated). 2087 - pre_post_deps= 2088 - if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then 2089 - for pre_post_dep in $predeps $postdeps; do 2090 - case "$pre_post_deps " in 2091 - *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; 2092 - esac 2093 - pre_post_deps="$pre_post_deps $pre_post_dep" 2094 - done 2095 - fi 2096 - pre_post_deps= 2097 - fi 2098 - 2099 - deplibs= 2100 - newdependency_libs= 2101 - newlib_search_path= 2102 - need_relink=no # whether we're linking any uninstalled libtool libraries 2103 - notinst_deplibs= # not-installed libtool libraries 2104 - case $linkmode in 2105 - lib) 2106 - passes="conv link" 2107 - for file in $dlfiles $dlprefiles; do 2108 - case $file in 2109 - *.la) ;; 2110 - *) 2111 - $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 2112 - exit $EXIT_FAILURE 2113 - ;; 2114 - esac 2115 - done 2116 - ;; 2117 - prog) 2118 - compile_deplibs= 2119 - finalize_deplibs= 2120 - alldeplibs=no 2121 - newdlfiles= 2122 - newdlprefiles= 2123 - passes="conv scan dlopen dlpreopen link" 2124 - ;; 2125 - *) passes="conv" 2126 - ;; 2127 - esac 2128 - for pass in $passes; do 2129 - if test "$linkmode,$pass" = "lib,link" || 2130 - test "$linkmode,$pass" = "prog,scan"; then 2131 - libs="$deplibs" 2132 - deplibs= 2133 - fi 2134 - if test "$linkmode" = prog; then 2135 - case $pass in 2136 - dlopen) libs="$dlfiles" ;; 2137 - dlpreopen) libs="$dlprefiles" ;; 2138 - link) 2139 - libs="$deplibs %DEPLIBS%" 2140 - test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" 2141 - ;; 2142 - esac 2143 - fi 2144 - if test "$pass" = dlopen; then 2145 - # Collect dlpreopened libraries 2146 - save_deplibs="$deplibs" 2147 - deplibs= 2148 - fi 2149 - for deplib in $libs; do 2150 - lib= 2151 - found=no 2152 - case $deplib in 2153 - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) 2154 - if test "$linkmode,$pass" = "prog,link"; then 2155 - compile_deplibs="$deplib $compile_deplibs" 2156 - finalize_deplibs="$deplib $finalize_deplibs" 2157 - else 2158 - compiler_flags="$compiler_flags $deplib" 2159 - fi 2160 - continue 2161 - ;; 2162 - -l*) 2163 - if test "$linkmode" != lib && test "$linkmode" != prog; then 2164 - $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 2165 - continue 2166 - fi 2167 - name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` 2168 - if test "$linkmode" = lib; then 2169 - searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" 2170 - else 2171 - searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" 2172 - fi 2173 - for searchdir in $searchdirs; do 2174 - for search_ext in .la $std_shrext .so .a; do 2175 - # Search the libtool library 2176 - lib="$searchdir/lib${name}${search_ext}" 2177 - if test -f "$lib"; then 2178 - if test "$search_ext" = ".la"; then 2179 - found=yes 2180 - else 2181 - found=no 2182 - fi 2183 - break 2 2184 - fi 2185 - done 2186 - done 2187 - if test "$found" != yes; then 2188 - # deplib doesn't seem to be a libtool library 2189 - if test "$linkmode,$pass" = "prog,link"; then 2190 - compile_deplibs="$deplib $compile_deplibs" 2191 - finalize_deplibs="$deplib $finalize_deplibs" 2192 - else 2193 - deplibs="$deplib $deplibs" 2194 - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" 2195 - fi 2196 - continue 2197 - else # deplib is a libtool library 2198 - # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, 2199 - # We need to do some special things here, and not later. 2200 - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 2201 - case " $predeps $postdeps " in 2202 - *" $deplib "*) 2203 - if (${SED} -e '2q' $lib | 2204 - grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 2205 - library_names= 2206 - old_library= 2207 - case $lib in 2208 - */* | *\\*) . $lib ;; 2209 - *) . ./$lib ;; 2210 - esac 2211 - for l in $old_library $library_names; do 2212 - ll="$l" 2213 - done 2214 - if test "X$ll" = "X$old_library" ; then # only static version available 2215 - found=no 2216 - ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` 2217 - test "X$ladir" = "X$lib" && ladir="." 2218 - lib=$ladir/$old_library 2219 - if test "$linkmode,$pass" = "prog,link"; then 2220 - compile_deplibs="$deplib $compile_deplibs" 2221 - finalize_deplibs="$deplib $finalize_deplibs" 2222 - else 2223 - deplibs="$deplib $deplibs" 2224 - test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" 2225 - fi 2226 - continue 2227 - fi 2228 - fi 2229 - ;; 2230 - *) ;; 2231 - esac 2232 - fi 2233 - fi 2234 - ;; # -l 2235 - -L*) 2236 - case $linkmode in 2237 - lib) 2238 - deplibs="$deplib $deplibs" 2239 - test "$pass" = conv && continue 2240 - newdependency_libs="$deplib $newdependency_libs" 2241 - newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` 2242 - ;; 2243 - prog) 2244 - if test "$pass" = conv; then 2245 - deplibs="$deplib $deplibs" 2246 - continue 2247 - fi 2248 - if test "$pass" = scan; then 2249 - deplibs="$deplib $deplibs" 2250 - else 2251 - compile_deplibs="$deplib $compile_deplibs" 2252 - finalize_deplibs="$deplib $finalize_deplibs" 2253 - fi 2254 - newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` 2255 - ;; 2256 - *) 2257 - $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 2258 - ;; 2259 - esac # linkmode 2260 - continue 2261 - ;; # -L 2262 - -R*) 2263 - if test "$pass" = link; then 2264 - dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` 2265 - # Make sure the xrpath contains only unique directories. 2266 - case "$xrpath " in 2267 - *" $dir "*) ;; 2268 - *) xrpath="$xrpath $dir" ;; 2269 - esac 2270 - fi 2271 - deplibs="$deplib $deplibs" 2272 - continue 2273 - ;; 2274 - *.la) lib="$deplib" ;; 2275 - *.$libext) 2276 - if test "$pass" = conv; then 2277 - deplibs="$deplib $deplibs" 2278 - continue 2279 - fi 2280 - case $linkmode in 2281 - lib) 2282 - valid_a_lib=no 2283 - case $deplibs_check_method in 2284 - match_pattern*) 2285 - set dummy $deplibs_check_method 2286 - match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 2287 - if eval $echo \"$deplib\" 2>/dev/null \ 2288 - | $SED 10q \ 2289 - | $EGREP "$match_pattern_regex" > /dev/null; then 2290 - valid_a_lib=yes 2291 - fi 2292 - ;; 2293 - pass_all) 2294 - valid_a_lib=yes 2295 - ;; 2296 - esac 2297 - if test "$valid_a_lib" != yes; then 2298 - $echo 2299 - $echo "*** Warning: Trying to link with static lib archive $deplib." 2300 - $echo "*** I have the capability to make that library automatically link in when" 2301 - $echo "*** you link to this library. But I can only do this if you have a" 2302 - $echo "*** shared version of the library, which you do not appear to have" 2303 - $echo "*** because the file extensions .$libext of this argument makes me believe" 2304 - $echo "*** that it is just a static archive that I should not used here." 2305 - else 2306 - $echo 2307 - $echo "*** Warning: Linking the shared library $output against the" 2308 - $echo "*** static library $deplib is not portable!" 2309 - deplibs="$deplib $deplibs" 2310 - fi 2311 - continue 2312 - ;; 2313 - prog) 2314 - if test "$pass" != link; then 2315 - deplibs="$deplib $deplibs" 2316 - else 2317 - compile_deplibs="$deplib $compile_deplibs" 2318 - finalize_deplibs="$deplib $finalize_deplibs" 2319 - fi 2320 - continue 2321 - ;; 2322 - esac # linkmode 2323 - ;; # *.$libext 2324 - *.lo | *.$objext) 2325 - if test "$pass" = conv; then 2326 - deplibs="$deplib $deplibs" 2327 - elif test "$linkmode" = prog; then 2328 - if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then 2329 - # If there is no dlopen support or we're linking statically, 2330 - # we need to preload. 2331 - newdlprefiles="$newdlprefiles $deplib" 2332 - compile_deplibs="$deplib $compile_deplibs" 2333 - finalize_deplibs="$deplib $finalize_deplibs" 2334 - else 2335 - newdlfiles="$newdlfiles $deplib" 2336 - fi 2337 - fi 2338 - continue 2339 - ;; 2340 - %DEPLIBS%) 2341 - alldeplibs=yes 2342 - continue 2343 - ;; 2344 - esac # case $deplib 2345 - if test "$found" = yes || test -f "$lib"; then : 2346 - else 2347 - $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 2348 - exit $EXIT_FAILURE 2349 - fi 2350 - 2351 - # Check to see that this really is a libtool archive. 2352 - if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : 2353 - else 2354 - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 2355 - exit $EXIT_FAILURE 2356 - fi 2357 - 2358 - ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` 2359 - test "X$ladir" = "X$lib" && ladir="." 2360 - 2361 - dlname= 2362 - dlopen= 2363 - dlpreopen= 2364 - libdir= 2365 - library_names= 2366 - old_library= 2367 - # If the library was installed with an old release of libtool, 2368 - # it will not redefine variables installed, or shouldnotlink 2369 - installed=yes 2370 - shouldnotlink=no 2371 - avoidtemprpath= 2372 - 2373 - 2374 - # Read the .la file 2375 - case $lib in 2376 - */* | *\\*) . $lib ;; 2377 - *) . ./$lib ;; 2378 - esac 2379 - 2380 - if test "$linkmode,$pass" = "lib,link" || 2381 - test "$linkmode,$pass" = "prog,scan" || 2382 - { test "$linkmode" != prog && test "$linkmode" != lib; }; then 2383 - test -n "$dlopen" && dlfiles="$dlfiles $dlopen" 2384 - test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" 2385 - fi 2386 - 2387 - if test "$pass" = conv; then 2388 - # Only check for convenience libraries 2389 - deplibs="$lib $deplibs" 2390 - if test -z "$libdir"; then 2391 - if test -z "$old_library"; then 2392 - $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 2393 - exit $EXIT_FAILURE 2394 - fi 2395 - # It is a libtool convenience library, so add in its objects. 2396 - convenience="$convenience $ladir/$objdir/$old_library" 2397 - old_convenience="$old_convenience $ladir/$objdir/$old_library" 2398 - tmp_libs= 2399 - for deplib in $dependency_libs; do 2400 - deplibs="$deplib $deplibs" 2401 - if test "X$duplicate_deps" = "Xyes" ; then 2402 - case "$tmp_libs " in 2403 - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 2404 - esac 2405 - fi 2406 - tmp_libs="$tmp_libs $deplib" 2407 - done 2408 - elif test "$linkmode" != prog && test "$linkmode" != lib; then 2409 - $echo "$modename: \`$lib' is not a convenience library" 1>&2 2410 - exit $EXIT_FAILURE 2411 - fi 2412 - continue 2413 - fi # $pass = conv 2414 - 2415 - 2416 - # Get the name of the library we link against. 2417 - linklib= 2418 - for l in $old_library $library_names; do 2419 - linklib="$l" 2420 - done 2421 - if test -z "$linklib"; then 2422 - $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 2423 - exit $EXIT_FAILURE 2424 - fi 2425 - 2426 - # This library was specified with -dlopen. 2427 - if test "$pass" = dlopen; then 2428 - if test -z "$libdir"; then 2429 - $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 2430 - exit $EXIT_FAILURE 2431 - fi 2432 - if test -z "$dlname" || 2433 - test "$dlopen_support" != yes || 2434 - test "$build_libtool_libs" = no; then 2435 - # If there is no dlname, no dlopen support or we're linking 2436 - # statically, we need to preload. We also need to preload any 2437 - # dependent libraries so libltdl's deplib preloader doesn't 2438 - # bomb out in the load deplibs phase. 2439 - dlprefiles="$dlprefiles $lib $dependency_libs" 2440 - else 2441 - newdlfiles="$newdlfiles $lib" 2442 - fi 2443 - continue 2444 - fi # $pass = dlopen 2445 - 2446 - # We need an absolute path. 2447 - case $ladir in 2448 - [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; 2449 - *) 2450 - abs_ladir=`cd "$ladir" && pwd` 2451 - if test -z "$abs_ladir"; then 2452 - $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 2453 - $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 2454 - abs_ladir="$ladir" 2455 - fi 2456 - ;; 2457 - esac 2458 - laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` 2459 - 2460 - # Find the relevant object directory and library name. 2461 - if test "X$installed" = Xyes; then 2462 - if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then 2463 - $echo "$modename: warning: library \`$lib' was moved." 1>&2 2464 - dir="$ladir" 2465 - absdir="$abs_ladir" 2466 - libdir="$abs_ladir" 2467 - else 2468 - dir="$libdir" 2469 - absdir="$libdir" 2470 - fi 2471 - test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes 2472 - else 2473 - if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then 2474 - dir="$ladir" 2475 - absdir="$abs_ladir" 2476 - # Remove this search path later 2477 - notinst_path="$notinst_path $abs_ladir" 2478 - else 2479 - dir="$ladir/$objdir" 2480 - absdir="$abs_ladir/$objdir" 2481 - # Remove this search path later 2482 - notinst_path="$notinst_path $abs_ladir" 2483 - fi 2484 - fi # $installed = yes 2485 - name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` 2486 - 2487 - # This library was specified with -dlpreopen. 2488 - if test "$pass" = dlpreopen; then 2489 - if test -z "$libdir"; then 2490 - $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 2491 - exit $EXIT_FAILURE 2492 - fi 2493 - # Prefer using a static library (so that no silly _DYNAMIC symbols 2494 - # are required to link). 2495 - if test -n "$old_library"; then 2496 - newdlprefiles="$newdlprefiles $dir/$old_library" 2497 - # Otherwise, use the dlname, so that lt_dlopen finds it. 2498 - elif test -n "$dlname"; then 2499 - newdlprefiles="$newdlprefiles $dir/$dlname" 2500 - else 2501 - newdlprefiles="$newdlprefiles $dir/$linklib" 2502 - fi 2503 - fi # $pass = dlpreopen 2504 - 2505 - if test -z "$libdir"; then 2506 - # Link the convenience library 2507 - if test "$linkmode" = lib; then 2508 - deplibs="$dir/$old_library $deplibs" 2509 - elif test "$linkmode,$pass" = "prog,link"; then 2510 - compile_deplibs="$dir/$old_library $compile_deplibs" 2511 - finalize_deplibs="$dir/$old_library $finalize_deplibs" 2512 - else 2513 - deplibs="$lib $deplibs" # used for prog,scan pass 2514 - fi 2515 - continue 2516 - fi 2517 - 2518 - 2519 - if test "$linkmode" = prog && test "$pass" != link; then 2520 - newlib_search_path="$newlib_search_path $ladir" 2521 - deplibs="$lib $deplibs" 2522 - 2523 - linkalldeplibs=no 2524 - if test "$link_all_deplibs" != no || test -z "$library_names" || 2525 - test "$build_libtool_libs" = no; then 2526 - linkalldeplibs=yes 2527 - fi 2528 - 2529 - tmp_libs= 2530 - for deplib in $dependency_libs; do 2531 - case $deplib in 2532 - -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test 2533 - esac 2534 - # Need to link against all dependency_libs? 2535 - if test "$linkalldeplibs" = yes; then 2536 - deplibs="$deplib $deplibs" 2537 - else 2538 - # Need to hardcode shared library paths 2539 - # or/and link against static libraries 2540 - newdependency_libs="$deplib $newdependency_libs" 2541 - fi 2542 - if test "X$duplicate_deps" = "Xyes" ; then 2543 - case "$tmp_libs " in 2544 - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 2545 - esac 2546 - fi 2547 - tmp_libs="$tmp_libs $deplib" 2548 - done # for deplib 2549 - continue 2550 - fi # $linkmode = prog... 2551 - 2552 - if test "$linkmode,$pass" = "prog,link"; then 2553 - if test -n "$library_names" && 2554 - { { test "$prefer_static_libs" = no || 2555 - test "$prefer_static_libs,$installed" = "built,yes"; } || 2556 - test -z "$old_library"; }; then 2557 - # We need to hardcode the library path 2558 - if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then 2559 - # Make sure the rpath contains only unique directories. 2560 - case "$temp_rpath " in 2561 - *" $dir "*) ;; 2562 - *" $absdir "*) ;; 2563 - *) temp_rpath="$temp_rpath $absdir" ;; 2564 - esac 2565 - fi 2566 - 2567 - # Hardcode the library path. 2568 - # Skip directories that are in the system default run-time 2569 - # search path. 2570 - case " $sys_lib_dlsearch_path " in 2571 - *" $absdir "*) ;; 2572 - *) 2573 - case "$compile_rpath " in 2574 - *" $absdir "*) ;; 2575 - *) compile_rpath="$compile_rpath $absdir" 2576 - esac 2577 - ;; 2578 - esac 2579 - case " $sys_lib_dlsearch_path " in 2580 - *" $libdir "*) ;; 2581 - *) 2582 - case "$finalize_rpath " in 2583 - *" $libdir "*) ;; 2584 - *) finalize_rpath="$finalize_rpath $libdir" 2585 - esac 2586 - ;; 2587 - esac 2588 - fi # $linkmode,$pass = prog,link... 2589 - 2590 - if test "$alldeplibs" = yes && 2591 - { test "$deplibs_check_method" = pass_all || 2592 - { test "$build_libtool_libs" = yes && 2593 - test -n "$library_names"; }; }; then 2594 - # We only need to search for static libraries 2595 - continue 2596 - fi 2597 - fi 2598 - 2599 - link_static=no # Whether the deplib will be linked statically 2600 - use_static_libs=$prefer_static_libs 2601 - if test "$use_static_libs" = built && test "$installed" = yes ; then 2602 - use_static_libs=no 2603 - fi 2604 - if test -n "$library_names" && 2605 - { test "$use_static_libs" = no || test -z "$old_library"; }; then 2606 - if test "$installed" = no; then 2607 - notinst_deplibs="$notinst_deplibs $lib" 2608 - need_relink=yes 2609 - fi 2610 - # This is a shared library 2611 - 2612 - # Warn about portability, can't link against -module's on 2613 - # some systems (darwin) 2614 - if test "$shouldnotlink" = yes && test "$pass" = link ; then 2615 - $echo 2616 - if test "$linkmode" = prog; then 2617 - $echo "*** Warning: Linking the executable $output against the loadable module" 2618 - else 2619 - $echo "*** Warning: Linking the shared library $output against the loadable module" 2620 - fi 2621 - $echo "*** $linklib is not portable!" 2622 - fi 2623 - if test "$linkmode" = lib && 2624 - test "$hardcode_into_libs" = yes; then 2625 - # Hardcode the library path. 2626 - # Skip directories that are in the system default run-time 2627 - # search path. 2628 - case " $sys_lib_dlsearch_path " in 2629 - *" $absdir "*) ;; 2630 - *) 2631 - case "$compile_rpath " in 2632 - *" $absdir "*) ;; 2633 - *) compile_rpath="$compile_rpath $absdir" 2634 - esac 2635 - ;; 2636 - esac 2637 - case " $sys_lib_dlsearch_path " in 2638 - *" $libdir "*) ;; 2639 - *) 2640 - case "$finalize_rpath " in 2641 - *" $libdir "*) ;; 2642 - *) finalize_rpath="$finalize_rpath $libdir" 2643 - esac 2644 - ;; 2645 - esac 2646 - fi 2647 - 2648 - if test -n "$old_archive_from_expsyms_cmds"; then 2649 - # figure out the soname 2650 - set dummy $library_names 2651 - realname="$2" 2652 - shift; shift 2653 - libname=`eval \\$echo \"$libname_spec\"` 2654 - # use dlname if we got it. it's perfectly good, no? 2655 - if test -n "$dlname"; then 2656 - soname="$dlname" 2657 - elif test -n "$soname_spec"; then 2658 - # bleh windows 2659 - case $host in 2660 - *cygwin* | mingw*) 2661 - major=`expr $current - $age` 2662 - versuffix="-$major" 2663 - ;; 2664 - esac 2665 - eval soname=\"$soname_spec\" 2666 - else 2667 - soname="$realname" 2668 - fi 2669 - 2670 - # Make a new name for the extract_expsyms_cmds to use 2671 - soroot="$soname" 2672 - soname=`$echo $soroot | ${SED} -e 's/^.*\///'` 2673 - newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" 2674 - 2675 - # If the library has no export list, then create one now 2676 - if test -f "$output_objdir/$soname-def"; then : 2677 - else 2678 - $show "extracting exported symbol list from \`$soname'" 2679 - save_ifs="$IFS"; IFS='~' 2680 - cmds=$extract_expsyms_cmds 2681 - for cmd in $cmds; do 2682 - IFS="$save_ifs" 2683 - eval cmd=\"$cmd\" 2684 - $show "$cmd" 2685 - $run eval "$cmd" || exit $? 2686 - done 2687 - IFS="$save_ifs" 2688 - fi 2689 - 2690 - # Create $newlib 2691 - if test -f "$output_objdir/$newlib"; then :; else 2692 - $show "generating import library for \`$soname'" 2693 - save_ifs="$IFS"; IFS='~' 2694 - cmds=$old_archive_from_expsyms_cmds 2695 - for cmd in $cmds; do 2696 - IFS="$save_ifs" 2697 - eval cmd=\"$cmd\" 2698 - $show "$cmd" 2699 - $run eval "$cmd" || exit $? 2700 - done 2701 - IFS="$save_ifs" 2702 - fi 2703 - # make sure the library variables are pointing to the new library 2704 - dir=$output_objdir 2705 - linklib=$newlib 2706 - fi # test -n "$old_archive_from_expsyms_cmds" 2707 - 2708 - if test "$linkmode" = prog || test "$mode" != relink; then 2709 - add_shlibpath= 2710 - add_dir= 2711 - add= 2712 - lib_linked=yes 2713 - case $hardcode_action in 2714 - immediate | unsupported) 2715 - if test "$hardcode_direct" = no; then 2716 - add="$dir/$linklib" 2717 - case $host in 2718 - *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; 2719 - *-*-sysv4*uw2*) add_dir="-L$dir" ;; 2720 - *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ 2721 - *-*-unixware7*) add_dir="-L$dir" ;; 2722 - *-*-darwin* ) 2723 - # if the lib is a module then we can not link against 2724 - # it, someone is ignoring the new warnings I added 2725 - if /usr/bin/file -L $add 2> /dev/null | 2726 - $EGREP ": [^:]* bundle" >/dev/null ; then 2727 - $echo "** Warning, lib $linklib is a module, not a shared library" 2728 - if test -z "$old_library" ; then 2729 - $echo 2730 - $echo "** And there doesn't seem to be a static archive available" 2731 - $echo "** The link will probably fail, sorry" 2732 - else 2733 - add="$dir/$old_library" 2734 - fi 2735 - fi 2736 - esac 2737 - elif test "$hardcode_minus_L" = no; then 2738 - case $host in 2739 - *-*-sunos*) add_shlibpath="$dir" ;; 2740 - esac 2741 - add_dir="-L$dir" 2742 - add="-l$name" 2743 - elif test "$hardcode_shlibpath_var" = no; then 2744 - add_shlibpath="$dir" 2745 - add="-l$name" 2746 - else 2747 - lib_linked=no 2748 - fi 2749 - ;; 2750 - relink) 2751 - if test "$hardcode_direct" = yes; then 2752 - add="$dir/$linklib" 2753 - elif test "$hardcode_minus_L" = yes; then 2754 - add_dir="-L$dir" 2755 - # Try looking first in the location we're being installed to. 2756 - if test -n "$inst_prefix_dir"; then 2757 - case $libdir in 2758 - [\\/]*) 2759 - add_dir="$add_dir -L$inst_prefix_dir$libdir" 2760 - ;; 2761 - esac 2762 - fi 2763 - add="-l$name" 2764 - elif test "$hardcode_shlibpath_var" = yes; then 2765 - add_shlibpath="$dir" 2766 - add="-l$name" 2767 - else 2768 - lib_linked=no 2769 - fi 2770 - ;; 2771 - *) lib_linked=no ;; 2772 - esac 2773 - 2774 - if test "$lib_linked" != yes; then 2775 - $echo "$modename: configuration error: unsupported hardcode properties" 2776 - exit $EXIT_FAILURE 2777 - fi 2778 - 2779 - if test -n "$add_shlibpath"; then 2780 - case :$compile_shlibpath: in 2781 - *":$add_shlibpath:"*) ;; 2782 - *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; 2783 - esac 2784 - fi 2785 - if test "$linkmode" = prog; then 2786 - test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" 2787 - test -n "$add" && compile_deplibs="$add $compile_deplibs" 2788 - else 2789 - test -n "$add_dir" && deplibs="$add_dir $deplibs" 2790 - test -n "$add" && deplibs="$add $deplibs" 2791 - if test "$hardcode_direct" != yes && \ 2792 - test "$hardcode_minus_L" != yes && \ 2793 - test "$hardcode_shlibpath_var" = yes; then 2794 - case :$finalize_shlibpath: in 2795 - *":$libdir:"*) ;; 2796 - *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; 2797 - esac 2798 - fi 2799 - fi 2800 - fi 2801 - 2802 - if test "$linkmode" = prog || test "$mode" = relink; then 2803 - add_shlibpath= 2804 - add_dir= 2805 - add= 2806 - # Finalize command for both is simple: just hardcode it. 2807 - if test "$hardcode_direct" = yes; then 2808 - add="$libdir/$linklib" 2809 - elif test "$hardcode_minus_L" = yes; then 2810 - add_dir="-L$libdir" 2811 - add="-l$name" 2812 - elif test "$hardcode_shlibpath_var" = yes; then 2813 - case :$finalize_shlibpath: in 2814 - *":$libdir:"*) ;; 2815 - *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; 2816 - esac 2817 - add="-l$name" 2818 - elif test "$hardcode_automatic" = yes; then 2819 - if test -n "$inst_prefix_dir" && 2820 - test -f "$inst_prefix_dir$libdir/$linklib" ; then 2821 - add="$inst_prefix_dir$libdir/$linklib" 2822 - else 2823 - add="$libdir/$linklib" 2824 - fi 2825 - else 2826 - # We cannot seem to hardcode it, guess we'll fake it. 2827 - add_dir="-L$libdir" 2828 - # Try looking first in the location we're being installed to. 2829 - if test -n "$inst_prefix_dir"; then 2830 - case $libdir in 2831 - [\\/]*) 2832 - add_dir="$add_dir -L$inst_prefix_dir$libdir" 2833 - ;; 2834 - esac 2835 - fi 2836 - add="-l$name" 2837 - fi 2838 - 2839 - if test "$linkmode" = prog; then 2840 - test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" 2841 - test -n "$add" && finalize_deplibs="$add $finalize_deplibs" 2842 - else 2843 - test -n "$add_dir" && deplibs="$add_dir $deplibs" 2844 - test -n "$add" && deplibs="$add $deplibs" 2845 - fi 2846 - fi 2847 - elif test "$linkmode" = prog; then 2848 - # Here we assume that one of hardcode_direct or hardcode_minus_L 2849 - # is not unsupported. This is valid on all known static and 2850 - # shared platforms. 2851 - if test "$hardcode_direct" != unsupported; then 2852 - test -n "$old_library" && linklib="$old_library" 2853 - compile_deplibs="$dir/$linklib $compile_deplibs" 2854 - finalize_deplibs="$dir/$linklib $finalize_deplibs" 2855 - else 2856 - compile_deplibs="-l$name -L$dir $compile_deplibs" 2857 - finalize_deplibs="-l$name -L$dir $finalize_deplibs" 2858 - fi 2859 - elif test "$build_libtool_libs" = yes; then 2860 - # Not a shared library 2861 - if test "$deplibs_check_method" != pass_all; then 2862 - # We're trying link a shared library against a static one 2863 - # but the system doesn't support it. 2864 - 2865 - # Just print a warning and add the library to dependency_libs so 2866 - # that the program can be linked against the static library. 2867 - $echo 2868 - $echo "*** Warning: This system can not link to static lib archive $lib." 2869 - $echo "*** I have the capability to make that library automatically link in when" 2870 - $echo "*** you link to this library. But I can only do this if you have a" 2871 - $echo "*** shared version of the library, which you do not appear to have." 2872 - if test "$module" = yes; then 2873 - $echo "*** But as you try to build a module library, libtool will still create " 2874 - $echo "*** a static module, that should work as long as the dlopening application" 2875 - $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." 2876 - if test -z "$global_symbol_pipe"; then 2877 - $echo 2878 - $echo "*** However, this would only work if libtool was able to extract symbol" 2879 - $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" 2880 - $echo "*** not find such a program. So, this module is probably useless." 2881 - $echo "*** \`nm' from GNU binutils and a full rebuild may help." 2882 - fi 2883 - if test "$build_old_libs" = no; then 2884 - build_libtool_libs=module 2885 - build_old_libs=yes 2886 - else 2887 - build_libtool_libs=no 2888 - fi 2889 - fi 2890 - else 2891 - deplibs="$dir/$old_library $deplibs" 2892 - link_static=yes 2893 - fi 2894 - fi # link shared/static library? 2895 - 2896 - if test "$linkmode" = lib; then 2897 - if test -n "$dependency_libs" && 2898 - { test "$hardcode_into_libs" != yes || 2899 - test "$build_old_libs" = yes || 2900 - test "$link_static" = yes; }; then 2901 - # Extract -R from dependency_libs 2902 - temp_deplibs= 2903 - for libdir in $dependency_libs; do 2904 - case $libdir in 2905 - -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` 2906 - case " $xrpath " in 2907 - *" $temp_xrpath "*) ;; 2908 - *) xrpath="$xrpath $temp_xrpath";; 2909 - esac;; 2910 - *) temp_deplibs="$temp_deplibs $libdir";; 2911 - esac 2912 - done 2913 - dependency_libs="$temp_deplibs" 2914 - fi 2915 - 2916 - newlib_search_path="$newlib_search_path $absdir" 2917 - # Link against this library 2918 - test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" 2919 - # ... and its dependency_libs 2920 - tmp_libs= 2921 - for deplib in $dependency_libs; do 2922 - newdependency_libs="$deplib $newdependency_libs" 2923 - if test "X$duplicate_deps" = "Xyes" ; then 2924 - case "$tmp_libs " in 2925 - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; 2926 - esac 2927 - fi 2928 - tmp_libs="$tmp_libs $deplib" 2929 - done 2930 - 2931 - if test "$link_all_deplibs" != no; then 2932 - # Add the search paths of all dependency libraries 2933 - for deplib in $dependency_libs; do 2934 - case $deplib in 2935 - -L*) path="$deplib" ;; 2936 - *.la) 2937 - dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` 2938 - test "X$dir" = "X$deplib" && dir="." 2939 - # We need an absolute path. 2940 - case $dir in 2941 - [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; 2942 - *) 2943 - absdir=`cd "$dir" && pwd` 2944 - if test -z "$absdir"; then 2945 - $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 2946 - absdir="$dir" 2947 - fi 2948 - ;; 2949 - esac 2950 - if grep "^installed=no" $deplib > /dev/null; then 2951 - path="$absdir/$objdir" 2952 - else 2953 - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 2954 - if test -z "$libdir"; then 2955 - $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 2956 - exit $EXIT_FAILURE 2957 - fi 2958 - if test "$absdir" != "$libdir"; then 2959 - $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 2960 - fi 2961 - path="$absdir" 2962 - fi 2963 - depdepl= 2964 - case $host in 2965 - *-*-darwin*) 2966 - # we do not want to link against static libs, 2967 - # but need to link against shared 2968 - eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` 2969 - eval deplibdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 2970 - if test -n "$deplibrary_names" ; then 2971 - for tmp in $deplibrary_names ; do 2972 - depdepl=$tmp 2973 - done 2974 - if test -f "$deplibdir/$depdepl" ; then 2975 - depdepl="$deplibdir/$depdepl" 2976 - elif test -f "$path/$depdepl" ; then 2977 - depdepl="$path/$depdepl" 2978 - else 2979 - # Can't find it, oh well... 2980 - depdepl= 2981 - fi 2982 - # do not add paths which are already there 2983 - case " $newlib_search_path " in 2984 - *" $path "*) ;; 2985 - *) newlib_search_path="$newlib_search_path $path";; 2986 - esac 2987 - fi 2988 - path="" 2989 - ;; 2990 - *) 2991 - path="-L$path" 2992 - ;; 2993 - esac 2994 - ;; 2995 - -l*) 2996 - case $host in 2997 - *-*-darwin*) 2998 - # Again, we only want to link against shared libraries 2999 - eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` 3000 - for tmp in $newlib_search_path ; do 3001 - if test -f "$tmp/lib$tmp_libs.dylib" ; then 3002 - eval depdepl="$tmp/lib$tmp_libs.dylib" 3003 - break 3004 - fi 3005 - done 3006 - path="" 3007 - ;; 3008 - *) continue ;; 3009 - esac 3010 - ;; 3011 - *) continue ;; 3012 - esac 3013 - case " $deplibs " in 3014 - *" $path "*) ;; 3015 - *) deplibs="$path $deplibs" ;; 3016 - esac 3017 - case " $deplibs " in 3018 - *" $depdepl "*) ;; 3019 - *) deplibs="$depdepl $deplibs" ;; 3020 - esac 3021 - done 3022 - fi # link_all_deplibs != no 3023 - fi # linkmode = lib 3024 - done # for deplib in $libs 3025 - dependency_libs="$newdependency_libs" 3026 - if test "$pass" = dlpreopen; then 3027 - # Link the dlpreopened libraries before other libraries 3028 - for deplib in $save_deplibs; do 3029 - deplibs="$deplib $deplibs" 3030 - done 3031 - fi 3032 - if test "$pass" != dlopen; then 3033 - if test "$pass" != conv; then 3034 - # Make sure lib_search_path contains only unique directories. 3035 - lib_search_path= 3036 - for dir in $newlib_search_path; do 3037 - case "$lib_search_path " in 3038 - *" $dir "*) ;; 3039 - *) lib_search_path="$lib_search_path $dir" ;; 3040 - esac 3041 - done 3042 - newlib_search_path= 3043 - fi 3044 - 3045 - if test "$linkmode,$pass" != "prog,link"; then 3046 - vars="deplibs" 3047 - else 3048 - vars="compile_deplibs finalize_deplibs" 3049 - fi 3050 - for var in $vars dependency_libs; do 3051 - # Add libraries to $var in reverse order 3052 - eval tmp_libs=\"\$$var\" 3053 - new_libs= 3054 - for deplib in $tmp_libs; do 3055 - # FIXME: Pedantically, this is the right thing to do, so 3056 - # that some nasty dependency loop isn't accidentally 3057 - # broken: 3058 - #new_libs="$deplib $new_libs" 3059 - # Pragmatically, this seems to cause very few problems in 3060 - # practice: 3061 - case $deplib in 3062 - -L*) new_libs="$deplib $new_libs" ;; 3063 - -R*) ;; 3064 - *) 3065 - # And here is the reason: when a library appears more 3066 - # than once as an explicit dependence of a library, or 3067 - # is implicitly linked in more than once by the 3068 - # compiler, it is considered special, and multiple 3069 - # occurrences thereof are not removed. Compare this 3070 - # with having the same library being listed as a 3071 - # dependency of multiple other libraries: in this case, 3072 - # we know (pedantically, we assume) the library does not 3073 - # need to be listed more than once, so we keep only the 3074 - # last copy. This is not always right, but it is rare 3075 - # enough that we require users that really mean to play 3076 - # such unportable linking tricks to link the library 3077 - # using -Wl,-lname, so that libtool does not consider it 3078 - # for duplicate removal. 3079 - case " $specialdeplibs " in 3080 - *" $deplib "*) new_libs="$deplib $new_libs" ;; 3081 - *) 3082 - case " $new_libs " in 3083 - *" $deplib "*) ;; 3084 - *) new_libs="$deplib $new_libs" ;; 3085 - esac 3086 - ;; 3087 - esac 3088 - ;; 3089 - esac 3090 - done 3091 - tmp_libs= 3092 - for deplib in $new_libs; do 3093 - case $deplib in 3094 - -L*) 3095 - case " $tmp_libs " in 3096 - *" $deplib "*) ;; 3097 - *) tmp_libs="$tmp_libs $deplib" ;; 3098 - esac 3099 - ;; 3100 - *) tmp_libs="$tmp_libs $deplib" ;; 3101 - esac 3102 - done 3103 - eval $var=\"$tmp_libs\" 3104 - done # for var 3105 - fi 3106 - # Last step: remove runtime libs from dependency_libs 3107 - # (they stay in deplibs) 3108 - tmp_libs= 3109 - for i in $dependency_libs ; do 3110 - case " $predeps $postdeps $compiler_lib_search_path " in 3111 - *" $i "*) 3112 - i="" 3113 - ;; 3114 - esac 3115 - if test -n "$i" ; then 3116 - tmp_libs="$tmp_libs $i" 3117 - fi 3118 - done 3119 - dependency_libs=$tmp_libs 3120 - done # for pass 3121 - if test "$linkmode" = prog; then 3122 - dlfiles="$newdlfiles" 3123 - dlprefiles="$newdlprefiles" 3124 - fi 3125 - 3126 - case $linkmode in 3127 - oldlib) 3128 - case " $deplibs" in 3129 - *\ -l* | *\ -L*) 3130 - $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ;; 3131 - esac 3132 - 3133 - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 3134 - $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 3135 - fi 3136 - 3137 - if test -n "$rpath"; then 3138 - $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 3139 - fi 3140 - 3141 - if test -n "$xrpath"; then 3142 - $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 3143 - fi 3144 - 3145 - if test -n "$vinfo"; then 3146 - $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 3147 - fi 3148 - 3149 - if test -n "$release"; then 3150 - $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 3151 - fi 3152 - 3153 - if test -n "$export_symbols" || test -n "$export_symbols_regex"; then 3154 - $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 3155 - fi 3156 - 3157 - # Now set the variables for building old libraries. 3158 - build_libtool_libs=no 3159 - oldlibs="$output" 3160 - objs="$objs$old_deplibs" 3161 - ;; 3162 - 3163 - lib) 3164 - # Make sure we only generate libraries of the form `libNAME.la'. 3165 - case $outputname in 3166 - lib*) 3167 - name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` 3168 - eval shared_ext=\"$shrext_cmds\" 3169 - eval libname=\"$libname_spec\" 3170 - ;; 3171 - *) 3172 - if test "$module" = no; then 3173 - $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 3174 - $echo "$help" 1>&2 3175 - exit $EXIT_FAILURE 3176 - fi 3177 - if test "$need_lib_prefix" != no; then 3178 - # Add the "lib" prefix for modules if required 3179 - name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` 3180 - eval shared_ext=\"$shrext_cmds\" 3181 - eval libname=\"$libname_spec\" 3182 - else 3183 - libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` 3184 - fi 3185 - ;; 3186 - esac 3187 - 3188 - if test -n "$objs"; then 3189 - if test "$deplibs_check_method" != pass_all; then 3190 - $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 3191 - exit $EXIT_FAILURE 3192 - else 3193 - $echo 3194 - $echo "*** Warning: Linking the shared library $output against the non-libtool" 3195 - $echo "*** objects $objs is not portable!" 3196 - libobjs="$libobjs $objs" 3197 - fi 3198 - fi 3199 - 3200 - if test "$dlself" != no; then 3201 - $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 3202 - fi 3203 - 3204 - set dummy $rpath 3205 - if test "$#" -gt 2; then 3206 - $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 3207 - fi 3208 - install_libdir="$2" 3209 - 3210 - oldlibs= 3211 - if test -z "$rpath"; then 3212 - if test "$build_libtool_libs" = yes; then 3213 - # Building a libtool convenience library. 3214 - # Some compilers have problems with a `.al' extension so 3215 - # convenience libraries should have the same extension an 3216 - # archive normally would. 3217 - oldlibs="$output_objdir/$libname.$libext $oldlibs" 3218 - build_libtool_libs=convenience 3219 - build_old_libs=yes 3220 - fi 3221 - 3222 - if test -n "$vinfo"; then 3223 - $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 3224 - fi 3225 - 3226 - if test -n "$release"; then 3227 - $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 3228 - fi 3229 - else 3230 - 3231 - # Parse the version information argument. 3232 - save_ifs="$IFS"; IFS=':' 3233 - set dummy $vinfo 0 0 0 3234 - IFS="$save_ifs" 3235 - 3236 - if test -n "$8"; then 3237 - $echo "$modename: too many parameters to \`-version-info'" 1>&2 3238 - $echo "$help" 1>&2 3239 - exit $EXIT_FAILURE 3240 - fi 3241 - 3242 - # convert absolute version numbers to libtool ages 3243 - # this retains compatibility with .la files and attempts 3244 - # to make the code below a bit more comprehensible 3245 - 3246 - case $vinfo_number in 3247 - yes) 3248 - number_major="$2" 3249 - number_minor="$3" 3250 - number_revision="$4" 3251 - # 3252 - # There are really only two kinds -- those that 3253 - # use the current revision as the major version 3254 - # and those that subtract age and use age as 3255 - # a minor version. But, then there is irix 3256 - # which has an extra 1 added just for fun 3257 - # 3258 - case $version_type in 3259 - darwin|linux|osf|windows|none) 3260 - current=`expr $number_major + $number_minor` 3261 - age="$number_minor" 3262 - revision="$number_revision" 3263 - ;; 3264 - freebsd-aout|freebsd-elf|sunos) 3265 - current="$number_major" 3266 - revision="$number_minor" 3267 - age="0" 3268 - ;; 3269 - irix|nonstopux) 3270 - current=`expr $number_major + $number_minor` 3271 - age="$number_minor" 3272 - revision="$number_minor" 3273 - lt_irix_increment=no 3274 - ;; 3275 - *) 3276 - $echo "$modename: unknown library version type \`$version_type'" 1>&2 3277 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 3278 - exit $EXIT_FAILURE 3279 - ;; 3280 - esac 3281 - ;; 3282 - no) 3283 - current="$2" 3284 - revision="$3" 3285 - age="$4" 3286 - ;; 3287 - esac 3288 - 3289 - # Check that each of the things are valid numbers. 3290 - case $current in 3291 - 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]) ;; 3292 - *) 3293 - $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 3294 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 3295 - exit $EXIT_FAILURE 3296 - ;; 3297 - esac 3298 - 3299 - case $revision in 3300 - 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]) ;; 3301 - *) 3302 - $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 3303 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 3304 - exit $EXIT_FAILURE 3305 - ;; 3306 - esac 3307 - 3308 - case $age in 3309 - 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]) ;; 3310 - *) 3311 - $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 3312 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 3313 - exit $EXIT_FAILURE 3314 - ;; 3315 - esac 3316 - 3317 - if test "$age" -gt "$current"; then 3318 - $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 3319 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 3320 - exit $EXIT_FAILURE 3321 - fi 3322 - 3323 - # Calculate the version variables. 3324 - major= 3325 - versuffix= 3326 - verstring= 3327 - case $version_type in 3328 - none) ;; 3329 - 3330 - darwin) 3331 - # Like Linux, but with the current version available in 3332 - # verstring for coding it into the library header 3333 - major=.`expr $current - $age` 3334 - versuffix="$major.$age.$revision" 3335 - # Darwin ld doesn't like 0 for these options... 3336 - minor_current=`expr $current + 1` 3337 - xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" 3338 - verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" 3339 - ;; 3340 - 3341 - freebsd-aout) 3342 - major=".$current" 3343 - versuffix=".$current.$revision"; 3344 - ;; 3345 - 3346 - freebsd-elf) 3347 - major=".$current" 3348 - versuffix=".$current"; 3349 - ;; 3350 - 3351 - irix | nonstopux) 3352 - if test "X$lt_irix_increment" = "Xno"; then 3353 - major=`expr $current - $age` 3354 - else 3355 - major=`expr $current - $age + 1` 3356 - fi 3357 - case $version_type in 3358 - nonstopux) verstring_prefix=nonstopux ;; 3359 - *) verstring_prefix=sgi ;; 3360 - esac 3361 - verstring="$verstring_prefix$major.$revision" 3362 - 3363 - # Add in all the interfaces that we are compatible with. 3364 - loop=$revision 3365 - while test "$loop" -ne 0; do 3366 - iface=`expr $revision - $loop` 3367 - loop=`expr $loop - 1` 3368 - verstring="$verstring_prefix$major.$iface:$verstring" 3369 - done 3370 - 3371 - # Before this point, $major must not contain `.'. 3372 - major=.$major 3373 - versuffix="$major.$revision" 3374 - ;; 3375 - 3376 - linux) 3377 - major=.`expr $current - $age` 3378 - versuffix="$major.$age.$revision" 3379 - ;; 3380 - 3381 - osf) 3382 - major=.`expr $current - $age` 3383 - versuffix=".$current.$age.$revision" 3384 - verstring="$current.$age.$revision" 3385 - 3386 - # Add in all the interfaces that we are compatible with. 3387 - loop=$age 3388 - while test "$loop" -ne 0; do 3389 - iface=`expr $current - $loop` 3390 - loop=`expr $loop - 1` 3391 - verstring="$verstring:${iface}.0" 3392 - done 3393 - 3394 - # Make executables depend on our current version. 3395 - verstring="$verstring:${current}.0" 3396 - ;; 3397 - 3398 - sunos) 3399 - major=".$current" 3400 - versuffix=".$current.$revision" 3401 - ;; 3402 - 3403 - windows) 3404 - # Use '-' rather than '.', since we only want one 3405 - # extension on DOS 8.3 filesystems. 3406 - major=`expr $current - $age` 3407 - versuffix="-$major" 3408 - ;; 3409 - 3410 - *) 3411 - $echo "$modename: unknown library version type \`$version_type'" 1>&2 3412 - $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 3413 - exit $EXIT_FAILURE 3414 - ;; 3415 - esac 3416 - 3417 - # Clear the version info if we defaulted, and they specified a release. 3418 - if test -z "$vinfo" && test -n "$release"; then 3419 - major= 3420 - case $version_type in 3421 - darwin) 3422 - # we can't check for "0.0" in archive_cmds due to quoting 3423 - # problems, so we reset it completely 3424 - verstring= 3425 - ;; 3426 - *) 3427 - verstring="0.0" 3428 - ;; 3429 - esac 3430 - if test "$need_version" = no; then 3431 - versuffix= 3432 - else 3433 - versuffix=".0.0" 3434 - fi 3435 - fi 3436 - 3437 - # Remove version info from name if versioning should be avoided 3438 - if test "$avoid_version" = yes && test "$need_version" = no; then 3439 - major= 3440 - versuffix= 3441 - verstring="" 3442 - fi 3443 - 3444 - # Check to see if the archive will have undefined symbols. 3445 - if test "$allow_undefined" = yes; then 3446 - if test "$allow_undefined_flag" = unsupported; then 3447 - $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 3448 - build_libtool_libs=no 3449 - build_old_libs=yes 3450 - fi 3451 - else 3452 - # Don't allow undefined symbols. 3453 - allow_undefined_flag="$no_undefined_flag" 3454 - fi 3455 - fi 3456 - 3457 - if test "$mode" != relink; then 3458 - # Remove our outputs, but don't remove object files since they 3459 - # may have been created when compiling PIC objects. 3460 - removelist= 3461 - tempremovelist=`$echo "$output_objdir/*"` 3462 - for p in $tempremovelist; do 3463 - case $p in 3464 - *.$objext) 3465 - ;; 3466 - $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) 3467 - if test "X$precious_files_regex" != "X"; then 3468 - if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 3469 - then 3470 - continue 3471 - fi 3472 - fi 3473 - removelist="$removelist $p" 3474 - ;; 3475 - *) ;; 3476 - esac 3477 - done 3478 - if test -n "$removelist"; then 3479 - $show "${rm}r $removelist" 3480 - $run ${rm}r $removelist 3481 - fi 3482 - fi 3483 - 3484 - # Now set the variables for building old libraries. 3485 - if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then 3486 - oldlibs="$oldlibs $output_objdir/$libname.$libext" 3487 - 3488 - # Transform .lo files to .o files. 3489 - oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` 3490 - fi 3491 - 3492 - # Eliminate all temporary directories. 3493 - #for path in $notinst_path; do 3494 - # lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` 3495 - # deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` 3496 - # dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` 3497 - #done 3498 - 3499 - if test -n "$xrpath"; then 3500 - # If the user specified any rpath flags, then add them. 3501 - temp_xrpath= 3502 - for libdir in $xrpath; do 3503 - temp_xrpath="$temp_xrpath -R$libdir" 3504 - case "$finalize_rpath " in 3505 - *" $libdir "*) ;; 3506 - *) finalize_rpath="$finalize_rpath $libdir" ;; 3507 - esac 3508 - done 3509 - if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then 3510 - dependency_libs="$temp_xrpath $dependency_libs" 3511 - fi 3512 - fi 3513 - 3514 - # Make sure dlfiles contains only unique files that won't be dlpreopened 3515 - old_dlfiles="$dlfiles" 3516 - dlfiles= 3517 - for lib in $old_dlfiles; do 3518 - case " $dlprefiles $dlfiles " in 3519 - *" $lib "*) ;; 3520 - *) dlfiles="$dlfiles $lib" ;; 3521 - esac 3522 - done 3523 - 3524 - # Make sure dlprefiles contains only unique files 3525 - old_dlprefiles="$dlprefiles" 3526 - dlprefiles= 3527 - for lib in $old_dlprefiles; do 3528 - case "$dlprefiles " in 3529 - *" $lib "*) ;; 3530 - *) dlprefiles="$dlprefiles $lib" ;; 3531 - esac 3532 - done 3533 - 3534 - if test "$build_libtool_libs" = yes; then 3535 - if test -n "$rpath"; then 3536 - case $host in 3537 - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) 3538 - # these systems don't actually have a c library (as such)! 3539 - ;; 3540 - *-*-rhapsody* | *-*-darwin1.[012]) 3541 - # Rhapsody C library is in the System framework 3542 - deplibs="$deplibs -framework System" 3543 - ;; 3544 - *-*-netbsd*) 3545 - # Don't link with libc until the a.out ld.so is fixed. 3546 - ;; 3547 - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) 3548 - # Do not include libc due to us having libc/libc_r. 3549 - ;; 3550 - *-*-sco3.2v5* | *-*-sco5v6*) 3551 - # Causes problems with __ctype 3552 - ;; 3553 - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) 3554 - # Compiler inserts libc in the correct place for threads to work 3555 - ;; 3556 - *) 3557 - # Add libc to deplibs on all other systems if necessary. 3558 - if test "$build_libtool_need_lc" = "yes"; then 3559 - deplibs="$deplibs -lc" 3560 - fi 3561 - ;; 3562 - esac 3563 - fi 3564 - 3565 - # Transform deplibs into only deplibs that can be linked in shared. 3566 - name_save=$name 3567 - libname_save=$libname 3568 - release_save=$release 3569 - versuffix_save=$versuffix 3570 - major_save=$major 3571 - # I'm not sure if I'm treating the release correctly. I think 3572 - # release should show up in the -l (ie -lgmp5) so we don't want to 3573 - # add it in twice. Is that correct? 3574 - release="" 3575 - versuffix="" 3576 - major="" 3577 - newdeplibs= 3578 - droppeddeps=no 3579 - case $deplibs_check_method in 3580 - pass_all) 3581 - # Don't check for shared/static. Everything works. 3582 - # This might be a little naive. We might want to check 3583 - # whether the library exists or not. But this is on 3584 - # osf3 & osf4 and I'm not really sure... Just 3585 - # implementing what was already the behavior. 3586 - newdeplibs=$deplibs 3587 - ;; 3588 - test_compile) 3589 - # This code stresses the "libraries are programs" paradigm to its 3590 - # limits. Maybe even breaks it. We compile a program, linking it 3591 - # against the deplibs as a proxy for the library. Then we can check 3592 - # whether they linked in statically or dynamically with ldd. 3593 - $rm conftest.c 3594 - cat > conftest.c <<EOF 3595 - int main() { return 0; } 3596 -EOF 3597 - $rm conftest 3598 - if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then 3599 - ldd_output=`ldd conftest` 3600 - for i in $deplibs; do 3601 - name=`expr $i : '-l\(.*\)'` 3602 - # If $name is empty we are operating on a -L argument. 3603 - if test "$name" != "" && test "$name" != "0"; then 3604 - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 3605 - case " $predeps $postdeps " in 3606 - *" $i "*) 3607 - newdeplibs="$newdeplibs $i" 3608 - i="" 3609 - ;; 3610 - esac 3611 - fi 3612 - if test -n "$i" ; then 3613 - libname=`eval \\$echo \"$libname_spec\"` 3614 - deplib_matches=`eval \\$echo \"$library_names_spec\"` 3615 - set dummy $deplib_matches 3616 - deplib_match=$2 3617 - if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 3618 - newdeplibs="$newdeplibs $i" 3619 - else 3620 - droppeddeps=yes 3621 - $echo 3622 - $echo "*** Warning: dynamic linker does not accept needed library $i." 3623 - $echo "*** I have the capability to make that library automatically link in when" 3624 - $echo "*** you link to this library. But I can only do this if you have a" 3625 - $echo "*** shared version of the library, which I believe you do not have" 3626 - $echo "*** because a test_compile did reveal that the linker did not use it for" 3627 - $echo "*** its dynamic dependency list that programs get resolved with at runtime." 3628 - fi 3629 - fi 3630 - else 3631 - newdeplibs="$newdeplibs $i" 3632 - fi 3633 - done 3634 - else 3635 - # Error occurred in the first compile. Let's try to salvage 3636 - # the situation: Compile a separate program for each library. 3637 - for i in $deplibs; do 3638 - name=`expr $i : '-l\(.*\)'` 3639 - # If $name is empty we are operating on a -L argument. 3640 - if test "$name" != "" && test "$name" != "0"; then 3641 - $rm conftest 3642 - if $LTCC $LTCFLAGS -o conftest conftest.c $i; then 3643 - ldd_output=`ldd conftest` 3644 - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 3645 - case " $predeps $postdeps " in 3646 - *" $i "*) 3647 - newdeplibs="$newdeplibs $i" 3648 - i="" 3649 - ;; 3650 - esac 3651 - fi 3652 - if test -n "$i" ; then 3653 - libname=`eval \\$echo \"$libname_spec\"` 3654 - deplib_matches=`eval \\$echo \"$library_names_spec\"` 3655 - set dummy $deplib_matches 3656 - deplib_match=$2 3657 - if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then 3658 - newdeplibs="$newdeplibs $i" 3659 - else 3660 - droppeddeps=yes 3661 - $echo 3662 - $echo "*** Warning: dynamic linker does not accept needed library $i." 3663 - $echo "*** I have the capability to make that library automatically link in when" 3664 - $echo "*** you link to this library. But I can only do this if you have a" 3665 - $echo "*** shared version of the library, which you do not appear to have" 3666 - $echo "*** because a test_compile did reveal that the linker did not use this one" 3667 - $echo "*** as a dynamic dependency that programs can get resolved with at runtime." 3668 - fi 3669 - fi 3670 - else 3671 - droppeddeps=yes 3672 - $echo 3673 - $echo "*** Warning! Library $i is needed by this library but I was not able to" 3674 - $echo "*** make it link in! You will probably need to install it or some" 3675 - $echo "*** library that it depends on before this library will be fully" 3676 - $echo "*** functional. Installing it before continuing would be even better." 3677 - fi 3678 - else 3679 - newdeplibs="$newdeplibs $i" 3680 - fi 3681 - done 3682 - fi 3683 - ;; 3684 - file_magic*) 3685 - set dummy $deplibs_check_method 3686 - file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 3687 - for a_deplib in $deplibs; do 3688 - name=`expr $a_deplib : '-l\(.*\)'` 3689 - # If $name is empty we are operating on a -L argument. 3690 - if test "$name" != "" && test "$name" != "0"; then 3691 - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 3692 - case " $predeps $postdeps " in 3693 - *" $a_deplib "*) 3694 - newdeplibs="$newdeplibs $a_deplib" 3695 - a_deplib="" 3696 - ;; 3697 - esac 3698 - fi 3699 - if test -n "$a_deplib" ; then 3700 - libname=`eval \\$echo \"$libname_spec\"` 3701 - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 3702 - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` 3703 - for potent_lib in $potential_libs; do 3704 - # Follow soft links. 3705 - if ls -lLd "$potent_lib" 2>/dev/null \ 3706 - | grep " -> " >/dev/null; then 3707 - continue 3708 - fi 3709 - # The statement above tries to avoid entering an 3710 - # endless loop below, in case of cyclic links. 3711 - # We might still enter an endless loop, since a link 3712 - # loop can be closed while we follow links, 3713 - # but so what? 3714 - potlib="$potent_lib" 3715 - while test -h "$potlib" 2>/dev/null; do 3716 - potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` 3717 - case $potliblink in 3718 - [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; 3719 - *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; 3720 - esac 3721 - done 3722 - if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ 3723 - | ${SED} 10q \ 3724 - | $EGREP "$file_magic_regex" > /dev/null; then 3725 - newdeplibs="$newdeplibs $a_deplib" 3726 - a_deplib="" 3727 - break 2 3728 - fi 3729 - done 3730 - done 3731 - fi 3732 - if test -n "$a_deplib" ; then 3733 - droppeddeps=yes 3734 - $echo 3735 - $echo "*** Warning: linker path does not have real file for library $a_deplib." 3736 - $echo "*** I have the capability to make that library automatically link in when" 3737 - $echo "*** you link to this library. But I can only do this if you have a" 3738 - $echo "*** shared version of the library, which you do not appear to have" 3739 - $echo "*** because I did check the linker path looking for a file starting" 3740 - if test -z "$potlib" ; then 3741 - $echo "*** with $libname but no candidates were found. (...for file magic test)" 3742 - else 3743 - $echo "*** with $libname and none of the candidates passed a file format test" 3744 - $echo "*** using a file magic. Last file checked: $potlib" 3745 - fi 3746 - fi 3747 - else 3748 - # Add a -L argument. 3749 - newdeplibs="$newdeplibs $a_deplib" 3750 - fi 3751 - done # Gone through all deplibs. 3752 - ;; 3753 - match_pattern*) 3754 - set dummy $deplibs_check_method 3755 - match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` 3756 - for a_deplib in $deplibs; do 3757 - name=`expr $a_deplib : '-l\(.*\)'` 3758 - # If $name is empty we are operating on a -L argument. 3759 - if test -n "$name" && test "$name" != "0"; then 3760 - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 3761 - case " $predeps $postdeps " in 3762 - *" $a_deplib "*) 3763 - newdeplibs="$newdeplibs $a_deplib" 3764 - a_deplib="" 3765 - ;; 3766 - esac 3767 - fi 3768 - if test -n "$a_deplib" ; then 3769 - libname=`eval \\$echo \"$libname_spec\"` 3770 - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do 3771 - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` 3772 - for potent_lib in $potential_libs; do 3773 - potlib="$potent_lib" # see symlink-check above in file_magic test 3774 - if eval $echo \"$potent_lib\" 2>/dev/null \ 3775 - | ${SED} 10q \ 3776 - | $EGREP "$match_pattern_regex" > /dev/null; then 3777 - newdeplibs="$newdeplibs $a_deplib" 3778 - a_deplib="" 3779 - break 2 3780 - fi 3781 - done 3782 - done 3783 - fi 3784 - if test -n "$a_deplib" ; then 3785 - droppeddeps=yes 3786 - $echo 3787 - $echo "*** Warning: linker path does not have real file for library $a_deplib." 3788 - $echo "*** I have the capability to make that library automatically link in when" 3789 - $echo "*** you link to this library. But I can only do this if you have a" 3790 - $echo "*** shared version of the library, which you do not appear to have" 3791 - $echo "*** because I did check the linker path looking for a file starting" 3792 - if test -z "$potlib" ; then 3793 - $echo "*** with $libname but no candidates were found. (...for regex pattern test)" 3794 - else 3795 - $echo "*** with $libname and none of the candidates passed a file format test" 3796 - $echo "*** using a regex pattern. Last file checked: $potlib" 3797 - fi 3798 - fi 3799 - else 3800 - # Add a -L argument. 3801 - newdeplibs="$newdeplibs $a_deplib" 3802 - fi 3803 - done # Gone through all deplibs. 3804 - ;; 3805 - none | unknown | *) 3806 - newdeplibs="" 3807 - tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ 3808 - -e 's/ -[LR][^ ]*//g'` 3809 - if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then 3810 - for i in $predeps $postdeps ; do 3811 - # can't use Xsed below, because $i might contain '/' 3812 - tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` 3813 - done 3814 - fi 3815 - if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ 3816 - | grep . >/dev/null; then 3817 - $echo 3818 - if test "X$deplibs_check_method" = "Xnone"; then 3819 - $echo "*** Warning: inter-library dependencies are not supported in this platform." 3820 - else 3821 - $echo "*** Warning: inter-library dependencies are not known to be supported." 3822 - fi 3823 - $echo "*** All declared inter-library dependencies are being dropped." 3824 - droppeddeps=yes 3825 - fi 3826 - ;; 3827 - esac 3828 - versuffix=$versuffix_save 3829 - major=$major_save 3830 - release=$release_save 3831 - libname=$libname_save 3832 - name=$name_save 3833 - 3834 - case $host in 3835 - *-*-rhapsody* | *-*-darwin1.[012]) 3836 - # On Rhapsody replace the C library is the System framework 3837 - newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` 3838 - ;; 3839 - esac 3840 - 3841 - if test "$droppeddeps" = yes; then 3842 - if test "$module" = yes; then 3843 - $echo 3844 - $echo "*** Warning: libtool could not satisfy all declared inter-library" 3845 - $echo "*** dependencies of module $libname. Therefore, libtool will create" 3846 - $echo "*** a static module, that should work as long as the dlopening" 3847 - $echo "*** application is linked with the -dlopen flag." 3848 - if test -z "$global_symbol_pipe"; then 3849 - $echo 3850 - $echo "*** However, this would only work if libtool was able to extract symbol" 3851 - $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" 3852 - $echo "*** not find such a program. So, this module is probably useless." 3853 - $echo "*** \`nm' from GNU binutils and a full rebuild may help." 3854 - fi 3855 - if test "$build_old_libs" = no; then 3856 - oldlibs="$output_objdir/$libname.$libext" 3857 - build_libtool_libs=module 3858 - build_old_libs=yes 3859 - else 3860 - build_libtool_libs=no 3861 - fi 3862 - else 3863 - $echo "*** The inter-library dependencies that have been dropped here will be" 3864 - $echo "*** automatically added whenever a program is linked with this library" 3865 - $echo "*** or is declared to -dlopen it." 3866 - 3867 - if test "$allow_undefined" = no; then 3868 - $echo 3869 - $echo "*** Since this library must not contain undefined symbols," 3870 - $echo "*** because either the platform does not support them or" 3871 - $echo "*** it was explicitly requested with -no-undefined," 3872 - $echo "*** libtool will only create a static version of it." 3873 - if test "$build_old_libs" = no; then 3874 - oldlibs="$output_objdir/$libname.$libext" 3875 - build_libtool_libs=module 3876 - build_old_libs=yes 3877 - else 3878 - build_libtool_libs=no 3879 - fi 3880 - fi 3881 - fi 3882 - fi 3883 - # Done checking deplibs! 3884 - deplibs=$newdeplibs 3885 - fi 3886 - 3887 - 3888 - # move library search paths that coincide with paths to not yet 3889 - # installed libraries to the beginning of the library search list 3890 - new_libs= 3891 - for path in $notinst_path; do 3892 - case " $new_libs " in 3893 - *" -L$path/$objdir "*) ;; 3894 - *) 3895 - case " $deplibs " in 3896 - *" -L$path/$objdir "*) 3897 - new_libs="$new_libs -L$path/$objdir" ;; 3898 - esac 3899 - ;; 3900 - esac 3901 - done 3902 - for deplib in $deplibs; do 3903 - case $deplib in 3904 - -L*) 3905 - case " $new_libs " in 3906 - *" $deplib "*) ;; 3907 - *) new_libs="$new_libs $deplib" ;; 3908 - esac 3909 - ;; 3910 - *) new_libs="$new_libs $deplib" ;; 3911 - esac 3912 - done 3913 - deplibs="$new_libs" 3914 - 3915 - 3916 - # All the library-specific variables (install_libdir is set above). 3917 - library_names= 3918 - old_library= 3919 - dlname= 3920 - 3921 - # Test again, we may have decided not to build it any more 3922 - if test "$build_libtool_libs" = yes; then 3923 - if test "$hardcode_into_libs" = yes; then 3924 - # Hardcode the library paths 3925 - hardcode_libdirs= 3926 - dep_rpath= 3927 - rpath="$finalize_rpath" 3928 - test "$mode" != relink && rpath="$compile_rpath$rpath" 3929 - for libdir in $rpath; do 3930 - if test -n "$hardcode_libdir_flag_spec"; then 3931 - if test -n "$hardcode_libdir_separator"; then 3932 - if test -z "$hardcode_libdirs"; then 3933 - hardcode_libdirs="$libdir" 3934 - else 3935 - # Just accumulate the unique libdirs. 3936 - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 3937 - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 3938 - ;; 3939 - *) 3940 - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 3941 - ;; 3942 - esac 3943 - fi 3944 - else 3945 - eval flag=\"$hardcode_libdir_flag_spec\" 3946 - dep_rpath="$dep_rpath $flag" 3947 - fi 3948 - elif test -n "$runpath_var"; then 3949 - case "$perm_rpath " in 3950 - *" $libdir "*) ;; 3951 - *) perm_rpath="$perm_rpath $libdir" ;; 3952 - esac 3953 - fi 3954 - done 3955 - # Substitute the hardcoded libdirs into the rpath. 3956 - if test -n "$hardcode_libdir_separator" && 3957 - test -n "$hardcode_libdirs"; then 3958 - libdir="$hardcode_libdirs" 3959 - if test -n "$hardcode_libdir_flag_spec_ld"; then 3960 - case $archive_cmds in 3961 - *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;; 3962 - *) eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;; 3963 - esac 3964 - else 3965 - eval dep_rpath=\"$hardcode_libdir_flag_spec\" 3966 - fi 3967 - fi 3968 - if test -n "$runpath_var" && test -n "$perm_rpath"; then 3969 - # We should set the runpath_var. 3970 - rpath= 3971 - for dir in $perm_rpath; do 3972 - rpath="$rpath$dir:" 3973 - done 3974 - eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" 3975 - fi 3976 - test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" 3977 - fi 3978 - 3979 - shlibpath="$finalize_shlibpath" 3980 - test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" 3981 - if test -n "$shlibpath"; then 3982 - eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" 3983 - fi 3984 - 3985 - # Get the real and link names of the library. 3986 - eval shared_ext=\"$shrext_cmds\" 3987 - eval library_names=\"$library_names_spec\" 3988 - set dummy $library_names 3989 - realname="$2" 3990 - shift; shift 3991 - 3992 - if test -n "$soname_spec"; then 3993 - eval soname=\"$soname_spec\" 3994 - else 3995 - soname="$realname" 3996 - fi 3997 - if test -z "$dlname"; then 3998 - dlname=$soname 3999 - fi 4000 - 4001 - lib="$output_objdir/$realname" 4002 - linknames= 4003 - for link 4004 - do 4005 - linknames="$linknames $link" 4006 - done 4007 - 4008 - # Use standard objects if they are pic 4009 - test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 4010 - 4011 - # Prepare the list of exported symbols 4012 - if test -z "$export_symbols"; then 4013 - if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then 4014 - $show "generating symbol list for \`$libname.la'" 4015 - export_symbols="$output_objdir/$libname.exp" 4016 - $run $rm $export_symbols 4017 - cmds=$export_symbols_cmds 4018 - save_ifs="$IFS"; IFS='~' 4019 - for cmd in $cmds; do 4020 - IFS="$save_ifs" 4021 - eval cmd=\"$cmd\" 4022 - if len=`expr "X$cmd" : ".*"` && 4023 - test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then 4024 - $show "$cmd" 4025 - $run eval "$cmd" || exit $? 4026 - skipped_export=false 4027 - else 4028 - # The command line is too long to execute in one step. 4029 - $show "using reloadable object file for export list..." 4030 - skipped_export=: 4031 - # Break out early, otherwise skipped_export may be 4032 - # set to false by a later but shorter cmd. 4033 - break 4034 - fi 4035 - done 4036 - IFS="$save_ifs" 4037 - if test -n "$export_symbols_regex"; then 4038 - $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" 4039 - $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' 4040 - $show "$mv \"${export_symbols}T\" \"$export_symbols\"" 4041 - $run eval '$mv "${export_symbols}T" "$export_symbols"' 4042 - fi 4043 - fi 4044 - fi 4045 - 4046 - if test -n "$export_symbols" && test -n "$include_expsyms"; then 4047 - $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' 4048 - fi 4049 - 4050 - tmp_deplibs= 4051 - for test_deplib in $deplibs; do 4052 - case " $convenience " in 4053 - *" $test_deplib "*) ;; 4054 - *) 4055 - tmp_deplibs="$tmp_deplibs $test_deplib" 4056 - ;; 4057 - esac 4058 - done 4059 - deplibs="$tmp_deplibs" 4060 - 4061 - if test -n "$convenience"; then 4062 - if test -n "$whole_archive_flag_spec"; then 4063 - save_libobjs=$libobjs 4064 - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 4065 - else 4066 - gentop="$output_objdir/${outputname}x" 4067 - generated="$generated $gentop" 4068 - 4069 - func_extract_archives $gentop $convenience 4070 - libobjs="$libobjs $func_extract_archives_result" 4071 - fi 4072 - fi 4073 - 4074 - if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then 4075 - eval flag=\"$thread_safe_flag_spec\" 4076 - linker_flags="$linker_flags $flag" 4077 - fi 4078 - 4079 - # Make a backup of the uninstalled library when relinking 4080 - if test "$mode" = relink; then 4081 - $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? 4082 - fi 4083 - 4084 - # Do each of the archive commands. 4085 - if test "$module" = yes && test -n "$module_cmds" ; then 4086 - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then 4087 - eval test_cmds=\"$module_expsym_cmds\" 4088 - cmds=$module_expsym_cmds 4089 - else 4090 - eval test_cmds=\"$module_cmds\" 4091 - cmds=$module_cmds 4092 - fi 4093 - else 4094 - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then 4095 - eval test_cmds=\"$archive_expsym_cmds\" 4096 - cmds=$archive_expsym_cmds 4097 - else 4098 - eval test_cmds=\"$archive_cmds\" 4099 - cmds=$archive_cmds 4100 - fi 4101 - fi 4102 - 4103 - if test "X$skipped_export" != "X:" && 4104 - len=`expr "X$test_cmds" : ".*" 2>/dev/null` && 4105 - test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then 4106 - : 4107 - else 4108 - # The command line is too long to link in one step, link piecewise. 4109 - $echo "creating reloadable object files..." 4110 - 4111 - # Save the value of $output and $libobjs because we want to 4112 - # use them later. If we have whole_archive_flag_spec, we 4113 - # want to use save_libobjs as it was before 4114 - # whole_archive_flag_spec was expanded, because we can't 4115 - # assume the linker understands whole_archive_flag_spec. 4116 - # This may have to be revisited, in case too many 4117 - # convenience libraries get linked in and end up exceeding 4118 - # the spec. 4119 - if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then 4120 - save_libobjs=$libobjs 4121 - fi 4122 - save_output=$output 4123 - output_la=`$echo "X$output" | $Xsed -e "$basename"` 4124 - 4125 - # Clear the reloadable object creation command queue and 4126 - # initialize k to one. 4127 - test_cmds= 4128 - concat_cmds= 4129 - objlist= 4130 - delfiles= 4131 - last_robj= 4132 - k=1 4133 - output=$output_objdir/$output_la-${k}.$objext 4134 - # Loop over the list of objects to be linked. 4135 - for obj in $save_libobjs 4136 - do 4137 - eval test_cmds=\"$reload_cmds $objlist $last_robj\" 4138 - if test "X$objlist" = X || 4139 - { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && 4140 - test "$len" -le "$max_cmd_len"; }; then 4141 - objlist="$objlist $obj" 4142 - else 4143 - # The command $test_cmds is almost too long, add a 4144 - # command to the queue. 4145 - if test "$k" -eq 1 ; then 4146 - # The first file doesn't have a previous command to add. 4147 - eval concat_cmds=\"$reload_cmds $objlist $last_robj\" 4148 - else 4149 - # All subsequent reloadable object files will link in 4150 - # the last one created. 4151 - eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" 4152 - fi 4153 - last_robj=$output_objdir/$output_la-${k}.$objext 4154 - k=`expr $k + 1` 4155 - output=$output_objdir/$output_la-${k}.$objext 4156 - objlist=$obj 4157 - len=1 4158 - fi 4159 - done 4160 - # Handle the remaining objects by creating one last 4161 - # reloadable object file. All subsequent reloadable object 4162 - # files will link in the last one created. 4163 - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 4164 - eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" 4165 - 4166 - if ${skipped_export-false}; then 4167 - $show "generating symbol list for \`$libname.la'" 4168 - export_symbols="$output_objdir/$libname.exp" 4169 - $run $rm $export_symbols 4170 - libobjs=$output 4171 - # Append the command to create the export file. 4172 - eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" 4173 - fi 4174 - 4175 - # Set up a command to remove the reloadable object files 4176 - # after they are used. 4177 - i=0 4178 - while test "$i" -lt "$k" 4179 - do 4180 - i=`expr $i + 1` 4181 - delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" 4182 - done 4183 - 4184 - $echo "creating a temporary reloadable object file: $output" 4185 - 4186 - # Loop through the commands generated above and execute them. 4187 - save_ifs="$IFS"; IFS='~' 4188 - for cmd in $concat_cmds; do 4189 - IFS="$save_ifs" 4190 - $show "$cmd" 4191 - $run eval "$cmd" || exit $? 4192 - done 4193 - IFS="$save_ifs" 4194 - 4195 - libobjs=$output 4196 - # Restore the value of output. 4197 - output=$save_output 4198 - 4199 - if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then 4200 - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" 4201 - fi 4202 - # Expand the library linking commands again to reset the 4203 - # value of $libobjs for piecewise linking. 4204 - 4205 - # Do each of the archive commands. 4206 - if test "$module" = yes && test -n "$module_cmds" ; then 4207 - if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then 4208 - cmds=$module_expsym_cmds 4209 - else 4210 - cmds=$module_cmds 4211 - fi 4212 - else 4213 - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then 4214 - cmds=$archive_expsym_cmds 4215 - else 4216 - cmds=$archive_cmds 4217 - fi 4218 - fi 4219 - 4220 - # Append the command to remove the reloadable object files 4221 - # to the just-reset $cmds. 4222 - eval cmds=\"\$cmds~\$rm $delfiles\" 4223 - fi 4224 - save_ifs="$IFS"; IFS='~' 4225 - for cmd in $cmds; do 4226 - IFS="$save_ifs" 4227 - eval cmd=\"$cmd\" 4228 - $show "$cmd" 4229 - $run eval "$cmd" || { 4230 - lt_exit=$? 4231 - 4232 - # Restore the uninstalled library and exit 4233 - if test "$mode" = relink; then 4234 - $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' 4235 - fi 4236 - 4237 - exit $lt_exit 4238 - } 4239 - done 4240 - IFS="$save_ifs" 4241 - 4242 - # Restore the uninstalled library and exit 4243 - if test "$mode" = relink; then 4244 - $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? 4245 - 4246 - if test -n "$convenience"; then 4247 - if test -z "$whole_archive_flag_spec"; then 4248 - $show "${rm}r $gentop" 4249 - $run ${rm}r "$gentop" 4250 - fi 4251 - fi 4252 - 4253 - exit $EXIT_SUCCESS 4254 - fi 4255 - 4256 - # Create links to the real library. 4257 - for linkname in $linknames; do 4258 - if test "$realname" != "$linkname"; then 4259 - $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" 4260 - $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? 4261 - fi 4262 - done 4263 - 4264 - # If -module or -export-dynamic was specified, set the dlname. 4265 - if test "$module" = yes || test "$export_dynamic" = yes; then 4266 - # On all known operating systems, these are identical. 4267 - dlname="$soname" 4268 - fi 4269 - fi 4270 - ;; 4271 - 4272 - obj) 4273 - case " $deplibs" in 4274 - *\ -l* | *\ -L*) 4275 - $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 ;; 4276 - esac 4277 - 4278 - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 4279 - $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 4280 - fi 4281 - 4282 - if test -n "$rpath"; then 4283 - $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 4284 - fi 4285 - 4286 - if test -n "$xrpath"; then 4287 - $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 4288 - fi 4289 - 4290 - if test -n "$vinfo"; then 4291 - $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 4292 - fi 4293 - 4294 - if test -n "$release"; then 4295 - $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 4296 - fi 4297 - 4298 - case $output in 4299 - *.lo) 4300 - if test -n "$objs$old_deplibs"; then 4301 - $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 4302 - exit $EXIT_FAILURE 4303 - fi 4304 - libobj="$output" 4305 - obj=`$echo "X$output" | $Xsed -e "$lo2o"` 4306 - ;; 4307 - *) 4308 - libobj= 4309 - obj="$output" 4310 - ;; 4311 - esac 4312 - 4313 - # Delete the old objects. 4314 - $run $rm $obj $libobj 4315 - 4316 - # Objects from convenience libraries. This assumes 4317 - # single-version convenience libraries. Whenever we create 4318 - # different ones for PIC/non-PIC, this we'll have to duplicate 4319 - # the extraction. 4320 - reload_conv_objs= 4321 - gentop= 4322 - # reload_cmds runs $LD directly, so let us get rid of 4323 - # -Wl from whole_archive_flag_spec and hope we can get by with 4324 - # turning comma into space.. 4325 - wl= 4326 - 4327 - if test -n "$convenience"; then 4328 - if test -n "$whole_archive_flag_spec"; then 4329 - eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" 4330 - reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` 4331 - else 4332 - gentop="$output_objdir/${obj}x" 4333 - generated="$generated $gentop" 4334 - 4335 - func_extract_archives $gentop $convenience 4336 - reload_conv_objs="$reload_objs $func_extract_archives_result" 4337 - fi 4338 - fi 4339 - 4340 - # Create the old-style object. 4341 - 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 4342 - 4343 - output="$obj" 4344 - cmds=$reload_cmds 4345 - save_ifs="$IFS"; IFS='~' 4346 - for cmd in $cmds; do 4347 - IFS="$save_ifs" 4348 - eval cmd=\"$cmd\" 4349 - $show "$cmd" 4350 - $run eval "$cmd" || exit $? 4351 - done 4352 - IFS="$save_ifs" 4353 - 4354 - # Exit if we aren't doing a library object file. 4355 - if test -z "$libobj"; then 4356 - if test -n "$gentop"; then 4357 - $show "${rm}r $gentop" 4358 - $run ${rm}r $gentop 4359 - fi 4360 - 4361 - exit $EXIT_SUCCESS 4362 - fi 4363 - 4364 - if test "$build_libtool_libs" != yes; then 4365 - if test -n "$gentop"; then 4366 - $show "${rm}r $gentop" 4367 - $run ${rm}r $gentop 4368 - fi 4369 - 4370 - # Create an invalid libtool object if no PIC, so that we don't 4371 - # accidentally link it into a program. 4372 - # $show "echo timestamp > $libobj" 4373 - # $run eval "echo timestamp > $libobj" || exit $? 4374 - exit $EXIT_SUCCESS 4375 - fi 4376 - 4377 - if test -n "$pic_flag" || test "$pic_mode" != default; then 4378 - # Only do commands if we really have different PIC objects. 4379 - reload_objs="$libobjs $reload_conv_objs" 4380 - output="$libobj" 4381 - cmds=$reload_cmds 4382 - save_ifs="$IFS"; IFS='~' 4383 - for cmd in $cmds; do 4384 - IFS="$save_ifs" 4385 - eval cmd=\"$cmd\" 4386 - $show "$cmd" 4387 - $run eval "$cmd" || exit $? 4388 - done 4389 - IFS="$save_ifs" 4390 - fi 4391 - 4392 - if test -n "$gentop"; then 4393 - $show "${rm}r $gentop" 4394 - $run ${rm}r $gentop 4395 - fi 4396 - 4397 - exit $EXIT_SUCCESS 4398 - ;; 4399 - 4400 - prog) 4401 - case $host in 4402 - *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; 4403 - esac 4404 - if test -n "$vinfo"; then 4405 - $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 4406 - fi 4407 - 4408 - if test -n "$release"; then 4409 - $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 4410 - fi 4411 - 4412 - if test "$preload" = yes; then 4413 - if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && 4414 - test "$dlopen_self_static" = unknown; then 4415 - $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." 4416 - fi 4417 - fi 4418 - 4419 - case $host in 4420 - *-*-rhapsody* | *-*-darwin1.[012]) 4421 - # On Rhapsody replace the C library is the System framework 4422 - compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` 4423 - finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` 4424 - ;; 4425 - esac 4426 - 4427 - case $host in 4428 - *darwin*) 4429 - # Don't allow lazy linking, it breaks C++ global constructors 4430 - if test "$tagname" = CXX ; then 4431 - compile_command="$compile_command ${wl}-bind_at_load" 4432 - finalize_command="$finalize_command ${wl}-bind_at_load" 4433 - fi 4434 - ;; 4435 - esac 4436 - 4437 - 4438 - # move library search paths that coincide with paths to not yet 4439 - # installed libraries to the beginning of the library search list 4440 - new_libs= 4441 - for path in $notinst_path; do 4442 - case " $new_libs " in 4443 - *" -L$path/$objdir "*) ;; 4444 - *) 4445 - case " $compile_deplibs " in 4446 - *" -L$path/$objdir "*) 4447 - new_libs="$new_libs -L$path/$objdir" ;; 4448 - esac 4449 - ;; 4450 - esac 4451 - done 4452 - for deplib in $compile_deplibs; do 4453 - case $deplib in 4454 - -L*) 4455 - case " $new_libs " in 4456 - *" $deplib "*) ;; 4457 - *) new_libs="$new_libs $deplib" ;; 4458 - esac 4459 - ;; 4460 - *) new_libs="$new_libs $deplib" ;; 4461 - esac 4462 - done 4463 - compile_deplibs="$new_libs" 4464 - 4465 - 4466 - compile_command="$compile_command $compile_deplibs" 4467 - finalize_command="$finalize_command $finalize_deplibs" 4468 - 4469 - if test -n "$rpath$xrpath"; then 4470 - # If the user specified any rpath flags, then add them. 4471 - for libdir in $rpath $xrpath; do 4472 - # This is the magic to use -rpath. 4473 - case "$finalize_rpath " in 4474 - *" $libdir "*) ;; 4475 - *) finalize_rpath="$finalize_rpath $libdir" ;; 4476 - esac 4477 - done 4478 - fi 4479 - 4480 - # Now hardcode the library paths 4481 - rpath= 4482 - hardcode_libdirs= 4483 - for libdir in $compile_rpath $finalize_rpath; do 4484 - if test -n "$hardcode_libdir_flag_spec"; then 4485 - if test -n "$hardcode_libdir_separator"; then 4486 - if test -z "$hardcode_libdirs"; then 4487 - hardcode_libdirs="$libdir" 4488 - else 4489 - # Just accumulate the unique libdirs. 4490 - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 4491 - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 4492 - ;; 4493 - *) 4494 - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 4495 - ;; 4496 - esac 4497 - fi 4498 - else 4499 - eval flag=\"$hardcode_libdir_flag_spec\" 4500 - rpath="$rpath $flag" 4501 - fi 4502 - elif test -n "$runpath_var"; then 4503 - case "$perm_rpath " in 4504 - *" $libdir "*) ;; 4505 - *) perm_rpath="$perm_rpath $libdir" ;; 4506 - esac 4507 - fi 4508 - case $host in 4509 - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) 4510 - testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` 4511 - case :$dllsearchpath: in 4512 - *":$libdir:"*) ;; 4513 - *) dllsearchpath="$dllsearchpath:$libdir";; 4514 - esac 4515 - case :$dllsearchpath: in 4516 - *":$testbindir:"*) ;; 4517 - *) dllsearchpath="$dllsearchpath:$testbindir";; 4518 - esac 4519 - ;; 4520 - esac 4521 - done 4522 - # Substitute the hardcoded libdirs into the rpath. 4523 - if test -n "$hardcode_libdir_separator" && 4524 - test -n "$hardcode_libdirs"; then 4525 - libdir="$hardcode_libdirs" 4526 - eval rpath=\" $hardcode_libdir_flag_spec\" 4527 - fi 4528 - compile_rpath="$rpath" 4529 - 4530 - rpath= 4531 - hardcode_libdirs= 4532 - for libdir in $finalize_rpath; do 4533 - if test -n "$hardcode_libdir_flag_spec"; then 4534 - if test -n "$hardcode_libdir_separator"; then 4535 - if test -z "$hardcode_libdirs"; then 4536 - hardcode_libdirs="$libdir" 4537 - else 4538 - # Just accumulate the unique libdirs. 4539 - case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in 4540 - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) 4541 - ;; 4542 - *) 4543 - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" 4544 - ;; 4545 - esac 4546 - fi 4547 - else 4548 - eval flag=\"$hardcode_libdir_flag_spec\" 4549 - rpath="$rpath $flag" 4550 - fi 4551 - elif test -n "$runpath_var"; then 4552 - case "$finalize_perm_rpath " in 4553 - *" $libdir "*) ;; 4554 - *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; 4555 - esac 4556 - fi 4557 - done 4558 - # Substitute the hardcoded libdirs into the rpath. 4559 - if test -n "$hardcode_libdir_separator" && 4560 - test -n "$hardcode_libdirs"; then 4561 - libdir="$hardcode_libdirs" 4562 - eval rpath=\" $hardcode_libdir_flag_spec\" 4563 - fi 4564 - finalize_rpath="$rpath" 4565 - 4566 - if test -n "$libobjs" && test "$build_old_libs" = yes; then 4567 - # Transform all the library objects into standard objects. 4568 - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 4569 - finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 4570 - fi 4571 - 4572 - dlsyms= 4573 - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then 4574 - if test -n "$NM" && test -n "$global_symbol_pipe"; then 4575 - dlsyms="${outputname}S.c" 4576 - else 4577 - $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 4578 - fi 4579 - fi 4580 - 4581 - if test -n "$dlsyms"; then 4582 - case $dlsyms in 4583 - "") ;; 4584 - *.c) 4585 - # Discover the nlist of each of the dlfiles. 4586 - nlist="$output_objdir/${outputname}.nm" 4587 - 4588 - $show "$rm $nlist ${nlist}S ${nlist}T" 4589 - $run $rm "$nlist" "${nlist}S" "${nlist}T" 4590 - 4591 - # Parse the name list into a source file. 4592 - $show "creating $output_objdir/$dlsyms" 4593 - 4594 - test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ 4595 -/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ 4596 -/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ 4597 - 4598 -#ifdef __cplusplus 4599 -extern \"C\" { 4600 -#endif 4601 - 4602 -/* Prevent the only kind of declaration conflicts we can make. */ 4603 -#define lt_preloaded_symbols some_other_symbol 4604 - 4605 -/* External symbol declarations for the compiler. */\ 4606 -" 4607 - 4608 - if test "$dlself" = yes; then 4609 - $show "generating symbol list for \`$output'" 4610 - 4611 - test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" 4612 - 4613 - # Add our own program objects to the symbol list. 4614 - progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` 4615 - for arg in $progfiles; do 4616 - $show "extracting global C symbols from \`$arg'" 4617 - $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" 4618 - done 4619 - 4620 - if test -n "$exclude_expsyms"; then 4621 - $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' 4622 - $run eval '$mv "$nlist"T "$nlist"' 4623 - fi 4624 - 4625 - if test -n "$export_symbols_regex"; then 4626 - $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' 4627 - $run eval '$mv "$nlist"T "$nlist"' 4628 - fi 4629 - 4630 - # Prepare the list of exported symbols 4631 - if test -z "$export_symbols"; then 4632 - export_symbols="$output_objdir/$outputname.exp" 4633 - $run $rm $export_symbols 4634 - $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' 4635 - case $host in 4636 - *cygwin* | *mingw* ) 4637 - $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' 4638 - $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' 4639 - ;; 4640 - esac 4641 - else 4642 - $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' 4643 - $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' 4644 - $run eval 'mv "$nlist"T "$nlist"' 4645 - case $host in 4646 - *cygwin* | *mingw* ) 4647 - $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' 4648 - $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' 4649 - ;; 4650 - esac 4651 - fi 4652 - fi 4653 - 4654 - for arg in $dlprefiles; do 4655 - $show "extracting global C symbols from \`$arg'" 4656 - name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` 4657 - $run eval '$echo ": $name " >> "$nlist"' 4658 - $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" 4659 - done 4660 - 4661 - if test -z "$run"; then 4662 - # Make sure we have at least an empty file. 4663 - test -f "$nlist" || : > "$nlist" 4664 - 4665 - if test -n "$exclude_expsyms"; then 4666 - $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T 4667 - $mv "$nlist"T "$nlist" 4668 - fi 4669 - 4670 - # Try sorting and uniquifying the output. 4671 - if grep -v "^: " < "$nlist" | 4672 - if sort -k 3 </dev/null >/dev/null 2>&1; then 4673 - sort -k 3 4674 - else 4675 - sort +2 4676 - fi | 4677 - uniq > "$nlist"S; then 4678 - : 4679 - else 4680 - grep -v "^: " < "$nlist" > "$nlist"S 4681 - fi 4682 - 4683 - if test -f "$nlist"S; then 4684 - eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' 4685 - else 4686 - $echo '/* NONE */' >> "$output_objdir/$dlsyms" 4687 - fi 4688 - 4689 - $echo >> "$output_objdir/$dlsyms" "\ 4690 - 4691 -#undef lt_preloaded_symbols 4692 - 4693 -#if defined (__STDC__) && __STDC__ 4694 -# define lt_ptr void * 4695 -#else 4696 -# define lt_ptr char * 4697 -# define const 4698 -#endif 4699 - 4700 -/* The mapping between symbol names and symbols. */ 4701 -" 4702 - 4703 - case $host in 4704 - *cygwin* | *mingw* ) 4705 - $echo >> "$output_objdir/$dlsyms" "\ 4706 -/* DATA imports from DLLs on WIN32 can't be const, because 4707 - runtime relocations are performed -- see ld's documentation 4708 - on pseudo-relocs */ 4709 -struct { 4710 -" 4711 - ;; 4712 - * ) 4713 - $echo >> "$output_objdir/$dlsyms" "\ 4714 -const struct { 4715 -" 4716 - ;; 4717 - esac 4718 - 4719 - 4720 - $echo >> "$output_objdir/$dlsyms" "\ 4721 - const char *name; 4722 - lt_ptr address; 4723 -} 4724 -lt_preloaded_symbols[] = 4725 -{\ 4726 -" 4727 - 4728 - eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" 4729 - 4730 - $echo >> "$output_objdir/$dlsyms" "\ 4731 - {0, (lt_ptr) 0} 4732 -}; 4733 - 4734 -/* This works around a problem in FreeBSD linker */ 4735 -#ifdef FREEBSD_WORKAROUND 4736 -static const void *lt_preloaded_setup() { 4737 - return lt_preloaded_symbols; 4738 -} 4739 -#endif 4740 - 4741 -#ifdef __cplusplus 4742 -} 4743 -#endif\ 4744 -" 4745 - fi 4746 - 4747 - pic_flag_for_symtable= 4748 - case $host in 4749 - # compiling the symbol table file with pic_flag works around 4750 - # a FreeBSD bug that causes programs to crash when -lm is 4751 - # linked before any other PIC object. But we must not use 4752 - # pic_flag when linking with -static. The problem exists in 4753 - # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. 4754 - *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) 4755 - case "$compile_command " in 4756 - *" -static "*) ;; 4757 - *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; 4758 - esac;; 4759 - *-*-hpux*) 4760 - case "$compile_command " in 4761 - *" -static "*) ;; 4762 - *) pic_flag_for_symtable=" $pic_flag";; 4763 - esac 4764 - esac 4765 - 4766 - # Now compile the dynamic symbol file. 4767 - $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" 4768 - $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? 4769 - 4770 - # Clean up the generated files. 4771 - $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" 4772 - $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" 4773 - 4774 - # Transform the symbol file into the correct name. 4775 - case $host in 4776 - *cygwin* | *mingw* ) 4777 - if test -f "$output_objdir/${outputname}.def" ; then 4778 - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` 4779 - finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` 4780 - else 4781 - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` 4782 - finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` 4783 - fi 4784 - ;; 4785 - * ) 4786 - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` 4787 - finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` 4788 - ;; 4789 - esac 4790 - ;; 4791 - *) 4792 - $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 4793 - exit $EXIT_FAILURE 4794 - ;; 4795 - esac 4796 - else 4797 - # We keep going just in case the user didn't refer to 4798 - # lt_preloaded_symbols. The linker will fail if global_symbol_pipe 4799 - # really was required. 4800 - 4801 - # Nullify the symbol file. 4802 - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` 4803 - finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` 4804 - fi 4805 - 4806 - if test "$need_relink" = no || test "$build_libtool_libs" != yes; then 4807 - # Replace the output file specification. 4808 - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP` 4809 - link_command="$compile_command$compile_rpath" 4810 - 4811 - # We have no uninstalled library dependencies, so finalize right now. 4812 - $show "$link_command" 4813 - $run eval "$link_command" 4814 - exit_status=$? 4815 - 4816 - # Delete the generated files. 4817 - if test -n "$dlsyms"; then 4818 - $show "$rm $output_objdir/${outputname}S.${objext}" 4819 - $run $rm "$output_objdir/${outputname}S.${objext}" 4820 - fi 4821 - 4822 - exit $exit_status 4823 - fi 4824 - 4825 - if test -n "$shlibpath_var"; then 4826 - # We should set the shlibpath_var 4827 - rpath= 4828 - for dir in $temp_rpath; do 4829 - case $dir in 4830 - [\\/]* | [A-Za-z]:[\\/]*) 4831 - # Absolute path. 4832 - rpath="$rpath$dir:" 4833 - ;; 4834 - *) 4835 - # Relative path: add a thisdir entry. 4836 - rpath="$rpath\$thisdir/$dir:" 4837 - ;; 4838 - esac 4839 - done 4840 - temp_rpath="$rpath" 4841 - fi 4842 - 4843 - if test -n "$compile_shlibpath$finalize_shlibpath"; then 4844 - compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" 4845 - fi 4846 - if test -n "$finalize_shlibpath"; then 4847 - finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" 4848 - fi 4849 - 4850 - compile_var= 4851 - finalize_var= 4852 - if test -n "$runpath_var"; then 4853 - if test -n "$perm_rpath"; then 4854 - # We should set the runpath_var. 4855 - rpath= 4856 - for dir in $perm_rpath; do 4857 - rpath="$rpath$dir:" 4858 - done 4859 - compile_var="$runpath_var=\"$rpath\$$runpath_var\" " 4860 - fi 4861 - if test -n "$finalize_perm_rpath"; then 4862 - # We should set the runpath_var. 4863 - rpath= 4864 - for dir in $finalize_perm_rpath; do 4865 - rpath="$rpath$dir:" 4866 - done 4867 - finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " 4868 - fi 4869 - fi 4870 - 4871 - if test "$no_install" = yes; then 4872 - # We don't need to create a wrapper script. 4873 - link_command="$compile_var$compile_command$compile_rpath" 4874 - # Replace the output file specification. 4875 - link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` 4876 - # Delete the old output file. 4877 - $run $rm $output 4878 - # Link the executable and exit 4879 - $show "$link_command" 4880 - $run eval "$link_command" || exit $? 4881 - exit $EXIT_SUCCESS 4882 - fi 4883 - 4884 - if test "$hardcode_action" = relink; then 4885 - # Fast installation is not supported 4886 - link_command="$compile_var$compile_command$compile_rpath" 4887 - relink_command="$finalize_var$finalize_command$finalize_rpath" 4888 - 4889 - $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 4890 - $echo "$modename: \`$output' will be relinked during installation" 1>&2 4891 - else 4892 - if test "$fast_install" != no; then 4893 - link_command="$finalize_var$compile_command$finalize_rpath" 4894 - if test "$fast_install" = yes; then 4895 - relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP` 4896 - else 4897 - # fast_install is set to needless 4898 - relink_command= 4899 - fi 4900 - else 4901 - link_command="$compile_var$compile_command$compile_rpath" 4902 - relink_command="$finalize_var$finalize_command$finalize_rpath" 4903 - fi 4904 - fi 4905 - 4906 - # Replace the output file specification. 4907 - link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` 4908 - 4909 - # Delete the old output files. 4910 - $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname 4911 - 4912 - $show "$link_command" 4913 - $run eval "$link_command" || exit $? 4914 - 4915 - # Now create the wrapper script. 4916 - $show "creating $output" 4917 - 4918 - # Quote the relink command for shipping. 4919 - if test -n "$relink_command"; then 4920 - # Preserve any variables that may affect compiler behavior 4921 - for var in $variables_saved_for_relink; do 4922 - if eval test -z \"\${$var+set}\"; then 4923 - relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" 4924 - elif eval var_value=\$$var; test -z "$var_value"; then 4925 - relink_command="$var=; export $var; $relink_command" 4926 - else 4927 - var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` 4928 - relink_command="$var=\"$var_value\"; export $var; $relink_command" 4929 - fi 4930 - done 4931 - relink_command="(cd `pwd`; $relink_command)" 4932 - relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` 4933 - fi 4934 - 4935 - # Quote $echo for shipping. 4936 - if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then 4937 - case $progpath in 4938 - [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; 4939 - *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; 4940 - esac 4941 - qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` 4942 - else 4943 - qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` 4944 - fi 4945 - 4946 - # Only actually do things if our run command is non-null. 4947 - if test -z "$run"; then 4948 - # win32 will think the script is a binary if it has 4949 - # a .exe suffix, so we strip it off here. 4950 - case $output in 4951 - *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; 4952 - esac 4953 - # test for cygwin because mv fails w/o .exe extensions 4954 - case $host in 4955 - *cygwin*) 4956 - exeext=.exe 4957 - outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; 4958 - *) exeext= ;; 4959 - esac 4960 - case $host in 4961 - *cygwin* | *mingw* ) 4962 - output_name=`basename $output` 4963 - output_path=`dirname $output` 4964 - cwrappersource="$output_path/$objdir/lt-$output_name.c" 4965 - cwrapper="$output_path/$output_name.exe" 4966 - $rm $cwrappersource $cwrapper 4967 - trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 4968 - 4969 - cat > $cwrappersource <<EOF 4970 - 4971 -/* $cwrappersource - temporary wrapper executable for $objdir/$outputname 4972 - Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 4973 - 4974 - The $output program cannot be directly executed until all the libtool 4975 - libraries that it depends on are installed. 4976 - 4977 - This wrapper executable should never be moved out of the build directory. 4978 - If it is, it will not operate correctly. 4979 - 4980 - Currently, it simply execs the wrapper *script* "/bin/sh $output", 4981 - but could eventually absorb all of the scripts functionality and 4982 - exec $objdir/$outputname directly. 4983 -*/ 4984 -EOF 4985 - cat >> $cwrappersource<<"EOF" 4986 -#include <stdio.h> 4987 -#include <stdlib.h> 4988 -#include <unistd.h> 4989 -#include <malloc.h> 4990 -#include <stdarg.h> 4991 -#include <assert.h> 4992 -#include <string.h> 4993 -#include <ctype.h> 4994 -#include <sys/stat.h> 4995 - 4996 -#if defined(PATH_MAX) 4997 -# define LT_PATHMAX PATH_MAX 4998 -#elif defined(MAXPATHLEN) 4999 -# define LT_PATHMAX MAXPATHLEN 5000 -#else 5001 -# define LT_PATHMAX 1024 5002 -#endif 5003 - 5004 -#ifndef DIR_SEPARATOR 5005 -# define DIR_SEPARATOR '/' 5006 -# define PATH_SEPARATOR ':' 5007 -#endif 5008 - 5009 -#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ 5010 - defined (__OS2__) 5011 -# define HAVE_DOS_BASED_FILE_SYSTEM 5012 -# ifndef DIR_SEPARATOR_2 5013 -# define DIR_SEPARATOR_2 '\\' 5014 -# endif 5015 -# ifndef PATH_SEPARATOR_2 5016 -# define PATH_SEPARATOR_2 ';' 5017 -# endif 5018 -#endif 5019 - 5020 -#ifndef DIR_SEPARATOR_2 5021 -# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) 5022 -#else /* DIR_SEPARATOR_2 */ 5023 -# define IS_DIR_SEPARATOR(ch) \ 5024 - (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) 5025 -#endif /* DIR_SEPARATOR_2 */ 5026 - 5027 -#ifndef PATH_SEPARATOR_2 5028 -# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) 5029 -#else /* PATH_SEPARATOR_2 */ 5030 -# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) 5031 -#endif /* PATH_SEPARATOR_2 */ 5032 - 5033 -#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) 5034 -#define XFREE(stale) do { \ 5035 - if (stale) { free ((void *) stale); stale = 0; } \ 5036 -} while (0) 5037 - 5038 -/* -DDEBUG is fairly common in CFLAGS. */ 5039 -#undef DEBUG 5040 -#if defined DEBUGWRAPPER 5041 -# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) 5042 -#else 5043 -# define DEBUG(format, ...) 5044 -#endif 5045 - 5046 -const char *program_name = NULL; 5047 - 5048 -void * xmalloc (size_t num); 5049 -char * xstrdup (const char *string); 5050 -const char * base_name (const char *name); 5051 -char * find_executable(const char *wrapper); 5052 -int check_executable(const char *path); 5053 -char * strendzap(char *str, const char *pat); 5054 -void lt_fatal (const char *message, ...); 5055 - 5056 -int 5057 -main (int argc, char *argv[]) 5058 -{ 5059 - char **newargz; 5060 - int i; 5061 - 5062 - program_name = (char *) xstrdup (base_name (argv[0])); 5063 - DEBUG("(main) argv[0] : %s\n",argv[0]); 5064 - DEBUG("(main) program_name : %s\n",program_name); 5065 - newargz = XMALLOC(char *, argc+2); 5066 -EOF 5067 - 5068 - cat >> $cwrappersource <<EOF 5069 - newargz[0] = (char *) xstrdup("$SHELL"); 5070 -EOF 5071 - 5072 - cat >> $cwrappersource <<"EOF" 5073 - newargz[1] = find_executable(argv[0]); 5074 - if (newargz[1] == NULL) 5075 - lt_fatal("Couldn't find %s", argv[0]); 5076 - DEBUG("(main) found exe at : %s\n",newargz[1]); 5077 - /* we know the script has the same name, without the .exe */ 5078 - /* so make sure newargz[1] doesn't end in .exe */ 5079 - strendzap(newargz[1],".exe"); 5080 - for (i = 1; i < argc; i++) 5081 - newargz[i+1] = xstrdup(argv[i]); 5082 - newargz[argc+1] = NULL; 5083 - 5084 - for (i=0; i<argc+1; i++) 5085 - { 5086 - DEBUG("(main) newargz[%d] : %s\n",i,newargz[i]); 5087 - ; 5088 - } 5089 - 5090 -EOF 5091 - 5092 - case $host_os in 5093 - mingw*) 5094 - cat >> $cwrappersource <<EOF 5095 - execv("$SHELL",(char const **)newargz); 5096 -EOF 5097 - ;; 5098 - *) 5099 - cat >> $cwrappersource <<EOF 5100 - execv("$SHELL",newargz); 5101 -EOF 5102 - ;; 5103 - esac 5104 - 5105 - cat >> $cwrappersource <<"EOF" 5106 - return 127; 5107 -} 5108 - 5109 -void * 5110 -xmalloc (size_t num) 5111 -{ 5112 - void * p = (void *) malloc (num); 5113 - if (!p) 5114 - lt_fatal ("Memory exhausted"); 5115 - 5116 - return p; 5117 -} 5118 - 5119 -char * 5120 -xstrdup (const char *string) 5121 -{ 5122 - return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL 5123 -; 5124 -} 5125 - 5126 -const char * 5127 -base_name (const char *name) 5128 -{ 5129 - const char *base; 5130 - 5131 -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 5132 - /* Skip over the disk name in MSDOS pathnames. */ 5133 - if (isalpha ((unsigned char)name[0]) && name[1] == ':') 5134 - name += 2; 5135 -#endif 5136 - 5137 - for (base = name; *name; name++) 5138 - if (IS_DIR_SEPARATOR (*name)) 5139 - base = name + 1; 5140 - return base; 5141 -} 5142 - 5143 -int 5144 -check_executable(const char * path) 5145 -{ 5146 - struct stat st; 5147 - 5148 - DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); 5149 - if ((!path) || (!*path)) 5150 - return 0; 5151 - 5152 - if ((stat (path, &st) >= 0) && 5153 - ( 5154 - /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ 5155 -#if defined (S_IXOTH) 5156 - ((st.st_mode & S_IXOTH) == S_IXOTH) || 5157 -#endif 5158 -#if defined (S_IXGRP) 5159 - ((st.st_mode & S_IXGRP) == S_IXGRP) || 5160 -#endif 5161 - ((st.st_mode & S_IXUSR) == S_IXUSR)) 5162 - ) 5163 - return 1; 5164 - else 5165 - return 0; 5166 -} 5167 - 5168 -/* Searches for the full path of the wrapper. Returns 5169 - newly allocated full path name if found, NULL otherwise */ 5170 -char * 5171 -find_executable (const char* wrapper) 5172 -{ 5173 - int has_slash = 0; 5174 - const char* p; 5175 - const char* p_next; 5176 - /* static buffer for getcwd */ 5177 - char tmp[LT_PATHMAX + 1]; 5178 - int tmp_len; 5179 - char* concat_name; 5180 - 5181 - DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); 5182 - 5183 - if ((wrapper == NULL) || (*wrapper == '\0')) 5184 - return NULL; 5185 - 5186 - /* Absolute path? */ 5187 -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 5188 - if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') 5189 - { 5190 - concat_name = xstrdup (wrapper); 5191 - if (check_executable(concat_name)) 5192 - return concat_name; 5193 - XFREE(concat_name); 5194 - } 5195 - else 5196 - { 5197 -#endif 5198 - if (IS_DIR_SEPARATOR (wrapper[0])) 5199 - { 5200 - concat_name = xstrdup (wrapper); 5201 - if (check_executable(concat_name)) 5202 - return concat_name; 5203 - XFREE(concat_name); 5204 - } 5205 -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) 5206 - } 5207 -#endif 5208 - 5209 - for (p = wrapper; *p; p++) 5210 - if (*p == '/') 5211 - { 5212 - has_slash = 1; 5213 - break; 5214 - } 5215 - if (!has_slash) 5216 - { 5217 - /* no slashes; search PATH */ 5218 - const char* path = getenv ("PATH"); 5219 - if (path != NULL) 5220 - { 5221 - for (p = path; *p; p = p_next) 5222 - { 5223 - const char* q; 5224 - size_t p_len; 5225 - for (q = p; *q; q++) 5226 - if (IS_PATH_SEPARATOR(*q)) 5227 - break; 5228 - p_len = q - p; 5229 - p_next = (*q == '\0' ? q : q + 1); 5230 - if (p_len == 0) 5231 - { 5232 - /* empty path: current directory */ 5233 - if (getcwd (tmp, LT_PATHMAX) == NULL) 5234 - lt_fatal ("getcwd failed"); 5235 - tmp_len = strlen(tmp); 5236 - concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); 5237 - memcpy (concat_name, tmp, tmp_len); 5238 - concat_name[tmp_len] = '/'; 5239 - strcpy (concat_name + tmp_len + 1, wrapper); 5240 - } 5241 - else 5242 - { 5243 - concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); 5244 - memcpy (concat_name, p, p_len); 5245 - concat_name[p_len] = '/'; 5246 - strcpy (concat_name + p_len + 1, wrapper); 5247 - } 5248 - if (check_executable(concat_name)) 5249 - return concat_name; 5250 - XFREE(concat_name); 5251 - } 5252 - } 5253 - /* not found in PATH; assume curdir */ 5254 - } 5255 - /* Relative path | not found in path: prepend cwd */ 5256 - if (getcwd (tmp, LT_PATHMAX) == NULL) 5257 - lt_fatal ("getcwd failed"); 5258 - tmp_len = strlen(tmp); 5259 - concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); 5260 - memcpy (concat_name, tmp, tmp_len); 5261 - concat_name[tmp_len] = '/'; 5262 - strcpy (concat_name + tmp_len + 1, wrapper); 5263 - 5264 - if (check_executable(concat_name)) 5265 - return concat_name; 5266 - XFREE(concat_name); 5267 - return NULL; 5268 -} 5269 - 5270 -char * 5271 -strendzap(char *str, const char *pat) 5272 -{ 5273 - size_t len, patlen; 5274 - 5275 - assert(str != NULL); 5276 - assert(pat != NULL); 5277 - 5278 - len = strlen(str); 5279 - patlen = strlen(pat); 5280 - 5281 - if (patlen <= len) 5282 - { 5283 - str += len - patlen; 5284 - if (strcmp(str, pat) == 0) 5285 - *str = '\0'; 5286 - } 5287 - return str; 5288 -} 5289 - 5290 -static void 5291 -lt_error_core (int exit_status, const char * mode, 5292 - const char * message, va_list ap) 5293 -{ 5294 - fprintf (stderr, "%s: %s: ", program_name, mode); 5295 - vfprintf (stderr, message, ap); 5296 - fprintf (stderr, ".\n"); 5297 - 5298 - if (exit_status >= 0) 5299 - exit (exit_status); 5300 -} 5301 - 5302 -void 5303 -lt_fatal (const char *message, ...) 5304 -{ 5305 - va_list ap; 5306 - va_start (ap, message); 5307 - lt_error_core (EXIT_FAILURE, "FATAL", message, ap); 5308 - va_end (ap); 5309 -} 5310 -EOF 5311 - # we should really use a build-platform specific compiler 5312 - # here, but OTOH, the wrappers (shell script and this C one) 5313 - # are only useful if you want to execute the "real" binary. 5314 - # Since the "real" binary is built for $host, then this 5315 - # wrapper might as well be built for $host, too. 5316 - $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource 5317 - ;; 5318 - esac 5319 - $rm $output 5320 - trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 5321 - 5322 - $echo > $output "\ 5323 -#! $SHELL 5324 - 5325 -# $output - temporary wrapper script for $objdir/$outputname 5326 -# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 5327 -# 5328 -# The $output program cannot be directly executed until all the libtool 5329 -# libraries that it depends on are installed. 5330 -# 5331 -# This wrapper script should never be moved out of the build directory. 5332 -# If it is, it will not operate correctly. 5333 - 5334 -# Sed substitution that helps us do robust quoting. It backslashifies 5335 -# metacharacters that are still active within double-quoted strings. 5336 -Xsed='${SED} -e 1s/^X//' 5337 -sed_quote_subst='$sed_quote_subst' 5338 - 5339 -# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). 5340 -if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then 5341 - emulate sh 5342 - NULLCMD=: 5343 - # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which 5344 - # is contrary to our usage. Disable this feature. 5345 - alias -g '\${1+\"\$@\"}'='\"\$@\"' 5346 - setopt NO_GLOB_SUBST 5347 -else 5348 - case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac 5349 -fi 5350 -BIN_SH=xpg4; export BIN_SH # for Tru64 5351 -DUALCASE=1; export DUALCASE # for MKS sh 5352 - 5353 -# The HP-UX ksh and POSIX shell print the target directory to stdout 5354 -# if CDPATH is set. 5355 -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH 5356 - 5357 -relink_command=\"$relink_command\" 5358 - 5359 -# This environment variable determines our operation mode. 5360 -if test \"\$libtool_install_magic\" = \"$magic\"; then 5361 - # install mode needs the following variable: 5362 - notinst_deplibs='$notinst_deplibs' 5363 -else 5364 - # When we are sourced in execute mode, \$file and \$echo are already set. 5365 - if test \"\$libtool_execute_magic\" != \"$magic\"; then 5366 - echo=\"$qecho\" 5367 - file=\"\$0\" 5368 - # Make sure echo works. 5369 - if test \"X\$1\" = X--no-reexec; then 5370 - # Discard the --no-reexec flag, and continue. 5371 - shift 5372 - elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then 5373 - # Yippee, \$echo works! 5374 - : 5375 - else 5376 - # Restart under the correct shell, and then maybe \$echo will work. 5377 - exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} 5378 - fi 5379 - fi\ 5380 -" 5381 - $echo >> $output "\ 5382 - 5383 - # Find the directory that this script lives in. 5384 - thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` 5385 - test \"x\$thisdir\" = \"x\$file\" && thisdir=. 5386 - 5387 - # Follow symbolic links until we get to the real thisdir. 5388 - file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` 5389 - while test -n \"\$file\"; do 5390 - destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` 5391 - 5392 - # If there was a directory component, then change thisdir. 5393 - if test \"x\$destdir\" != \"x\$file\"; then 5394 - case \"\$destdir\" in 5395 - [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; 5396 - *) thisdir=\"\$thisdir/\$destdir\" ;; 5397 - esac 5398 - fi 5399 - 5400 - file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` 5401 - file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` 5402 - done 5403 - 5404 - # Try to get the absolute directory name. 5405 - absdir=\`cd \"\$thisdir\" && pwd\` 5406 - test -n \"\$absdir\" && thisdir=\"\$absdir\" 5407 -" 5408 - 5409 - if test "$fast_install" = yes; then 5410 - $echo >> $output "\ 5411 - program=lt-'$outputname'$exeext 5412 - progdir=\"\$thisdir/$objdir\" 5413 - 5414 - if test ! -f \"\$progdir/\$program\" || \\ 5415 - { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ 5416 - test \"X\$file\" != \"X\$progdir/\$program\"; }; then 5417 - 5418 - file=\"\$\$-\$program\" 5419 - 5420 - if test ! -d \"\$progdir\"; then 5421 - $mkdir \"\$progdir\" 5422 - else 5423 - $rm \"\$progdir/\$file\" 5424 - fi" 5425 - 5426 - $echo >> $output "\ 5427 - 5428 - # relink executable if necessary 5429 - if test -n \"\$relink_command\"; then 5430 - if relink_command_output=\`eval \$relink_command 2>&1\`; then : 5431 - else 5432 - $echo \"\$relink_command_output\" >&2 5433 - $rm \"\$progdir/\$file\" 5434 - exit $EXIT_FAILURE 5435 - fi 5436 - fi 5437 - 5438 - $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || 5439 - { $rm \"\$progdir/\$program\"; 5440 - $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } 5441 - $rm \"\$progdir/\$file\" 5442 - fi" 5443 - else 5444 - $echo >> $output "\ 5445 - program='$outputname' 5446 - progdir=\"\$thisdir/$objdir\" 5447 -" 5448 - fi 5449 - 5450 - $echo >> $output "\ 5451 - 5452 - if test -f \"\$progdir/\$program\"; then" 5453 - 5454 - # Export our shlibpath_var if we have one. 5455 - if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then 5456 - $echo >> $output "\ 5457 - # Add our own library path to $shlibpath_var 5458 - $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" 5459 - 5460 - # Some systems cannot cope with colon-terminated $shlibpath_var 5461 - # The second colon is a workaround for a bug in BeOS R4 sed 5462 - $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` 5463 - 5464 - export $shlibpath_var 5465 -" 5466 - fi 5467 - 5468 - # fixup the dll searchpath if we need to. 5469 - if test -n "$dllsearchpath"; then 5470 - $echo >> $output "\ 5471 - # Add the dll search path components to the executable PATH 5472 - PATH=$dllsearchpath:\$PATH 5473 -" 5474 - fi 5475 - 5476 - $echo >> $output "\ 5477 - if test \"\$libtool_execute_magic\" != \"$magic\"; then 5478 - # Run the actual program with our arguments. 5479 -" 5480 - case $host in 5481 - # Backslashes separate directories on plain windows 5482 - *-*-mingw | *-*-os2*) 5483 - $echo >> $output "\ 5484 - exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} 5485 -" 5486 - ;; 5487 - 5488 - *) 5489 - $echo >> $output "\ 5490 - exec \"\$progdir/\$program\" \${1+\"\$@\"} 5491 -" 5492 - ;; 5493 - esac 5494 - $echo >> $output "\ 5495 - \$echo \"\$0: cannot exec \$program \$*\" 5496 - exit $EXIT_FAILURE 5497 - fi 5498 - else 5499 - # The program doesn't exist. 5500 - \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 5501 - \$echo \"This script is just a wrapper for \$program.\" 1>&2 5502 - $echo \"See the $PACKAGE documentation for more information.\" 1>&2 5503 - exit $EXIT_FAILURE 5504 - fi 5505 -fi\ 5506 -" 5507 - chmod +x $output 5508 - fi 5509 - exit $EXIT_SUCCESS 5510 - ;; 5511 - esac 5512 - 5513 - # See if we need to build an old-fashioned archive. 5514 - for oldlib in $oldlibs; do 5515 - 5516 - if test "$build_libtool_libs" = convenience; then 5517 - oldobjs="$libobjs_save" 5518 - addlibs="$convenience" 5519 - build_libtool_libs=no 5520 - else 5521 - if test "$build_libtool_libs" = module; then 5522 - oldobjs="$libobjs_save" 5523 - build_libtool_libs=no 5524 - else 5525 - oldobjs="$old_deplibs $non_pic_objects" 5526 - fi 5527 - addlibs="$old_convenience" 5528 - fi 5529 - 5530 - if test -n "$addlibs"; then 5531 - gentop="$output_objdir/${outputname}x" 5532 - generated="$generated $gentop" 5533 - 5534 - func_extract_archives $gentop $addlibs 5535 - oldobjs="$oldobjs $func_extract_archives_result" 5536 - fi 5537 - 5538 - # Do each command in the archive commands. 5539 - if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then 5540 - cmds=$old_archive_from_new_cmds 5541 - else 5542 - # POSIX demands no paths to be encoded in archives. We have 5543 - # to avoid creating archives with duplicate basenames if we 5544 - # might have to extract them afterwards, e.g., when creating a 5545 - # static archive out of a convenience library, or when linking 5546 - # the entirety of a libtool archive into another (currently 5547 - # not supported by libtool). 5548 - if (for obj in $oldobjs 5549 - do 5550 - $echo "X$obj" | $Xsed -e 's%^.*/%%' 5551 - done | sort | sort -uc >/dev/null 2>&1); then 5552 - : 5553 - else 5554 - $echo "copying selected object files to avoid basename conflicts..." 5555 - 5556 - if test -z "$gentop"; then 5557 - gentop="$output_objdir/${outputname}x" 5558 - generated="$generated $gentop" 5559 - 5560 - $show "${rm}r $gentop" 5561 - $run ${rm}r "$gentop" 5562 - $show "$mkdir $gentop" 5563 - $run $mkdir "$gentop" 5564 - exit_status=$? 5565 - if test "$exit_status" -ne 0 && test ! -d "$gentop"; then 5566 - exit $exit_status 5567 - fi 5568 - fi 5569 - 5570 - save_oldobjs=$oldobjs 5571 - oldobjs= 5572 - counter=1 5573 - for obj in $save_oldobjs 5574 - do 5575 - objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` 5576 - case " $oldobjs " in 5577 - " ") oldobjs=$obj ;; 5578 - *[\ /]"$objbase "*) 5579 - while :; do 5580 - # Make sure we don't pick an alternate name that also 5581 - # overlaps. 5582 - newobj=lt$counter-$objbase 5583 - counter=`expr $counter + 1` 5584 - case " $oldobjs " in 5585 - *[\ /]"$newobj "*) ;; 5586 - *) if test ! -f "$gentop/$newobj"; then break; fi ;; 5587 - esac 5588 - done 5589 - $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" 5590 - $run ln "$obj" "$gentop/$newobj" || 5591 - $run cp "$obj" "$gentop/$newobj" 5592 - oldobjs="$oldobjs $gentop/$newobj" 5593 - ;; 5594 - *) oldobjs="$oldobjs $obj" ;; 5595 - esac 5596 - done 5597 - fi 5598 - 5599 - eval cmds=\"$old_archive_cmds\" 5600 - 5601 - if len=`expr "X$cmds" : ".*"` && 5602 - test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then 5603 - cmds=$old_archive_cmds 5604 - else 5605 - # the command line is too long to link in one step, link in parts 5606 - $echo "using piecewise archive linking..." 5607 - save_RANLIB=$RANLIB 5608 - RANLIB=: 5609 - objlist= 5610 - concat_cmds= 5611 - save_oldobjs=$oldobjs 5612 - 5613 - # Is there a better way of finding the last object in the list? 5614 - for obj in $save_oldobjs 5615 - do 5616 - last_oldobj=$obj 5617 - done 5618 - for obj in $save_oldobjs 5619 - do 5620 - oldobjs="$objlist $obj" 5621 - objlist="$objlist $obj" 5622 - eval test_cmds=\"$old_archive_cmds\" 5623 - if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && 5624 - test "$len" -le "$max_cmd_len"; then 5625 - : 5626 - else 5627 - # the above command should be used before it gets too long 5628 - oldobjs=$objlist 5629 - if test "$obj" = "$last_oldobj" ; then 5630 - RANLIB=$save_RANLIB 5631 - fi 5632 - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ 5633 - eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" 5634 - objlist= 5635 - fi 5636 - done 5637 - RANLIB=$save_RANLIB 5638 - oldobjs=$objlist 5639 - if test "X$oldobjs" = "X" ; then 5640 - eval cmds=\"\$concat_cmds\" 5641 - else 5642 - eval cmds=\"\$concat_cmds~\$old_archive_cmds\" 5643 - fi 5644 - fi 5645 - fi 5646 - save_ifs="$IFS"; IFS='~' 5647 - for cmd in $cmds; do 5648 - eval cmd=\"$cmd\" 5649 - IFS="$save_ifs" 5650 - $show "$cmd" 5651 - $run eval "$cmd" || exit $? 5652 - done 5653 - IFS="$save_ifs" 5654 - done 5655 - 5656 - if test -n "$generated"; then 5657 - $show "${rm}r$generated" 5658 - $run ${rm}r$generated 5659 - fi 5660 - 5661 - # Now create the libtool archive. 5662 - case $output in 5663 - *.la) 5664 - old_library= 5665 - test "$build_old_libs" = yes && old_library="$libname.$libext" 5666 - $show "creating $output" 5667 - 5668 - # Preserve any variables that may affect compiler behavior 5669 - for var in $variables_saved_for_relink; do 5670 - if eval test -z \"\${$var+set}\"; then 5671 - relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" 5672 - elif eval var_value=\$$var; test -z "$var_value"; then 5673 - relink_command="$var=; export $var; $relink_command" 5674 - else 5675 - var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` 5676 - relink_command="$var=\"$var_value\"; export $var; $relink_command" 5677 - fi 5678 - done 5679 - # Quote the link command for shipping. 5680 - relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" 5681 - relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` 5682 - if test "$hardcode_automatic" = yes ; then 5683 - relink_command= 5684 - fi 5685 - 5686 - 5687 - # Only create the output if not a dry run. 5688 - if test -z "$run"; then 5689 - for installed in no yes; do 5690 - if test "$installed" = yes; then 5691 - if test -z "$install_libdir"; then 5692 - break 5693 - fi 5694 - output="$output_objdir/$outputname"i 5695 - # Replace all uninstalled libtool libraries with the installed ones 5696 - newdependency_libs= 5697 - for deplib in $dependency_libs; do 5698 - case $deplib in 5699 - *.la) 5700 - name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` 5701 - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` 5702 - if test -z "$libdir"; then 5703 - $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 5704 - exit $EXIT_FAILURE 5705 - fi 5706 - newdependency_libs="$newdependency_libs $libdir/$name" 5707 - ;; 5708 - *) newdependency_libs="$newdependency_libs $deplib" ;; 5709 - esac 5710 - done 5711 - dependency_libs="$newdependency_libs" 5712 - newdlfiles= 5713 - for lib in $dlfiles; do 5714 - name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` 5715 - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 5716 - if test -z "$libdir"; then 5717 - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 5718 - exit $EXIT_FAILURE 5719 - fi 5720 - newdlfiles="$newdlfiles $libdir/$name" 5721 - done 5722 - dlfiles="$newdlfiles" 5723 - newdlprefiles= 5724 - for lib in $dlprefiles; do 5725 - name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` 5726 - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` 5727 - if test -z "$libdir"; then 5728 - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 5729 - exit $EXIT_FAILURE 5730 - fi 5731 - newdlprefiles="$newdlprefiles $libdir/$name" 5732 - done 5733 - dlprefiles="$newdlprefiles" 5734 - else 5735 - newdlfiles= 5736 - for lib in $dlfiles; do 5737 - case $lib in 5738 - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 5739 - *) abs=`pwd`"/$lib" ;; 5740 - esac 5741 - newdlfiles="$newdlfiles $abs" 5742 - done 5743 - dlfiles="$newdlfiles" 5744 - newdlprefiles= 5745 - for lib in $dlprefiles; do 5746 - case $lib in 5747 - [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; 5748 - *) abs=`pwd`"/$lib" ;; 5749 - esac 5750 - newdlprefiles="$newdlprefiles $abs" 5751 - done 5752 - dlprefiles="$newdlprefiles" 5753 - fi 5754 - $rm $output 5755 - # place dlname in correct position for cygwin 5756 - tdlname=$dlname 5757 - case $host,$output,$installed,$module,$dlname in 5758 - *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; 5759 - esac 5760 - $echo > $output "\ 5761 -# $outputname - a libtool library file 5762 -# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP 5763 -# 5764 -# Please DO NOT delete this file! 5765 -# It is necessary for linking the library. 5766 - 5767 -# The name that we can dlopen(3). 5768 -dlname='$tdlname' 5769 - 5770 -# Names of this library. 5771 -library_names='$library_names' 5772 - 5773 -# The name of the static archive. 5774 -old_library='$old_library' 5775 - 5776 -# Libraries that this one depends upon. 5777 -dependency_libs='$dependency_libs' 5778 - 5779 -# Version information for $libname. 5780 -current=$current 5781 -age=$age 5782 -revision=$revision 5783 - 5784 -# Is this an already installed library? 5785 -installed=$installed 5786 - 5787 -# Should we warn about portability when linking against -modules? 5788 -shouldnotlink=$module 5789 - 5790 -# Files to dlopen/dlpreopen 5791 -dlopen='$dlfiles' 5792 -dlpreopen='$dlprefiles' 5793 - 5794 -# Directory that this library needs to be installed in: 5795 -libdir='$install_libdir'" 5796 - if test "$installed" = no && test "$need_relink" = yes; then 5797 - $echo >> $output "\ 5798 -relink_command=\"$relink_command\"" 5799 - fi 5800 - done 5801 - fi 5802 - 5803 - # Do a symbolic link so that the libtool archive can be found in 5804 - # LD_LIBRARY_PATH before the program is installed. 5805 - $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" 5806 - $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? 5807 - ;; 5808 - esac 5809 - exit $EXIT_SUCCESS 5810 - ;; 5811 - 5812 - # libtool install mode 5813 - install) 5814 - modename="$modename: install" 5815 - 5816 - # There may be an optional sh(1) argument at the beginning of 5817 - # install_prog (especially on Windows NT). 5818 - if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || 5819 - # Allow the use of GNU shtool's install command. 5820 - $echo "X$nonopt" | grep shtool > /dev/null; then 5821 - # Aesthetically quote it. 5822 - arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` 5823 - case $arg in 5824 - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 5825 - arg="\"$arg\"" 5826 - ;; 5827 - esac 5828 - install_prog="$arg " 5829 - arg="$1" 5830 - shift 5831 - else 5832 - install_prog= 5833 - arg=$nonopt 5834 - fi 5835 - 5836 - # The real first argument should be the name of the installation program. 5837 - # Aesthetically quote it. 5838 - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 5839 - case $arg in 5840 - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 5841 - arg="\"$arg\"" 5842 - ;; 5843 - esac 5844 - install_prog="$install_prog$arg" 5845 - 5846 - # We need to accept at least all the BSD install flags. 5847 - dest= 5848 - files= 5849 - opts= 5850 - prev= 5851 - install_type= 5852 - isdir=no 5853 - stripme= 5854 - for arg 5855 - do 5856 - if test -n "$dest"; then 5857 - files="$files $dest" 5858 - dest=$arg 5859 - continue 5860 - fi 5861 - 5862 - case $arg in 5863 - -d) isdir=yes ;; 5864 - -f) 5865 - case " $install_prog " in 5866 - *[\\\ /]cp\ *) ;; 5867 - *) prev=$arg ;; 5868 - esac 5869 - ;; 5870 - -g | -m | -o) prev=$arg ;; 5871 - -s) 5872 - stripme=" -s" 5873 - continue 5874 - ;; 5875 - -*) 5876 - ;; 5877 - *) 5878 - # If the previous option needed an argument, then skip it. 5879 - if test -n "$prev"; then 5880 - prev= 5881 - else 5882 - dest=$arg 5883 - continue 5884 - fi 5885 - ;; 5886 - esac 5887 - 5888 - # Aesthetically quote the argument. 5889 - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` 5890 - case $arg in 5891 - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") 5892 - arg="\"$arg\"" 5893 - ;; 5894 - esac 5895 - install_prog="$install_prog $arg" 5896 - done 5897 - 5898 - if test -z "$install_prog"; then 5899 - $echo "$modename: you must specify an install program" 1>&2 5900 - $echo "$help" 1>&2 5901 - exit $EXIT_FAILURE 5902 - fi 5903 - 5904 - if test -n "$prev"; then 5905 - $echo "$modename: the \`$prev' option requires an argument" 1>&2 5906 - $echo "$help" 1>&2 5907 - exit $EXIT_FAILURE 5908 - fi 5909 - 5910 - if test -z "$files"; then 5911 - if test -z "$dest"; then 5912 - $echo "$modename: no file or destination specified" 1>&2 5913 - else 5914 - $echo "$modename: you must specify a destination" 1>&2 5915 - fi 5916 - $echo "$help" 1>&2 5917 - exit $EXIT_FAILURE 5918 - fi 5919 - 5920 - # Strip any trailing slash from the destination. 5921 - dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` 5922 - 5923 - # Check to see that the destination is a directory. 5924 - test -d "$dest" && isdir=yes 5925 - if test "$isdir" = yes; then 5926 - destdir="$dest" 5927 - destname= 5928 - else 5929 - destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` 5930 - test "X$destdir" = "X$dest" && destdir=. 5931 - destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` 5932 - 5933 - # Not a directory, so check to see that there is only one file specified. 5934 - set dummy $files 5935 - if test "$#" -gt 2; then 5936 - $echo "$modename: \`$dest' is not a directory" 1>&2 5937 - $echo "$help" 1>&2 5938 - exit $EXIT_FAILURE 5939 - fi 5940 - fi 5941 - case $destdir in 5942 - [\\/]* | [A-Za-z]:[\\/]*) ;; 5943 - *) 5944 - for file in $files; do 5945 - case $file in 5946 - *.lo) ;; 5947 - *) 5948 - $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 5949 - $echo "$help" 1>&2 5950 - exit $EXIT_FAILURE 5951 - ;; 5952 - esac 5953 - done 5954 - ;; 5955 - esac 5956 - 5957 - # This variable tells wrapper scripts just to set variables rather 5958 - # than running their programs. 5959 - libtool_install_magic="$magic" 5960 - 5961 - staticlibs= 5962 - future_libdirs= 5963 - current_libdirs= 5964 - for file in $files; do 5965 - 5966 - # Do each installation. 5967 - case $file in 5968 - *.$libext) 5969 - # Do the static libraries later. 5970 - staticlibs="$staticlibs $file" 5971 - ;; 5972 - 5973 - *.la) 5974 - # Check to see that this really is a libtool archive. 5975 - if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : 5976 - else 5977 - $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 5978 - $echo "$help" 1>&2 5979 - exit $EXIT_FAILURE 5980 - fi 5981 - 5982 - library_names= 5983 - old_library= 5984 - relink_command= 5985 - # If there is no directory component, then add one. 5986 - case $file in 5987 - */* | *\\*) . $file ;; 5988 - *) . ./$file ;; 5989 - esac 5990 - 5991 - # Add the libdir to current_libdirs if it is the destination. 5992 - if test "X$destdir" = "X$libdir"; then 5993 - case "$current_libdirs " in 5994 - *" $libdir "*) ;; 5995 - *) current_libdirs="$current_libdirs $libdir" ;; 5996 - esac 5997 - else 5998 - # Note the libdir as a future libdir. 5999 - case "$future_libdirs " in 6000 - *" $libdir "*) ;; 6001 - *) future_libdirs="$future_libdirs $libdir" ;; 6002 - esac 6003 - fi 6004 - 6005 - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ 6006 - test "X$dir" = "X$file/" && dir= 6007 - dir="$dir$objdir" 6008 - 6009 - if test -n "$relink_command"; then 6010 - # Determine the prefix the user has applied to our future dir. 6011 - inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` 6012 - 6013 - # Don't allow the user to place us outside of our expected 6014 - # location b/c this prevents finding dependent libraries that 6015 - # are installed to the same prefix. 6016 - # At present, this check doesn't affect windows .dll's that 6017 - # are installed into $libdir/../bin (currently, that works fine) 6018 - # but it's something to keep an eye on. 6019 - if test "$inst_prefix_dir" = "$destdir"; then 6020 - $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 6021 - exit $EXIT_FAILURE 6022 - fi 6023 - 6024 - if test -n "$inst_prefix_dir"; then 6025 - # Stick the inst_prefix_dir data into the link command. 6026 - relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP` 6027 - else 6028 - relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP` 6029 - fi 6030 - 6031 - $echo "$modename: warning: relinking \`$file'" 1>&2 6032 - $show "$relink_command" 6033 - if $run eval "$relink_command"; then : 6034 - else 6035 - $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 6036 - exit $EXIT_FAILURE 6037 - fi 6038 - fi 6039 - 6040 - # See the names of the shared library. 6041 - set dummy $library_names 6042 - if test -n "$2"; then 6043 - realname="$2" 6044 - shift 6045 - shift 6046 - 6047 - srcname="$realname" 6048 - test -n "$relink_command" && srcname="$realname"T 6049 - 6050 - # Install the shared library and build the symlinks. 6051 - $show "$install_prog $dir/$srcname $destdir/$realname" 6052 - $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? 6053 - if test -n "$stripme" && test -n "$striplib"; then 6054 - $show "$striplib $destdir/$realname" 6055 - $run eval "$striplib $destdir/$realname" || exit $? 6056 - fi 6057 - 6058 - if test "$#" -gt 0; then 6059 - # Delete the old symlinks, and create new ones. 6060 - # Try `ln -sf' first, because the `ln' binary might depend on 6061 - # the symlink we replace! Solaris /bin/ln does not understand -f, 6062 - # so we also need to try rm && ln -s. 6063 - for linkname 6064 - do 6065 - if test "$linkname" != "$realname"; then 6066 - $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" 6067 - $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" 6068 - fi 6069 - done 6070 - fi 6071 - 6072 - # Do each command in the postinstall commands. 6073 - lib="$destdir/$realname" 6074 - cmds=$postinstall_cmds 6075 - save_ifs="$IFS"; IFS='~' 6076 - for cmd in $cmds; do 6077 - IFS="$save_ifs" 6078 - eval cmd=\"$cmd\" 6079 - $show "$cmd" 6080 - $run eval "$cmd" || { 6081 - lt_exit=$? 6082 - 6083 - # Restore the uninstalled library and exit 6084 - if test "$mode" = relink; then 6085 - $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' 6086 - fi 6087 - 6088 - exit $lt_exit 6089 - } 6090 - done 6091 - IFS="$save_ifs" 6092 - fi 6093 - 6094 - # Install the pseudo-library for information purposes. 6095 - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 6096 - instname="$dir/$name"i 6097 - $show "$install_prog $instname $destdir/$name" 6098 - $run eval "$install_prog $instname $destdir/$name" || exit $? 6099 - 6100 - # Maybe install the static library, too. 6101 - test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" 6102 - ;; 6103 - 6104 - *.lo) 6105 - # Install (i.e. copy) a libtool object. 6106 - 6107 - # Figure out destination file name, if it wasn't already specified. 6108 - if test -n "$destname"; then 6109 - destfile="$destdir/$destname" 6110 - else 6111 - destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 6112 - destfile="$destdir/$destfile" 6113 - fi 6114 - 6115 - # Deduce the name of the destination old-style object file. 6116 - case $destfile in 6117 - *.lo) 6118 - staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` 6119 - ;; 6120 - *.$objext) 6121 - staticdest="$destfile" 6122 - destfile= 6123 - ;; 6124 - *) 6125 - $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 6126 - $echo "$help" 1>&2 6127 - exit $EXIT_FAILURE 6128 - ;; 6129 - esac 6130 - 6131 - # Install the libtool object if requested. 6132 - if test -n "$destfile"; then 6133 - $show "$install_prog $file $destfile" 6134 - $run eval "$install_prog $file $destfile" || exit $? 6135 - fi 6136 - 6137 - # Install the old object if enabled. 6138 - if test "$build_old_libs" = yes; then 6139 - # Deduce the name of the old-style object file. 6140 - staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` 6141 - 6142 - $show "$install_prog $staticobj $staticdest" 6143 - $run eval "$install_prog \$staticobj \$staticdest" || exit $? 6144 - fi 6145 - exit $EXIT_SUCCESS 6146 - ;; 6147 - 6148 - *) 6149 - # Figure out destination file name, if it wasn't already specified. 6150 - if test -n "$destname"; then 6151 - destfile="$destdir/$destname" 6152 - else 6153 - destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 6154 - destfile="$destdir/$destfile" 6155 - fi 6156 - 6157 - # If the file is missing, and there is a .exe on the end, strip it 6158 - # because it is most likely a libtool script we actually want to 6159 - # install 6160 - stripped_ext="" 6161 - case $file in 6162 - *.exe) 6163 - if test ! -f "$file"; then 6164 - file=`$echo $file|${SED} 's,.exe$,,'` 6165 - stripped_ext=".exe" 6166 - fi 6167 - ;; 6168 - esac 6169 - 6170 - # Do a test to see if this is really a libtool program. 6171 - case $host in 6172 - *cygwin*|*mingw*) 6173 - wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` 6174 - ;; 6175 - *) 6176 - wrapper=$file 6177 - ;; 6178 - esac 6179 - if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then 6180 - notinst_deplibs= 6181 - relink_command= 6182 - 6183 - # Note that it is not necessary on cygwin/mingw to append a dot to 6184 - # foo even if both foo and FILE.exe exist: automatic-append-.exe 6185 - # behavior happens only for exec(3), not for open(2)! Also, sourcing 6186 - # `FILE.' does not work on cygwin managed mounts. 6187 - # 6188 - # If there is no directory component, then add one. 6189 - case $wrapper in 6190 - */* | *\\*) . ${wrapper} ;; 6191 - *) . ./${wrapper} ;; 6192 - esac 6193 - 6194 - # Check the variables that should have been set. 6195 - if test -z "$notinst_deplibs"; then 6196 - $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 6197 - exit $EXIT_FAILURE 6198 - fi 6199 - 6200 - finalize=yes 6201 - for lib in $notinst_deplibs; do 6202 - # Check to see that each library is installed. 6203 - libdir= 6204 - if test -f "$lib"; then 6205 - # If there is no directory component, then add one. 6206 - case $lib in 6207 - */* | *\\*) . $lib ;; 6208 - *) . ./$lib ;; 6209 - esac 6210 - fi 6211 - libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test 6212 - if test -n "$libdir" && test ! -f "$libfile"; then 6213 - $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 6214 - finalize=no 6215 - fi 6216 - done 6217 - 6218 - relink_command= 6219 - # Note that it is not necessary on cygwin/mingw to append a dot to 6220 - # foo even if both foo and FILE.exe exist: automatic-append-.exe 6221 - # behavior happens only for exec(3), not for open(2)! Also, sourcing 6222 - # `FILE.' does not work on cygwin managed mounts. 6223 - # 6224 - # If there is no directory component, then add one. 6225 - case $wrapper in 6226 - */* | *\\*) . ${wrapper} ;; 6227 - *) . ./${wrapper} ;; 6228 - esac 6229 - 6230 - outputname= 6231 - if test "$fast_install" = no && test -n "$relink_command"; then 6232 - if test "$finalize" = yes && test -z "$run"; then 6233 - tmpdir=`func_mktempdir` 6234 - file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` 6235 - outputname="$tmpdir/$file" 6236 - # Replace the output file specification. 6237 - relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP` 6238 - 6239 - $show "$relink_command" 6240 - if $run eval "$relink_command"; then : 6241 - else 6242 - $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 6243 - ${rm}r "$tmpdir" 6244 - continue 6245 - fi 6246 - file="$outputname" 6247 - else 6248 - $echo "$modename: warning: cannot relink \`$file'" 1>&2 6249 - fi 6250 - else 6251 - # Install the binary that we compiled earlier. 6252 - file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` 6253 - fi 6254 - fi 6255 - 6256 - # remove .exe since cygwin /usr/bin/install will append another 6257 - # one anyway 6258 - case $install_prog,$host in 6259 - */usr/bin/install*,*cygwin*) 6260 - case $file:$destfile in 6261 - *.exe:*.exe) 6262 - # this is ok 6263 - ;; 6264 - *.exe:*) 6265 - destfile=$destfile.exe 6266 - ;; 6267 - *:*.exe) 6268 - destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` 6269 - ;; 6270 - esac 6271 - ;; 6272 - esac 6273 - $show "$install_prog$stripme $file $destfile" 6274 - $run eval "$install_prog\$stripme \$file \$destfile" || exit $? 6275 - test -n "$outputname" && ${rm}r "$tmpdir" 6276 - ;; 6277 - esac 6278 - done 6279 - 6280 - for file in $staticlibs; do 6281 - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 6282 - 6283 - # Set up the ranlib parameters. 6284 - oldlib="$destdir/$name" 6285 - 6286 - $show "$install_prog $file $oldlib" 6287 - $run eval "$install_prog \$file \$oldlib" || exit $? 6288 - 6289 - if test -n "$stripme" && test -n "$old_striplib"; then 6290 - $show "$old_striplib $oldlib" 6291 - $run eval "$old_striplib $oldlib" || exit $? 6292 - fi 6293 - 6294 - # Do each command in the postinstall commands. 6295 - cmds=$old_postinstall_cmds 6296 - save_ifs="$IFS"; IFS='~' 6297 - for cmd in $cmds; do 6298 - IFS="$save_ifs" 6299 - eval cmd=\"$cmd\" 6300 - $show "$cmd" 6301 - $run eval "$cmd" || exit $? 6302 - done 6303 - IFS="$save_ifs" 6304 - done 6305 - 6306 - if test -n "$future_libdirs"; then 6307 - $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 6308 - fi 6309 - 6310 - if test -n "$current_libdirs"; then 6311 - # Maybe just do a dry run. 6312 - test -n "$run" && current_libdirs=" -n$current_libdirs" 6313 - exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' 6314 - else 6315 - exit $EXIT_SUCCESS 6316 - fi 6317 - ;; 6318 - 6319 - # libtool finish mode 6320 - finish) 6321 - modename="$modename: finish" 6322 - libdirs="$nonopt" 6323 - admincmds= 6324 - 6325 - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then 6326 - for dir 6327 - do 6328 - libdirs="$libdirs $dir" 6329 - done 6330 - 6331 - for libdir in $libdirs; do 6332 - if test -n "$finish_cmds"; then 6333 - # Do each command in the finish commands. 6334 - cmds=$finish_cmds 6335 - save_ifs="$IFS"; IFS='~' 6336 - for cmd in $cmds; do 6337 - IFS="$save_ifs" 6338 - eval cmd=\"$cmd\" 6339 - $show "$cmd" 6340 - $run eval "$cmd" || admincmds="$admincmds 6341 - $cmd" 6342 - done 6343 - IFS="$save_ifs" 6344 - fi 6345 - if test -n "$finish_eval"; then 6346 - # Do the single finish_eval. 6347 - eval cmds=\"$finish_eval\" 6348 - $run eval "$cmds" || admincmds="$admincmds 6349 - $cmds" 6350 - fi 6351 - done 6352 - fi 6353 - 6354 - # Exit here if they wanted silent mode. 6355 - test "$show" = : && exit $EXIT_SUCCESS 6356 - 6357 - $echo "X----------------------------------------------------------------------" | $Xsed 6358 - $echo "Libraries have been installed in:" 6359 - for libdir in $libdirs; do 6360 - $echo " $libdir" 6361 - done 6362 - $echo 6363 - $echo "If you ever happen to want to link against installed libraries" 6364 - $echo "in a given directory, LIBDIR, you must either use libtool, and" 6365 - $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" 6366 - $echo "flag during linking and do at least one of the following:" 6367 - if test -n "$shlibpath_var"; then 6368 - $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" 6369 - $echo " during execution" 6370 - fi 6371 - if test -n "$runpath_var"; then 6372 - $echo " - add LIBDIR to the \`$runpath_var' environment variable" 6373 - $echo " during linking" 6374 - fi 6375 - if test -n "$hardcode_libdir_flag_spec"; then 6376 - libdir=LIBDIR 6377 - eval flag=\"$hardcode_libdir_flag_spec\" 6378 - 6379 - $echo " - use the \`$flag' linker flag" 6380 - fi 6381 - if test -n "$admincmds"; then 6382 - $echo " - have your system administrator run these commands:$admincmds" 6383 - fi 6384 - if test -f /etc/ld.so.conf; then 6385 - $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" 6386 - fi 6387 - $echo 6388 - $echo "See any operating system documentation about shared libraries for" 6389 - $echo "more information, such as the ld(1) and ld.so(8) manual pages." 6390 - $echo "X----------------------------------------------------------------------" | $Xsed 6391 - exit $EXIT_SUCCESS 6392 - ;; 6393 - 6394 - # libtool execute mode 6395 - execute) 6396 - modename="$modename: execute" 6397 - 6398 - # The first argument is the command name. 6399 - cmd="$nonopt" 6400 - if test -z "$cmd"; then 6401 - $echo "$modename: you must specify a COMMAND" 1>&2 6402 - $echo "$help" 6403 - exit $EXIT_FAILURE 6404 - fi 6405 - 6406 - # Handle -dlopen flags immediately. 6407 - for file in $execute_dlfiles; do 6408 - if test ! -f "$file"; then 6409 - $echo "$modename: \`$file' is not a file" 1>&2 6410 - $echo "$help" 1>&2 6411 - exit $EXIT_FAILURE 6412 - fi 6413 - 6414 - dir= 6415 - case $file in 6416 - *.la) 6417 - # Check to see that this really is a libtool archive. 6418 - if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : 6419 - else 6420 - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 6421 - $echo "$help" 1>&2 6422 - exit $EXIT_FAILURE 6423 - fi 6424 - 6425 - # Read the libtool library. 6426 - dlname= 6427 - library_names= 6428 - 6429 - # If there is no directory component, then add one. 6430 - case $file in 6431 - */* | *\\*) . $file ;; 6432 - *) . ./$file ;; 6433 - esac 6434 - 6435 - # Skip this library if it cannot be dlopened. 6436 - if test -z "$dlname"; then 6437 - # Warn if it was a shared library. 6438 - test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" 6439 - continue 6440 - fi 6441 - 6442 - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 6443 - test "X$dir" = "X$file" && dir=. 6444 - 6445 - if test -f "$dir/$objdir/$dlname"; then 6446 - dir="$dir/$objdir" 6447 - else 6448 - if test ! -f "$dir/$dlname"; then 6449 - $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 6450 - exit $EXIT_FAILURE 6451 - fi 6452 - fi 6453 - ;; 6454 - 6455 - *.lo) 6456 - # Just add the directory containing the .lo file. 6457 - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 6458 - test "X$dir" = "X$file" && dir=. 6459 - ;; 6460 - 6461 - *) 6462 - $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 6463 - continue 6464 - ;; 6465 - esac 6466 - 6467 - # Get the absolute pathname. 6468 - absdir=`cd "$dir" && pwd` 6469 - test -n "$absdir" && dir="$absdir" 6470 - 6471 - # Now add the directory to shlibpath_var. 6472 - if eval "test -z \"\$$shlibpath_var\""; then 6473 - eval "$shlibpath_var=\"\$dir\"" 6474 - else 6475 - eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" 6476 - fi 6477 - done 6478 - 6479 - # This variable tells wrapper scripts just to set shlibpath_var 6480 - # rather than running their programs. 6481 - libtool_execute_magic="$magic" 6482 - 6483 - # Check if any of the arguments is a wrapper script. 6484 - args= 6485 - for file 6486 - do 6487 - case $file in 6488 - -*) ;; 6489 - *) 6490 - # Do a test to see if this is really a libtool program. 6491 - if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 6492 - # If there is no directory component, then add one. 6493 - case $file in 6494 - */* | *\\*) . $file ;; 6495 - *) . ./$file ;; 6496 - esac 6497 - 6498 - # Transform arg to wrapped name. 6499 - file="$progdir/$program" 6500 - fi 6501 - ;; 6502 - esac 6503 - # Quote arguments (to preserve shell metacharacters). 6504 - file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` 6505 - args="$args \"$file\"" 6506 - done 6507 - 6508 - if test -z "$run"; then 6509 - if test -n "$shlibpath_var"; then 6510 - # Export the shlibpath_var. 6511 - eval "export $shlibpath_var" 6512 - fi 6513 - 6514 - # Restore saved environment variables 6515 - for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES 6516 - do 6517 - eval "if test \"\${save_$lt_var+set}\" = set; then 6518 - $lt_var=\$save_$lt_var; export $lt_var 6519 - fi" 6520 - done 6521 - 6522 - # Now prepare to actually exec the command. 6523 - exec_cmd="\$cmd$args" 6524 - else 6525 - # Display what would be done. 6526 - if test -n "$shlibpath_var"; then 6527 - eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" 6528 - $echo "export $shlibpath_var" 6529 - fi 6530 - $echo "$cmd$args" 6531 - exit $EXIT_SUCCESS 6532 - fi 6533 - ;; 6534 - 6535 - # libtool clean and uninstall mode 6536 - clean | uninstall) 6537 - modename="$modename: $mode" 6538 - rm="$nonopt" 6539 - files= 6540 - rmforce= 6541 - exit_status=0 6542 - 6543 - # This variable tells wrapper scripts just to set variables rather 6544 - # than running their programs. 6545 - libtool_install_magic="$magic" 6546 - 6547 - for arg 6548 - do 6549 - case $arg in 6550 - -f) rm="$rm $arg"; rmforce=yes ;; 6551 - -*) rm="$rm $arg" ;; 6552 - *) files="$files $arg" ;; 6553 - esac 6554 - done 6555 - 6556 - if test -z "$rm"; then 6557 - $echo "$modename: you must specify an RM program" 1>&2 6558 - $echo "$help" 1>&2 6559 - exit $EXIT_FAILURE 6560 - fi 6561 - 6562 - rmdirs= 6563 - 6564 - origobjdir="$objdir" 6565 - for file in $files; do 6566 - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` 6567 - if test "X$dir" = "X$file"; then 6568 - dir=. 6569 - objdir="$origobjdir" 6570 - else 6571 - objdir="$dir/$origobjdir" 6572 - fi 6573 - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 6574 - test "$mode" = uninstall && objdir="$dir" 6575 - 6576 - # Remember objdir for removal later, being careful to avoid duplicates 6577 - if test "$mode" = clean; then 6578 - case " $rmdirs " in 6579 - *" $objdir "*) ;; 6580 - *) rmdirs="$rmdirs $objdir" ;; 6581 - esac 6582 - fi 6583 - 6584 - # Don't error if the file doesn't exist and rm -f was used. 6585 - if (test -L "$file") >/dev/null 2>&1 \ 6586 - || (test -h "$file") >/dev/null 2>&1 \ 6587 - || test -f "$file"; then 6588 - : 6589 - elif test -d "$file"; then 6590 - exit_status=1 6591 - continue 6592 - elif test "$rmforce" = yes; then 6593 - continue 6594 - fi 6595 - 6596 - rmfiles="$file" 6597 - 6598 - case $name in 6599 - *.la) 6600 - # Possibly a libtool archive, so verify it. 6601 - if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 6602 - . $dir/$name 6603 - 6604 - # Delete the libtool libraries and symlinks. 6605 - for n in $library_names; do 6606 - rmfiles="$rmfiles $objdir/$n" 6607 - done 6608 - test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" 6609 - 6610 - case "$mode" in 6611 - clean) 6612 - case " $library_names " in 6613 - # " " in the beginning catches empty $dlname 6614 - *" $dlname "*) ;; 6615 - *) rmfiles="$rmfiles $objdir/$dlname" ;; 6616 - esac 6617 - test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" 6618 - ;; 6619 - uninstall) 6620 - if test -n "$library_names"; then 6621 - # Do each command in the postuninstall commands. 6622 - cmds=$postuninstall_cmds 6623 - save_ifs="$IFS"; IFS='~' 6624 - for cmd in $cmds; do 6625 - IFS="$save_ifs" 6626 - eval cmd=\"$cmd\" 6627 - $show "$cmd" 6628 - $run eval "$cmd" 6629 - if test "$?" -ne 0 && test "$rmforce" != yes; then 6630 - exit_status=1 6631 - fi 6632 - done 6633 - IFS="$save_ifs" 6634 - fi 6635 - 6636 - if test -n "$old_library"; then 6637 - # Do each command in the old_postuninstall commands. 6638 - cmds=$old_postuninstall_cmds 6639 - save_ifs="$IFS"; IFS='~' 6640 - for cmd in $cmds; do 6641 - IFS="$save_ifs" 6642 - eval cmd=\"$cmd\" 6643 - $show "$cmd" 6644 - $run eval "$cmd" 6645 - if test "$?" -ne 0 && test "$rmforce" != yes; then 6646 - exit_status=1 6647 - fi 6648 - done 6649 - IFS="$save_ifs" 6650 - fi 6651 - # FIXME: should reinstall the best remaining shared library. 6652 - ;; 6653 - esac 6654 - fi 6655 - ;; 6656 - 6657 - *.lo) 6658 - # Possibly a libtool object, so verify it. 6659 - if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 6660 - 6661 - # Read the .lo file 6662 - . $dir/$name 6663 - 6664 - # Add PIC object to the list of files to remove. 6665 - if test -n "$pic_object" \ 6666 - && test "$pic_object" != none; then 6667 - rmfiles="$rmfiles $dir/$pic_object" 6668 - fi 6669 - 6670 - # Add non-PIC object to the list of files to remove. 6671 - if test -n "$non_pic_object" \ 6672 - && test "$non_pic_object" != none; then 6673 - rmfiles="$rmfiles $dir/$non_pic_object" 6674 - fi 6675 - fi 6676 - ;; 6677 - 6678 - *) 6679 - if test "$mode" = clean ; then 6680 - noexename=$name 6681 - case $file in 6682 - *.exe) 6683 - file=`$echo $file|${SED} 's,.exe$,,'` 6684 - noexename=`$echo $name|${SED} 's,.exe$,,'` 6685 - # $file with .exe has already been added to rmfiles, 6686 - # add $file without .exe 6687 - rmfiles="$rmfiles $file" 6688 - ;; 6689 - esac 6690 - # Do a test to see if this is a libtool program. 6691 - if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then 6692 - relink_command= 6693 - . $dir/$noexename 6694 - 6695 - # note $name still contains .exe if it was in $file originally 6696 - # as does the version of $file that was added into $rmfiles 6697 - rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" 6698 - if test "$fast_install" = yes && test -n "$relink_command"; then 6699 - rmfiles="$rmfiles $objdir/lt-$name" 6700 - fi 6701 - if test "X$noexename" != "X$name" ; then 6702 - rmfiles="$rmfiles $objdir/lt-${noexename}.c" 6703 - fi 6704 - fi 6705 - fi 6706 - ;; 6707 - esac 6708 - $show "$rm $rmfiles" 6709 - $run $rm $rmfiles || exit_status=1 6710 - done 6711 - objdir="$origobjdir" 6712 - 6713 - # Try to remove the ${objdir}s in the directories where we deleted files 6714 - for dir in $rmdirs; do 6715 - if test -d "$dir"; then 6716 - $show "rmdir $dir" 6717 - $run rmdir $dir >/dev/null 2>&1 6718 - fi 6719 - done 6720 - 6721 - exit $exit_status 6722 - ;; 6723 - 6724 - "") 6725 - $echo "$modename: you must specify a MODE" 1>&2 6726 - $echo "$generic_help" 1>&2 6727 - exit $EXIT_FAILURE 6728 - ;; 6729 - esac 6730 - 6731 - if test -z "$exec_cmd"; then 6732 - $echo "$modename: invalid operation mode \`$mode'" 1>&2 6733 - $echo "$generic_help" 1>&2 6734 - exit $EXIT_FAILURE 6735 - fi 6736 -fi # test -z "$show_help" 6737 - 6738 -if test -n "$exec_cmd"; then 6739 - eval exec $exec_cmd 6740 - exit $EXIT_FAILURE 6741 -fi 6742 - 6743 -# We need to display help for each of the modes. 6744 -case $mode in 6745 -"") $echo \ 6746 -"Usage: $modename [OPTION]... [MODE-ARG]... 6747 - 6748 -Provide generalized library-building support services. 6749 - 6750 - --config show all configuration variables 6751 - --debug enable verbose shell tracing 6752 --n, --dry-run display commands without modifying any files 6753 - --features display basic configuration information and exit 6754 - --finish same as \`--mode=finish' 6755 - --help display this help message and exit 6756 - --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] 6757 - --quiet same as \`--silent' 6758 - --silent don't print informational messages 6759 - --tag=TAG use configuration variables from tag TAG 6760 - --version print version information 6761 - 6762 -MODE must be one of the following: 6763 - 6764 - clean remove files from the build directory 6765 - compile compile a source file into a libtool object 6766 - execute automatically set library path, then run a program 6767 - finish complete the installation of libtool libraries 6768 - install install libraries or executables 6769 - link create a library or an executable 6770 - uninstall remove libraries from an installed directory 6771 - 6772 -MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for 6773 -a more detailed description of MODE. 6774 - 6775 -Report bugs to <bug-libtool@gnu.org>." 6776 - exit $EXIT_SUCCESS 6777 - ;; 6778 - 6779 -clean) 6780 - $echo \ 6781 -"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... 6782 - 6783 -Remove files from the build directory. 6784 - 6785 -RM is the name of the program to use to delete files associated with each FILE 6786 -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed 6787 -to RM. 6788 - 6789 -If FILE is a libtool library, object or program, all the files associated 6790 -with it are deleted. Otherwise, only FILE itself is deleted using RM." 6791 - ;; 6792 - 6793 -compile) 6794 - $echo \ 6795 -"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE 6796 - 6797 -Compile a source file into a libtool library object. 6798 - 6799 -This mode accepts the following additional options: 6800 - 6801 - -o OUTPUT-FILE set the output file name to OUTPUT-FILE 6802 - -prefer-pic try to building PIC objects only 6803 - -prefer-non-pic try to building non-PIC objects only 6804 - -static always build a \`.o' file suitable for static linking 6805 - 6806 -COMPILE-COMMAND is a command to be used in creating a \`standard' object file 6807 -from the given SOURCEFILE. 6808 - 6809 -The output file name is determined by removing the directory component from 6810 -SOURCEFILE, then substituting the C source code suffix \`.c' with the 6811 -library object suffix, \`.lo'." 6812 - ;; 6813 - 6814 -execute) 6815 - $echo \ 6816 -"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... 6817 - 6818 -Automatically set library path, then run a program. 6819 - 6820 -This mode accepts the following additional options: 6821 - 6822 - -dlopen FILE add the directory containing FILE to the library path 6823 - 6824 -This mode sets the library path environment variable according to \`-dlopen' 6825 -flags. 6826 - 6827 -If any of the ARGS are libtool executable wrappers, then they are translated 6828 -into their corresponding uninstalled binary, and any of their required library 6829 -directories are added to the library path. 6830 - 6831 -Then, COMMAND is executed, with ARGS as arguments." 6832 - ;; 6833 - 6834 -finish) 6835 - $echo \ 6836 -"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... 6837 - 6838 -Complete the installation of libtool libraries. 6839 - 6840 -Each LIBDIR is a directory that contains libtool libraries. 6841 - 6842 -The commands that this mode executes may require superuser privileges. Use 6843 -the \`--dry-run' option if you just want to see what would be executed." 6844 - ;; 6845 - 6846 -install) 6847 - $echo \ 6848 -"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... 6849 - 6850 -Install executables or libraries. 6851 - 6852 -INSTALL-COMMAND is the installation command. The first component should be 6853 -either the \`install' or \`cp' program. 6854 - 6855 -The rest of the components are interpreted as arguments to that command (only 6856 -BSD-compatible install options are recognized)." 6857 - ;; 6858 - 6859 -link) 6860 - $echo \ 6861 -"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... 6862 - 6863 -Link object files or libraries together to form another library, or to 6864 -create an executable program. 6865 - 6866 -LINK-COMMAND is a command using the C compiler that you would use to create 6867 -a program from several object files. 6868 - 6869 -The following components of LINK-COMMAND are treated specially: 6870 - 6871 - -all-static do not do any dynamic linking at all 6872 - -avoid-version do not add a version suffix if possible 6873 - -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime 6874 - -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols 6875 - -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) 6876 - -export-symbols SYMFILE 6877 - try to export only the symbols listed in SYMFILE 6878 - -export-symbols-regex REGEX 6879 - try to export only the symbols matching REGEX 6880 - -LLIBDIR search LIBDIR for required installed libraries 6881 - -lNAME OUTPUT-FILE requires the installed library libNAME 6882 - -module build a library that can dlopened 6883 - -no-fast-install disable the fast-install mode 6884 - -no-install link a not-installable executable 6885 - -no-undefined declare that a library does not refer to external symbols 6886 - -o OUTPUT-FILE create OUTPUT-FILE from the specified objects 6887 - -objectlist FILE Use a list of object files found in FILE to specify objects 6888 - -precious-files-regex REGEX 6889 - don't remove output files matching REGEX 6890 - -release RELEASE specify package release information 6891 - -rpath LIBDIR the created library will eventually be installed in LIBDIR 6892 - -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries 6893 - -static do not do any dynamic linking of uninstalled libtool libraries 6894 - -static-libtool-libs 6895 - do not do any dynamic linking of libtool libraries 6896 - -version-info CURRENT[:REVISION[:AGE]] 6897 - specify library version info [each variable defaults to 0] 6898 - 6899 -All other options (arguments beginning with \`-') are ignored. 6900 - 6901 -Every other argument is treated as a filename. Files ending in \`.la' are 6902 -treated as uninstalled libtool libraries, other files are standard or library 6903 -object files. 6904 - 6905 -If the OUTPUT-FILE ends in \`.la', then a libtool library is created, 6906 -only library objects (\`.lo' files) may be specified, and \`-rpath' is 6907 -required, except when creating a convenience library. 6908 - 6909 -If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created 6910 -using \`ar' and \`ranlib', or on Windows using \`lib'. 6911 - 6912 -If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file 6913 -is created, otherwise an executable program is created." 6914 - ;; 6915 - 6916 -uninstall) 6917 - $echo \ 6918 -"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... 6919 - 6920 -Remove libraries from an installation directory. 6921 - 6922 -RM is the name of the program to use to delete files associated with each FILE 6923 -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed 6924 -to RM. 6925 - 6926 -If FILE is a libtool library, all the files associated with it are deleted. 6927 -Otherwise, only FILE itself is deleted using RM." 6928 - ;; 6929 - 6930 -*) 6931 - $echo "$modename: invalid operation mode \`$mode'" 1>&2 6932 - $echo "$help" 1>&2 6933 - exit $EXIT_FAILURE 6934 - ;; 6935 -esac 6936 - 6937 -$echo 6938 -$echo "Try \`$modename --help' for more information about other modes." 6939 - 6940 -exit $? 6941 - 6942 -# The TAGs below are defined such that we never get into a situation 6943 -# in which we disable both kinds of libraries. Given conflicting 6944 -# choices, we go for a static library, that is the most portable, 6945 -# since we can't tell whether shared libraries were disabled because 6946 -# the user asked for that or because the platform doesn't support 6947 -# them. This is particularly important on AIX, because we don't 6948 -# support having both static and shared libraries enabled at the same 6949 -# time on that platform, so we default to a shared-only configuration. 6950 -# If a disable-shared tag is given, we'll fallback to a static-only 6951 -# configuration. But we'll never go from static-only to shared-only. 6952 - 6953 -# ### BEGIN LIBTOOL TAG CONFIG: disable-shared 6954 -disable_libs=shared 6955 -# ### END LIBTOOL TAG CONFIG: disable-shared 6956 - 6957 -# ### BEGIN LIBTOOL TAG CONFIG: disable-static 6958 -disable_libs=static 6959 -# ### END LIBTOOL TAG CONFIG: disable-static 6960 - 6961 -# Local Variables: 6962 -# mode:shell-script 6963 -# sh-indentation:2 6964 -# End: 1 +/usr/share/libtool/config/ltmain.sh
Changes to missing.
1 -#! /bin/sh 2 -# Common stub for a few missing GNU programs while installing. 3 - 4 -scriptversion=2006-05-10.23 5 - 6 -# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 7 -# Free Software Foundation, Inc. 8 -# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. 9 - 10 -# This program is free software; you can redistribute it and/or modify 11 -# it under the terms of the GNU General Public License as published by 12 -# the Free Software Foundation; either version 2, or (at your option) 13 -# any later version. 14 - 15 -# This program is distributed in the hope that it will be useful, 16 -# but WITHOUT ANY WARRANTY; without even the implied warranty of 17 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 -# GNU General Public License for more details. 19 - 20 -# You should have received a copy of the GNU General Public License 21 -# along with this program; if not, write to the Free Software 22 -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 23 -# 02110-1301, USA. 24 - 25 -# As a special exception to the GNU General Public License, if you 26 -# distribute this file as part of a program that contains a 27 -# configuration script generated by Autoconf, you may include it under 28 -# the same distribution terms that you use for the rest of that program. 29 - 30 -if test $# -eq 0; then 31 - echo 1>&2 "Try \`$0 --help' for more information" 32 - exit 1 33 -fi 34 - 35 -run=: 36 -sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' 37 -sed_minuso='s/.* -o \([^ ]*\).*/\1/p' 38 - 39 -# In the cases where this matters, `missing' is being run in the 40 -# srcdir already. 41 -if test -f configure.ac; then 42 - configure_ac=configure.ac 43 -else 44 - configure_ac=configure.in 45 -fi 46 - 47 -msg="missing on your system" 48 - 49 -case $1 in 50 ---run) 51 - # Try to run requested program, and just exit if it succeeds. 52 - run= 53 - shift 54 - "$@" && exit 0 55 - # Exit code 63 means version mismatch. This often happens 56 - # when the user try to use an ancient version of a tool on 57 - # a file that requires a minimum version. In this case we 58 - # we should proceed has if the program had been absent, or 59 - # if --run hadn't been passed. 60 - if test $? = 63; then 61 - run=: 62 - msg="probably too old" 63 - fi 64 - ;; 65 - 66 - -h|--h|--he|--hel|--help) 67 - echo "\ 68 -$0 [OPTION]... PROGRAM [ARGUMENT]... 69 - 70 -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an 71 -error status if there is no known handling for PROGRAM. 72 - 73 -Options: 74 - -h, --help display this help and exit 75 - -v, --version output version information and exit 76 - --run try to run the given command, and emulate it if it fails 77 - 78 -Supported PROGRAM values: 79 - aclocal touch file \`aclocal.m4' 80 - autoconf touch file \`configure' 81 - autoheader touch file \`config.h.in' 82 - autom4te touch the output file, or create a stub one 83 - automake touch all \`Makefile.in' files 84 - bison create \`y.tab.[ch]', if possible, from existing .[ch] 85 - flex create \`lex.yy.c', if possible, from existing .c 86 - help2man touch the output file 87 - lex create \`lex.yy.c', if possible, from existing .c 88 - makeinfo touch the output file 89 - tar try tar, gnutar, gtar, then tar without non-portable flags 90 - yacc create \`y.tab.[ch]', if possible, from existing .[ch] 91 - 92 -Send bug reports to <bug-automake@gnu.org>." 93 - exit $? 94 - ;; 95 - 96 - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 97 - echo "missing $scriptversion (GNU Automake)" 98 - exit $? 99 - ;; 100 - 101 - -*) 102 - echo 1>&2 "$0: Unknown \`$1' option" 103 - echo 1>&2 "Try \`$0 --help' for more information" 104 - exit 1 105 - ;; 106 - 107 -esac 108 - 109 -# Now exit if we have it, but it failed. Also exit now if we 110 -# don't have it and --version was passed (most likely to detect 111 -# the program). 112 -case $1 in 113 - lex|yacc) 114 - # Not GNU programs, they don't have --version. 115 - ;; 116 - 117 - tar) 118 - if test -n "$run"; then 119 - echo 1>&2 "ERROR: \`tar' requires --run" 120 - exit 1 121 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 122 - exit 1 123 - fi 124 - ;; 125 - 126 - *) 127 - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then 128 - # We have it, but it failed. 129 - exit 1 130 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 131 - # Could not run --version or --help. This is probably someone 132 - # running `$TOOL --version' or `$TOOL --help' to check whether 133 - # $TOOL exists and not knowing $TOOL uses missing. 134 - exit 1 135 - fi 136 - ;; 137 -esac 138 - 139 -# If it does not exist, or fails to run (possibly an outdated version), 140 -# try to emulate it. 141 -case $1 in 142 - aclocal*) 143 - echo 1>&2 "\ 144 -WARNING: \`$1' is $msg. You should only need it if 145 - you modified \`acinclude.m4' or \`${configure_ac}'. You might want 146 - to install the \`Automake' and \`Perl' packages. Grab them from 147 - any GNU archive site." 148 - touch aclocal.m4 149 - ;; 150 - 151 - autoconf) 152 - echo 1>&2 "\ 153 -WARNING: \`$1' is $msg. You should only need it if 154 - you modified \`${configure_ac}'. You might want to install the 155 - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU 156 - archive site." 157 - touch configure 158 - ;; 159 - 160 - autoheader) 161 - echo 1>&2 "\ 162 -WARNING: \`$1' is $msg. You should only need it if 163 - you modified \`acconfig.h' or \`${configure_ac}'. You might want 164 - to install the \`Autoconf' and \`GNU m4' packages. Grab them 165 - from any GNU archive site." 166 - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` 167 - test -z "$files" && files="config.h" 168 - touch_files= 169 - for f in $files; do 170 - case $f in 171 - *:*) touch_files="$touch_files "`echo "$f" | 172 - sed -e 's/^[^:]*://' -e 's/:.*//'`;; 173 - *) touch_files="$touch_files $f.in";; 174 - esac 175 - done 176 - touch $touch_files 177 - ;; 178 - 179 - automake*) 180 - echo 1>&2 "\ 181 -WARNING: \`$1' is $msg. You should only need it if 182 - you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. 183 - You might want to install the \`Automake' and \`Perl' packages. 184 - Grab them from any GNU archive site." 185 - find . -type f -name Makefile.am -print | 186 - sed 's/\.am$/.in/' | 187 - while read f; do touch "$f"; done 188 - ;; 189 - 190 - autom4te) 191 - echo 1>&2 "\ 192 -WARNING: \`$1' is needed, but is $msg. 193 - You might have modified some files without having the 194 - proper tools for further handling them. 195 - You can get \`$1' as part of \`Autoconf' from any GNU 196 - archive site." 197 - 198 - file=`echo "$*" | sed -n "$sed_output"` 199 - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 200 - if test -f "$file"; then 201 - touch $file 202 - else 203 - test -z "$file" || exec >$file 204 - echo "#! /bin/sh" 205 - echo "# Created by GNU Automake missing as a replacement of" 206 - echo "# $ $@" 207 - echo "exit 0" 208 - chmod +x $file 209 - exit 1 210 - fi 211 - ;; 212 - 213 - bison|yacc) 214 - echo 1>&2 "\ 215 -WARNING: \`$1' $msg. You should only need it if 216 - you modified a \`.y' file. You may need the \`Bison' package 217 - in order for those modifications to take effect. You can get 218 - \`Bison' from any GNU archive site." 219 - rm -f y.tab.c y.tab.h 220 - if test $# -ne 1; then 221 - eval LASTARG="\${$#}" 222 - case $LASTARG in 223 - *.y) 224 - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` 225 - if test -f "$SRCFILE"; then 226 - cp "$SRCFILE" y.tab.c 227 - fi 228 - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` 229 - if test -f "$SRCFILE"; then 230 - cp "$SRCFILE" y.tab.h 231 - fi 232 - ;; 233 - esac 234 - fi 235 - if test ! -f y.tab.h; then 236 - echo >y.tab.h 237 - fi 238 - if test ! -f y.tab.c; then 239 - echo 'main() { return 0; }' >y.tab.c 240 - fi 241 - ;; 242 - 243 - lex|flex) 244 - echo 1>&2 "\ 245 -WARNING: \`$1' is $msg. You should only need it if 246 - you modified a \`.l' file. You may need the \`Flex' package 247 - in order for those modifications to take effect. You can get 248 - \`Flex' from any GNU archive site." 249 - rm -f lex.yy.c 250 - if test $# -ne 1; then 251 - eval LASTARG="\${$#}" 252 - case $LASTARG in 253 - *.l) 254 - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` 255 - if test -f "$SRCFILE"; then 256 - cp "$SRCFILE" lex.yy.c 257 - fi 258 - ;; 259 - esac 260 - fi 261 - if test ! -f lex.yy.c; then 262 - echo 'main() { return 0; }' >lex.yy.c 263 - fi 264 - ;; 265 - 266 - help2man) 267 - echo 1>&2 "\ 268 -WARNING: \`$1' is $msg. You should only need it if 269 - you modified a dependency of a manual page. You may need the 270 - \`Help2man' package in order for those modifications to take 271 - effect. You can get \`Help2man' from any GNU archive site." 272 - 273 - file=`echo "$*" | sed -n "$sed_output"` 274 - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 275 - if test -f "$file"; then 276 - touch $file 277 - else 278 - test -z "$file" || exec >$file 279 - echo ".ab help2man is required to generate this page" 280 - exit 1 281 - fi 282 - ;; 283 - 284 - makeinfo) 285 - echo 1>&2 "\ 286 -WARNING: \`$1' is $msg. You should only need it if 287 - you modified a \`.texi' or \`.texinfo' file, or any other file 288 - indirectly affecting the aspect of the manual. The spurious 289 - call might also be the consequence of using a buggy \`make' (AIX, 290 - DU, IRIX). You might want to install the \`Texinfo' package or 291 - the \`GNU make' package. Grab either from any GNU archive site." 292 - # The file to touch is that specified with -o ... 293 - file=`echo "$*" | sed -n "$sed_output"` 294 - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 295 - if test -z "$file"; then 296 - # ... or it is the one specified with @setfilename ... 297 - infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` 298 - file=`sed -n ' 299 - /^@setfilename/{ 300 - s/.* \([^ ]*\) *$/\1/ 301 - p 302 - q 303 - }' $infile` 304 - # ... or it is derived from the source name (dir/f.texi becomes f.info) 305 - test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info 306 - fi 307 - # If the file does not exist, the user really needs makeinfo; 308 - # let's fail without touching anything. 309 - test -f $file || exit 1 310 - touch $file 311 - ;; 312 - 313 - tar) 314 - shift 315 - 316 - # We have already tried tar in the generic part. 317 - # Look for gnutar/gtar before invocation to avoid ugly error 318 - # messages. 319 - if (gnutar --version > /dev/null 2>&1); then 320 - gnutar "$@" && exit 0 321 - fi 322 - if (gtar --version > /dev/null 2>&1); then 323 - gtar "$@" && exit 0 324 - fi 325 - firstarg="$1" 326 - if shift; then 327 - case $firstarg in 328 - *o*) 329 - firstarg=`echo "$firstarg" | sed s/o//` 330 - tar "$firstarg" "$@" && exit 0 331 - ;; 332 - esac 333 - case $firstarg in 334 - *h*) 335 - firstarg=`echo "$firstarg" | sed s/h//` 336 - tar "$firstarg" "$@" && exit 0 337 - ;; 338 - esac 339 - fi 340 - 341 - echo 1>&2 "\ 342 -WARNING: I can't seem to be able to run \`tar' with the given arguments. 343 - You may want to install GNU tar or Free paxutils, or check the 344 - command line arguments." 345 - exit 1 346 - ;; 347 - 348 - *) 349 - echo 1>&2 "\ 350 -WARNING: \`$1' is needed, and is $msg. 351 - You might have modified some files without having the 352 - proper tools for further handling them. Check the \`README' file, 353 - it often tells you about the needed prerequisites for installing 354 - this package. You may also peek at any GNU archive site, in case 355 - some other package would contain this missing \`$1' program." 356 - exit 1 357 - ;; 358 -esac 359 - 360 -exit 0 361 - 362 -# Local variables: 363 -# eval: (add-hook 'write-file-hooks 'time-stamp) 364 -# time-stamp-start: "scriptversion=" 365 -# time-stamp-format: "%:y-%02m-%02d.%02H" 366 -# time-stamp-end: "$" 367 -# End: 1 +/usr/share/automake-1.11/missing
Changes to src/Makefile.am.
1 1 2 -AM_CFLAGS = -D_LARGE_FILE=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 2 +AM_CFLAGS = -D_LARGE_FILE=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 \ 3 + @LIBSPATIALITE_CFLAGS@ 3 4 4 5 bin_PROGRAMS =rasterlite_load \ 5 6 rasterlite_pyramid \ 6 7 rasterlite_topmost \ 7 8 rasterlite_grid \ 8 9 rasterlite_tool 9 10 10 11 INCLUDES = @CFLAGS@ 11 12 INCLUDES += -I$(top_srcdir)/headers 12 -INCLUDES += -I$(top_srcdir)/epsilon 13 13 14 14 rasterlite_load_SOURCES = rasterlite_load.c 15 15 rasterlite_pyramid_SOURCES = rasterlite_pyramid.c 16 16 rasterlite_topmost_SOURCES = rasterlite_topmost.c 17 17 rasterlite_grid_SOURCES = rasterlite_grid.c 18 18 rasterlite_tool_SOURCES = rasterlite_tool.c 19 19 20 20 LDADD = ../lib/.libs/librasterlite.a \ 21 + @LIBSPATIALITE_LIBS@ \ 21 22 -lgeotiff -ltiff -ljpeg -lpng -lspatialite -lproj 22 23
Changes to src/Makefile.in.
1 -# Makefile.in generated by automake 1.10.1 from Makefile.am. 1 +# Makefile.in generated by automake 1.11.1 from Makefile.am. 2 2 # @configure_input@ 3 3 4 4 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 5 -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. 5 +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, 6 +# Inc. 6 7 # This Makefile.in is free software; the Free Software Foundation 7 8 # gives unlimited permission to copy and/or distribute it, 8 9 # with or without modifications, as long as this notice is preserved. 9 10 10 11 # This program is distributed in the hope that it will be useful, 11 12 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without 12 13 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A 13 14 # PARTICULAR PURPOSE. 14 15 15 16 @SET_MAKE@ 16 17 17 18 VPATH = @srcdir@ 18 19 pkgdatadir = $(datadir)/@PACKAGE@ 19 -pkglibdir = $(libdir)/@PACKAGE@ 20 20 pkgincludedir = $(includedir)/@PACKAGE@ 21 +pkglibdir = $(libdir)/@PACKAGE@ 22 +pkglibexecdir = $(libexecdir)/@PACKAGE@ 21 23 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd 22 24 install_sh_DATA = $(install_sh) -c -m 644 23 25 install_sh_PROGRAM = $(install_sh) -c 24 26 install_sh_SCRIPT = $(install_sh) -c 25 27 INSTALL_HEADER = $(INSTALL_DATA) 26 28 transform = $(program_transform_name) 27 29 NORMAL_INSTALL = : ................................................................................ 39 41 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in 40 42 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 41 43 am__aclocal_m4_deps = $(top_srcdir)/configure.ac 42 44 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 43 45 $(ACLOCAL_M4) 44 46 mkinstalldirs = $(install_sh) -d 45 47 CONFIG_CLEAN_FILES = 48 +CONFIG_CLEAN_VPATH_FILES = 46 49 am__installdirs = "$(DESTDIR)$(bindir)" 47 -binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) 48 50 PROGRAMS = $(bin_PROGRAMS) 49 51 am_rasterlite_grid_OBJECTS = rasterlite_grid.$(OBJEXT) 50 52 rasterlite_grid_OBJECTS = $(am_rasterlite_grid_OBJECTS) 51 53 rasterlite_grid_LDADD = $(LDADD) 52 54 rasterlite_grid_DEPENDENCIES = ../lib/.libs/librasterlite.a 53 55 am_rasterlite_load_OBJECTS = rasterlite_load.$(OBJEXT) 54 56 rasterlite_load_OBJECTS = $(am_rasterlite_load_OBJECTS) ................................................................................ 65 67 am_rasterlite_topmost_OBJECTS = rasterlite_topmost.$(OBJEXT) 66 68 rasterlite_topmost_OBJECTS = $(am_rasterlite_topmost_OBJECTS) 67 69 rasterlite_topmost_LDADD = $(LDADD) 68 70 rasterlite_topmost_DEPENDENCIES = ../lib/.libs/librasterlite.a 69 71 DEFAULT_INCLUDES = -I.@am__isrc@ 70 72 depcomp = $(SHELL) $(top_srcdir)/depcomp 71 73 am__depfiles_maybe = depfiles 74 +am__mv = mv -f 72 75 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ 73 76 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) 74 77 LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ 75 78 --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ 76 79 $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) 77 80 CCLD = $(CC) 78 81 LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ ................................................................................ 105 108 CXXDEPMODE = @CXXDEPMODE@ 106 109 CXXFLAGS = @CXXFLAGS@ 107 110 CYGPATH_W = @CYGPATH_W@ 108 111 DEFS = @DEFS@ 109 112 DEPDIR = @DEPDIR@ 110 113 DLLTOOL = @DLLTOOL@ 111 114 DSYMUTIL = @DSYMUTIL@ 112 -ECHO = @ECHO@ 115 +DUMPBIN = @DUMPBIN@ 113 116 ECHO_C = @ECHO_C@ 114 117 ECHO_N = @ECHO_N@ 115 118 ECHO_T = @ECHO_T@ 116 119 EGREP = @EGREP@ 117 120 EXEEXT = @EXEEXT@ 118 -F77 = @F77@ 119 -FFLAGS = @FFLAGS@ 121 +FGREP = @FGREP@ 120 122 GREP = @GREP@ 121 123 INSTALL = @INSTALL@ 122 124 INSTALL_DATA = @INSTALL_DATA@ 123 125 INSTALL_PROGRAM = @INSTALL_PROGRAM@ 124 126 INSTALL_SCRIPT = @INSTALL_SCRIPT@ 125 127 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ 128 +LD = @LD@ 126 129 LDFLAGS = @LDFLAGS@ 127 130 LIBOBJS = @LIBOBJS@ 128 131 LIBS = @LIBS@ 132 +LIBSPATIALITE_CFLAGS = @LIBSPATIALITE_CFLAGS@ 133 +LIBSPATIALITE_LIBS = @LIBSPATIALITE_LIBS@ 129 134 LIBTOOL = @LIBTOOL@ 135 +LIPO = @LIPO@ 130 136 LN_S = @LN_S@ 131 137 LTLIBOBJS = @LTLIBOBJS@ 132 138 MAINT = @MAINT@ 133 139 MAKEINFO = @MAKEINFO@ 134 140 MKDIR_P = @MKDIR_P@ 141 +NM = @NM@ 135 142 NMEDIT = @NMEDIT@ 136 143 OBJDUMP = @OBJDUMP@ 137 144 OBJEXT = @OBJEXT@ 145 +OTOOL = @OTOOL@ 146 +OTOOL64 = @OTOOL64@ 138 147 PACKAGE = @PACKAGE@ 139 148 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ 140 149 PACKAGE_NAME = @PACKAGE_NAME@ 141 150 PACKAGE_STRING = @PACKAGE_STRING@ 142 151 PACKAGE_TARNAME = @PACKAGE_TARNAME@ 152 +PACKAGE_URL = @PACKAGE_URL@ 143 153 PACKAGE_VERSION = @PACKAGE_VERSION@ 144 154 PATH_SEPARATOR = @PATH_SEPARATOR@ 155 +PKG_CONFIG = @PKG_CONFIG@ 156 +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ 157 +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ 145 158 RANLIB = @RANLIB@ 146 159 SED = @SED@ 147 160 SET_MAKE = @SET_MAKE@ 148 161 SHELL = @SHELL@ 149 162 STRIP = @STRIP@ 150 163 VERSION = @VERSION@ 151 164 abs_builddir = @abs_builddir@ 152 165 abs_srcdir = @abs_srcdir@ 153 166 abs_top_builddir = @abs_top_builddir@ 154 167 abs_top_srcdir = @abs_top_srcdir@ 155 168 ac_ct_CC = @ac_ct_CC@ 156 169 ac_ct_CXX = @ac_ct_CXX@ 157 -ac_ct_F77 = @ac_ct_F77@ 170 +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ 158 171 am__include = @am__include@ 159 172 am__leading_dot = @am__leading_dot@ 160 173 am__quote = @am__quote@ 161 174 am__tar = @am__tar@ 162 175 am__untar = @am__untar@ 163 176 bindir = @bindir@ 164 177 build = @build@ ................................................................................ 181 194 includedir = @includedir@ 182 195 infodir = @infodir@ 183 196 install_sh = @install_sh@ 184 197 libdir = @libdir@ 185 198 libexecdir = @libexecdir@ 186 199 localedir = @localedir@ 187 200 localstatedir = @localstatedir@ 201 +lt_ECHO = @lt_ECHO@ 188 202 mandir = @mandir@ 189 203 mkdir_p = @mkdir_p@ 190 204 oldincludedir = @oldincludedir@ 191 205 pdfdir = @pdfdir@ 192 206 prefix = @prefix@ 193 207 program_transform_name = @program_transform_name@ 194 208 psdir = @psdir@ 195 209 sbindir = @sbindir@ 196 210 sharedstatedir = @sharedstatedir@ 197 211 srcdir = @srcdir@ 198 212 sysconfdir = @sysconfdir@ 199 213 target_alias = @target_alias@ 214 +top_build_prefix = @top_build_prefix@ 200 215 top_builddir = @top_builddir@ 201 216 top_srcdir = @top_srcdir@ 202 -AM_CFLAGS = -D_LARGE_FILE=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 203 -INCLUDES = @CFLAGS@ -I$(top_srcdir)/headers -I$(top_srcdir)/epsilon 217 +AM_CFLAGS = -D_LARGE_FILE=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 \ 218 + @LIBSPATIALITE_CFLAGS@ 219 + 220 +INCLUDES = @CFLAGS@ -I$(top_srcdir)/headers 204 221 rasterlite_load_SOURCES = rasterlite_load.c 205 222 rasterlite_pyramid_SOURCES = rasterlite_pyramid.c 206 223 rasterlite_topmost_SOURCES = rasterlite_topmost.c 207 224 rasterlite_grid_SOURCES = rasterlite_grid.c 208 225 rasterlite_tool_SOURCES = rasterlite_tool.c 209 226 LDADD = ../lib/.libs/librasterlite.a \ 227 + @LIBSPATIALITE_LIBS@ \ 210 228 -lgeotiff -ltiff -ljpeg -lpng -lspatialite -lproj 211 229 212 230 all: all-am 213 231 214 232 .SUFFIXES: 215 233 .SUFFIXES: .c .lo .o .obj 216 234 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) 217 235 @for dep in $?; do \ 218 236 case '$(am__configure_deps)' in \ 219 237 *$$dep*) \ 220 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ 221 - && exit 0; \ 238 + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ 239 + && { if test -f $@; then exit 0; else break; fi; }; \ 222 240 exit 1;; \ 223 241 esac; \ 224 242 done; \ 225 - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ 226 - cd $(top_srcdir) && \ 227 - $(AUTOMAKE) --foreign src/Makefile 243 + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ 244 + $(am__cd) $(top_srcdir) && \ 245 + $(AUTOMAKE) --foreign src/Makefile 228 246 .PRECIOUS: Makefile 229 247 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status 230 248 @case '$?' in \ 231 249 *config.status*) \ 232 250 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ 233 251 *) \ 234 252 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ ................................................................................ 238 256 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) 239 257 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 240 258 241 259 $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 242 260 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 243 261 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) 244 262 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh 263 +$(am__aclocal_m4_deps): 245 264 install-binPROGRAMS: $(bin_PROGRAMS) 246 265 @$(NORMAL_INSTALL) 247 266 test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" 248 - @list='$(bin_PROGRAMS)'; for p in $$list; do \ 249 - p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ 250 - if test -f $$p \ 251 - || test -f $$p1 \ 252 - ; then \ 253 - f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ 254 - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ 255 - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ 256 - else :; fi; \ 257 - done 267 + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ 268 + for p in $$list; do echo "$$p $$p"; done | \ 269 + sed 's/$(EXEEXT)$$//' | \ 270 + while read p p1; do if test -f $$p || test -f $$p1; \ 271 + then echo "$$p"; echo "$$p"; else :; fi; \ 272 + done | \ 273 + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ 274 + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ 275 + sed 'N;N;N;s,\n, ,g' | \ 276 + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ 277 + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ 278 + if ($$2 == $$4) files[d] = files[d] " " $$1; \ 279 + else { print "f", $$3 "/" $$4, $$1; } } \ 280 + END { for (d in files) print "f", d, files[d] }' | \ 281 + while read type dir files; do \ 282 + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ 283 + test -z "$$files" || { \ 284 + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ 285 + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ 286 + } \ 287 + ; done 258 288 259 289 uninstall-binPROGRAMS: 260 290 @$(NORMAL_UNINSTALL) 261 - @list='$(bin_PROGRAMS)'; for p in $$list; do \ 262 - f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ 263 - echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ 264 - rm -f "$(DESTDIR)$(bindir)/$$f"; \ 265 - done 291 + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ 292 + files=`for p in $$list; do echo "$$p"; done | \ 293 + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ 294 + -e 's/$$/$(EXEEXT)/' `; \ 295 + test -n "$$list" || exit 0; \ 296 + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ 297 + cd "$(DESTDIR)$(bindir)" && rm -f $$files 266 298 267 299 clean-binPROGRAMS: 268 - @list='$(bin_PROGRAMS)'; for p in $$list; do \ 269 - f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ 270 - echo " rm -f $$p $$f"; \ 271 - rm -f $$p $$f ; \ 272 - done 300 + @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ 301 + echo " rm -f" $$list; \ 302 + rm -f $$list || exit $$?; \ 303 + test -n "$(EXEEXT)" || exit 0; \ 304 + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ 305 + echo " rm -f" $$list; \ 306 + rm -f $$list 273 307 rasterlite_grid$(EXEEXT): $(rasterlite_grid_OBJECTS) $(rasterlite_grid_DEPENDENCIES) 274 308 @rm -f rasterlite_grid$(EXEEXT) 275 309 $(LINK) $(rasterlite_grid_OBJECTS) $(rasterlite_grid_LDADD) $(LIBS) 276 310 rasterlite_load$(EXEEXT): $(rasterlite_load_OBJECTS) $(rasterlite_load_DEPENDENCIES) 277 311 @rm -f rasterlite_load$(EXEEXT) 278 312 $(LINK) $(rasterlite_load_OBJECTS) $(rasterlite_load_LDADD) $(LIBS) 279 313 rasterlite_pyramid$(EXEEXT): $(rasterlite_pyramid_OBJECTS) $(rasterlite_pyramid_DEPENDENCIES) ................................................................................ 296 330 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rasterlite_load.Po@am__quote@ 297 331 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rasterlite_pyramid.Po@am__quote@ 298 332 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rasterlite_tool.Po@am__quote@ 299 333 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rasterlite_topmost.Po@am__quote@ 300 334 301 335 .c.o: 302 336 @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< 303 -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 337 +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 304 338 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 305 339 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 306 340 @am__fastdepCC_FALSE@ $(COMPILE) -c $< 307 341 308 342 .c.obj: 309 343 @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` 310 -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 344 +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po 311 345 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 312 346 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 313 347 @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` 314 348 315 349 .c.lo: 316 350 @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< 317 -@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo 351 +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo 318 352 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ 319 353 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 320 354 @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< 321 355 322 356 mostlyclean-libtool: 323 357 -rm -f *.lo 324 358 ................................................................................ 326 360 -rm -rf .libs _libs 327 361 328 362 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) 329 363 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ 330 364 unique=`for i in $$list; do \ 331 365 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 332 366 done | \ 333 - $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ 367 + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ 334 368 END { if (nonempty) { for (i in files) print i; }; }'`; \ 335 369 mkid -fID $$unique 336 370 tags: TAGS 337 371 338 372 TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ 339 373 $(TAGS_FILES) $(LISP) 340 - tags=; \ 374 + set x; \ 341 375 here=`pwd`; \ 342 376 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ 343 377 unique=`for i in $$list; do \ 344 378 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 345 379 done | \ 346 380 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ 347 381 END { if (nonempty) { for (i in files) print i; }; }'`; \ 348 - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ 382 + shift; \ 383 + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ 349 384 test -n "$$unique" || unique=$$empty_fix; \ 350 - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 351 - $$tags $$unique; \ 385 + if test $$# -gt 0; then \ 386 + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 387 + "$$@" $$unique; \ 388 + else \ 389 + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 390 + $$unique; \ 391 + fi; \ 352 392 fi 353 393 ctags: CTAGS 354 394 CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ 355 395 $(TAGS_FILES) $(LISP) 356 - tags=; \ 357 396 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ 358 397 unique=`for i in $$list; do \ 359 398 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 360 399 done | \ 361 400 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ 362 401 END { if (nonempty) { for (i in files) print i; }; }'`; \ 363 - test -z "$(CTAGS_ARGS)$$tags$$unique" \ 402 + test -z "$(CTAGS_ARGS)$$unique" \ 364 403 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ 365 - $$tags $$unique 404 + $$unique 366 405 367 406 GTAGS: 368 407 here=`$(am__cd) $(top_builddir) && pwd` \ 369 - && cd $(top_srcdir) \ 370 - && gtags -i $(GTAGS_ARGS) $$here 408 + && $(am__cd) $(top_srcdir) \ 409 + && gtags -i $(GTAGS_ARGS) "$$here" 371 410 372 411 distclean-tags: 373 412 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags 374 413 375 414 distdir: $(DISTFILES) 376 415 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ 377 416 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ ................................................................................ 384 423 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ 385 424 sort -u` ;; \ 386 425 esac; \ 387 426 for file in $$dist_files; do \ 388 427 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ 389 428 if test -d $$d/$$file; then \ 390 429 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ 430 + if test -d "$(distdir)/$$file"; then \ 431 + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ 432 + fi; \ 391 433 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ 392 - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ 434 + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ 435 + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ 393 436 fi; \ 394 - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ 437 + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ 395 438 else \ 396 - test -f $(distdir)/$$file \ 397 - || cp -p $$d/$$file $(distdir)/$$file \ 439 + test -f "$(distdir)/$$file" \ 440 + || cp -p $$d/$$file "$(distdir)/$$file" \ 398 441 || exit 1; \ 399 442 fi; \ 400 443 done 401 444 check-am: all-am 402 445 check: check-am 403 446 all-am: Makefile $(PROGRAMS) 404 447 installdirs: ................................................................................ 421 464 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install 422 465 mostlyclean-generic: 423 466 424 467 clean-generic: 425 468 426 469 distclean-generic: 427 470 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) 471 + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) 428 472 429 473 maintainer-clean-generic: 430 474 @echo "This command is intended for maintainers to use" 431 475 @echo "it deletes files that may require special tools to rebuild." 432 476 clean: clean-am 433 477 434 478 clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am ................................................................................ 440 484 distclean-tags 441 485 442 486 dvi: dvi-am 443 487 444 488 dvi-am: 445 489 446 490 html: html-am 491 + 492 +html-am: 447 493 448 494 info: info-am 449 495 450 496 info-am: 451 497 452 498 install-data-am: 453 499 454 500 install-dvi: install-dvi-am 501 + 502 +install-dvi-am: 455 503 456 504 install-exec-am: install-binPROGRAMS 457 505 458 506 install-html: install-html-am 507 + 508 +install-html-am: 459 509 460 510 install-info: install-info-am 511 + 512 +install-info-am: 461 513 462 514 install-man: 463 515 464 516 install-pdf: install-pdf-am 517 + 518 +install-pdf-am: 465 519 466 520 install-ps: install-ps-am 521 + 522 +install-ps-am: 467 523 468 524 installcheck-am: 469 525 470 526 maintainer-clean: maintainer-clean-am 471 527 -rm -rf ./$(DEPDIR) 472 528 -rm -f Makefile 473 529 maintainer-clean-am: distclean-am maintainer-clean-generic ................................................................................ 498 554 install-html-am install-info install-info-am install-man \ 499 555 install-pdf install-pdf-am install-ps install-ps-am \ 500 556 install-strip installcheck installcheck-am installdirs \ 501 557 maintainer-clean maintainer-clean-generic mostlyclean \ 502 558 mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ 503 559 pdf pdf-am ps ps-am tags uninstall uninstall-am \ 504 560 uninstall-binPROGRAMS 561 + 505 562 506 563 # Tell versions [3.59,3.63) of GNU make to not export all variables. 507 564 # Otherwise a system limit (for SysV at least) may be exceeded. 508 565 .NOEXPORT:
Changes to src/rasterlite_grid.c.
1 1 /* 2 2 / rasterlite_grid.c 3 3 / 4 4 / a tool generating a GeoTIFF from am ASCII or BINARY Grid 5 5 / 6 -/ version 1.0, 2009 June 28 6 +/ version 1.1a, 2011 November 12 7 7 / 8 8 / Author: Sandro Furieri a.furieri@lqt.it 9 9 / 10 10 / Copyright (C) 2009 Alessandro Furieri 11 11 / 12 12 / This program is free software: you can redistribute it and/or modify 13 13 / it under the terms of the GNU General Public License as published by ................................................................................ 27 27 #include <stdlib.h> 28 28 #include <stdio.h> 29 29 #include <string.h> 30 30 #include <float.h> 31 31 #include <errno.h> 32 32 #include <sys/types.h> 33 33 34 -#include <geotiff.h> 35 -#include <xtiffio.h> 36 -#include <geo_tiffp.h> 37 -#include <geo_keyp.h> 38 -#include <geovalues.h> 39 -#include <geo_normalize.h> 34 +#include "rasterlite_tiff_hdrs.h" 40 35 41 36 #if defined(_WIN32) && !defined(__MINGW32__) 42 37 #include <io.h> 43 38 #include <direct.h> 44 39 #else 45 40 #include <dirent.h> 46 41 #endif ................................................................................ 53 48 #define ARG_GRID_PATH 1 54 49 #define ARG_COLOR_PATH 2 55 50 #define ARG_TIFF_PATH 3 56 51 #define ARG_GRID_TYPE 4 57 52 #define ARG_EPSG_CODE 5 58 53 #define ARG_NODATA_COLOR 6 59 54 #define ARG_PROJ4TEXT 7 55 +#define ARG_MONO_COLOR 9 56 +#define ARG_Z_FACTOR 10 57 +#define ARG_SCALE 11 58 +#define ARG_AZIMUTH 12 59 +#define ARG_ALTITUDE 13 60 60 61 61 #define ASCII_GRID 100 62 62 #define FLOAT_GRID 101 63 63 64 64 #define BYTE_ORDER_NONE 0 65 65 #define BYTE_ORDER_BIG 1 66 66 #define BYTE_ORDER_LITTLE 2 67 67 68 68 struct colorTable 69 69 { 70 +/* a color table value range */ 70 71 double min; 71 72 double max; 72 73 unsigned char red; 73 74 unsigned char green; 74 75 unsigned char blue; 75 76 }; 77 + 78 +struct triple_scan 79 +{ 80 +/* the 3-scanlines object for Shaded Relief */ 81 + int ncols; 82 + double z_factor; 83 + double scale_factor; 84 + double altitude; 85 + double azimuth; 86 + int mono_color; 87 + unsigned char mono_red; 88 + unsigned char mono_green; 89 + unsigned char mono_blue; 90 + float no_data_value; 91 + unsigned char no_red; 92 + unsigned char no_green; 93 + unsigned char no_blue; 94 + float *row1; 95 + float *row2; 96 + float *row3; 97 + float *current_row; 98 +}; 99 + 100 +static int 101 +cmp_color_qsort (const void *p1, const void *p2) 102 +{ 103 +/* compares two colorTable entries [for QSORT] */ 104 + struct colorTable *pc1 = (struct colorTable *) p1; 105 + struct colorTable *pc2 = (struct colorTable *) p2; 106 + if (pc1->min > pc2->min) 107 + return 1; 108 + if (pc1->min < pc2->min) 109 + return -1; 110 + if (pc1->max > pc2->max) 111 + return 1; 112 + if (pc1->max < pc2->max) 113 + return -1; 114 + return 0; 115 +} 116 + 117 +static int 118 +cmp_color_bsearch (const void *p1, const void *p2) 119 +{ 120 +/* compares two colorTable entries [for BSEARCH] */ 121 + struct colorTable *pc1 = (struct colorTable *) p1; 122 + struct colorTable *pc2 = (struct colorTable *) p2; 123 + if (pc1->min >= pc2->min && pc1->min <= pc2->max) 124 + return 0; 125 + if (pc1->min > pc2->min) 126 + return 1; 127 + if (pc1->min < pc2->min) 128 + return -1; 129 + if (pc1->min > pc2->max) 130 + return 1; 131 + if (pc1->min < pc2->max) 132 + return -1; 133 + return 0; 134 +} 135 + 136 +static int 137 +match_color (struct colorTable *color_table, int colors, double value, 138 + unsigned char *red, unsigned char *green, unsigned char *blue) 139 +{ 140 +/* mapping a value into the corresponding color */ 141 + struct colorTable *ret; 142 + struct colorTable src; 143 + src.min = value; 144 + ret = 145 + bsearch (&src, color_table, colors, sizeof (struct colorTable), 146 + cmp_color_bsearch); 147 + if (ret) 148 + { 149 + *red = ret->red; 150 + *green = ret->green; 151 + *blue = ret->blue; 152 + return 1; 153 + } 154 + return 0; 155 +} 156 + 157 +static struct triple_scan * 158 +triple_alloc (int ncols) 159 +{ 160 +/* allocating the 3-scanlines object */ 161 + struct triple_scan *p = malloc (sizeof (struct triple_scan)); 162 + p->ncols = ncols; 163 + p->row1 = malloc (sizeof (float) * ncols); 164 + p->row2 = malloc (sizeof (float) * ncols); 165 + p->row3 = malloc (sizeof (float) * ncols); 166 + p->current_row = p->row1; 167 + p->mono_color = 0; 168 + p->mono_red = 0; 169 + p->mono_green = 0; 170 + p->mono_blue = 0; 171 + p->no_data_value = 0.0; 172 + p->no_red = 0; 173 + p->no_green = 0; 174 + p->no_blue = 0; 175 + p->z_factor = 1.0; 176 + p->scale_factor = 1.0; 177 + p->altitude = 45.0; 178 + p->azimuth = 315.0; 179 + return p; 180 +} 181 + 182 +static void 183 +triple_free (struct triple_scan *p) 184 +{ 185 +/* freeing the 3-scanlines object */ 186 + free (p->row1); 187 + free (p->row2); 188 + free (p->row3); 189 + free (p); 190 +} 191 + 192 +static void 193 +triple_set_no_data (struct triple_scan *p, float no_data_value, 194 + unsigned char no_red, unsigned char no_green, 195 + unsigned char no_blue) 196 +{ 197 +/* setting NODATA params */ 198 + p->no_data_value = no_data_value; 199 + p->no_red = no_red; 200 + p->no_green = no_green; 201 + p->no_blue = no_blue; 202 +} 203 + 204 +static void 205 +triple_set_monochrome_params (struct triple_scan *p, int mono_color, 206 + unsigned char mono_red, unsigned char mono_green, 207 + unsigned char mono_blue) 208 +{ 209 +/* setting ShadedRelief params */ 210 + p->mono_color = mono_color; 211 + p->mono_red = mono_red; 212 + p->mono_green = mono_green; 213 + p->mono_blue = mono_blue; 214 +} 215 + 216 +static void 217 +triple_set_shaded_relief_params (struct triple_scan *p, double z, double scale, 218 + double alt, double az) 219 +{ 220 +/* setting ShadedRelief params */ 221 + p->z_factor = z; 222 + p->scale_factor = scale; 223 + p->altitude = alt; 224 + p->azimuth = az; 225 +} 226 + 227 +static void 228 +triple_rotate (struct triple_scan *p) 229 +{ 230 +/* rotating the 3-scanlines */ 231 + if (p->current_row == p->row1) 232 + { 233 + p->current_row = p->row2; 234 + goto zero_init; 235 + } 236 + if (p->current_row == p->row2) 237 + { 238 + p->current_row = p->row3; 239 + goto zero_init; 240 + } 241 + p->current_row = p->row1; 242 + p->row1 = p->row2; 243 + p->row2 = p->row3; 244 + p->row3 = p->current_row; 245 + zero_init: 246 + memset (p->current_row, 0, sizeof (float) * p->ncols); 247 +} 248 + 249 +static void 250 +triple_store_cell (struct triple_scan *p, int icol, float value) 251 +{ 252 +/* storing a cell value into 3-scanlines */ 253 + if (icol < 0 || icol >= p->ncols) 254 + return; 255 + *(p->current_row + icol) = value; 256 +} 257 + 258 +static int 259 +triple_is_valid (struct triple_scan *p) 260 +{ 261 +/* checking for validitity */ 262 + if (p->current_row == p->row3) 263 + return 1; 264 + return 0; 265 +} 266 + 267 +static void 268 +triple_shaded_relief (struct triple_scan *p, unsigned char *raster) 269 +{ 270 +/* creating a shaded relief scanline */ 271 + int j; 272 + int n; 273 + double x; 274 + double y; 275 + double aspect; 276 + double slope; 277 + double cang; 278 + int gray; 279 + float afWin[9]; 280 + const double degreesToRadians = M_PI / 180.0; 281 + const double altRadians = p->altitude * degreesToRadians; 282 + const double azRadians = p->azimuth * degreesToRadians; 283 + double red; 284 + double green; 285 + double blue; 286 + double alpha; 287 + int bContainsNull; 288 + unsigned char *p_raster = raster; 289 + unsigned char r; 290 + unsigned char g; 291 + unsigned char b; 292 + 293 +/* 294 +/ Move a 3x3 pafWindow over each cell 295 +/ (where the cell in question is #4) 296 +/ 297 +/ 0 1 2 298 +/ 3 4 5 299 +/ 6 7 8 300 +*/ 301 + for (j = 0; j < p->ncols; j++) 302 + { 303 + /* Exclude the edges */ 304 + if (j == 0 || j == p->ncols - 1) 305 + continue; 306 + 307 + bContainsNull = 0; 308 + 309 + afWin[0] = p->row1[j - 1]; 310 + afWin[1] = p->row1[j]; 311 + afWin[2] = p->row1[j + 1]; 312 + afWin[3] = p->row2[j - 1]; 313 + afWin[4] = p->row2[j]; 314 + afWin[5] = p->row2[j + 1]; 315 + afWin[6] = p->row3[j - 1]; 316 + afWin[7] = p->row3[j]; 317 + afWin[8] = p->row3[j + 1]; 318 + 319 + for (n = 0; n <= 8; n++) 320 + { 321 + if (afWin[n] == p->no_data_value) 322 + { 323 + bContainsNull = 1; 324 + break; 325 + } 326 + } 327 + 328 + if (bContainsNull) 329 + { 330 + /* We have nulls so write nullValue and move on */ 331 + r = p->no_red; 332 + g = p->no_green; 333 + b = p->no_blue; 334 + } 335 + else 336 + { 337 + /* We have a valid 3x3 window. */ 338 + 339 + /* --------------------------------------- 340 + * Compute Hillshade 341 + */ 342 + 343 + /* First Slope ... */ 344 + x = p->z_factor * ((afWin[0] + afWin[3] + afWin[3] + afWin[6]) - 345 + (afWin[2] + afWin[5] + afWin[5] + 346 + afWin[8])) / (8.0 * p->scale_factor); 347 + 348 + y = p->z_factor * ((afWin[6] + afWin[7] + afWin[7] + afWin[8]) - 349 + (afWin[0] + afWin[1] + afWin[1] + 350 + afWin[2])) / (8.0 * p->scale_factor); 351 + 352 + slope = M_PI / 2 - atan (sqrt (x * x + y * y)); 353 + 354 + /* ... then aspect... */ 355 + aspect = atan2 (x, y); 356 + 357 + /* ... then the shade value */ 358 + cang = sin (altRadians) * sin (slope) + 359 + cos (altRadians) * cos (slope) * 360 + cos (azRadians - M_PI / 2 - aspect); 361 + 362 + if (cang <= 0.0) 363 + cang = 1.0; 364 + else 365 + cang = 1.0 + (254.0 * cang); 366 + 367 + if (p->mono_color) 368 + { 369 + /* using the monochrome base color + ALPHA */ 370 + alpha = cang / 255.0; 371 + red = (double) (p->mono_red) * alpha; 372 + green = (double) (p->mono_green) * alpha; 373 + blue = (double) (p->mono_blue) * alpha; 374 + if (red < 0.0) 375 + red = 0.0; 376 + if (green < 0.0) 377 + green = 0.0; 378 + if (blue < 0.0) 379 + blue = 0.0; 380 + if (red > 255.0) 381 + red = 255.0; 382 + if (green > 255.0) 383 + green = 255.0; 384 + if (blue > 255.0) 385 + blue = 255.0; 386 + r = (unsigned char) red; 387 + g = (unsigned char) green; 388 + b = (unsigned) blue; 389 + } 390 + else 391 + { 392 + /* plain gray-scale */ 393 + gray = (int) cang; 394 + r = (unsigned char) gray; 395 + g = (unsigned char) gray; 396 + b = (unsigned) gray; 397 + } 398 + } 399 + *p_raster++ = r; 400 + *p_raster++ = g; 401 + *p_raster++ = b; 402 + } 403 +} 404 + 405 +static int 406 +triple_shaded_relief_color (struct colorTable *color_table, int colors, 407 + struct triple_scan *p, unsigned char *raster, 408 + int row) 409 +{ 410 +/* creating a shaded relief color scanline */ 411 + int j; 412 + int n; 413 + double x; 414 + double y; 415 + double aspect; 416 + double slope; 417 + double cang; 418 + float afWin[9]; 419 + const double degreesToRadians = M_PI / 180.0; 420 + const double altRadians = p->altitude * degreesToRadians; 421 + const double azRadians = p->azimuth * degreesToRadians; 422 + double red; 423 + double green; 424 + double blue; 425 + double alpha; 426 + double thisValue; 427 + int bContainsNull; 428 + unsigned char *p_raster = raster; 429 + unsigned char r; 430 + unsigned char g; 431 + unsigned char b; 432 + 433 +/* 434 +/ Move a 3x3 pafWindow over each cell 435 +/ (where the cell in question is #4) 436 +/ 437 +/ 0 1 2 438 +/ 3 4 5 439 +/ 6 7 8 440 +*/ 441 + for (j = 0; j < p->ncols; j++) 442 + { 443 + /* Exclude the edges */ 444 + if (j == 0 || j == p->ncols - 1) 445 + continue; 446 + 447 + bContainsNull = 0; 448 + 449 + afWin[0] = p->row1[j - 1]; 450 + afWin[1] = p->row1[j]; 451 + afWin[2] = p->row1[j + 1]; 452 + afWin[3] = p->row2[j - 1]; 453 + afWin[4] = p->row2[j]; 454 + afWin[5] = p->row2[j + 1]; 455 + afWin[6] = p->row3[j - 1]; 456 + afWin[7] = p->row3[j]; 457 + afWin[8] = p->row3[j + 1]; 458 + 459 + thisValue = afWin[4]; 460 + 461 + for (n = 0; n <= 8; n++) 462 + { 463 + if (afWin[n] == p->no_data_value) 464 + { 465 + bContainsNull = 1; 466 + break; 467 + } 468 + } 469 + 470 + if (bContainsNull) 471 + { 472 + /* We have nulls so write nullValue and move on */ 473 + r = p->no_red; 474 + g = p->no_green; 475 + b = p->no_blue; 476 + } 477 + else 478 + { 479 + /* We have a valid 3x3 window. */ 480 + 481 + /* --------------------------------------- 482 + * Compute Hillshade 483 + */ 484 + 485 + /* First Slope ... */ 486 + x = p->z_factor * ((afWin[0] + afWin[3] + afWin[3] + afWin[6]) - 487 + (afWin[2] + afWin[5] + afWin[5] + 488 + afWin[8])) / (8.0 * p->scale_factor); 489 + 490 + y = p->z_factor * ((afWin[6] + afWin[7] + afWin[7] + afWin[8]) - 491 + (afWin[0] + afWin[1] + afWin[1] + 492 + afWin[2])) / (8.0 * p->scale_factor); 493 + 494 + slope = M_PI / 2 - atan (sqrt (x * x + y * y)); 495 + 496 + /* ... then aspect... */ 497 + aspect = atan2 (x, y); 498 + 499 + /* ... then the shade value */ 500 + cang = sin (altRadians) * sin (slope) + 501 + cos (altRadians) * cos (slope) * 502 + cos (azRadians - M_PI / 2 - aspect); 503 + 504 + if (cang <= 0.0) 505 + cang = 1.0; 506 + else 507 + cang = 1.0 + (254.0 * cang); 508 + 509 + /* merging the color + ALPHA */ 510 + if (!match_color (color_table, colors, thisValue, &r, &g, &b)) 511 + { 512 + printf 513 + ("Grid row %d: unmatched value %1.8f; color not found\n", 514 + row, thisValue); 515 + return 0; 516 + } 517 + alpha = cang / 255.0; 518 + red = (double) r *alpha; 519 + green = (double) g *alpha; 520 + blue = (double) b *alpha; 521 + if (red < 0.0) 522 + red = 0.0; 523 + if (green < 0.0) 524 + green = 0.0; 525 + if (blue < 0.0) 526 + blue = 0.0; 527 + if (red > 255.0) 528 + red = 255.0; 529 + if (green > 255.0) 530 + green = 255.0; 531 + if (blue > 255.0) 532 + blue = 255.0; 533 + r = (unsigned char) red; 534 + g = (unsigned char) green; 535 + b = (unsigned) blue; 536 + } 537 + *p_raster++ = r; 538 + *p_raster++ = g; 539 + *p_raster++ = b; 540 + } 541 + return 1; 542 +} 76 543 77 544 static int 78 545 parse_hex (const char hi, const char lo) 79 546 { 80 547 /* parsing an hexedecimal value XX */ 81 548 int hex; 82 549 switch (hi) ................................................................................ 350 817 } 351 818 return 1; 352 819 } 353 820 return 0; 354 821 } 355 822 356 823 static struct colorTable * 357 -parse_color_table (const char *path) 824 +parse_color_table (const char *path, int *count) 358 825 { 359 826 /* parsing the Color Table */ 360 827 double min; 361 828 double max; 362 829 unsigned char red; 363 830 unsigned char green; 364 831 unsigned char blue; ................................................................................ 400 867 ptr = buf; 401 868 continue; 402 869 } 403 870 *ptr++ = c; 404 871 } 405 872 if (lines == 0 || error > 0) 406 873 return NULL; 407 - table = malloc (sizeof (struct colorTable) * (lines + 1)); 408 -/* marking the last (stop) table item */ 409 - (table + lines)->min = DBL_MAX; 410 - (table + lines)->max = DBL_MAX; 411 - (table + lines)->red = 0; 412 - (table + lines)->green = 0; 413 - (table + lines)->blue = 0; 874 + table = malloc (sizeof (struct colorTable) * (lines)); 414 875 /* closing and reopening the Color Table file */ 415 876 fclose (in); 416 877 in = fopen (path, "rb"); 417 878 if (!in) 418 879 { 419 880 printf ("Re-Open error: %s\n", path); 420 881 return NULL; ................................................................................ 457 918 { 458 919 /* unexected error */ 459 920 fprintf (stderr, "ColorTable: unexpected read error\n"); 460 921 free (table); 461 922 table = NULL; 462 923 } 463 924 fclose (in); 925 +/* sorting the color table */ 926 + *count = lines; 927 + qsort (table, lines, sizeof (struct colorTable), cmp_color_qsort); 464 928 return table; 465 929 } 466 930 467 931 static int 468 932 parseIntHeader (const char *row, const char *tag, int *value) 469 933 { 470 934 /* parsing an Integer value Header */ ................................................................................ 504 968 *value = BYTE_ORDER_BIG; 505 969 return 1; 506 970 } 507 971 return 0; 508 972 } 509 973 510 974 static int 511 -match_color (struct colorTable *color_table, double value, unsigned char *red, 512 - unsigned char *green, unsigned char *blue) 513 -{ 514 -/* mapping a value into the corresponding color */ 515 - struct colorTable *p = color_table; 516 - while (p) 517 - { 518 - if (p->min == DBL_MAX) 519 - return 0; 520 - if (value >= p->min && value <= p->max) 521 - { 522 - *red = p->red; 523 - *green = p->green; 524 - *blue = p->blue; 525 - return 1; 526 - } 527 - p++; 528 - } 529 - return 0; 530 -} 531 - 532 -static int 533 -fetch_scanline (int row, struct colorTable *color_table, FILE * asc, 975 +fetch_scanline (int row, struct colorTable *color_table, int colors, FILE * asc, 534 976 unsigned char *raster, int columns, double nodata, 535 977 unsigned char no_red, unsigned char no_green, 536 978 unsigned char no_blue) 537 979 { 538 980 /* feeding a TIFF scanline from an ASCII Grid */ 539 981 int c; 540 982 int cell = 0; ................................................................................ 565 1007 { 566 1008 *p_raster++ = no_red; 567 1009 *p_raster++ = no_green; 568 1010 *p_raster++ = no_blue; 569 1011 } 570 1012 else 571 1013 { 572 - if (match_color (color_table, value, &red, &green, &blue)) 1014 + if (match_color 1015 + (color_table, colors, value, &red, &green, &blue)) 573 1016 { 574 1017 *p_raster++ = red; 575 1018 *p_raster++ = green; 576 1019 *p_raster++ = blue; 577 1020 } 578 1021 else 579 1022 { ................................................................................ 653 1096 convert.int_value = 1; 654 1097 if (convert.byte[0] == 0) 655 1098 return 0; 656 1099 return 1; 657 1100 } 658 1101 659 1102 static int 660 -fetch_float_scanline (int row, struct colorTable *color_table, 1103 +fetch_float_scanline (int row, struct colorTable *color_table, int colors, 661 1104 unsigned char *floats, unsigned char *raster, int columns, 662 1105 double nodata, unsigned char no_red, 663 1106 unsigned char no_green, unsigned char no_blue, 664 1107 int byteorder) 665 1108 { 666 1109 /* feeding a TIFF scanline from a FLOAT Grid */ 667 1110 int cell = 0; ................................................................................ 679 1122 { 680 1123 *p_raster++ = no_red; 681 1124 *p_raster++ = no_green; 682 1125 *p_raster++ = no_blue; 683 1126 } 684 1127 else 685 1128 { 686 - if (match_color (color_table, value, &red, &green, &blue)) 1129 + if (match_color 1130 + (color_table, colors, value, &red, &green, &blue)) 687 1131 { 688 1132 *p_raster++ = red; 689 1133 *p_raster++ = green; 690 1134 *p_raster++ = blue; 691 1135 } 692 1136 else 693 1137 { ................................................................................ 699 1143 } 700 1144 ptr += sizeof (float); 701 1145 } 702 1146 return 1; 703 1147 } 704 1148 705 1149 static void 706 -export_geoTiff_float (struct colorTable *color_table, const char *proj4text, 707 - const char *grid_path, const char *tiff_path, 708 - unsigned char no_red, unsigned char no_green, 709 - unsigned char no_blue, int verbose) 1150 +export_geoTiff_float (struct colorTable *color_table, int colors, 1151 + const char *proj4text, const char *grid_path, 1152 + const char *tiff_path, unsigned char no_red, 1153 + unsigned char no_green, unsigned char no_blue, 1154 + int verbose) 710 1155 { 711 1156 /* exporting a FLOAT GRID as GeoTIFF */ 712 1157 TIFF *tiff = NULL; 713 1158 GTIF *gtif = NULL; 714 1159 int byteorder = BYTE_ORDER_NONE; 715 1160 int c; 716 1161 int row = 0; ................................................................................ 856 1301 if (rd != (sizeof (float) * ncols)) 857 1302 { 858 1303 printf ("*** Grid read error ***\n"); 859 1304 printf ("An invalid GeoTIFF was generated ... aborting ...\n"); 860 1305 goto stop; 861 1306 } 862 1307 if (fetch_float_scanline 863 - (row + 1, color_table, flt_buf, raster, ncols, nodata, no_red, 864 - no_green, no_blue, byteorder)) 1308 + (row + 1, color_table, colors, flt_buf, raster, ncols, nodata, 1309 + no_red, no_green, no_blue, byteorder)) 865 1310 { 866 1311 if (TIFFWriteScanline (tiff, raster, row, 0) < 0) 867 1312 { 868 1313 printf ("\tTIFF write error @ row=%d\n", row); 869 1314 printf 870 1315 ("An invalid GeoTIFF was generated ... aborting ...\n"); 871 1316 goto stop; ................................................................................ 888 1333 free (raster); 889 1334 if (flt_buf) 890 1335 free (flt_buf); 891 1336 fclose (grid); 892 1337 } 893 1338 894 1339 static void 895 -export_geoTiff_ascii (struct colorTable *color_table, const char *proj4text, 896 - const char *grid_path, const char *tiff_path, 897 - unsigned char no_red, unsigned char no_green, 898 - unsigned char no_blue, int verbose) 1340 +export_geoTiff_ascii (struct colorTable *color_table, int colors, 1341 + const char *proj4text, const char *grid_path, 1342 + const char *tiff_path, unsigned char no_red, 1343 + unsigned char no_green, unsigned char no_blue, 1344 + int verbose) 899 1345 { 900 1346 /* exporting an ASCII GRID as GeoTIFF */ 901 1347 TIFF *tiff = NULL; 902 1348 GTIF *gtif = NULL; 903 1349 int c; 904 1350 int row = 0; 905 1351 char buf[1024]; ................................................................................ 1015 1461 { 1016 1462 if (verbose) 1017 1463 { 1018 1464 fprintf (stderr, "writing scanline %d of %d\n", row + 1, nrows); 1019 1465 fflush (stderr); 1020 1466 } 1021 1467 if (fetch_scanline 1022 - (row + 1, color_table, asc, raster, ncols, nodata, no_red, 1468 + (row + 1, color_table, colors, asc, raster, ncols, nodata, no_red, 1023 1469 no_green, no_blue)) 1024 1470 { 1025 1471 if (TIFFWriteScanline (tiff, raster, row, 0) < 0) 1026 1472 { 1027 1473 printf ("\tTIFF write error @ row=%d\n", row); 1028 1474 printf 1029 1475 ("An invalid GeoTIFF was generated ... aborting ...\n"); ................................................................................ 1043 1489 GTIFFree (gtif); 1044 1490 if (tiff) 1045 1491 XTIFFClose (tiff); 1046 1492 if (raster) 1047 1493 free (raster); 1048 1494 fclose (asc); 1049 1495 } 1496 + 1497 +static int 1498 +fetch_float_scanline_shaded (int row, unsigned char *floats, int columns, 1499 + int byteorder, struct triple_scan *triplet) 1500 +{ 1501 +/* feeding a TIFF scanline from a FLOAT Grid */ 1502 + int cell = 0; 1503 + double value; 1504 + unsigned char *ptr = floats; 1505 + int endian_arch = check_endian_arch (); 1506 + for (cell = 0; cell < columns; cell++) 1507 + { 1508 + value = fetch_float (ptr, byteorder, endian_arch); 1509 + triple_store_cell (triplet, cell, value); 1510 + ptr += sizeof (float); 1511 + } 1512 + return 1; 1513 +} 1514 + 1515 +static void 1516 +export_geoTiff_shaded_float (struct colorTable *color_table, int colors, 1517 + const char *proj4text, const char *grid_path, 1518 + const char *tiff_path, unsigned char no_red, 1519 + unsigned char no_green, unsigned char no_blue, 1520 + int mono_color, unsigned char mono_red, 1521 + unsigned char mono_green, unsigned char mono_blue, 1522 + double z_factor, double scale_factor, 1523 + double azimuth, double altitude, int verbose) 1524 +{ 1525 +/* exporting a FLOAT GRID as GeoTIFF */ 1526 + TIFF *tiff = NULL; 1527 + GTIF *gtif = NULL; 1528 + int byteorder = BYTE_ORDER_NONE; 1529 + int c; 1530 + int row = 0; 1531 + char buf[1024]; 1532 + char path[1024]; 1533 + char *ptr = buf; 1534 + int err = 0; 1535 + int ncols = -1; 1536 + int nrows = -1; 1537 + double xllcorner = 0.0; 1538 + double yllcorner = 0.0; 1539 + double cellsize = 0.0; 1540 + double nodata = 0.0; 1541 + double tiepoint[6]; 1542 + double pixsize[3]; 1543 + struct triple_scan *triplet = NULL; 1544 + unsigned char *raster = NULL; 1545 + unsigned char *flt_buf = NULL; 1546 + size_t rd; 1547 + FILE *grid; 1548 + 1549 +/* parsing the Grid Header .hdr */ 1550 + sprintf (path, "%s.hdr", grid_path); 1551 + grid = fopen (path, "rb"); 1552 + if (!grid) 1553 + { 1554 + printf ("Open error: %s\n", path); 1555 + return; 1556 + } 1557 + while ((c = getc (grid)) != EOF) 1558 + { 1559 + if (c == '\r') 1560 + { 1561 + /* ignoring Return chars */ 1562 + continue; 1563 + } 1564 + if (c == '\n') 1565 + { 1566 + *ptr = '\0'; 1567 + switch (row) 1568 + { 1569 + case 0: 1570 + if (!parseIntHeader (buf, "ncols ", &ncols)) 1571 + err = 1; 1572 + break; 1573 + case 1: 1574 + if (!parseIntHeader (buf, "nrows ", &nrows)) 1575 + err = 1; 1576 + break; 1577 + case 2: 1578 + if (!parseDblHeader (buf, "xllcorner ", &xllcorner)) 1579 + err = 1; 1580 + break; 1581 + case 3: 1582 + if (!parseDblHeader (buf, "yllcorner ", &yllcorner)) 1583 + err = 1; 1584 + break; 1585 + case 4: 1586 + if (!parseDblHeader (buf, "cellsize ", &cellsize)) 1587 + err = 1; 1588 + break; 1589 + case 5: 1590 + if (!parseDblHeader (buf, "NODATA_value ", &nodata)) 1591 + err = 1; 1592 + break; 1593 + case 6: 1594 + if (!parseOrderHeader (buf, "byteorder ", &byteorder)) 1595 + err = 1; 1596 + break; 1597 + }; 1598 + ptr = buf; 1599 + row++; 1600 + if (row == 7) 1601 + break; 1602 + continue; 1603 + } 1604 + *ptr++ = c; 1605 + } 1606 + if (err) 1607 + { 1608 + /* there was some error */ 1609 + printf ("Invalid FLOAT Grid Header format in: %s\n", path); 1610 + goto stop; 1611 + } 1612 + fclose (grid); 1613 + 1614 +/* resizing CellSize */ 1615 + cellsize = (cellsize * (double) ncols) / (double) (ncols - 2); 1616 + 1617 +/* parsing the Grid Cells .flt */ 1618 + sprintf (path, "%s.flt", grid_path); 1619 + grid = fopen (path, "rb"); 1620 + if (!grid) 1621 + { 1622 + printf ("Open error: %s\n", path); 1623 + return; 1624 + } 1625 +/* creating the GeoTIFF file */ 1626 + tiff = XTIFFOpen (tiff_path, "w"); 1627 + if (!tiff) 1628 + { 1629 + printf ("\tCould not open TIFF image '%s'\n", tiff_path); 1630 + goto stop; 1631 + } 1632 + gtif = GTIFNew (tiff); 1633 + if (!gtif) 1634 + { 1635 + printf ("\tCould not open GeoTIFF image '%s'\n", tiff_path); 1636 + goto stop; 1637 + } 1638 + 1639 +/* writing the TIFF Tags */ 1640 + TIFFSetField (tiff, TIFFTAG_IMAGEWIDTH, ncols - 2); 1641 + TIFFSetField (tiff, TIFFTAG_IMAGELENGTH, nrows - 2); 1642 + TIFFSetField (tiff, TIFFTAG_COMPRESSION, COMPRESSION_NONE); 1643 + TIFFSetField (tiff, TIFFTAG_SAMPLEFORMAT, SAMPLEFORMAT_UINT); 1644 + TIFFSetField (tiff, TIFFTAG_ROWSPERSTRIP, 1); 1645 + TIFFSetField (tiff, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); 1646 + TIFFSetField (tiff, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB); 1647 + TIFFSetField (tiff, TIFFTAG_BITSPERSAMPLE, 8); 1648 + TIFFSetField (tiff, TIFFTAG_SAMPLESPERPIXEL, 3); 1649 + 1650 +/* writing the GeoTIFF Tags */ 1651 + pixsize[0] = cellsize; 1652 + pixsize[1] = cellsize; 1653 + pixsize[2] = 0.0; 1654 + TIFFSetField (tiff, GTIFF_PIXELSCALE, 3, pixsize); 1655 + tiepoint[0] = 0.0; 1656 + tiepoint[1] = 0.0; 1657 + tiepoint[2] = 0.0; 1658 + tiepoint[3] = xllcorner; 1659 + tiepoint[4] = yllcorner + (cellsize * nrows); 1660 + tiepoint[5] = 0.0; 1661 + TIFFSetField (tiff, GTIFF_TIEPOINTS, 6, tiepoint); 1662 + GTIFSetFromProj4 (gtif, proj4text); 1663 + GTIFWriteKeys (gtif); 1664 + raster = malloc (ncols * 3); 1665 + flt_buf = malloc (sizeof (float) * ncols); 1666 + 1667 +/* initializing the TripleRow object */ 1668 + triplet = triple_alloc (ncols); 1669 + triple_set_shaded_relief_params (triplet, z_factor, scale_factor, altitude, 1670 + azimuth); 1671 + triple_set_monochrome_params (triplet, mono_color, mono_red, mono_green, 1672 + mono_blue); 1673 + triple_set_no_data (triplet, nodata, no_red, no_green, no_blue); 1674 + 1675 + for (row = 0; row < nrows; row++) 1676 + { 1677 + if (verbose) 1678 + { 1679 + fprintf (stderr, "writing scanline %d of %d\n", row + 1, nrows); 1680 + fflush (stderr); 1681 + } 1682 + rd = fread (flt_buf, 1, ncols * sizeof (float), grid); 1683 + if (rd != (sizeof (float) * ncols)) 1684 + { 1685 + printf ("*** Grid read error ***\n"); 1686 + printf ("An invalid GeoTIFF was generated ... aborting ...\n"); 1687 + goto stop; 1688 + } 1689 + if (fetch_float_scanline_shaded 1690 + (row + 1, flt_buf, ncols, byteorder, triplet)) 1691 + { 1692 + if (triple_is_valid (triplet)) 1693 + { 1694 + int ret = 1; 1695 + if (!color_table) 1696 + triple_shaded_relief (triplet, raster); 1697 + else 1698 + ret = 1699 + triple_shaded_relief_color (color_table, colors, 1700 + triplet, raster, 1701 + row + 1); 1702 + if (!ret) 1703 + goto stop; 1704 + if (TIFFWriteScanline (tiff, raster, row - 2, 0) < 0) 1705 + { 1706 + printf ("\tTIFF write error @ row=%d\n", row); 1707 + printf 1708 + ("An invalid GeoTIFF was generated ... aborting ...\n"); 1709 + goto stop; 1710 + } 1711 + } 1712 + triple_rotate (triplet); 1713 + } 1714 + else 1715 + { 1716 + printf ("*** Grid read error ***\n"); 1717 + printf ("An invalid GeoTIFF was generated ... aborting ...\n"); 1718 + goto stop; 1719 + } 1720 + } 1721 + 1722 + stop: 1723 + if (gtif) 1724 + GTIFFree (gtif); 1725 + if (tiff) 1726 + XTIFFClose (tiff); 1727 + if (raster) 1728 + free (raster); 1729 + if (flt_buf) 1730 + free (flt_buf); 1731 + fclose (grid); 1732 + if (triplet) 1733 + triple_free (triplet); 1734 +} 1735 + 1736 +static int 1737 +fetch_scanline_shaded (int row, FILE * asc, int columns, 1738 + struct triple_scan *triplet) 1739 +{ 1740 +/* feeding a TIFF scanline from an ASCII Grid */ 1741 + int c; 1742 + int cell = 0; 1743 + char buf[1024]; 1744 + char *ptr = buf; 1745 + double value; 1746 + while ((c = getc (asc)) != EOF) 1747 + { 1748 + if (c == '\n') 1749 + break; 1750 + *ptr++ = c; 1751 + if (c == ' ') 1752 + { 1753 + /* value delimiter */ 1754 + *ptr = '\0'; 1755 + cell++; 1756 + if (cell > columns) 1757 + { 1758 + printf ("Grid row %d: exceding column\n", row); 1759 + return 0; 1760 + } 1761 + value = atof (buf); 1762 + triple_store_cell (triplet, cell, (float) value); 1763 + ptr = buf; 1764 + } 1765 + } 1766 + return 1; 1767 +} 1768 + 1769 +static void 1770 +export_geoTiff_shaded_ascii (struct colorTable *color_table, int colors, 1771 + const char *proj4text, const char *grid_path, 1772 + const char *tiff_path, unsigned char no_red, 1773 + unsigned char no_green, unsigned char no_blue, 1774 + int mono_color, unsigned char mono_red, 1775 + unsigned char mono_green, unsigned char mono_blue, 1776 + double z_factor, double scale_factor, 1777 + double azimuth, double altitude, int verbose) 1778 +{ 1779 +/* exporting an ASCII GRID as GeoTIFF */ 1780 + TIFF *tiff = NULL; 1781 + GTIF *gtif = NULL; 1782 + int c; 1783 + int row = 0; 1784 + char buf[1024]; 1785 + char *ptr = buf; 1786 + int err = 0; 1787 + int ncols = -1; 1788 + int nrows = -1; 1789 + double xllcorner = 0.0; 1790 + double yllcorner = 0.0; 1791 + double cellsize = 0.0; 1792 + double nodata = 0.0; 1793 + double tiepoint[6]; 1794 + double pixsize[3]; 1795 + unsigned char *raster = NULL; 1796 + struct triple_scan *triplet = NULL; 1797 + FILE *asc = fopen (grid_path, "rb"); 1798 + if (!asc) 1799 + { 1800 + printf ("Open error: %s\n", grid_path); 1801 + return; 1802 + } 1803 + while ((c = getc (asc)) != EOF) 1804 + { 1805 + if (c == '\r') 1806 + { 1807 + /* ignoring Return chars */ 1808 + continue; 1809 + } 1810 + if (c == '\n') 1811 + { 1812 + *ptr = '\0'; 1813 + switch (row) 1814 + { 1815 + case 0: 1816 + if (!parseIntHeader (buf, "ncols ", &ncols)) 1817 + err = 1; 1818 + break; 1819 + case 1: 1820 + if (!parseIntHeader (buf, "nrows ", &nrows)) 1821 + err = 1; 1822 + break; 1823 + case 2: 1824 + if (!parseDblHeader (buf, "xllcorner ", &xllcorner)) 1825 + err = 1; 1826 + break; 1827 + case 3: 1828 + if (!parseDblHeader (buf, "yllcorner ", &yllcorner)) 1829 + err = 1; 1830 + break; 1831 + case 4: 1832 + if (!parseDblHeader (buf, "cellsize ", &cellsize)) 1833 + err = 1; 1834 + break; 1835 + case 5: 1836 + if (!parseDblHeader (buf, "NODATA_value ", &nodata)) 1837 + err = 1; 1838 + break; 1839 + }; 1840 + ptr = buf; 1841 + row++; 1842 + if (row == 6) 1843 + break; 1844 + continue; 1845 + } 1846 + *ptr++ = c; 1847 + } 1848 + if (err) 1849 + { 1850 + /* there was some error */ 1851 + printf ("Invalid ASCII Grid format in: %s\n", grid_path); 1852 + goto stop; 1853 + } 1854 + 1855 +/* resizing CellSize */ 1856 + cellsize = (cellsize * (double) ncols) / (double) (ncols - 2); 1857 + 1858 +/* creating the GeoTIFF file */ 1859 + tiff = XTIFFOpen (tiff_path, "w"); 1860 + if (!tiff) 1861 + { 1862 + printf ("\tCould not open TIFF image '%s'\n", tiff_path); 1863 + goto stop; 1864 + } 1865 + gtif = GTIFNew (tiff); 1866 + if (!gtif) 1867 + { 1868 + printf ("\tCould not open GeoTIFF image '%s'\n", tiff_path); 1869 + goto stop; 1870 + } 1871 + 1872 +/* writing the TIFF Tags */ 1873 + TIFFSetField (tiff, TIFFTAG_IMAGEWIDTH, ncols - 2); 1874 + TIFFSetField (tiff, TIFFTAG_IMAGELENGTH, nrows - 2); 1875 + TIFFSetField (tiff, TIFFTAG_COMPRESSION, COMPRESSION_NONE); 1876 + TIFFSetField (tiff, TIFFTAG_SAMPLEFORMAT, SAMPLEFORMAT_UINT); 1877 + TIFFSetField (tiff, TIFFTAG_ROWSPERSTRIP, 1); 1878 + TIFFSetField (tiff, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); 1879 + TIFFSetField (tiff, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB); 1880 + TIFFSetField (tiff, TIFFTAG_BITSPERSAMPLE, 8); 1881 + TIFFSetField (tiff, TIFFTAG_SAMPLESPERPIXEL, 3); 1882 + 1883 +/* writing the GeoTIFF Tags */ 1884 + pixsize[0] = cellsize; 1885 + pixsize[1] = cellsize; 1886 + pixsize[2] = 0.0; 1887 + TIFFSetField (tiff, GTIFF_PIXELSCALE, 3, pixsize); 1888 + tiepoint[0] = 0.0; 1889 + tiepoint[1] = 0.0; 1890 + tiepoint[2] = 0.0; 1891 + tiepoint[3] = xllcorner; 1892 + tiepoint[4] = yllcorner + (cellsize * nrows); 1893 + tiepoint[5] = 0.0; 1894 + TIFFSetField (tiff, GTIFF_TIEPOINTS, 6, tiepoint); 1895 + GTIFSetFromProj4 (gtif, proj4text); 1896 + GTIFWriteKeys (gtif); 1897 + raster = malloc (ncols * 3); 1898 + 1899 +/* initializing the TripleRow object */ 1900 + triplet = triple_alloc (ncols); 1901 + triple_set_shaded_relief_params (triplet, z_factor, scale_factor, altitude, 1902 + azimuth); 1903 + triple_set_monochrome_params (triplet, mono_color, mono_red, mono_green, 1904 + mono_blue); 1905 + triple_set_no_data (triplet, nodata, no_red, no_green, no_blue); 1906 + 1907 + for (row = 0; row < nrows; row++) 1908 + { 1909 + if (verbose) 1910 + { 1911 + fprintf (stderr, "writing scanline %d of %d\n", row + 1, nrows); 1912 + fflush (stderr); 1913 + } 1914 + if (fetch_scanline_shaded (row + 1, asc, ncols, triplet)) 1915 + { 1916 + if (triple_is_valid (triplet)) 1917 + { 1918 + int ret = 1; 1919 + if (!color_table) 1920 + triple_shaded_relief (triplet, raster); 1921 + else 1922 + ret = 1923 + triple_shaded_relief_color (color_table, colors, 1924 + triplet, raster, 1925 + row + 1); 1926 + if (!ret) 1927 + goto stop; 1928 + if (TIFFWriteScanline (tiff, raster, row - 2, 0) < 0) 1929 + { 1930 + printf ("\tTIFF write error @ row=%d\n", row); 1931 + printf 1932 + ("An invalid GeoTIFF was generated ... aborting ...\n"); 1933 + goto stop; 1934 + } 1935 + } 1936 + triple_rotate (triplet); 1937 + } 1938 + else 1939 + { 1940 + printf ("*** Grid read error ***\n"); 1941 + printf ("An invalid GeoTIFF was generated ... aborting ...\n"); 1942 + goto stop; 1943 + } 1944 + } 1945 + 1946 + stop: 1947 + if (gtif) 1948 + GTIFFree (gtif); 1949 + if (tiff) 1950 + XTIFFClose (tiff); 1951 + if (raster) 1952 + free (raster); 1953 + fclose (asc); 1954 + if (triplet) 1955 + triple_free (triplet); 1956 +} 1050 1957 1051 1958 static void 1052 1959 do_help () 1053 1960 { 1054 1961 /* printing the argument list */ 1055 1962 fprintf (stderr, "\n\nusage: rasterlite_grid ARGLIST\n"); 1056 1963 fprintf (stderr, ................................................................................ 1064 1971 fprintf (stderr, 1065 1972 "-t or --tiff-path pathname the GeoTIFF path (output)\n"); 1066 1973 fprintf (stderr, 1067 1974 "-p or --proj4text proj4text the PROJ.4 parameters\n"); 1068 1975 fprintf (stderr, "-f or --grid-format grid-type [ASCII | FLOAT]\n"); 1069 1976 fprintf (stderr, 1070 1977 "-n or --nodata-color 0xRRGGBB [default = 0x000000]\n"); 1071 - fprintf (stderr, "-v or --verbose verbose output\n"); 1978 + fprintf (stderr, "-v or --verbose verbose output\n\n"); 1979 + fprintf (stderr, "Shaded Relief specific arguments:\n"); 1980 + fprintf (stderr, "---------------------------------\n"); 1981 + fprintf (stderr, 1982 + "-sr or --shaded-relief *disabled by default*\n"); 1983 + fprintf (stderr, "-m or --monochrome 0xRRGGBB [default = none]\n"); 1984 + fprintf (stderr, "-z or --z-factor numeric [default = 1.0]\n"); 1985 + fprintf (stderr, "-s or --scale-factor numeric [default = 1.0]\n"); 1986 + fprintf (stderr, "-az or --azimuth numeric [default = 315.0]\n"); 1987 + fprintf (stderr, "-al or --altitude numeric [default = 45.0]\n\n"); 1988 + fprintf (stderr, "Please note: --monochrome and --color-path are\n"); 1989 + fprintf (stderr, "mutually exclusive options\n"); 1072 1990 } 1073 1991 1074 1992 int 1075 1993 main (int argc, char *argv[]) 1076 1994 { 1077 1995 /* the MAIN function simply perform arguments checking */ 1078 1996 int i; ................................................................................ 1085 2003 int verbose = 0; 1086 2004 int error = 0; 1087 2005 struct colorTable *color_table = NULL; 1088 2006 unsigned char no_red = 0; 1089 2007 unsigned char no_green = 0; 1090 2008 unsigned char no_blue = 0; 1091 2009 char error_nodata_color[1024]; 2010 + int shaded_relief = 0; 2011 + int mono_color = 0; 2012 + unsigned char mono_red = 0; 2013 + unsigned char mono_green = 0; 2014 + unsigned char mono_blue = 0; 2015 + char error_mono_color[1024]; 2016 + double z_factor = 1.0; 2017 + double scale_factor = 1.0; 2018 + double azimuth = 315.0; 2019 + double altitude = 45.0; 2020 + int colors; 1092 2021 *error_nodata_color = '\0'; 2022 + *error_mono_color = '\0'; 1093 2023 for (i = 1; i < argc; i++) 1094 2024 { 1095 2025 /* parsing the invocation arguments */ 1096 2026 if (next_arg != ARG_NONE) 1097 2027 { 1098 2028 switch (next_arg) 1099 2029 { ................................................................................ 1115 2045 if (strcasecmp (argv[i], "FLOAT") == 0) 1116 2046 grid_type = FLOAT_GRID; 1117 2047 break; 1118 2048 case ARG_NODATA_COLOR: 1119 2049 if (!parse_rgb (argv[i], &no_red, &no_green, &no_blue)) 1120 2050 strcpy (error_nodata_color, argv[i]); 1121 2051 break; 2052 + case ARG_MONO_COLOR: 2053 + if (!parse_rgb 2054 + (argv[i], &mono_red, &mono_green, &mono_blue)) 2055 + strcpy (error_mono_color, argv[i]); 2056 + else 2057 + mono_color = 1; 2058 + break; 2059 + case ARG_Z_FACTOR: 2060 + z_factor = atof (argv[i]); 2061 + break; 2062 + case ARG_SCALE: 2063 + scale_factor = atof (argv[i]); 2064 + break; 2065 + case ARG_AZIMUTH: 2066 + azimuth = atof (argv[i]); 2067 + break; 2068 + case ARG_ALTITUDE: 2069 + altitude = atof (argv[i]); 2070 + break; 1122 2071 }; 1123 2072 next_arg = ARG_NONE; 1124 2073 continue; 1125 2074 } 1126 2075 if (strcasecmp (argv[i], "--help") == 0 1127 2076 || strcmp (argv[i], "-?") == 0) 1128 2077 { ................................................................................ 1194 2143 verbose = 1; 1195 2144 continue; 1196 2145 } 1197 2146 if (strcmp (argv[i], "-v") == 0) 1198 2147 { 1199 2148 verbose = 1; 1200 2149 continue; 2150 + } 2151 + if (strcasecmp (argv[i], "--shared-relief") == 0) 2152 + { 2153 + shaded_relief = 1; 2154 + continue; 2155 + } 2156 + if (strcmp (argv[i], "-sr") == 0) 2157 + { 2158 + shaded_relief = 1; 2159 + continue; 2160 + } 2161 + if (strcmp (argv[i], "-m") == 0) 2162 + { 2163 + next_arg = ARG_MONO_COLOR; 2164 + continue; 2165 + } 2166 + if (strcasecmp (argv[i], "--monochrome") == 0) 2167 + { 2168 + next_arg = ARG_MONO_COLOR; 2169 + continue; 2170 + } 2171 + if (strcmp (argv[i], "-z") == 0) 2172 + { 2173 + next_arg = ARG_Z_FACTOR; 2174 + continue; 2175 + } 2176 + if (strcasecmp (argv[i], "--z-factor") == 0) 2177 + { 2178 + next_arg = ARG_Z_FACTOR; 2179 + continue; 2180 + } 2181 + if (strcmp (argv[i], "-s") == 0) 2182 + { 2183 + next_arg = ARG_SCALE; 2184 + continue; 2185 + } 2186 + if (strcasecmp (argv[i], "--scale-factor") == 0) 2187 + { 2188 + next_arg = ARG_SCALE; 2189 + continue; 2190 + } 2191 + if (strcmp (argv[i], "-az") == 0) 2192 + { 2193 + next_arg = ARG_AZIMUTH; 2194 + continue; 2195 + } 2196 + if (strcasecmp (argv[i], "--azimuth") == 0) 2197 + { 2198 + next_arg = ARG_AZIMUTH; 2199 + continue; 2200 + } 2201 + if (strcmp (argv[i], "-al") == 0) 2202 + { 2203 + next_arg = ARG_ALTITUDE; 2204 + continue; 2205 + } 2206 + if (strcasecmp (argv[i], "--altitude") == 0) 2207 + { 2208 + next_arg = ARG_ALTITUDE; 2209 + continue; 1201 2210 } 1202 2211 fprintf (stderr, "unknown argument: %s\n", argv[i]); 1203 2212 error = 1; 1204 2213 } 1205 2214 if (error) 1206 2215 { 1207 2216 do_help (); ................................................................................ 1210 2219 /* checking the arguments */ 1211 2220 if (!grid_path) 1212 2221 { 1213 2222 fprintf (stderr, 1214 2223 "did you forget setting the --grid-path argument ?\n"); 1215 2224 error = 1; 1216 2225 } 1217 - if (!color_path) 2226 + if (!shaded_relief) 1218 2227 { 1219 - fprintf (stderr, 1220 - "did you forget setting the --color-path argument ?\n"); 1221 - error = 1; 2228 + if (!color_path) 2229 + { 2230 + fprintf (stderr, 2231 + "did you forget setting the --color-path argument ?\n"); 2232 + error = 1; 2233 + } 1222 2234 } 1223 2235 if (!tiff_path) 1224 2236 { 1225 2237 fprintf (stderr, 1226 2238 "did you forget setting the --tiff-path argument ?\n"); 1227 2239 error = 1; 1228 2240 } ................................................................................ 1238 2250 "did you forget setting the --grid-format argument ?\n"); 1239 2251 error = 1; 1240 2252 } 1241 2253 if (strlen (error_nodata_color)) 1242 2254 { 1243 2255 printf ("invalid NODATA color '%s'\n", error_nodata_color); 1244 2256 error = 1; 2257 + } 2258 + if (strlen (error_mono_color)) 2259 + { 2260 + printf ("invalid Shaded Relief Monochrome color '%s'\n", 2261 + error_mono_color); 2262 + error = 1; 2263 + } 2264 + if (color_path && mono_color) 2265 + { 2266 + printf ("--monochrome and --color-path are mutually exclusive\n"); 2267 + error = 1; 1245 2268 } 1246 2269 if (error) 1247 2270 { 1248 2271 do_help (); 1249 2272 return -1; 1250 2273 } 1251 2274 printf ("=====================================================\n"); 1252 2275 printf (" Arguments Summary\n"); 1253 2276 printf ("=====================================================\n"); 1254 2277 printf ("Grid pathname: '%s'\n", grid_path); 1255 - printf ("ColorTable pathname: '%s'\n", color_path); 2278 + if (color_path) 2279 + printf ("ColorTable pathname: '%s'\n", color_path); 1256 2280 printf ("GeoTIFF pathname: '%s'\n", tiff_path); 1257 2281 printf ("PROJ.4 string: '%s'\n", proj4text); 2282 + printf ("NoData color: 0x%02x%02x%02x\n", no_red, no_green, no_blue); 1258 2283 switch (grid_type) 1259 2284 { 1260 2285 case ASCII_GRID: 1261 2286 printf ("Grid Format: ASCII\n"); 1262 2287 break; 1263 2288 case FLOAT_GRID: 1264 2289 printf ("Grid Format: FLOAT\n"); 1265 2290 break; 1266 2291 default: 1267 2292 printf ("Grid Format: UNKNOWN\n"); 1268 2293 break; 2294 + } 2295 + if (shaded_relief) 2296 + { 2297 + printf ("\n Shaded Relief arguments:\n"); 2298 + printf ("-----------------------------------------------------\n"); 2299 + printf ("Z-factor : %1.4f\n", z_factor); 2300 + printf ("Scale-factor : %1.4f\n", scale_factor); 2301 + printf ("Azimuth : %1.4f\n", azimuth); 2302 + printf ("Altitude : %1.4f\n", altitude); 2303 + if (mono_color) 2304 + printf ("Monochrome : 0x%02x%02x%02x\n", mono_red, mono_green, 2305 + mono_blue); 1269 2306 } 1270 2307 printf ("=====================================================\n\n"); 1271 - color_table = parse_color_table (color_path); 1272 - if (!color_table) 2308 + if (color_path) 1273 2309 { 1274 - fprintf (stderr, "\n*********** Invalid Color Table\n"); 1275 - return -1; 2310 + color_table = parse_color_table (color_path, &colors); 2311 + if (!color_table) 2312 + { 2313 + fprintf (stderr, "\n*********** Invalid Color Table\n"); 2314 + return -1; 2315 + } 1276 2316 } 1277 - if (grid_type == FLOAT_GRID) 1278 - export_geoTiff_float (color_table, proj4text, grid_path, tiff_path, 1279 - no_red, no_green, no_blue, verbose); 2317 + if (shaded_relief) 2318 + { 2319 + if (grid_type == FLOAT_GRID) 2320 + export_geoTiff_shaded_float (color_table, colors, proj4text, 2321 + grid_path, tiff_path, no_red, 2322 + no_green, no_blue, mono_color, 2323 + mono_red, mono_green, mono_blue, 2324 + z_factor, scale_factor, azimuth, 2325 + altitude, verbose); 2326 + else 2327 + export_geoTiff_shaded_ascii (color_table, colors, proj4text, 2328 + grid_path, tiff_path, no_red, 2329 + no_green, no_blue, mono_color, 2330 + mono_red, mono_green, mono_blue, 2331 + z_factor, scale_factor, azimuth, 2332 + altitude, verbose); 2333 + } 1280 2334 else 1281 - export_geoTiff_ascii (color_table, proj4text, grid_path, tiff_path, 1282 - no_red, no_green, no_blue, verbose); 1283 - free (color_table); 2335 + { 2336 + if (grid_type == FLOAT_GRID) 2337 + export_geoTiff_float (color_table, colors, proj4text, grid_path, 2338 + tiff_path, no_red, no_green, no_blue, 2339 + verbose); 2340 + else 2341 + export_geoTiff_ascii (color_table, colors, proj4text, grid_path, 2342 + tiff_path, no_red, no_green, no_blue, 2343 + verbose); 2344 + } 2345 + if (color_table) 2346 + free (color_table); 1284 2347 return 0; 1285 2348 }
Changes to src/rasterlite_load.c.
1 1 /* 2 2 / rasterlite_load.c 3 3 / 4 4 / a tool for uploading GeoTIFF rasters into a SpatiaLite DB 5 5 / 6 -/ version 1.0, 2009 June 1 6 +/ version 1.1a, 2011 November 12 7 7 / 8 8 / Author: Sandro Furieri a.furieri@lqt.it 9 9 / 10 10 / Copyright (C) 2009 Alessandro Furieri 11 11 / 12 12 / This program is free software: you can redistribute it and/or modify 13 13 / it under the terms of the GNU General Public License as published by ................................................................................ 26 26 27 27 #include <stdlib.h> 28 28 #include <stdio.h> 29 29 #include <string.h> 30 30 #include <errno.h> 31 31 #include <sys/types.h> 32 32 33 -#include <geotiff.h> 34 -#include <xtiffio.h> 35 -#include <geo_normalize.h> 36 -#include <geovalues.h> 33 +#include "rasterlite_tiff_hdrs.h" 37 34 #include <tiffio.h> 38 35 39 36 #if defined(_WIN32) && !defined(__MINGW32__) 40 37 #include <io.h> 41 38 #include <direct.h> 42 39 #else 43 40 #include <dirent.h> 44 41 #endif 45 42 43 +#ifdef SPATIALITE_AMALGAMATION 46 44 #include <spatialite/sqlite3.h> 45 +#else 46 +#include <sqlite3.h> 47 +#endif 48 + 47 49 #include <spatialite/gaiaexif.h> 48 50 #include <spatialite/gaiageo.h> 49 51 #include <spatialite.h> 50 52 51 53 #include "rasterlite.h" 52 54 #include "rasterlite_internals.h" 53 55 ................................................................................ 62 64 #define ARG_FILE 4 63 65 #define ARG_TILE_SIZE 5 64 66 #define ARG_IMAGE_TYPE 6 65 67 #define ARG_QUALITY_FACTOR 7 66 68 #define ARG_EPSG_CODE 8 67 69 68 70 static int 69 -read_by_tile (TIFF * tif, rasterliteImagePrt img, struct geo_info *infos, 71 +read_by_tile (TIFF * tif, rasterliteImagePtr img, struct geo_info *infos, 70 72 int baseVert, int baseHorz) 71 73 { 72 74 /* reading from a TIFF using TILES */ 73 75 uint32 *raster = NULL; 74 76 int x; 75 77 int y; 76 78 int img_x; ................................................................................ 169 171 error: 170 172 if (raster) 171 173 free (raster); 172 174 return 0; 173 175 } 174 176 175 177 static int 176 -read_by_strip (TIFF * tif, rasterliteImagePrt img, struct geo_info *infos, 178 +read_by_strip (TIFF * tif, rasterliteImagePtr img, struct geo_info *infos, 177 179 int baseVert, int baseHorz) 178 180 { 179 181 /* reading from a TIFF using STRIPS */ 180 182 uint32 *raster = NULL; 181 183 int x; 182 184 int y; 183 185 int img_y; ................................................................................ 262 264 /* accessing the TIFF by strips or tiles */ 263 265 int retval = 0; 264 266 void *image; 265 267 int image_size; 266 268 int ret; 267 269 double xx; 268 270 double yy; 269 - rasterliteImagePrt img = NULL; 271 + rasterliteImagePtr img = NULL; 270 272 gaiaPolygonPtr polyg; 271 273 tile->geometry = gaiaAllocGeomColl (); 272 274 tile->tileNo = tileNo; 273 275 274 276 /* computing actual tile dims */ 275 277 tile->raster_horz = infos->tile_width; 276 278 tile->raster_vert = infos->tile_height; ................................................................................ 397 399 /* compressing the section image as TIFF RGB */ 398 400 image = image_to_tiff_rgb (img, &image_size); 399 401 if (!image) 400 402 { 401 403 printf ("TIFF RGB compression error\n"); 402 404 goto stop; 403 405 } 404 - } 405 - else if (infos->image_type == IMAGE_WAVELET_BW) 406 - { 407 - /* compressing the section image as WAVELET GRAYSCALE */ 408 - image = 409 - image_to_wavelet_grayscale (img, &image_size, 410 - infos->quality_factor); 411 - if (!image) 412 - { 413 - printf ("WAVELET compression error\n"); 414 - goto stop; 415 - } 416 - } 417 - else if (infos->image_type == IMAGE_WAVELET_RGB) 418 - { 419 - /* compressing the section image as WAVELET RGB */ 420 - image = image_to_wavelet (img, &image_size, infos->quality_factor); 421 - if (!image) 422 - { 423 - printf ("WAVELET compression error\n"); 424 - goto stop; 425 - } 426 406 } 427 407 else if (infos->image_type == IMAGE_JPEG_BW) 428 408 { 429 409 /* compressing the section image as JPEG GRAYSCALE */ 430 410 image = 431 411 image_to_jpeg_grayscale (img, &image_size, infos->quality_factor); 432 412 if (!image) ................................................................................ 844 824 actual_format = (const char *) "GIF"; 845 825 infos.image_type = IMAGE_GIF_PALETTE; 846 826 } 847 827 } 848 828 if (bits_per_sample == 8 && samples_per_pixel == 1 && photometric < 2) 849 829 { 850 830 colorspace_name = (const char *) "GrayScale - 256 levels"; 851 - format_hint = (const char *) "JPEG / WAVELET / PNG / TIFF"; 831 + format_hint = (const char *) "JPEG / PNG / TIFF"; 852 832 if (image_type == GAIA_TIFF_BLOB) 853 833 { 854 834 strcpy (dummy, "TIFF [GRAYSCALE]"); 855 835 infos.image_type = IMAGE_TIFF_GRAYSCALE; 856 836 } 857 837 else if (image_type == GAIA_PNG_BLOB) 858 838 { 859 839 strcpy (dummy, "PNG [GRAYSCALE]"); 860 840 infos.image_type = IMAGE_PNG_GRAYSCALE; 861 841 } 862 - else if (image_type == IMAGE_WAVELET_RGB) 863 - { 864 - sprintf (dummy, "WAVELET [GRAYSCALE] compression ratio 1:%d", 865 - quality_factor); 866 - infos.image_type = IMAGE_WAVELET_BW; 867 - } 868 842 else 869 843 { 870 844 sprintf (dummy, "JPEG [GRAYSCALE] quality=%d", quality_factor); 871 845 infos.image_type = IMAGE_JPEG_BW; 872 846 } 873 847 actual_format = (const char *) dummy; 874 848 } 875 849 if (samples_per_pixel >= 3) 876 850 { 877 851 colorspace_name = (const char *) "RGB - TrueColor"; 878 - format_hint = (const char *) "JPEG / WAVELET / TIFF"; 852 + format_hint = (const char *) "JPEG / TIFF"; 879 853 if (image_type == GAIA_TIFF_BLOB) 880 854 { 881 855 sprintf (dummy, "TIFF [RGB]"); 882 856 infos.image_type = IMAGE_TIFF_RGB; 883 857 } 884 858 else if (image_type == GAIA_PNG_BLOB) 885 859 { 886 860 sprintf (dummy, "PNG [RGB]"); 887 861 infos.image_type = IMAGE_PNG_RGB; 888 862 } 889 - else if (image_type == GAIA_WAVELET_BLOB) 890 - { 891 - sprintf (dummy, "WAVELET [RGB] compression ratio 1:%d", 892 - quality_factor); 893 - infos.image_type = IMAGE_WAVELET_RGB; 894 - } 895 863 else 896 864 { 897 865 sprintf (dummy, "JPEG [RGB] quality=%d", quality_factor); 898 866 infos.image_type = IMAGE_JPEG_RGB; 899 867 } 900 868 actual_format = (const char *) dummy; 901 869 } ................................................................................ 975 943 compression_name = (const char *) "JPEG-2000"; 976 944 break; 977 945 default: 978 946 compression_name = (const char *) "UNKNOWN"; 979 947 break; 980 948 }; 981 949 /* retrieving the EPSG code */ 982 - infos.epsg = definition.GCS; 950 + infos.epsg = definition.PCS; 983 951 /* computing the corners coords */ 984 952 cx = 0.0; 985 953 cy = 0.0; 986 954 GTIFImageToPCS (gtif, &cx, &cy); 987 955 infos.upper_left_x = cx; 988 956 infos.upper_left_y = cy; 989 957 cx = 0.0; ................................................................................ 1203 1171 if (ret != SQLITE_OK) 1204 1172 { 1205 1173 printf ("COMMIT TRANSACTION error: %s\n", sql_err); 1206 1174 sqlite3_free (sql_err); 1207 1175 goto stop; 1208 1176 } 1209 1177 1178 + if (tif) 1179 + XTIFFClose (tif); 1180 + if (gtif) 1181 + GTIFFree (gtif); 1210 1182 for (i = 0; i < NTILES; i++) 1211 1183 { 1212 1184 tile = &(infos.tiles[i]); 1213 1185 if (tile->geometry) 1214 1186 gaiaFreeGeomColl (tile->geometry); 1215 1187 } 1216 1188 ................................................................................ 1435 1407 "-D or --dir dir_path the DIR path containing GeoTIFF files\n"); 1436 1408 fprintf (stderr, 1437 1409 "-f or --file file_name a single GeoTIFF file\n"); 1438 1410 fprintf (stderr, "-s or --tile-size num [default = 512]\n"); 1439 1411 fprintf (stderr, 1440 1412 "-e or --epsg-code num [optional: EPSG code]\n"); 1441 1413 fprintf (stderr, 1442 - "-i or --image-type type [JPEG|PNG|GIF|TIFF|WAVELET]\n"); 1414 + "-i or --image-type type [JPEG|PNG|GIF|TIFF]\n"); 1443 1415 fprintf (stderr, 1444 - "-q or --quality num [default = 75(JPEG) / 25(WAVELET)]\n"); 1416 + "-q or --quality num [default = 75(JPEG)]\n"); 1445 1417 } 1446 1418 1447 1419 int 1448 1420 main (int argc, char *argv[]) 1449 1421 { 1450 1422 /* the MAIN function simply perform arguments checking */ 1451 1423 sqlite3 *handle; ................................................................................ 1494 1466 image_type = GAIA_JPEG_BLOB; 1495 1467 if (strcasecmp (argv[i], "PNG") == 0) 1496 1468 image_type = GAIA_PNG_BLOB; 1497 1469 if (strcasecmp (argv[i], "GIF") == 0) 1498 1470 image_type = GAIA_GIF_BLOB; 1499 1471 if (strcasecmp (argv[i], "TIFF") == 0) 1500 1472 image_type = GAIA_TIFF_BLOB; 1501 - if (strcasecmp (argv[i], "WAVELET") == 0) 1502 - image_type = GAIA_WAVELET_BLOB; 1503 1473 break; 1504 1474 case ARG_QUALITY_FACTOR: 1505 1475 quality_factor = atoi (argv[i]); 1506 1476 break; 1507 1477 case ARG_EPSG_CODE: 1508 1478 epsg_code = atoi (argv[i]); 1509 1479 break; ................................................................................ 1663 1633 if (quality_factor == -999999) 1664 1634 quality_factor = 75; 1665 1635 if (quality_factor < 10) 1666 1636 quality_factor = 10; 1667 1637 if (quality_factor > 90) 1668 1638 quality_factor = 90; 1669 1639 } 1670 - if (image_type == GAIA_WAVELET_BLOB) 1671 - { 1672 - /* normalizing the commpression factor */ 1673 - if (quality_factor == -999999) 1674 - quality_factor = 25; 1675 - if (quality_factor < 10) 1676 - quality_factor = 10; 1677 - if (quality_factor > 200) 1678 - quality_factor = 200; 1679 - } 1680 1640 printf ("=====================================================\n"); 1681 1641 printf (" Arguments Summary\n"); 1682 1642 printf ("=====================================================\n"); 1683 1643 if (test_mode) 1684 1644 { 1685 1645 printf ("TEST mode: no actual action will be performed\n"); 1686 1646 printf ("*** ignoring the SpatiaLite DB ***\n"); ................................................................................ 1709 1669 break; 1710 1670 case GAIA_GIF_BLOB: 1711 1671 printf ("Tile image type: GIF\n"); 1712 1672 break; 1713 1673 case GAIA_TIFF_BLOB: 1714 1674 printf ("Tile image type: TIFF\n"); 1715 1675 break; 1716 - case GAIA_WAVELET_BLOB: 1717 - printf ("Tile image type: WAVELET compression ratio 1:%d\n", 1718 - quality_factor); 1719 - break; 1720 1676 default: 1721 1677 printf ("Tile image type: UNKNOWN\n"); 1722 1678 break; 1723 1679 }; 1724 1680 printf ("=====================================================\n\n"); 1725 1681 if (!test_mode) 1726 1682 {
Changes to src/rasterlite_pyramid.c.
1 1 /* 2 2 / rasterlite_pyramid.c 3 3 / 4 4 / a tool building raster pyramids into a SpatiaLite DB 5 5 / 6 -/ version 1.0, 2009 June 1 6 +/ version 1.1a, 2011 November 12 7 7 / 8 8 / Author: Sandro Furieri a.furieri@lqt.it 9 9 / 10 10 / Copyright (C) 2009 Alessandro Furieri 11 11 / 12 12 / This program is free software: you can redistribute it and/or modify 13 13 / it under the terms of the GNU General Public License as published by ................................................................................ 27 27 #include <stdlib.h> 28 28 #include <stdio.h> 29 29 #include <string.h> 30 30 #include <errno.h> 31 31 #include <sys/types.h> 32 32 #include <float.h> 33 33 34 -#include <geotiff.h> 35 -#include <xtiffio.h> 36 -#include <geo_normalize.h> 37 -#include <geovalues.h> 34 +#include "rasterlite_tiff_hdrs.h" 38 35 #include <tiffio.h> 39 36 37 +#ifdef SPATIALITE_AMALGAMATION 40 38 #include <spatialite/sqlite3.h> 39 +#else 40 +#include <sqlite3.h> 41 +#endif 42 + 41 43 #include <spatialite/gaiaexif.h> 42 44 #include <spatialite/gaiageo.h> 43 45 #include <spatialite.h> 44 46 45 47 #include "rasterlite.h" 46 48 #include "rasterlite_internals.h" 47 49 48 -#ifdef _WIN32 50 +#ifdef _WIN32 49 51 #define strcasecmp _stricmp 50 52 #endif /* not WIN32 */ 51 53 52 54 #if defined(_WIN32) || defined (__MINGW32__) 53 55 #define FORMAT_64 "%I64d" 54 56 #else 55 57 #define FORMAT_64 "%lld" ................................................................................ 257 259 break; 258 260 } 259 261 p = p->next; 260 262 } 261 263 return NULL; 262 264 } 263 265 264 -static rasterliteImagePrt 266 +static rasterliteImagePtr 265 267 raster_decode (const void *blob, int blob_size) 266 268 { 267 269 /* trying to decode a BLOB as an image */ 268 - rasterliteImagePrt img = NULL; 270 + rasterliteImagePtr img = NULL; 269 271 int type = gaiaGuessBlobType (blob, blob_size); 270 272 if (type == GAIA_JPEG_BLOB || type == GAIA_EXIF_BLOB 271 273 || type == GAIA_EXIF_GPS_BLOB) 272 274 img = image_from_jpeg (blob_size, (void *) blob); 273 275 else if (type == GAIA_PNG_BLOB) 274 276 img = image_from_png (blob_size, (void *) blob); 275 277 else if (type == GAIA_GIF_BLOB) 276 278 img = image_from_gif (blob_size, (void *) blob); 277 279 else if (type == GAIA_TIFF_BLOB) 278 280 img = image_from_tiff (blob_size, (void *) blob); 279 - else if (type == GAIA_WAVELET_BLOB) 280 - img = image_from_wavelet (blob_size, (void *) blob); 281 281 return img; 282 282 } 283 283 284 284 static int 285 -get_tile (sqlite3 * handle, rasterliteImagePrt img, const char *table, 285 +get_tile (sqlite3 * handle, rasterliteImagePtr img, const char *table, 286 286 sqlite3_int64 tile_id, int declared_x, int declared_y, int where) 287 287 { 288 288 /* fetching a raster tile */ 289 289 sqlite3_stmt *stmt; 290 290 int ret; 291 291 char sql[1024]; 292 292 char dummy64[64]; ................................................................................ 293 293 const void *blob; 294 294 int blob_size; 295 295 int row; 296 296 int col; 297 297 int x; 298 298 int y; 299 299 int pixel; 300 - rasterliteImagePrt tile_img = NULL; 300 + rasterliteImagePtr tile_img = NULL; 301 301 sprintf (sql, "SELECT raster FROM \"%s_rasters\" WHERE id = ?", table); 302 302 ret = sqlite3_prepare_v2 (handle, sql, strlen (sql), &stmt, NULL); 303 303 if (ret != SQLITE_OK) 304 304 { 305 305 printf ("SQL error: %s\n", sqlite3_errmsg (handle)); 306 306 return 0; 307 307 } ................................................................................ 420 420 image_destroy (tile_img); 421 421 422 422 return 1; 423 423 } 424 424 425 425 static void 426 426 thumbnail_export (sqlite3 * handle, sqlite3_stmt * stmt, 427 - rasterliteImagePrt img, int image_type, int quality_factor, 427 + rasterliteImagePtr img, int image_type, int quality_factor, 428 428 struct thumbnail_tile *tile) 429 429 { 430 430 /* saving the thumbnail into the DB */ 431 431 int ret; 432 432 void *blob; 433 433 int blob_size; 434 434 int width = img->sx / 2; 435 435 int height = img->sy / 2; 436 - rasterliteImagePrt thumbnail = image_create (width, height); 436 + rasterliteImagePtr thumbnail = image_create (width, height); 437 437 make_thumbnail (thumbnail, img); 438 438 if (image_type == GAIA_TIFF_BLOB) 439 439 { 440 440 blob = image_to_tiff_rgb (thumbnail, &blob_size); 441 441 if (!blob) 442 442 { 443 443 printf ("TIFF RGB compression error\n"); ................................................................................ 448 448 { 449 449 blob = image_to_png_rgb (thumbnail, &blob_size); 450 450 if (!blob) 451 451 { 452 452 printf ("PNG RGB compression error\n"); 453 453 goto end; 454 454 } 455 - } 456 - else if (image_type == GAIA_WAVELET_BLOB) 457 - { 458 - blob = image_to_wavelet (thumbnail, &blob_size, quality_factor); 459 - if (!blob) 460 - { 461 - printf ("WAVELET compression error\n"); 462 - goto end; 463 - } 464 455 } 465 456 else 466 457 { 467 458 blob = image_to_jpeg (thumbnail, &blob_size, quality_factor); 468 459 if (!blob) 469 460 { 470 461 printf ("JPEG compression error\n"); ................................................................................ 584 575 struct tiles_list tiles; 585 576 struct tile_item *tile_1; 586 577 struct tile_item *tile_2; 587 578 struct tile_item *tile_3; 588 579 struct tile_item *tile_4; 589 580 double x; 590 581 double y; 591 - rasterliteImagePrt img = NULL; 582 + rasterliteImagePtr img = NULL; 592 583 struct thumbnail_tile thumb_tiles[NTILES]; 593 584 struct thumbnail_tile *thumb_tile; 594 585 int max_tile; 595 586 gaiaPolygonPtr polyg; 596 587 int raster_ok = 0; 597 588 int metadata_ok = 0; 598 589 int i; ................................................................................ 1621 1612 "-? or --help print this help message\n"); 1622 1613 fprintf (stderr, 1623 1614 "-t or --test test only - no actual action\n"); 1624 1615 fprintf (stderr, "-v or --verbose verbose output\n"); 1625 1616 fprintf (stderr, 1626 1617 "-d or --db-path pathname the SpatiaLite db path\n"); 1627 1618 fprintf (stderr, "-T or --table-name name DB table name\n"); 1628 - fprintf (stderr, "-i or --image-type type [JPEG|WAVELET|TIFF]\n"); 1619 + fprintf (stderr, "-i or --image-type type [JPEG|TIFF]\n"); 1629 1620 fprintf (stderr, 1630 - "-q or --quality num [default = 75(JPEG) / 25(WAVELET)]\n"); 1621 + "-q or --quality num [default = 75(JPEG)]\n"); 1631 1622 } 1632 1623 1633 1624 int 1634 1625 main (int argc, char *argv[]) 1635 1626 { 1636 1627 /* the MAIN function simply perform arguments checking */ 1637 1628 sqlite3 *handle; ................................................................................ 1657 1648 break; 1658 1649 case ARG_TABLE_NAME: 1659 1650 table = argv[i]; 1660 1651 break; 1661 1652 case ARG_IMAGE_TYPE: 1662 1653 if (strcasecmp (argv[i], "JPEG") == 0) 1663 1654 image_type = GAIA_JPEG_BLOB; 1664 - if (strcasecmp (argv[i], "WAVELET") == 0) 1665 - image_type = GAIA_WAVELET_BLOB; 1666 1655 if (strcasecmp (argv[i], "PNG") == 0) 1667 1656 image_type = GAIA_PNG_BLOB; 1668 1657 if (strcasecmp (argv[i], "TIFF") == 0) 1669 1658 image_type = GAIA_TIFF_BLOB; 1670 1659 break; 1671 1660 case ARG_QUALITY_FACTOR: 1672 1661 quality_factor = atoi (argv[i]); ................................................................................ 1771 1760 if (quality_factor == -999999) 1772 1761 quality_factor = 75; 1773 1762 if (quality_factor < 10) 1774 1763 quality_factor = 10; 1775 1764 if (quality_factor > 90) 1776 1765 quality_factor = 90; 1777 1766 } 1778 - if (image_type == GAIA_WAVELET_BLOB) 1779 - { 1780 - /* normalizing the commpression factor */ 1781 - if (quality_factor == -999999) 1782 - quality_factor = 25; 1783 - if (quality_factor < 10) 1784 - quality_factor = 10; 1785 - if (quality_factor > 200) 1786 - quality_factor = 200; 1787 - } 1788 1767 printf ("=====================================================\n"); 1789 1768 printf (" Arguments Summary\n"); 1790 1769 printf ("=====================================================\n"); 1791 1770 if (test_mode) 1792 1771 printf ("TEST mode: no actual action will be performed\n"); 1793 1772 printf ("SpatiaLite DB path: '%s'\n", path); 1794 1773 printf ("Table prefix: '%s'\n", table); ................................................................................ 1795 1774 printf ("\ttable '%s_rasters' is assumed to store raster tiles\n", table); 1796 1775 printf ("\ttable '%s_metadata' is assumed to store tile metadata\n", table); 1797 1776 switch (image_type) 1798 1777 { 1799 1778 case GAIA_JPEG_BLOB: 1800 1779 printf ("Pyramid Tile image type: JPEG quality=%d\n", quality_factor); 1801 1780 break; 1802 - case GAIA_WAVELET_BLOB: 1803 - printf ("Pyramid Tile image type: WAVELET compression ratio 1:%d\n", 1804 - quality_factor); 1805 - break; 1806 1781 case GAIA_PNG_BLOB: 1807 1782 printf ("Pyramid Tile image type: PNG [RGB]\n"); 1808 1783 break; 1809 1784 case GAIA_TIFF_BLOB: 1810 1785 printf ("Pyramid Tile image type: TIFF [RGB]\n"); 1811 1786 break; 1812 1787 default:
Changes to src/rasterlite_tool.c.
1 1 /* 2 2 / rasterlite_tool.c 3 3 / 4 4 / a tool generating rasters from a SpatiaLite DB 5 5 / 6 -/ version 1.0, 2009 June 1 6 +/ version 1.1a, 2011 November 12 7 7 / 8 8 / Author: Sandro Furieri a.furieri@lqt.it 9 9 / 10 10 / Copyright (C) 2009 Alessandro Furieri 11 11 / 12 12 / This program is free software: you can redistribute it and/or modify 13 13 / it under the terms of the GNU General Public License as published by ................................................................................ 27 27 #include <stdlib.h> 28 28 #include <stdio.h> 29 29 #include <string.h> 30 30 #include <float.h> 31 31 32 32 #include <tiffio.h> 33 33 34 +#ifdef SPATIALITE_AMALGAMATION 34 35 #include <spatialite/sqlite3.h> 36 +#else 37 +#include <sqlite3.h> 38 +#endif 39 + 35 40 #include <spatialite/gaiaexif.h> 36 41 #include <spatialite/gaiageo.h> 37 42 #include <spatialite.h> 38 43 39 44 #include "rasterlite.h" 40 45 #include "rasterlite_internals.h" 41 46
Changes to src/rasterlite_topmost.c.
1 1 /* 2 2 / rasterlite_topmpst.c 3 3 / 4 4 / a tool building raster topmost pyramid's levels into a SpatiaLite DB 5 5 / 6 -/ version 1.0, 2009 June 25 6 +/ version 1.1a, 2011 November 12 7 7 / 8 8 / Author: Sandro Furieri a.furieri@lqt.it 9 9 / 10 10 / Copyright (C) 2009 Alessandro Furieri 11 11 / 12 12 / This program is free software: you can redistribute it and/or modify 13 13 / it under the terms of the GNU General Public License as published by ................................................................................ 29 29 #include <stdio.h> 30 30 #include <string.h> 31 31 #include <float.h> 32 32 #include <math.h> 33 33 34 34 #include <tiffio.h> 35 35 36 +#ifdef SPATIALITE_AMALGAMATION 36 37 #include <spatialite/sqlite3.h> 38 +#else 39 +#include <sqlite3.h> 40 +#endif 41 + 37 42 #include <spatialite/gaiaexif.h> 38 43 #include <spatialite/gaiageo.h> 39 44 #include <spatialite.h> 40 45 41 46 #include "rasterlite.h" 42 47 #include "rasterlite_internals.h" 43 48 ................................................................................ 279 284 list->first = p; 280 285 if (list->last != NULL) 281 286 list->last->next = p; 282 287 list->last = p; 283 288 } 284 289 285 290 static void 286 -copy_rectangle (rasterliteImagePrt output, rasterliteImagePrt input, 291 +copy_rectangle (rasterliteImagePtr output, rasterliteImagePtr input, 287 292 int transparent_color, int base_x, int base_y) 288 293 { 289 294 /* copying a raster rectangle */ 290 295 int x; 291 296 int y; 292 297 int dst_x; 293 298 int dst_y; ................................................................................ 332 337 int ret; 333 338 int hits = 0; 334 339 void *blob; 335 340 int blob_size; 336 341 int new_tile_width; 337 342 int new_tile_height; 338 343 gaiaPolygonPtr polyg; 339 - rasterliteImagePrt full_size = NULL; 340 - rasterliteImagePrt thumbnail = NULL; 344 + rasterliteImagePtr full_size = NULL; 345 + rasterliteImagePtr thumbnail = NULL; 341 346 int srid; 342 347 /* creating the full size image */ 343 348 full_size = image_create (tile_width, tile_height); 344 349 image_fill (full_size, info->background_color); 345 350 /* binding query params */ 346 351 sqlite3_reset (info->stmt_query); 347 352 sqlite3_clear_bindings (info->stmt_query); ................................................................................ 357 362 ret = sqlite3_step (info->stmt_query); 358 363 if (ret == SQLITE_DONE) 359 364 break; /* end of result set */ 360 365 if (ret == SQLITE_ROW) 361 366 { 362 367 /* retrieving query values */ 363 368 gaiaGeomCollPtr geom = NULL; 364 - rasterliteImagePrt img = NULL; 369 + rasterliteImagePtr img = NULL; 365 370 if (sqlite3_column_type (info->stmt_query, 0) == SQLITE_BLOB) 366 371 { 367 372 /* fetching Geometry */ 368 373 const void *blob = 369 374 sqlite3_column_blob (info->stmt_query, 0); 370 375 int blob_size = 371 376 sqlite3_column_bytes (info->stmt_query, 0); ................................................................................ 456 461 { 457 462 blob = image_to_png_rgb (thumbnail, &blob_size); 458 463 if (!blob) 459 464 { 460 465 printf ("PNG RGB compression error\n"); 461 466 return 0; 462 467 } 463 - } 464 - else if (info->image_type == GAIA_WAVELET_BLOB) 465 - { 466 - blob = image_to_wavelet (thumbnail, &blob_size, info->quality_factor); 467 - if (!blob) 468 - { 469 - printf ("WAVELET compression error\n"); 470 - return 0; 471 - } 472 468 } 473 469 else 474 470 { 475 471 blob = image_to_jpeg (thumbnail, &blob_size, info->quality_factor); 476 472 if (!blob) 477 473 { 478 474 printf ("JPEG compression error\n"); ................................................................................ 1373 1369 "-? or --help print this help message\n"); 1374 1370 fprintf (stderr, 1375 1371 "-t or --test test only - no actual action\n"); 1376 1372 fprintf (stderr, "-v or --verbose verbose output\n"); 1377 1373 fprintf (stderr, 1378 1374 "-d or --db-path pathname the SpatiaLite db path\n"); 1379 1375 fprintf (stderr, "-T or --table-name name DB table name\n"); 1380 - fprintf (stderr, "-i or --image-type type [JPEG|WAVELET|TIFF]\n"); 1376 + fprintf (stderr, "-i or --image-type type [JPEG|TIFF]\n"); 1381 1377 fprintf (stderr, 1382 - "-q or --quality num [default = 75(JPEG) / 25(WAVELET)]\n"); 1378 + "-q or --quality num [default = 75(JPEG)]\n"); 1383 1379 fprintf (stderr, "-c or --transparent-color 0xRRGGBB [default = NONE]\n"); 1384 1380 fprintf (stderr, 1385 1381 "-b or --background-color 0xRRGGBB [default = 0x000000]\n"); 1386 1382 } 1387 1383 1388 1384 int 1389 1385 main (int argc, char *argv[]) ................................................................................ 1417 1413 break; 1418 1414 case ARG_TABLE_NAME: 1419 1415 table = argv[i]; 1420 1416 break; 1421 1417 case ARG_IMAGE_TYPE: 1422 1418 if (strcasecmp (argv[i], "JPEG") == 0) 1423 1419 image_type = GAIA_JPEG_BLOB; 1424 - if (strcasecmp (argv[i], "WAVELET") == 0) 1425 - image_type = GAIA_WAVELET_BLOB; 1426 1420 if (strcasecmp (argv[i], "PNG") == 0) 1427 1421 image_type = GAIA_PNG_BLOB; 1428 1422 if (strcasecmp (argv[i], "TIFF") == 0) 1429 1423 image_type = GAIA_TIFF_BLOB; 1430 1424 break; 1431 1425 case ARG_QUALITY_FACTOR: 1432 1426 quality_factor = atoi (argv[i]); ................................................................................ 1588 1582 if (quality_factor == -999999) 1589 1583 quality_factor = 75; 1590 1584 if (quality_factor < 10) 1591 1585 quality_factor = 10; 1592 1586 if (quality_factor > 90) 1593 1587 quality_factor = 90; 1594 1588 } 1595 - if (image_type == GAIA_WAVELET_BLOB) 1596 - { 1597 - /* normalizing the commpression factor */ 1598 - if (quality_factor == -999999) 1599 - quality_factor = 25; 1600 - if (quality_factor < 10) 1601 - quality_factor = 10; 1602 - if (quality_factor > 200) 1603 - quality_factor = 200; 1604 - } 1605 1589 printf ("=====================================================\n"); 1606 1590 printf (" Arguments Summary\n"); 1607 1591 printf ("=====================================================\n"); 1608 1592 if (test_mode) 1609 1593 printf ("TEST mode: no actual action will be performed\n"); 1610 1594 printf ("SpatiaLite DB path: '%s'\n", path); 1611 1595 printf ("Table prefix: '%s'\n", table); ................................................................................ 1614 1598 printf ("Tile preferred max size: %d pixels\n", tile_size); 1615 1599 switch (image_type) 1616 1600 { 1617 1601 case GAIA_JPEG_BLOB: 1618 1602 printf ("Topmost Pyramid Tile image type: JPEG quality=%d\n", 1619 1603 quality_factor); 1620 1604 break; 1621 - case GAIA_WAVELET_BLOB: 1622 - printf 1623 - ("Topmost Pyramid Tile image type: WAVELET compression ratio 1:%d\n", 1624 - quality_factor); 1625 - break; 1626 1605 case GAIA_PNG_BLOB: 1627 1606 printf ("Topmost Pyramid Tile image type: PNG [RGB]\n"); 1628 1607 break; 1629 1608 case GAIA_TIFF_BLOB: 1630 1609 printf ("Topmost Pyramid Tile image type: TIFF [RGB]\n"); 1631 1610 break; 1632 1611 default:
Deleted svn-commit.2.tmp.
1 -Creating 'librasterlite' SVN 2 ---Questa linea, e quelle sotto di essa, saranno ignorate-- 3 - 4 -A .
Deleted svn-commit.3.tmp.
1 -Initial load for 'librasterlite' 2 ---Questa linea, e quelle sotto di essa, saranno ignorate-- 3 - 4 -A .
Deleted svn-commit.tmp.
1 -Creating the 'librasterlite' SVN 2 ---Questa linea, e quelle sotto di essa, saranno ignorate-- 3 - 4 -A https://www.gaia-gis.it/svn/librasterlite