From b13649a65b7dfa46ba1ed7fe9e8afa4aaef70f79 Mon Sep 17 00:00:00 2001 From: Jakob Haufe Date: Sun, 11 Mar 2012 23:50:00 +0100 Subject: [PATCH] Imported Upstream version 2.2.8 --- AUTHORS | 191 + COPYING | 340 + COPYING-DOCS | 355 + COPYING-LIBGLABELS | 482 + COPYING.README_FIRST | 28 + ChangeLog | 3210 +++ ChangeLog.pre-2.2 | 3891 ++++ INSTALL | 236 + Makefile.am | 51 + Makefile.in | 819 + NEWS | 218 + README | 44 + TODO | 46 + aclocal.m4 | 10029 ++++++++ barcode-0.98/COPYING | 339 + barcode-0.98/ChangeLog | 460 + barcode-0.98/INSTALL | 31 + barcode-0.98/Makefile.am | 73 + barcode-0.98/Makefile.in | 596 + barcode-0.98/Makefile.in.dist | 141 + barcode-0.98/README | 93 + barcode-0.98/README.glabels | 7 + barcode-0.98/TODO | 23 + barcode-0.98/barcode.h | 119 + barcode-0.98/barcode.spec | 84 + barcode-0.98/bookland/bookland.py | 884 + barcode-0.98/cmdline.c | 177 + barcode-0.98/cmdline.h | 58 + barcode-0.98/codabar.c | 182 + barcode-0.98/code128.c | 607 + barcode-0.98/code39.c | 173 + barcode-0.98/code93.c | 213 + barcode-0.98/compat/getopt.c | 831 + barcode-0.98/compat/getopt.h | 129 + barcode-0.98/configure | 5197 +++++ barcode-0.98/configure.in.dist | 65 + barcode-0.98/contrib/barcode-SVG.tar.gz | Bin 0 -> 2880 bytes .../contrib/barcode-SVG.tar.gz.README | 24 + .../contrib/barcode-for-delphi.tar.gz | Bin 0 -> 19010 bytes .../contrib/barcode-for-delphi.tar.gz.README | 10 + barcode-0.98/contrib/barcodeps-0.1.tgz | Bin 0 -> 2036 bytes barcode-0.98/contrib/barcodeps-0.1.tgz.README | 25 + barcode-0.98/contrib/grab-0.0.4.tar.gz | Bin 0 -> 28320 bytes barcode-0.98/contrib/grab-0.0.4.tar.gz.README | 13 + barcode-0.98/debian/README.debian | 9 + barcode-0.98/debian/changelog | 27 + barcode-0.98/debian/control | 14 + barcode-0.98/debian/copyright | 8 + barcode-0.98/debian/dirs | 3 + barcode-0.98/debian/info | 15 + barcode-0.98/debian/rules | 50 + barcode-0.98/doc/Makefile.in | 135 + barcode-0.98/doc/README | 5 + barcode-0.98/doc/barcode.info | 747 + barcode-0.98/doc/barcode.pdf | Bin 0 -> 192464 bytes barcode-0.98/doc/barcode.ps | 2378 ++ barcode-0.98/doc/barcodedoc.txt | 734 + barcode-0.98/doc/doc.barcode | 939 + barcode-0.98/doc/infofilter | 16 + barcode-0.98/doc/manpager | 120 + barcode-0.98/doc/mktxt | 38 + barcode-0.98/doc/texi2html | 2021 ++ barcode-0.98/ean.c | 774 + barcode-0.98/i25.c | 164 + barcode-0.98/install-sh | 238 + barcode-0.98/library.c | 244 + barcode-0.98/main.c | 604 + barcode-0.98/missing | 198 + barcode-0.98/mkinstalldirs | 40 + barcode-0.98/msi.c | 155 + barcode-0.98/pcl.c | 200 + barcode-0.98/plessey.c | 164 + barcode-0.98/ps.c | 272 + barcode-0.98/sample.c | 98 + config.guess | 1501 ++ config.h.in | 83 + config.sub | 1705 ++ configure | 19337 ++++++++++++++++ configure.in | 234 + data/Makefile.am | 5 + data/Makefile.in | 604 + data/desktop/Makefile.am | 13 + data/desktop/Makefile.in | 458 + data/desktop/glabels.desktop.in | 11 + data/dtd/Makefile.am | 9 + data/dtd/Makefile.in | 454 + data/dtd/glabels-2.2.dtd | 381 + data/glade/Makefile.am | 18 + data/glade/Makefile.in | 462 + data/glade/merge-properties-dialog.glade | 375 + data/glade/new-label-dialog.glade | 85 + data/glade/object-editor.glade | 3471 +++ data/glade/prefs-dialog.glade | 1309 ++ data/glade/print-custom-widget.glade | 287 + data/glade/property-bar.glade | 375 + data/glade/template-designer.glade | 3445 +++ data/glade/wdgt-media-select.glade | 204 + data/glade/wdgt-rotate-label.glade | 39 + data/man/Makefile.am | 6 + data/man/Makefile.in | 485 + data/man/glabels.1 | 67 + data/mime/Makefile.am | 53 + data/mime/Makefile.in | 524 + data/mime/glabels.applications | 9 + data/mime/glabels.keys | 24 + data/mime/glabels.keys.in | 9 + data/mime/glabels.mime | 2 + data/mime/glabels.xml | 22 + data/mime/glabels.xml.in | 8 + data/pixmaps/Makefile.am | 26 + data/pixmaps/Makefile.in | 518 + data/pixmaps/ex-1layout.png | Bin 0 -> 1567 bytes data/pixmaps/ex-2layouts.png | Bin 0 -> 1610 bytes data/pixmaps/ex-cd-size.png | Bin 0 -> 32300 bytes data/pixmaps/ex-rect-size.png | Bin 0 -> 4972 bytes data/pixmaps/ex-round-size.png | Bin 0 -> 16682 bytes data/pixmaps/glabels-about-logo.png | Bin 0 -> 7734 bytes .../pixmaps/glabels-application-x-glabels.png | Bin 0 -> 2573 bytes data/pixmaps/glabels-splash.png | Bin 0 -> 110600 bytes data/pixmaps/glabels.png | Bin 0 -> 2074 bytes data/templates/Makefile.am | 20 + data/templates/Makefile.in | 465 + data/templates/avery-iso-templates.xml | 316 + data/templates/avery-other-templates.xml | 22 + data/templates/avery-us-templates.xml | 807 + data/templates/brother-other-templates.xml | 49 + data/templates/categories.xml | 13 + data/templates/dymo-other-templates.xml | 87 + data/templates/misc-iso-templates.xml | 715 + data/templates/misc-other-templates.xml | 19 + data/templates/misc-us-templates.xml | 248 + data/templates/paper-sizes.xml | 37 + data/templates/pearl-templates.xml | 498 + data/templates/zweckform-iso-templates.xml | 246 + depcomp | 630 + docs/Makefile.am | 3 + docs/Makefile.in | 604 + docs/libglabels/Makefile.am | 69 + docs/libglabels/Makefile.in | 655 + docs/libglabels/html/ch01.html | 47 + docs/libglabels/html/ch02.html | 47 + docs/libglabels/html/ch03.html | 41 + docs/libglabels/html/home.png | Bin 0 -> 654 bytes docs/libglabels/html/index.html | 67 + docs/libglabels/html/index.sgml | 162 + docs/libglabels/html/left.png | Bin 0 -> 459 bytes docs/libglabels/html/libglabels-category.html | 181 + docs/libglabels/html/libglabels-db.html | 1073 + docs/libglabels/html/libglabels-enums.html | 122 + docs/libglabels/html/libglabels-paper.html | 238 + docs/libglabels/html/libglabels-str.html | 112 + docs/libglabels/html/libglabels-template.html | 2229 ++ .../html/libglabels-xml-category.html | 160 + .../libglabels/html/libglabels-xml-paper.html | 153 + .../html/libglabels-xml-template.html | 286 + docs/libglabels/html/libglabels-xml.html | 801 + docs/libglabels/html/libglabels.devhelp | 146 + docs/libglabels/html/libglabels.devhelp2 | 164 + docs/libglabels/html/right.png | Bin 0 -> 472 bytes docs/libglabels/html/style.css | 167 + docs/libglabels/html/up.png | Bin 0 -> 406 bytes docs/libglabels/libglabels-docs.sgml | 33 + docs/libglabels/libglabels-overrides.txt | 0 docs/libglabels/libglabels-sections.txt | 194 + docs/libglabels/libglabels.types | 0 docs/libglabels/tmpl/category.sgml | 55 + docs/libglabels/tmpl/db.sgml | 314 + docs/libglabels/tmpl/enums.sgml | 33 + docs/libglabels/tmpl/libglabels-unused.sgml | 1519 ++ docs/libglabels/tmpl/libglabels.sgml | 19 + docs/libglabels/tmpl/paper.sgml | 61 + docs/libglabels/tmpl/str.sgml | 30 + docs/libglabels/tmpl/template.sgml | 532 + docs/libglabels/tmpl/xml-category.sgml | 47 + docs/libglabels/tmpl/xml-paper.sgml | 47 + docs/libglabels/tmpl/xml-template.sgml | 78 + docs/libglabels/tmpl/xml.sgml | 194 + docs/libglabels/xml/api-index-deprecated.xml | 6 + docs/libglabels/xml/api-index-full.xml | 130 + docs/libglabels/xml/category.xml | 121 + docs/libglabels/xml/db.xml | 587 + docs/libglabels/xml/enums.xml | 104 + docs/libglabels/xml/paper.xml | 154 + docs/libglabels/xml/str.xml | 76 + docs/libglabels/xml/template.xml | 1391 ++ docs/libglabels/xml/xml-category.xml | 103 + docs/libglabels/xml/xml-paper.xml | 96 + docs/libglabels/xml/xml-template.xml | 171 + docs/libglabels/xml/xml.xml | 430 + glabels.spec | 106 + glabels.spec.in | 106 + gnome-doc-utils.make | 639 + gtk-doc.make | 196 + help/C/figures/glabels-template-cd.png | Bin 0 -> 9930 bytes help/C/figures/glabels-template-label.png | Bin 0 -> 3115 bytes help/C/figures/glabels-template-layout.png | Bin 0 -> 6012 bytes help/C/figures/main-window-empty.png | Bin 0 -> 34238 bytes help/C/figures/merge-ex1-1.png | Bin 0 -> 40556 bytes help/C/figures/merge-ex1-2.png | Bin 0 -> 71610 bytes help/C/figures/merge-ex1-3.png | Bin 0 -> 35924 bytes help/C/figures/merge-ex1-4.png | Bin 0 -> 75437 bytes help/C/figures/merge-ex2-1.png | Bin 0 -> 41226 bytes help/C/figures/merge-ex2-2.png | Bin 0 -> 65252 bytes help/C/figures/merge-ex2-3.png | Bin 0 -> 35176 bytes help/C/figures/merge-ex2-4.png | Bin 0 -> 59967 bytes help/C/figures/merge-ex3-1.png | Bin 0 -> 50907 bytes help/C/figures/merge-ex3-2.png | Bin 0 -> 65591 bytes help/C/figures/object-editor-sidebar.png | Bin 0 -> 11840 bytes help/C/figures/print-copies.png | Bin 0 -> 10945 bytes help/C/figures/print-merge.png | Bin 0 -> 11307 bytes help/C/glabels.xml | 2251 ++ help/C/legal.xml | 76 + help/Makefile.am | 26 + help/Makefile.in | 969 + help/cs/cs.po | 2787 +++ help/cs/figures/main-window-empty.png | Bin 0 -> 38354 bytes help/cs/figures/merge-ex1-1.png | Bin 0 -> 44629 bytes help/cs/figures/merge-ex1-2.png | Bin 0 -> 69806 bytes help/cs/figures/merge-ex1-3.png | Bin 0 -> 42127 bytes help/cs/figures/merge-ex1-4.png | Bin 0 -> 51049 bytes help/cs/figures/merge-ex2-1.png | Bin 0 -> 48106 bytes help/cs/figures/merge-ex2-2.png | Bin 0 -> 61127 bytes help/cs/figures/merge-ex2-3.png | Bin 0 -> 38027 bytes help/cs/figures/merge-ex2-4.png | Bin 0 -> 32150 bytes help/cs/figures/object-editor-sidebar.png | Bin 0 -> 33774 bytes help/cs/figures/print-copies.png | Bin 0 -> 4100 bytes help/cs/figures/print-merge.png | Bin 0 -> 4338 bytes help/cs/glabels.xml | 1776 ++ help/de/de.po | 2832 +++ help/de/figures/main-window-empty.png | Bin 0 -> 33093 bytes help/de/figures/merge-ex1-1.png | Bin 0 -> 39810 bytes help/de/figures/merge-ex1-2.png | Bin 0 -> 69379 bytes help/de/figures/merge-ex1-3.png | Bin 0 -> 35172 bytes help/de/figures/merge-ex1-4.png | Bin 0 -> 43315 bytes help/de/figures/merge-ex2-1.png | Bin 0 -> 42168 bytes help/de/figures/merge-ex2-2.png | Bin 0 -> 62037 bytes help/de/figures/merge-ex2-3.png | Bin 0 -> 34780 bytes help/de/figures/merge-ex2-4.png | Bin 0 -> 49083 bytes help/de/figures/merge-ex3-1.png | Bin 0 -> 53771 bytes help/de/figures/merge-ex3-2.png | Bin 0 -> 67256 bytes help/de/figures/object-editor-sidebar.png | Bin 0 -> 11132 bytes help/de/figures/print-copies.png | Bin 0 -> 9196 bytes help/de/figures/print-merge.png | Bin 0 -> 9722 bytes help/de/glabels.xml | 1776 ++ help/es/es.po | 2268 ++ help/es/glabels.xml | 2227 ++ help/fr/figures/main-window-empty.png | Bin 0 -> 32829 bytes help/fr/figures/merge-ex1-1.png | Bin 0 -> 33042 bytes help/fr/figures/merge-ex1-2.png | Bin 0 -> 59141 bytes help/fr/figures/merge-ex1-3.png | Bin 0 -> 28381 bytes help/fr/figures/merge-ex1-4.png | Bin 0 -> 40671 bytes help/fr/figures/merge-ex2-1.png | Bin 0 -> 34309 bytes help/fr/figures/merge-ex2-2.png | Bin 0 -> 56997 bytes help/fr/figures/merge-ex2-3.png | Bin 0 -> 27699 bytes help/fr/figures/merge-ex2-4.png | Bin 0 -> 37839 bytes help/fr/figures/object-editor-sidebar.png | Bin 0 -> 10745 bytes help/fr/figures/print-copies.png | Bin 0 -> 7863 bytes help/fr/figures/print-merge.png | Bin 0 -> 10299 bytes help/fr/fr.po | 2831 +++ help/fr/glabels.xml | 1776 ++ help/glabels.omf.in | 12 + iec16022-0.2.1/BUGS | 6 + iec16022-0.2.1/CHANGELOG | 26 + iec16022-0.2.1/CREDITS | 10 + iec16022-0.2.1/INSTALL | 8 + iec16022-0.2.1/LICENSE | 340 + iec16022-0.2.1/Makefile.am | 35 + iec16022-0.2.1/Makefile.dist | 40 + iec16022-0.2.1/Makefile.in | 551 + iec16022-0.2.1/README | 13 + iec16022-0.2.1/README.glabels | 6 + iec16022-0.2.1/TODO | 9 + iec16022-0.2.1/iec16022.1 | 52 + iec16022-0.2.1/iec16022.c | 462 + iec16022-0.2.1/iec16022ecc200.c | 963 + iec16022-0.2.1/iec16022ecc200.h | 47 + iec16022-0.2.1/image.c | 668 + iec16022-0.2.1/image.h | 49 + iec16022-0.2.1/reedsol.c | 172 + iec16022-0.2.1/reedsol.h | 29 + iec16022-0.2.1/test/testsuite-example.bin | 1 + iec16022-0.2.1/test/testsuite-example.eps | 15 + iec16022-0.2.1/test/testsuite-example.hex | 2 + iec16022-0.2.1/test/testsuite-example.png | Bin 0 -> 412 bytes iec16022-0.2.1/test/testsuite-example.text | 32 + iec16022-0.2.1/test/testsuite.sh | 19 + install-sh | 520 + intltool-extract.in | 0 intltool-merge.in | 0 intltool-update.in | 0 libglabels/Makefile.am | 58 + libglabels/Makefile.in | 681 + libglabels/category.c | 129 + libglabels/category.h | 59 + libglabels/db.c | 1615 ++ libglabels/db.h | 148 + libglabels/enums.h | 49 + libglabels/libglabels-private.h | 46 + libglabels/libglabels.h | 40 + libglabels/libglabels.pc.in | 12 + libglabels/paper.c | 144 + libglabels/paper.h | 65 + libglabels/str.c | 84 + libglabels/str.h | 41 + libglabels/template.c | 1121 + libglabels/template.h | 380 + libglabels/xml-category.c | 169 + libglabels/xml-category.h | 46 + libglabels/xml-paper.c | 176 + libglabels/xml-paper.h | 46 + libglabels/xml-template.c | 984 + libglabels/xml-template.h | 55 + libglabels/xml.c | 539 + libglabels/xml.h | 113 + ltmain.sh | 8406 +++++++ missing | 376 + mkinstalldirs | 162 + po/LINGUAS | 23 + po/Makefile.in.in | 217 + po/POTFILES.in | 186 + po/ca.po | 2714 +++ po/cs.po | 2746 +++ po/da.po | 2766 +++ po/de.po | 2762 +++ po/eo.po | 2438 ++ po/es.po | 3045 +++ po/fr.po | 3531 +++ po/it.po | 2427 ++ po/ja.po | 2729 +++ po/ko.po | 2543 ++ po/nb.po | 2833 +++ po/pl.po | 3004 +++ po/pt.po | 2741 +++ po/pt_BR.po | 2624 +++ po/ru.po | 3017 +++ po/sl.po | 2884 +++ po/sv.po | 2786 +++ po/zh_CN.po | 2670 +++ po/zh_TW.po | 2650 +++ src/Makefile.am | 290 + src/Makefile.in | 1143 + src/base64.c | 204 + src/base64.h | 45 + src/bc-gnubarcode.c | 459 + src/bc-gnubarcode.h | 40 + src/bc-iec16022.c | 151 + src/bc-iec16022.h | 40 + src/bc-postnet.c | 222 + src/bc-postnet.h | 40 + src/bc.c | 386 + src/bc.h | 90 + src/cairo-ellipse-path.c | 79 + src/cairo-ellipse-path.h | 40 + src/cairo-label-path.c | 264 + src/cairo-label-path.h | 40 + src/cairo-markup-path.c | 315 + src/cairo-markup-path.h | 40 + src/color.c | 249 + src/color.h | 119 + src/critical-error-handler.c | 83 + src/critical-error-handler.h | 36 + src/debug.c | 129 + src/debug.h | 110 + src/file.c | 844 + src/file.h | 65 + src/glabels-batch.c | 173 + src/glabels.c | 218 + src/hig.h | 35 + src/label-barcode.c | 483 + src/label-barcode.h | 78 + src/label-box.c | 402 + src/label-box.h | 61 + src/label-ellipse.c | 407 + src/label-ellipse.h | 61 + src/label-image.c | 359 + src/label-image.h | 71 + src/label-line.c | 323 + src/label-line.h | 62 + src/label-object.c | 1525 ++ src/label-object.h | 345 + src/label-text.c | 1094 + src/label-text.h | 74 + src/label.c | 674 + src/label.h | 154 + src/marshal.c | 169 + src/marshal.h | 48 + src/marshal.list | 7 + src/merge-evolution.c | 546 + src/merge-evolution.h | 70 + src/merge-init.c | 94 + src/merge-init.h | 35 + src/merge-properties-dialog.c | 659 + src/merge-properties-dialog.h | 66 + src/merge-text.c | 694 + src/merge-text.h | 68 + src/merge-vcard.c | 383 + src/merge-vcard.h | 70 + src/merge.c | 791 + src/merge.h | 130 + src/mini-preview-pixbuf-cache.c | 149 + src/mini-preview-pixbuf-cache.h | 42 + src/mini-preview-pixbuf.c | 225 + src/mini-preview-pixbuf.h | 40 + src/mygal/Makefile.am | 44 + src/mygal/Makefile.in | 571 + src/mygal/color-group.c | 333 + src/mygal/color-group.h | 77 + src/mygal/color-palette.c | 661 + src/mygal/color-palette.h | 113 + src/mygal/e-colors.c | 106 + src/mygal/e-colors.h | 47 + src/mygal/e-marshal.list | 51 + src/mygal/e-util.h | 234 + src/mygal/mygal-combo-box.c | 837 + src/mygal/mygal-combo-box.h | 94 + src/mygal/widget-color-combo.c | 338 + src/mygal/widget-color-combo.h | 86 + src/new-label-dialog.c | 289 + src/new-label-dialog.h | 84 + src/object-editor-bc-page.c | 426 + src/object-editor-data-page.c | 232 + src/object-editor-edit-page.c | 133 + src/object-editor-fill-page.c | 224 + src/object-editor-image-page.c | 350 + src/object-editor-line-page.c | 271 + src/object-editor-lsize-page.c | 259 + src/object-editor-position-page.c | 253 + src/object-editor-private.h | 204 + src/object-editor-shadow-page.c | 494 + src/object-editor-size-page.c | 453 + src/object-editor-text-page.c | 636 + src/object-editor.c | 693 + src/object-editor.h | 302 + src/pixbuf-cache.c | 254 + src/pixbuf-cache.h | 53 + src/pixmaps/Makefile.am | 18 + src/pixmaps/Makefile.in | 418 + src/pixmaps/checkerboard.xpm | 29 + src/pixmaps/collate.xpm | 34 + src/pixmaps/cursor_barcode.xbm | 16 + src/pixmaps/cursor_barcode_mask.xbm | 16 + src/pixmaps/cursor_box.xbm | 16 + src/pixmaps/cursor_box_mask.xbm | 16 + src/pixmaps/cursor_ellipse.xbm | 16 + src/pixmaps/cursor_ellipse_mask.xbm | 16 + src/pixmaps/cursor_image.xbm | 16 + src/pixmaps/cursor_image_mask.xbm | 16 + src/pixmaps/cursor_line.xbm | 16 + src/pixmaps/cursor_line_mask.xbm | 16 + src/pixmaps/cursor_text.xbm | 16 + src/pixmaps/cursor_text_mask.xbm | 16 + src/pixmaps/nocollate.xpm | 34 + src/prefs-dialog.c | 692 + src/prefs-dialog.h | 65 + src/prefs-model.c | 754 + src/prefs-model.h | 124 + src/prefs.c | 214 + src/prefs.h | 56 + src/print-op.c | 690 + src/print-op.h | 88 + src/print.c | 575 + src/print.h | 70 + src/recent.c | 155 + src/recent.h | 45 + src/stock-pixmaps/Makefile.am | 95 + src/stock-pixmaps/Makefile.in | 496 + src/stock-pixmaps/stock_align_bottom_16.png | Bin 0 -> 204 bytes src/stock-pixmaps/stock_align_hcenter_16.png | Bin 0 -> 212 bytes src/stock-pixmaps/stock_align_left_16.png | Bin 0 -> 207 bytes src/stock-pixmaps/stock_align_right_16.png | Bin 0 -> 219 bytes src/stock-pixmaps/stock_align_top_16.png | Bin 0 -> 209 bytes src/stock-pixmaps/stock_align_vcenter_16.png | Bin 0 -> 230 bytes src/stock-pixmaps/stock_arrow_16.png | Bin 0 -> 234 bytes src/stock-pixmaps/stock_arrow_24.png | Bin 0 -> 367 bytes src/stock-pixmaps/stock_barcode_16.png | Bin 0 -> 293 bytes src/stock-pixmaps/stock_barcode_24.png | Bin 0 -> 241 bytes src/stock-pixmaps/stock_box_16.png | Bin 0 -> 199 bytes src/stock-pixmaps/stock_box_24.png | Bin 0 -> 320 bytes src/stock-pixmaps/stock_bucket_fill_16.png | Bin 0 -> 521 bytes src/stock-pixmaps/stock_bucket_fill_24.png | Bin 0 -> 589 bytes src/stock-pixmaps/stock_center_horiz_16.png | Bin 0 -> 202 bytes src/stock-pixmaps/stock_center_vert_16.png | Bin 0 -> 206 bytes src/stock-pixmaps/stock_ellipse_16.png | Bin 0 -> 376 bytes src/stock-pixmaps/stock_ellipse_24.png | Bin 0 -> 744 bytes src/stock-pixmaps/stock_flip_horiz_16.png | Bin 0 -> 183 bytes src/stock-pixmaps/stock_flip_vert_16.png | Bin 0 -> 194 bytes src/stock-pixmaps/stock_hchain_24.png | Bin 0 -> 302 bytes src/stock-pixmaps/stock_hchain_broken_24.png | Bin 0 -> 325 bytes src/stock-pixmaps/stock_image_16.png | Bin 0 -> 485 bytes src/stock-pixmaps/stock_image_24.png | Bin 0 -> 704 bytes src/stock-pixmaps/stock_line_16.png | Bin 0 -> 252 bytes src/stock-pixmaps/stock_line_24.png | Bin 0 -> 325 bytes src/stock-pixmaps/stock_merge_16.png | Bin 0 -> 459 bytes src/stock-pixmaps/stock_merge_24.png | Bin 0 -> 758 bytes src/stock-pixmaps/stock_order_bottom_16.png | Bin 0 -> 200 bytes src/stock-pixmaps/stock_order_top_16.png | Bin 0 -> 194 bytes src/stock-pixmaps/stock_pencil_16.png | Bin 0 -> 489 bytes src/stock-pixmaps/stock_pencil_24.png | Bin 0 -> 618 bytes src/stock-pixmaps/stock_properties_16.png | Bin 0 -> 395 bytes src/stock-pixmaps/stock_properties_24.png | Bin 0 -> 484 bytes src/stock-pixmaps/stock_rotate_left_16.png | Bin 0 -> 243 bytes src/stock-pixmaps/stock_rotate_right_16.png | Bin 0 -> 241 bytes src/stock-pixmaps/stock_text_16.png | Bin 0 -> 160 bytes src/stock-pixmaps/stock_text_24.png | Bin 0 -> 285 bytes src/stock-pixmaps/stock_vchain_24.png | Bin 0 -> 326 bytes src/stock-pixmaps/stock_vchain_broken_24.png | Bin 0 -> 333 bytes src/stock-pixmaps/stockpixbufs.h | 2942 +++ src/stock.c | 221 + src/stock.h | 68 + src/template-designer.c | 1758 ++ src/template-designer.h | 73 + src/text-node.c | 356 + src/text-node.h | 58 + src/ui-commands.c | 1168 + src/ui-commands.h | 203 + src/ui-property-bar.c | 1331 ++ src/ui-property-bar.h | 74 + src/ui-sidebar.c | 217 + src/ui-sidebar.h | 69 + src/ui-util.c | 126 + src/ui-util.h | 45 + src/ui.c | 1179 + src/ui.h | 57 + src/util.c | 345 + src/util.h | 57 + src/view-barcode.c | 425 + src/view-barcode.h | 81 + src/view-box.c | 487 + src/view-box.h | 81 + src/view-ellipse.c | 487 + src/view-ellipse.h | 81 + src/view-image.c | 421 + src/view-image.h | 81 + src/view-line.c | 456 + src/view-line.h | 81 + src/view-object.c | 765 + src/view-object.h | 137 + src/view-text.c | 531 + src/view-text.h | 81 + src/view.c | 3642 +++ src/view.h | 357 + src/warning-handler.c | 81 + src/warning-handler.h | 36 + src/wdgt-chain-button.c | 324 + src/wdgt-chain-button.h | 98 + src/wdgt-media-select.c | 878 + src/wdgt-media-select.h | 78 + src/wdgt-mini-preview.c | 724 + src/wdgt-mini-preview.h | 83 + src/wdgt-print-copies.c | 363 + src/wdgt-print-copies.h | 81 + src/wdgt-print-merge.c | 313 + src/wdgt-print-merge.h | 82 + src/wdgt-rotate-label.c | 395 + src/wdgt-rotate-label.h | 74 + src/window.c | 616 + src/window.h | 101 + src/xml-label-04.c | 504 + src/xml-label-04.h | 40 + src/xml-label.c | 1805 ++ src/xml-label.h | 55 + 561 files changed, 247281 insertions(+) create mode 100644 AUTHORS create mode 100644 COPYING create mode 100644 COPYING-DOCS create mode 100644 COPYING-LIBGLABELS create mode 100644 COPYING.README_FIRST create mode 100644 ChangeLog create mode 100644 ChangeLog.pre-2.2 create mode 100644 INSTALL create mode 100644 Makefile.am create mode 100644 Makefile.in create mode 100644 NEWS create mode 100644 README create mode 100644 TODO create mode 100644 aclocal.m4 create mode 100644 barcode-0.98/COPYING create mode 100644 barcode-0.98/ChangeLog create mode 100644 barcode-0.98/INSTALL create mode 100644 barcode-0.98/Makefile.am create mode 100644 barcode-0.98/Makefile.in create mode 100644 barcode-0.98/Makefile.in.dist create mode 100644 barcode-0.98/README create mode 100644 barcode-0.98/README.glabels create mode 100644 barcode-0.98/TODO create mode 100644 barcode-0.98/barcode.h create mode 100644 barcode-0.98/barcode.spec create mode 100644 barcode-0.98/bookland/bookland.py create mode 100644 barcode-0.98/cmdline.c create mode 100644 barcode-0.98/cmdline.h create mode 100644 barcode-0.98/codabar.c create mode 100644 barcode-0.98/code128.c create mode 100644 barcode-0.98/code39.c create mode 100644 barcode-0.98/code93.c create mode 100644 barcode-0.98/compat/getopt.c create mode 100644 barcode-0.98/compat/getopt.h create mode 100755 barcode-0.98/configure create mode 100644 barcode-0.98/configure.in.dist create mode 100644 barcode-0.98/contrib/barcode-SVG.tar.gz create mode 100644 barcode-0.98/contrib/barcode-SVG.tar.gz.README create mode 100644 barcode-0.98/contrib/barcode-for-delphi.tar.gz create mode 100644 barcode-0.98/contrib/barcode-for-delphi.tar.gz.README create mode 100644 barcode-0.98/contrib/barcodeps-0.1.tgz create mode 100644 barcode-0.98/contrib/barcodeps-0.1.tgz.README create mode 100644 barcode-0.98/contrib/grab-0.0.4.tar.gz create mode 100644 barcode-0.98/contrib/grab-0.0.4.tar.gz.README create mode 100644 barcode-0.98/debian/README.debian create mode 100644 barcode-0.98/debian/changelog create mode 100644 barcode-0.98/debian/control create mode 100644 barcode-0.98/debian/copyright create mode 100644 barcode-0.98/debian/dirs create mode 100644 barcode-0.98/debian/info create mode 100755 barcode-0.98/debian/rules create mode 100644 barcode-0.98/doc/Makefile.in create mode 100644 barcode-0.98/doc/README create mode 100644 barcode-0.98/doc/barcode.info create mode 100644 barcode-0.98/doc/barcode.pdf create mode 100644 barcode-0.98/doc/barcode.ps create mode 100644 barcode-0.98/doc/barcodedoc.txt create mode 100644 barcode-0.98/doc/doc.barcode create mode 100755 barcode-0.98/doc/infofilter create mode 100755 barcode-0.98/doc/manpager create mode 100755 barcode-0.98/doc/mktxt create mode 100755 barcode-0.98/doc/texi2html create mode 100644 barcode-0.98/ean.c create mode 100644 barcode-0.98/i25.c create mode 100644 barcode-0.98/install-sh create mode 100644 barcode-0.98/library.c create mode 100644 barcode-0.98/main.c create mode 100755 barcode-0.98/missing create mode 100755 barcode-0.98/mkinstalldirs create mode 100644 barcode-0.98/msi.c create mode 100644 barcode-0.98/pcl.c create mode 100644 barcode-0.98/plessey.c create mode 100644 barcode-0.98/ps.c create mode 100644 barcode-0.98/sample.c create mode 100755 config.guess create mode 100644 config.h.in create mode 100755 config.sub create mode 100755 configure create mode 100644 configure.in create mode 100644 data/Makefile.am create mode 100644 data/Makefile.in create mode 100644 data/desktop/Makefile.am create mode 100644 data/desktop/Makefile.in create mode 100644 data/desktop/glabels.desktop.in create mode 100644 data/dtd/Makefile.am create mode 100644 data/dtd/Makefile.in create mode 100644 data/dtd/glabels-2.2.dtd create mode 100644 data/glade/Makefile.am create mode 100644 data/glade/Makefile.in create mode 100644 data/glade/merge-properties-dialog.glade create mode 100644 data/glade/new-label-dialog.glade create mode 100644 data/glade/object-editor.glade create mode 100644 data/glade/prefs-dialog.glade create mode 100644 data/glade/print-custom-widget.glade create mode 100644 data/glade/property-bar.glade create mode 100644 data/glade/template-designer.glade create mode 100644 data/glade/wdgt-media-select.glade create mode 100644 data/glade/wdgt-rotate-label.glade create mode 100644 data/man/Makefile.am create mode 100644 data/man/Makefile.in create mode 100644 data/man/glabels.1 create mode 100644 data/mime/Makefile.am create mode 100644 data/mime/Makefile.in create mode 100644 data/mime/glabels.applications create mode 100644 data/mime/glabels.keys create mode 100644 data/mime/glabels.keys.in create mode 100644 data/mime/glabels.mime create mode 100644 data/mime/glabels.xml create mode 100644 data/mime/glabels.xml.in create mode 100644 data/pixmaps/Makefile.am create mode 100644 data/pixmaps/Makefile.in create mode 100644 data/pixmaps/ex-1layout.png create mode 100644 data/pixmaps/ex-2layouts.png create mode 100644 data/pixmaps/ex-cd-size.png create mode 100644 data/pixmaps/ex-rect-size.png create mode 100644 data/pixmaps/ex-round-size.png create mode 100644 data/pixmaps/glabels-about-logo.png create mode 100644 data/pixmaps/glabels-application-x-glabels.png create mode 100644 data/pixmaps/glabels-splash.png create mode 100644 data/pixmaps/glabels.png create mode 100644 data/templates/Makefile.am create mode 100644 data/templates/Makefile.in create mode 100644 data/templates/avery-iso-templates.xml create mode 100644 data/templates/avery-other-templates.xml create mode 100644 data/templates/avery-us-templates.xml create mode 100644 data/templates/brother-other-templates.xml create mode 100644 data/templates/categories.xml create mode 100644 data/templates/dymo-other-templates.xml create mode 100644 data/templates/misc-iso-templates.xml create mode 100644 data/templates/misc-other-templates.xml create mode 100644 data/templates/misc-us-templates.xml create mode 100644 data/templates/paper-sizes.xml create mode 100644 data/templates/pearl-templates.xml create mode 100644 data/templates/zweckform-iso-templates.xml create mode 100755 depcomp create mode 100644 docs/Makefile.am create mode 100644 docs/Makefile.in create mode 100644 docs/libglabels/Makefile.am create mode 100644 docs/libglabels/Makefile.in create mode 100644 docs/libglabels/html/ch01.html create mode 100644 docs/libglabels/html/ch02.html create mode 100644 docs/libglabels/html/ch03.html create mode 100644 docs/libglabels/html/home.png create mode 100644 docs/libglabels/html/index.html create mode 100644 docs/libglabels/html/index.sgml create mode 100644 docs/libglabels/html/left.png create mode 100644 docs/libglabels/html/libglabels-category.html create mode 100644 docs/libglabels/html/libglabels-db.html create mode 100644 docs/libglabels/html/libglabels-enums.html create mode 100644 docs/libglabels/html/libglabels-paper.html create mode 100644 docs/libglabels/html/libglabels-str.html create mode 100644 docs/libglabels/html/libglabels-template.html create mode 100644 docs/libglabels/html/libglabels-xml-category.html create mode 100644 docs/libglabels/html/libglabels-xml-paper.html create mode 100644 docs/libglabels/html/libglabels-xml-template.html create mode 100644 docs/libglabels/html/libglabels-xml.html create mode 100644 docs/libglabels/html/libglabels.devhelp create mode 100644 docs/libglabels/html/libglabels.devhelp2 create mode 100644 docs/libglabels/html/right.png create mode 100644 docs/libglabels/html/style.css create mode 100644 docs/libglabels/html/up.png create mode 100644 docs/libglabels/libglabels-docs.sgml create mode 100644 docs/libglabels/libglabels-overrides.txt create mode 100644 docs/libglabels/libglabels-sections.txt create mode 100644 docs/libglabels/libglabels.types create mode 100644 docs/libglabels/tmpl/category.sgml create mode 100644 docs/libglabels/tmpl/db.sgml create mode 100644 docs/libglabels/tmpl/enums.sgml create mode 100644 docs/libglabels/tmpl/libglabels-unused.sgml create mode 100644 docs/libglabels/tmpl/libglabels.sgml create mode 100644 docs/libglabels/tmpl/paper.sgml create mode 100644 docs/libglabels/tmpl/str.sgml create mode 100644 docs/libglabels/tmpl/template.sgml create mode 100644 docs/libglabels/tmpl/xml-category.sgml create mode 100644 docs/libglabels/tmpl/xml-paper.sgml create mode 100644 docs/libglabels/tmpl/xml-template.sgml create mode 100644 docs/libglabels/tmpl/xml.sgml create mode 100644 docs/libglabels/xml/api-index-deprecated.xml create mode 100644 docs/libglabels/xml/api-index-full.xml create mode 100644 docs/libglabels/xml/category.xml create mode 100644 docs/libglabels/xml/db.xml create mode 100644 docs/libglabels/xml/enums.xml create mode 100644 docs/libglabels/xml/paper.xml create mode 100644 docs/libglabels/xml/str.xml create mode 100644 docs/libglabels/xml/template.xml create mode 100644 docs/libglabels/xml/xml-category.xml create mode 100644 docs/libglabels/xml/xml-paper.xml create mode 100644 docs/libglabels/xml/xml-template.xml create mode 100644 docs/libglabels/xml/xml.xml create mode 100644 glabels.spec create mode 100644 glabels.spec.in create mode 100644 gnome-doc-utils.make create mode 100644 gtk-doc.make create mode 100644 help/C/figures/glabels-template-cd.png create mode 100644 help/C/figures/glabels-template-label.png create mode 100644 help/C/figures/glabels-template-layout.png create mode 100644 help/C/figures/main-window-empty.png create mode 100644 help/C/figures/merge-ex1-1.png create mode 100644 help/C/figures/merge-ex1-2.png create mode 100644 help/C/figures/merge-ex1-3.png create mode 100644 help/C/figures/merge-ex1-4.png create mode 100644 help/C/figures/merge-ex2-1.png create mode 100644 help/C/figures/merge-ex2-2.png create mode 100644 help/C/figures/merge-ex2-3.png create mode 100644 help/C/figures/merge-ex2-4.png create mode 100644 help/C/figures/merge-ex3-1.png create mode 100644 help/C/figures/merge-ex3-2.png create mode 100644 help/C/figures/object-editor-sidebar.png create mode 100644 help/C/figures/print-copies.png create mode 100644 help/C/figures/print-merge.png create mode 100644 help/C/glabels.xml create mode 100644 help/C/legal.xml create mode 100644 help/Makefile.am create mode 100644 help/Makefile.in create mode 100644 help/cs/cs.po create mode 100644 help/cs/figures/main-window-empty.png create mode 100644 help/cs/figures/merge-ex1-1.png create mode 100644 help/cs/figures/merge-ex1-2.png create mode 100644 help/cs/figures/merge-ex1-3.png create mode 100644 help/cs/figures/merge-ex1-4.png create mode 100644 help/cs/figures/merge-ex2-1.png create mode 100644 help/cs/figures/merge-ex2-2.png create mode 100644 help/cs/figures/merge-ex2-3.png create mode 100644 help/cs/figures/merge-ex2-4.png create mode 100644 help/cs/figures/object-editor-sidebar.png create mode 100644 help/cs/figures/print-copies.png create mode 100644 help/cs/figures/print-merge.png create mode 100644 help/cs/glabels.xml create mode 100644 help/de/de.po create mode 100644 help/de/figures/main-window-empty.png create mode 100644 help/de/figures/merge-ex1-1.png create mode 100644 help/de/figures/merge-ex1-2.png create mode 100644 help/de/figures/merge-ex1-3.png create mode 100644 help/de/figures/merge-ex1-4.png create mode 100644 help/de/figures/merge-ex2-1.png create mode 100644 help/de/figures/merge-ex2-2.png create mode 100644 help/de/figures/merge-ex2-3.png create mode 100644 help/de/figures/merge-ex2-4.png create mode 100644 help/de/figures/merge-ex3-1.png create mode 100644 help/de/figures/merge-ex3-2.png create mode 100644 help/de/figures/object-editor-sidebar.png create mode 100644 help/de/figures/print-copies.png create mode 100644 help/de/figures/print-merge.png create mode 100644 help/de/glabels.xml create mode 100644 help/es/es.po create mode 100644 help/es/glabels.xml create mode 100644 help/fr/figures/main-window-empty.png create mode 100644 help/fr/figures/merge-ex1-1.png create mode 100644 help/fr/figures/merge-ex1-2.png create mode 100644 help/fr/figures/merge-ex1-3.png create mode 100644 help/fr/figures/merge-ex1-4.png create mode 100644 help/fr/figures/merge-ex2-1.png create mode 100644 help/fr/figures/merge-ex2-2.png create mode 100644 help/fr/figures/merge-ex2-3.png create mode 100644 help/fr/figures/merge-ex2-4.png create mode 100644 help/fr/figures/object-editor-sidebar.png create mode 100644 help/fr/figures/print-copies.png create mode 100644 help/fr/figures/print-merge.png create mode 100644 help/fr/fr.po create mode 100644 help/fr/glabels.xml create mode 100644 help/glabels.omf.in create mode 100644 iec16022-0.2.1/BUGS create mode 100644 iec16022-0.2.1/CHANGELOG create mode 100644 iec16022-0.2.1/CREDITS create mode 100644 iec16022-0.2.1/INSTALL create mode 100644 iec16022-0.2.1/LICENSE create mode 100644 iec16022-0.2.1/Makefile.am create mode 100644 iec16022-0.2.1/Makefile.dist create mode 100644 iec16022-0.2.1/Makefile.in create mode 100644 iec16022-0.2.1/README create mode 100644 iec16022-0.2.1/README.glabels create mode 100644 iec16022-0.2.1/TODO create mode 100644 iec16022-0.2.1/iec16022.1 create mode 100644 iec16022-0.2.1/iec16022.c create mode 100644 iec16022-0.2.1/iec16022ecc200.c create mode 100644 iec16022-0.2.1/iec16022ecc200.h create mode 100644 iec16022-0.2.1/image.c create mode 100644 iec16022-0.2.1/image.h create mode 100644 iec16022-0.2.1/reedsol.c create mode 100644 iec16022-0.2.1/reedsol.h create mode 100644 iec16022-0.2.1/test/testsuite-example.bin create mode 100644 iec16022-0.2.1/test/testsuite-example.eps create mode 100644 iec16022-0.2.1/test/testsuite-example.hex create mode 100644 iec16022-0.2.1/test/testsuite-example.png create mode 100644 iec16022-0.2.1/test/testsuite-example.text create mode 100755 iec16022-0.2.1/test/testsuite.sh create mode 100755 install-sh create mode 100644 intltool-extract.in create mode 100644 intltool-merge.in create mode 100644 intltool-update.in create mode 100644 libglabels/Makefile.am create mode 100644 libglabels/Makefile.in create mode 100644 libglabels/category.c create mode 100644 libglabels/category.h create mode 100644 libglabels/db.c create mode 100644 libglabels/db.h create mode 100644 libglabels/enums.h create mode 100644 libglabels/libglabels-private.h create mode 100644 libglabels/libglabels.h create mode 100644 libglabels/libglabels.pc.in create mode 100644 libglabels/paper.c create mode 100644 libglabels/paper.h create mode 100644 libglabels/str.c create mode 100644 libglabels/str.h create mode 100644 libglabels/template.c create mode 100644 libglabels/template.h create mode 100644 libglabels/xml-category.c create mode 100644 libglabels/xml-category.h create mode 100644 libglabels/xml-paper.c create mode 100644 libglabels/xml-paper.h create mode 100644 libglabels/xml-template.c create mode 100644 libglabels/xml-template.h create mode 100644 libglabels/xml.c create mode 100644 libglabels/xml.h create mode 100755 ltmain.sh create mode 100755 missing create mode 100755 mkinstalldirs create mode 100644 po/LINGUAS create mode 100644 po/Makefile.in.in create mode 100644 po/POTFILES.in create mode 100644 po/ca.po create mode 100644 po/cs.po create mode 100644 po/da.po create mode 100644 po/de.po create mode 100644 po/eo.po create mode 100644 po/es.po create mode 100644 po/fr.po create mode 100644 po/it.po create mode 100644 po/ja.po create mode 100644 po/ko.po create mode 100644 po/nb.po create mode 100644 po/pl.po create mode 100644 po/pt.po create mode 100644 po/pt_BR.po create mode 100644 po/ru.po create mode 100644 po/sl.po create mode 100644 po/sv.po create mode 100644 po/zh_CN.po create mode 100644 po/zh_TW.po create mode 100644 src/Makefile.am create mode 100644 src/Makefile.in create mode 100644 src/base64.c create mode 100644 src/base64.h create mode 100644 src/bc-gnubarcode.c create mode 100644 src/bc-gnubarcode.h create mode 100644 src/bc-iec16022.c create mode 100644 src/bc-iec16022.h create mode 100644 src/bc-postnet.c create mode 100644 src/bc-postnet.h create mode 100644 src/bc.c create mode 100644 src/bc.h create mode 100644 src/cairo-ellipse-path.c create mode 100644 src/cairo-ellipse-path.h create mode 100644 src/cairo-label-path.c create mode 100644 src/cairo-label-path.h create mode 100644 src/cairo-markup-path.c create mode 100644 src/cairo-markup-path.h create mode 100644 src/color.c create mode 100644 src/color.h create mode 100644 src/critical-error-handler.c create mode 100644 src/critical-error-handler.h create mode 100644 src/debug.c create mode 100644 src/debug.h create mode 100644 src/file.c create mode 100644 src/file.h create mode 100644 src/glabels-batch.c create mode 100644 src/glabels.c create mode 100644 src/hig.h create mode 100644 src/label-barcode.c create mode 100644 src/label-barcode.h create mode 100644 src/label-box.c create mode 100644 src/label-box.h create mode 100644 src/label-ellipse.c create mode 100644 src/label-ellipse.h create mode 100644 src/label-image.c create mode 100644 src/label-image.h create mode 100644 src/label-line.c create mode 100644 src/label-line.h create mode 100644 src/label-object.c create mode 100644 src/label-object.h create mode 100644 src/label-text.c create mode 100644 src/label-text.h create mode 100644 src/label.c create mode 100644 src/label.h create mode 100644 src/marshal.c create mode 100644 src/marshal.h create mode 100644 src/marshal.list create mode 100644 src/merge-evolution.c create mode 100644 src/merge-evolution.h create mode 100644 src/merge-init.c create mode 100644 src/merge-init.h create mode 100644 src/merge-properties-dialog.c create mode 100644 src/merge-properties-dialog.h create mode 100644 src/merge-text.c create mode 100644 src/merge-text.h create mode 100644 src/merge-vcard.c create mode 100644 src/merge-vcard.h create mode 100644 src/merge.c create mode 100644 src/merge.h create mode 100644 src/mini-preview-pixbuf-cache.c create mode 100644 src/mini-preview-pixbuf-cache.h create mode 100644 src/mini-preview-pixbuf.c create mode 100644 src/mini-preview-pixbuf.h create mode 100644 src/mygal/Makefile.am create mode 100644 src/mygal/Makefile.in create mode 100644 src/mygal/color-group.c create mode 100644 src/mygal/color-group.h create mode 100644 src/mygal/color-palette.c create mode 100644 src/mygal/color-palette.h create mode 100644 src/mygal/e-colors.c create mode 100644 src/mygal/e-colors.h create mode 100644 src/mygal/e-marshal.list create mode 100644 src/mygal/e-util.h create mode 100644 src/mygal/mygal-combo-box.c create mode 100644 src/mygal/mygal-combo-box.h create mode 100644 src/mygal/widget-color-combo.c create mode 100644 src/mygal/widget-color-combo.h create mode 100644 src/new-label-dialog.c create mode 100644 src/new-label-dialog.h create mode 100644 src/object-editor-bc-page.c create mode 100644 src/object-editor-data-page.c create mode 100644 src/object-editor-edit-page.c create mode 100644 src/object-editor-fill-page.c create mode 100644 src/object-editor-image-page.c create mode 100644 src/object-editor-line-page.c create mode 100644 src/object-editor-lsize-page.c create mode 100644 src/object-editor-position-page.c create mode 100644 src/object-editor-private.h create mode 100644 src/object-editor-shadow-page.c create mode 100644 src/object-editor-size-page.c create mode 100644 src/object-editor-text-page.c create mode 100644 src/object-editor.c create mode 100644 src/object-editor.h create mode 100644 src/pixbuf-cache.c create mode 100644 src/pixbuf-cache.h create mode 100644 src/pixmaps/Makefile.am create mode 100644 src/pixmaps/Makefile.in create mode 100644 src/pixmaps/checkerboard.xpm create mode 100644 src/pixmaps/collate.xpm create mode 100644 src/pixmaps/cursor_barcode.xbm create mode 100644 src/pixmaps/cursor_barcode_mask.xbm create mode 100644 src/pixmaps/cursor_box.xbm create mode 100644 src/pixmaps/cursor_box_mask.xbm create mode 100644 src/pixmaps/cursor_ellipse.xbm create mode 100644 src/pixmaps/cursor_ellipse_mask.xbm create mode 100644 src/pixmaps/cursor_image.xbm create mode 100644 src/pixmaps/cursor_image_mask.xbm create mode 100644 src/pixmaps/cursor_line.xbm create mode 100644 src/pixmaps/cursor_line_mask.xbm create mode 100644 src/pixmaps/cursor_text.xbm create mode 100644 src/pixmaps/cursor_text_mask.xbm create mode 100644 src/pixmaps/nocollate.xpm create mode 100644 src/prefs-dialog.c create mode 100644 src/prefs-dialog.h create mode 100644 src/prefs-model.c create mode 100644 src/prefs-model.h create mode 100644 src/prefs.c create mode 100644 src/prefs.h create mode 100644 src/print-op.c create mode 100644 src/print-op.h create mode 100644 src/print.c create mode 100644 src/print.h create mode 100644 src/recent.c create mode 100644 src/recent.h create mode 100644 src/stock-pixmaps/Makefile.am create mode 100644 src/stock-pixmaps/Makefile.in create mode 100644 src/stock-pixmaps/stock_align_bottom_16.png create mode 100644 src/stock-pixmaps/stock_align_hcenter_16.png create mode 100644 src/stock-pixmaps/stock_align_left_16.png create mode 100644 src/stock-pixmaps/stock_align_right_16.png create mode 100644 src/stock-pixmaps/stock_align_top_16.png create mode 100644 src/stock-pixmaps/stock_align_vcenter_16.png create mode 100644 src/stock-pixmaps/stock_arrow_16.png create mode 100644 src/stock-pixmaps/stock_arrow_24.png create mode 100644 src/stock-pixmaps/stock_barcode_16.png create mode 100644 src/stock-pixmaps/stock_barcode_24.png create mode 100644 src/stock-pixmaps/stock_box_16.png create mode 100644 src/stock-pixmaps/stock_box_24.png create mode 100644 src/stock-pixmaps/stock_bucket_fill_16.png create mode 100644 src/stock-pixmaps/stock_bucket_fill_24.png create mode 100644 src/stock-pixmaps/stock_center_horiz_16.png create mode 100644 src/stock-pixmaps/stock_center_vert_16.png create mode 100644 src/stock-pixmaps/stock_ellipse_16.png create mode 100644 src/stock-pixmaps/stock_ellipse_24.png create mode 100644 src/stock-pixmaps/stock_flip_horiz_16.png create mode 100644 src/stock-pixmaps/stock_flip_vert_16.png create mode 100644 src/stock-pixmaps/stock_hchain_24.png create mode 100644 src/stock-pixmaps/stock_hchain_broken_24.png create mode 100644 src/stock-pixmaps/stock_image_16.png create mode 100644 src/stock-pixmaps/stock_image_24.png create mode 100644 src/stock-pixmaps/stock_line_16.png create mode 100644 src/stock-pixmaps/stock_line_24.png create mode 100644 src/stock-pixmaps/stock_merge_16.png create mode 100644 src/stock-pixmaps/stock_merge_24.png create mode 100644 src/stock-pixmaps/stock_order_bottom_16.png create mode 100644 src/stock-pixmaps/stock_order_top_16.png create mode 100644 src/stock-pixmaps/stock_pencil_16.png create mode 100644 src/stock-pixmaps/stock_pencil_24.png create mode 100644 src/stock-pixmaps/stock_properties_16.png create mode 100644 src/stock-pixmaps/stock_properties_24.png create mode 100644 src/stock-pixmaps/stock_rotate_left_16.png create mode 100644 src/stock-pixmaps/stock_rotate_right_16.png create mode 100644 src/stock-pixmaps/stock_text_16.png create mode 100644 src/stock-pixmaps/stock_text_24.png create mode 100644 src/stock-pixmaps/stock_vchain_24.png create mode 100644 src/stock-pixmaps/stock_vchain_broken_24.png create mode 100644 src/stock-pixmaps/stockpixbufs.h create mode 100644 src/stock.c create mode 100644 src/stock.h create mode 100644 src/template-designer.c create mode 100644 src/template-designer.h create mode 100644 src/text-node.c create mode 100644 src/text-node.h create mode 100644 src/ui-commands.c create mode 100644 src/ui-commands.h create mode 100644 src/ui-property-bar.c create mode 100644 src/ui-property-bar.h create mode 100644 src/ui-sidebar.c create mode 100644 src/ui-sidebar.h create mode 100644 src/ui-util.c create mode 100644 src/ui-util.h create mode 100644 src/ui.c create mode 100644 src/ui.h create mode 100644 src/util.c create mode 100644 src/util.h create mode 100644 src/view-barcode.c create mode 100644 src/view-barcode.h create mode 100644 src/view-box.c create mode 100644 src/view-box.h create mode 100644 src/view-ellipse.c create mode 100644 src/view-ellipse.h create mode 100644 src/view-image.c create mode 100644 src/view-image.h create mode 100644 src/view-line.c create mode 100644 src/view-line.h create mode 100644 src/view-object.c create mode 100644 src/view-object.h create mode 100644 src/view-text.c create mode 100644 src/view-text.h create mode 100644 src/view.c create mode 100644 src/view.h create mode 100644 src/warning-handler.c create mode 100644 src/warning-handler.h create mode 100644 src/wdgt-chain-button.c create mode 100644 src/wdgt-chain-button.h create mode 100644 src/wdgt-media-select.c create mode 100644 src/wdgt-media-select.h create mode 100644 src/wdgt-mini-preview.c create mode 100644 src/wdgt-mini-preview.h create mode 100644 src/wdgt-print-copies.c create mode 100644 src/wdgt-print-copies.h create mode 100644 src/wdgt-print-merge.c create mode 100644 src/wdgt-print-merge.h create mode 100644 src/wdgt-rotate-label.c create mode 100644 src/wdgt-rotate-label.h create mode 100644 src/window.c create mode 100644 src/window.h create mode 100644 src/xml-label-04.c create mode 100644 src/xml-label-04.h create mode 100644 src/xml-label.c create mode 100644 src/xml-label.h diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000..0a29f97e --- /dev/null +++ b/AUTHORS @@ -0,0 +1,191 @@ +gLabels Author +============== + +Jim Evins + +Acknowledgments +=============== + +- The GNU Barcode Library provides a large chunk of the barcode functionality +and is distributed with glabels. See ./barcode-0.98/README for more +information. The author: + + Alessandro Rubini + +- The iec16022 library provides encoding for 2D barcodes. See +iec16022-0.2.1/README for more information. + +- Glabels includes modified versions of several widgets from the GAL library. +These are copyright: + + * Copyright 2000, 2001, Ximian, Inc. + * Copyright 2000, Michael Levy + * Copyright 2001, Almer S. Tigelaar + +- Glabels includes a modified version of the gimpchainbutton widget from the +gimp, as well as several stock icons from the gimp's default theme. +These are copyright: + + * Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball + * Copyright (C) 1999-2000 Sven Neumann + +Glabels includes contributions from: + Frederic Ruaudel + Emmanuel Pacaud + Wayne Schuller + Austin Henry -- EDS and vcard backends + nestor di -- excellent splash screen + that first appeared in + 0.4.3: + Darren Warner + Javier Donaire Segarra + Alessandro Zummo + José Dapena Paz + Akkana + Dag Wieers + Mário Meyer + Peter Cherriman + +Translations: + + Olivier Berger -- French (original) + Florent Morel -- French (2.0.2) + Claude Paroz -- French (2.1.4) + Marcus Bauer -- German (original) + Christian Neumair -- German (1.89.1) + Mario Blättermann -- German (2.2.5) + Takeshi AIHANA -- Japanese + Paulo Rogério Ormenese -- Brazilian Portuguese + Víctor Moral -- Spanish + sergio rivadero -- Spanish (2.0.3) + Vitaly Lipatov -- Russian + Shell, Hin-lik Hung -- Chinese (TW) + Arkadiusz Lipiec -- Polish + David Makovský (Yakeen) -- Czech + Zbynek Mrkvicka -- Czech (2.0.3) + Mancio -- Italian + Daniele Medri -- Italian (2.0.3) + Antonio C. Codazzi "la Filozofo" -- Esperanto + David Planella -- Catalan + Careon -- Chinese (CN) + +The following people have submitted label templates or information about +particular products (I apologize if I have missed anybody): + + Hap + Olivier Berger + Marcus Bauer + Jochen Hein + Jonathan Buzzard + Jeff Davis + Ludger Solbach + Darren Ross + George Mitchell + Douglas Bollinger + Tim Jackson + John Stoffel + Dany De Bontridder + Andy Longton + Bostjan Muller + John Helms + no-exit + Mozilla from marela + Holger + Bill Tihen + Dan Gray + Keith Hudson + Tamas Bondar + George Mitchell + Erich Pfennig + Gwen Patton + Miek Gieben + Joerg Schmitz-Linneweber + David Makovský + Oliver Schwank + Akkana + Ted Poe + hans-helmut.belter + Uli Wachowitz + Stephan Hegel + Holger Reinmann + Michael Wojciechowski + Jim Mueller + Mark Fullalove + Zamiel Al'Shaitan + Philip Paeps + Bryan Fields + Martin Klaffenboeck + Lauri Ampuja + Allan Wind + Mark S Burgunder + Christian Holländer + Marvin P. Dickens + Julien BLACHE + James D Strandboge + Linas Jakucionis + Henrik Brix Andersen + Nigel Titley + Sean 'Shaleh' Perry + Anthony Brockman + Thorsten Hirsch + John Ross + Mike Machado + Rob Elshire + Niels + Ernst W. Winter + regis rampnoux + Sven Salzwedel + Dick Middleton + Ian Peake + Wayne Schuller + Thomas Vill + Fred Bacon + JBadger + Frank Altpeter + Matthew J. Lockner + Larry Harriman + Juan Carlos Valero + Nick Hill + Ali Akcaagac + Dan Clark + Peter L. Berghold + Vitaly Lipatov + Steve Saxon + Roman Kreisel + Steve Reppucci + Lionel CONS + Richard Lance + Anand Kumria + Alexandre Sauvé + Ironblade + Matthias Mailänder + Bernhard Walle + Stephen Hilliard + Alessandro Zummo + Herbert Straub + Dennis Böckmann + Anon + D. Leitner + Georg Ostertag + Manuel Siggen + David Huber + Harald Welte + Richard Rothwell + Gernot Hassenpflug + Pau Ruŀlan Ferragut + Richard Hurt + Phil Endecott + Koen Wybo + Mark Moeller + Bertus W. + Oliver Friedrich + Dr. Oliver Thiel + Jonas Stein + Thomas Eggers + Marina Delic + Russell Knighton + Anthony Mark Morningstar + Ian Shuttleworth + + +And many others for their many helpful suggestions and bug reports -- thanks. diff --git a/COPYING b/COPYING new file mode 100644 index 00000000..d60c31a9 --- /dev/null +++ b/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/COPYING-DOCS b/COPYING-DOCS new file mode 100644 index 00000000..b42936be --- /dev/null +++ b/COPYING-DOCS @@ -0,0 +1,355 @@ + GNU Free Documentation License + Version 1.1, March 2000 + + Copyright (C) 2000 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + +0. PREAMBLE + +The purpose of this License is to make a manual, textbook, or other +written document "free" in the sense of freedom: to assure everyone +the effective freedom to copy and redistribute it, with or without +modifying it, either commercially or noncommercially. Secondarily, +this License preserves for the author and publisher a way to get +credit for their work, while not being considered responsible for +modifications made by others. + +This License is a kind of "copyleft", which means that derivative +works of the document must themselves be free in the same sense. It +complements the GNU General Public License, which is a copyleft +license designed for free software. + +We have designed this License in order to use it for manuals for free +software, because free software needs free documentation: a free +program should come with manuals providing the same freedoms that the +software does. But this License is not limited to software manuals; +it can be used for any textual work, regardless of subject matter or +whether it is published as a printed book. We recommend this License +principally for works whose purpose is instruction or reference. + + +1. APPLICABILITY AND DEFINITIONS + +This License applies to any manual or other work that contains a +notice placed by the copyright holder saying it can be distributed +under the terms of this License. The "Document", below, refers to any +such manual or work. Any member of the public is a licensee, and is +addressed as "you". + +A "Modified Version" of the Document means any work containing the +Document or a portion of it, either copied verbatim, or with +modifications and/or translated into another language. + +A "Secondary Section" is a named appendix or a front-matter section of +the Document that deals exclusively with the relationship of the +publishers or authors of the Document to the Document's overall subject +(or to related matters) and contains nothing that could fall directly +within that overall subject. (For example, if the Document is in part a +textbook of mathematics, a Secondary Section may not explain any +mathematics.) The relationship could be a matter of historical +connection with the subject or with related matters, or of legal, +commercial, philosophical, ethical or political position regarding +them. + +The "Invariant Sections" are certain Secondary Sections whose titles +are designated, as being those of Invariant Sections, in the notice +that says that the Document is released under this License. + +The "Cover Texts" are certain short passages of text that are listed, +as Front-Cover Texts or Back-Cover Texts, in the notice that says that +the Document is released under this License. + +A "Transparent" copy of the Document means a machine-readable copy, +represented in a format whose specification is available to the +general public, whose contents can be viewed and edited directly and +straightforwardly with generic text editors or (for images composed of +pixels) generic paint programs or (for drawings) some widely available +drawing editor, and that is suitable for input to text formatters or +for automatic translation to a variety of formats suitable for input +to text formatters. A copy made in an otherwise Transparent file +format whose markup has been designed to thwart or discourage +subsequent modification by readers is not Transparent. A copy that is +not "Transparent" is called "Opaque". + +Examples of suitable formats for Transparent copies include plain +ASCII without markup, Texinfo input format, LaTeX input format, SGML +or XML using a publicly available DTD, and standard-conforming simple +HTML designed for human modification. Opaque formats include +PostScript, PDF, proprietary formats that can be read and edited only +by proprietary word processors, SGML or XML for which the DTD and/or +processing tools are not generally available, and the +machine-generated HTML produced by some word processors for output +purposes only. + +The "Title Page" means, for a printed book, the title page itself, +plus such following pages as are needed to hold, legibly, the material +this License requires to appear in the title page. For works in +formats which do not have any title page as such, "Title Page" means +the text near the most prominent appearance of the work's title, +preceding the beginning of the body of the text. + + +2. VERBATIM COPYING + +You may copy and distribute the Document in any medium, either +commercially or noncommercially, provided that this License, the +copyright notices, and the license notice saying this License applies +to the Document are reproduced in all copies, and that you add no other +conditions whatsoever to those of this License. You may not use +technical measures to obstruct or control the reading or further +copying of the copies you make or distribute. However, you may accept +compensation in exchange for copies. If you distribute a large enough +number of copies you must also follow the conditions in section 3. + +You may also lend copies, under the same conditions stated above, and +you may publicly display copies. + + +3. COPYING IN QUANTITY + +If you publish printed copies of the Document numbering more than 100, +and the Document's license notice requires Cover Texts, you must enclose +the copies in covers that carry, clearly and legibly, all these Cover +Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on +the back cover. Both covers must also clearly and legibly identify +you as the publisher of these copies. The front cover must present +the full title with all words of the title equally prominent and +visible. You may add other material on the covers in addition. +Copying with changes limited to the covers, as long as they preserve +the title of the Document and satisfy these conditions, can be treated +as verbatim copying in other respects. + +If the required texts for either cover are too voluminous to fit +legibly, you should put the first ones listed (as many as fit +reasonably) on the actual cover, and continue the rest onto adjacent +pages. + +If you publish or distribute Opaque copies of the Document numbering +more than 100, you must either include a machine-readable Transparent +copy along with each Opaque copy, or state in or with each Opaque copy +a publicly-accessible computer-network location containing a complete +Transparent copy of the Document, free of added material, which the +general network-using public has access to download anonymously at no +charge using public-standard network protocols. If you use the latter +option, you must take reasonably prudent steps, when you begin +distribution of Opaque copies in quantity, to ensure that this +Transparent copy will remain thus accessible at the stated location +until at least one year after the last time you distribute an Opaque +copy (directly or through your agents or retailers) of that edition to +the public. + +It is requested, but not required, that you contact the authors of the +Document well before redistributing any large number of copies, to give +them a chance to provide you with an updated version of the Document. + + +4. MODIFICATIONS + +You may copy and distribute a Modified Version of the Document under +the conditions of sections 2 and 3 above, provided that you release +the Modified Version under precisely this License, with the Modified +Version filling the role of the Document, thus licensing distribution +and modification of the Modified Version to whoever possesses a copy +of it. In addition, you must do these things in the Modified Version: + +A. Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission. +B. List on the Title Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the Modified + Version, together with at least five of the principal authors of the + Document (all of its principal authors, if it has less than five). +C. State on the Title page the name of the publisher of the + Modified Version, as the publisher. +D. Preserve all the copyright notices of the Document. +E. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. +F. Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum below. +G. Preserve in that license notice the full lists of Invariant Sections + and required Cover Texts given in the Document's license notice. +H. Include an unaltered copy of this License. +I. Preserve the section entitled "History", and its title, and add to + it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section entitled "History" in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence. +J. Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the "History" section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission. +K. In any section entitled "Acknowledgements" or "Dedications", + preserve the section's title, and preserve in the section all the + substance and tone of each of the contributor acknowledgements + and/or dedications given therein. +L. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. +M. Delete any section entitled "Endorsements". Such a section + may not be included in the Modified Version. +N. Do not retitle any existing section as "Endorsements" + or to conflict in title with any Invariant Section. + +If the Modified Version includes new front-matter sections or +appendices that qualify as Secondary Sections and contain no material +copied from the Document, you may at your option designate some or all +of these sections as invariant. To do this, add their titles to the +list of Invariant Sections in the Modified Version's license notice. +These titles must be distinct from any other section titles. + +You may add a section entitled "Endorsements", provided it contains +nothing but endorsements of your Modified Version by various +parties--for example, statements of peer review or that the text has +been approved by an organization as the authoritative definition of a +standard. + +You may add a passage of up to five words as a Front-Cover Text, and a +passage of up to 25 words as a Back-Cover Text, to the end of the list +of Cover Texts in the Modified Version. Only one passage of +Front-Cover Text and one of Back-Cover Text may be added by (or +through arrangements made by) any one entity. If the Document already +includes a cover text for the same cover, previously added by you or +by arrangement made by the same entity you are acting on behalf of, +you may not add another; but you may replace the old one, on explicit +permission from the previous publisher that added the old one. + +The author(s) and publisher(s) of the Document do not by this License +give permission to use their names for publicity for or to assert or +imply endorsement of any Modified Version. + + +5. COMBINING DOCUMENTS + +You may combine the Document with other documents released under this +License, under the terms defined in section 4 above for modified +versions, provided that you include in the combination all of the +Invariant Sections of all of the original documents, unmodified, and +list them all as Invariant Sections of your combined work in its +license notice. + +The combined work need only contain one copy of this License, and +multiple identical Invariant Sections may be replaced with a single +copy. If there are multiple Invariant Sections with the same name but +different contents, make the title of each such section unique by +adding at the end of it, in parentheses, the name of the original +author or publisher of that section if known, or else a unique number. +Make the same adjustment to the section titles in the list of +Invariant Sections in the license notice of the combined work. + +In the combination, you must combine any sections entitled "History" +in the various original documents, forming one section entitled +"History"; likewise combine any sections entitled "Acknowledgements", +and any sections entitled "Dedications". You must delete all sections +entitled "Endorsements." + + +6. COLLECTIONS OF DOCUMENTS + +You may make a collection consisting of the Document and other documents +released under this License, and replace the individual copies of this +License in the various documents with a single copy that is included in +the collection, provided that you follow the rules of this License for +verbatim copying of each of the documents in all other respects. + +You may extract a single document from such a collection, and distribute +it individually under this License, provided you insert a copy of this +License into the extracted document, and follow this License in all +other respects regarding verbatim copying of that document. + + +7. AGGREGATION WITH INDEPENDENT WORKS + +A compilation of the Document or its derivatives with other separate +and independent documents or works, in or on a volume of a storage or +distribution medium, does not as a whole count as a Modified Version +of the Document, provided no compilation copyright is claimed for the +compilation. Such a compilation is called an "aggregate", and this +License does not apply to the other self-contained works thus compiled +with the Document, on account of their being thus compiled, if they +are not themselves derivative works of the Document. + +If the Cover Text requirement of section 3 is applicable to these +copies of the Document, then if the Document is less than one quarter +of the entire aggregate, the Document's Cover Texts may be placed on +covers that surround only the Document within the aggregate. +Otherwise they must appear on covers around the whole aggregate. + + +8. TRANSLATION + +Translation is considered a kind of modification, so you may +distribute translations of the Document under the terms of section 4. +Replacing Invariant Sections with translations requires special +permission from their copyright holders, but you may include +translations of some or all Invariant Sections in addition to the +original versions of these Invariant Sections. You may include a +translation of this License provided that you also include the +original English version of this License. In case of a disagreement +between the translation and the original English version of this +License, the original English version will prevail. + + +9. TERMINATION + +You may not copy, modify, sublicense, or distribute the Document except +as expressly provided for under this License. Any other attempt to +copy, modify, sublicense or distribute the Document is void, and will +automatically terminate your rights under this License. However, +parties who have received copies, or rights, from you under this +License will not have their licenses terminated so long as such +parties remain in full compliance. + + +10. FUTURE REVISIONS OF THIS LICENSE + +The Free Software Foundation may publish new, revised versions +of the GNU Free Documentation License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. See +http://www.gnu.org/copyleft/. + +Each version of the License is given a distinguishing version number. +If the Document specifies that a particular numbered version of this +License "or any later version" applies to it, you have the option of +following the terms and conditions either of that specified version or +of any later version that has been published (not as a draft) by the +Free Software Foundation. If the Document does not specify a version +number of this License, you may choose any version ever published (not +as a draft) by the Free Software Foundation. + + +ADDENDUM: How to use this License for your documents + +To use this License in a document you have written, include a copy of +the License in the document and put the following copyright and +license notices just after the title page: + + Copyright (c) YEAR YOUR NAME. + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.1 + or any later version published by the Free Software Foundation; + with the Invariant Sections being LIST THEIR TITLES, with the + Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. + A copy of the license is included in the section entitled "GNU + Free Documentation License". + +If you have no Invariant Sections, write "with no Invariant Sections" +instead of saying which ones are invariant. If you have no +Front-Cover Texts, write "no Front-Cover Texts" instead of +"Front-Cover Texts being LIST"; likewise for Back-Cover Texts. + +If your document contains nontrivial examples of program code, we +recommend releasing these examples in parallel under your choice of +free software license, such as the GNU General Public License, +to permit their use in free software. diff --git a/COPYING-LIBGLABELS b/COPYING-LIBGLABELS new file mode 100644 index 00000000..161a3d1d --- /dev/null +++ b/COPYING-LIBGLABELS @@ -0,0 +1,482 @@ + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called "this License"). Each licensee is +addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also compile or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/COPYING.README_FIRST b/COPYING.README_FIRST new file mode 100644 index 00000000..2d76f43e --- /dev/null +++ b/COPYING.README_FIRST @@ -0,0 +1,28 @@ + The gLabels official distribution is an aggregate of several components. + Each component is licensed as follows + + The gLabels application core, and other portions of the official gLabels + distribution not explicitly licensed otherwise, are licensed under + the GNU GENERAL PUBLIC LICENSE (GPL); either version 2 of the License, or + (at your option) any later version -- see the 'COPYING' file in this + directory for details. + + The libglabels library, located in the "libglabels/" subdirectory, is + licensed under the GNU LESSER GENERAL PUBLIC LICENSE (LGPL); either + version 2 of the License, or (at your option) any later version -- see + the 'COPYING-LIBGLABELS' in this directory for details. + + The gLabels and libglabels documentation, located in the "docs/" and "help/" + subdirectories, is licensed under the GNU FREE DOCUMENTATION LICENSE (GFDL) + with no Invariant Sections; either version 1.1 or (at your option) any + later version -- see 'COPYING-DOCS' in this directory for details. + + The "barcode-0.98/" and "iec16022-0.2.1/" subdirectories contain 3rd party + libraries, each licensed under the GNU GENERAL PUBLIC LICENSE (GPL); either + version 2 of the License, or (at your option) any later version -- see the + 'LICENSE' or 'COPYING' file in each of these directories for details. + + The XML files in the "data/templates/" subdirectory constitute the glabels + label database. This database is a simple collection of facts so it is + therefore considered to be public domain and can be used for any purpose. + diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 00000000..6aff45b1 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,3210 @@ +commit 735fbf968d761acb31bee98121686f02cdeab17e +Author: Jim Evins +Date: 2010-04-19 + + Preparation for 2.2.8 + +M NEWS +M configure.in + +commit e68a37d0bec952928393abea94326a7ec77b9e38 +Author: Jorge González +Date: 2010-04-11 + + Updated Spanish translation + +M po/es.po + +commit a17439be4a34d934f0bf4a19dc9bfb2967343b32 +Author: Jim Evins +Date: 2010-04-11 + + Remove wasted space in "new label dialog" + + Modified the layout spacing of widgets in the "new label dialog." + This makes + the dialog a little more compact and hopefully fits better on + small screens + such as netbooks. + +M data/glade/new-label-dialog.glade +M data/glade/wdgt-media-select.glade +M data/glade/wdgt-rotate-label.glade +M src/new-label-dialog.c + +commit 333e792ab9daa4cb6fba8f19d360ca27d69ebff0 +Author: Jim Evins +Date: 2010-04-11 + + Add place-holder field to all empty private structures + + Fixes glabels bug #2981895. This is a work-around for glib bug + #615379. For + objects with no private data, add a place-holder field so that + the private + structure is not of zero length which causes g_new0() to crash in glib + 2.24.0. + +M src/view-barcode.c +M src/view-box.c +M src/view-ellipse.c +M src/view-image.c +M src/view-line.c +M src/view-text.c + +commit a3275186debbf0f4addf574bf02b789bcf3776ba +Author: Jorge González +Date: 2010-04-07 + + Updated Spanish translation + +M po/es.po + +commit be60f3c5d947d9ae66ec16f5b61045deb76d1b59 +Author: Filipe Roque +Date: 2010-04-04 + + Updated Portuguese translation + +M po/LINGUAS +A po/pt.po + +commit a26ba4f2eb55cc02f08c1b97fd4c001d3a550fd2 +Author: Jim Evins +Date: 2010-04-03 + + Added Avery DL33 and look-alike templates. + + DL33 templates provided by Ian Shuttleworth. + +M AUTHORS +M data/templates/avery-iso-templates.xml +M data/templates/misc-iso-templates.xml + +commit 675d5a6a13117ca85ebdc292dd931efece55d406 +Author: Marek Černocký +Date: 2010-03-28 + + Update Czech translation + +M po/cs.po + +commit ad36a71e24d395d641bf495dda96b8dea994d2df +Author: Andrej ŽnidarÅ¡ič +Date: 2010-03-28 + + Updated Slovenian translation + +M po/sl.po + +commit 67becb0c44760f68ad5c014866a53707e8ef4630 +Author: Jorge González +Date: 2010-03-21 + + Updated Spanish translation + +M po/es.po + +commit 1dd629c4b88056fd0ae51ce9c1b2b0921286fb98 +Author: Mario Blättermann +Date: 2010-03-20 + + Updated German translation + +M po/de.po + +commit bf78adcbbfd7e8fa51308e0fd64c22d6b07754bc +Author: Bruno Brouard +Date: 2010-03-17 + + Updated French translation + +M po/fr.po + +commit 6414ee7cd3975db6e7a7fe65b51ec7918ddcd7d6 +Author: Jorge González +Date: 2010-03-17 + + Updated Spanish translation + +M po/es.po + +commit 21ce5c207013d6ee8f28aa02b4db5894422b8942 +Author: Jim Evins +Date: 2010-03-16 + + Catching up on template submissions. + +M AUTHORS +M data/templates/misc-iso-templates.xml +M data/templates/misc-us-templates.xml +M data/templates/pearl-templates.xml + +commit 1a7125903c076189372671b3b1c699bd1a4322c6 +Author: Kjartan Maraas +Date: 2010-03-15 + + Add Norwegian language entry. + +M po/LINGUAS + +commit 501e409e1565d6aaf75fd6125eca323b4fe081f0 +Author: Kjartan Maraas +Date: 2010-03-15 + + Added Norwegian bokmÃ¥l translation + +A po/nb.po + +commit 99ac6500e2ce897708ac228b4684d3608576b931 +Author: Jorge González +Date: 2010-03-07 + + Updated Spanish translation + +M po/es.po + +commit c53c6d83333de1ab2d77f1e81e1d151509f7a1d4 +Author: Takeshi AIHANA +Date: 2010-03-06 + + Updated Japanese translation + +M po/ja.po + +commit c142345372faa68185cd5bbeba4e6192d72599ce +Author: Jim Evins +Date: 2010-03-02 + + Preparation for 2.2.7 + + Updated NEWS. Updated version information in configure.in. + Added pearl + templates to makefile. + +M NEWS +M configure.in +M data/templates/Makefile.am +D help/glabels-help.pot + +commit c866fbe3c5dd5cdea13efad8107a7d1a82b5a172 +Author: Mario Blättermann +Date: 2010-03-02 + + Fixed some bugs in template data + +M data/templates/pearl-templates.xml + +commit ca13ecdc3455f0cca218671dfc9c0a31500a264a +Author: Andrej ŽnidarÅ¡ič +Date: 2010-02-28 + + Updated Slovenian translation + +M po/sl.po + +commit 7dbee475634553b69ce7dd934608c7a35da59aa2 +Author: Mario Blättermann +Date: 2010-02-27 + + Added Staples STAP14 Mailing Labels + +M data/templates/misc-iso-templates.xml + +commit e3cb29b2d6c93547112146696b8adb0c35387b6e +Author: Joe Hansen +Date: 2010-02-23 + + Updated Danish translation + +A po/da.po + +commit de137c4bcf7eb19551ce1478f9929891781ef86f +Author: Kenneth Nielsen +Date: 2010-02-23 + + Added da to list of languages + +M po/LINGUAS + +commit aa892ac85b64ba0f069cc8d0e178faef4eb3de05 +Author: Marek Černocký +Date: 2010-02-21 + + Update Czech translation + +M help/cs/cs.po + +commit 4cf933c8d8e1f74e61fac64b3cfd954c51029b4b +Author: Jorge González +Date: 2010-02-19 + + Added initial Spanish translation + +A help/es/es.po + +commit 31cb90be5f9219e04e06f33c72e4269c03154873 +Author: Jorge González +Date: 2010-02-19 + + Added es to DOC_LINGUAS + +M help/Makefile.am + +commit ca216db75311bda7b80e08409b33212729d8a8ff +Author: Petr Kovar +Date: 2010-02-18 + + Fix Czech translation by Marek Cernocky + +M po/cs.po + +commit 59ce2a62e8ff923d6348f84b9e3e0cff59b10e87 +Author: Petr Kovar +Date: 2010-02-18 + + Add Czech help translation by Marek Cernocky + +M help/Makefile.am +A help/cs/cs.po +A help/cs/figures/main-window-empty.png +A help/cs/figures/merge-ex1-1.png +A help/cs/figures/merge-ex1-2.png +A help/cs/figures/merge-ex1-3.png +A help/cs/figures/merge-ex1-4.png +A help/cs/figures/merge-ex2-1.png +A help/cs/figures/merge-ex2-2.png +A help/cs/figures/merge-ex2-3.png +A help/cs/figures/merge-ex2-4.png +A help/cs/figures/object-editor-sidebar.png +A help/cs/figures/print-copies.png +A help/cs/figures/print-merge.png + +commit f428dd10c86b1102e96fe76ff0c62d209d6c2923 +Author: Jim Evins +Date: 2010-02-15 + + Create a default frame if missing from template file + + When parsing a template node, if there is no recognized frame node + (e.g. + Label-rectangle), a default full-page frame with a 1x1 layout + is created. + This prevents potential crashes if sharing a user '.glabels' directory + with future versions of glabels with new frame types, or in the + case of + typos for hand generated templates. + +M libglabels/xml-template.c + +commit 8ce4aff951c126566870d3417aeadcf385ca5886 +Author: Mario Blättermann +Date: 2010-02-13 + + Added URL for Geha Z53 again + +M data/templates/misc-iso-templates.xml + +commit c990e078f09bfa3bcee172459e883c1231b458b6 +Author: Mario Blättermann +Date: 2010-02-13 + + Removed URL from template due to gettext errors + +M data/templates/misc-iso-templates.xml + +commit 610cdbbecd84ed54b2aa082c2781be2f0aae3289 +Author: Mario Blättermann +Date: 2010-02-13 + + Added PEARL templates + +M AUTHORS +A data/templates/pearl-templates.xml + +commit 921c7bc0ab840288787d50ffdde15065f5a610ee +Author: Mario Blättermann +Date: 2010-02-13 + + Added Geha Z53 template + +M AUTHORS +M data/templates/misc-iso-templates.xml + +commit 548abc9542516724ee8029c7186280cb171b085c +Author: Petr Kovar +Date: 2010-02-11 + + Update Czech translation by Marek Cernocky + +M po/cs.po + +commit a309766e4e90d164e487ebc1978f92fbedbb536c +Author: Mario Blättermann +Date: 2010-02-09 + + Updated German translation + +M po/de.po + +commit 6ac473f54bf654ebed0e3eaf94769130b74edd1a +Author: Mario Blättermann +Date: 2010-02-09 + + Updated German translation + +M po/de.po + +commit 01b54d65f1bc32538314f01cbe89d89b2d0baa77 +Author: Jim Evins +Date: 2010-02-06 + + Relax libxml limits when parsing label files + + Glabels bug #2940758. Back port from master: Use XML_PARSE_HUGE + parser option + so that we can handle large text nodes, such as encoded images. This + modification is only applied if libxml 2.7+ is available, as to + not introduce + new dependencies. + +M configure.in +M src/Makefile.am +M src/xml-label.c + +commit 78329ea6424b52a3e8236b69afebc2eddc6386db +Author: Mario Blättermann +Date: 2010-01-16 + + Updated German doc translation + +M help/de/de.po + +commit 8bc29ac0910c02eba94f9ccd5042c07cb415b7f3 +Author: Petr Kovar +Date: 2010-01-13 + + Updated Czech translation by Marek Cernocky + +M po/cs.po + +commit e5ecd2b4e597bf2e509d4c285f59420322dad390 +Author: Claude Paroz +Date: 2010-01-09 + + Add fr to DOC_LINGUAS variable + +M help/Makefile.am + +commit a4758401a939c804a3a026f5c5bcf2deb1f8f7c1 +Author: Claude Paroz +Date: 2010-01-09 + + Add French translation of manual + + Contributed by Alain Lojewski and Claude Paroz + +A help/fr/figures/main-window-empty.png +A help/fr/figures/merge-ex1-1.png +A help/fr/figures/merge-ex1-2.png +A help/fr/figures/merge-ex1-3.png +A help/fr/figures/merge-ex1-4.png +A help/fr/figures/merge-ex2-1.png +A help/fr/figures/merge-ex2-2.png +A help/fr/figures/merge-ex2-3.png +A help/fr/figures/merge-ex2-4.png +A help/fr/figures/object-editor-sidebar.png +A help/fr/figures/print-copies.png +A help/fr/figures/print-merge.png +A help/fr/fr.po + +commit 908f97ce93793c1ad05e15b1ad9c788dab587a17 +Author: Matej Urbančič +Date: 2009-12-17 + + Added sl for Slovenian translation + +M po/LINGUAS + +commit b0e6dea0d9c9b2ca0e1e1ba0650cbe990bce1c29 +Author: Andrej ŽnidarÅ¡ič +Date: 2009-12-17 + + Updated Slovenian translation + +A po/sl.po + +commit 8f4713e9aec5e19ad382d6493119f6cea812ced4 +Author: Jim Evins +Date: 2009-11-18 + + Fixed focus behavior of view canvas + + Fixes bug #2899305. Don't just automatically steal focus when + entering + canvas. Require a click to get focus back. + +M src/view.c + +commit 1f24fba0eafc5f5e13c4e27cc315ac13cd450bbc +Author: Jim Evins +Date: 2009-11-10 + + Preparation for 2.2.6 + + Updated NEWS and configure.in. + +M NEWS +M configure.in + +commit 6f8023f3f90e360ed1911aaf95ab07dd9d1fd00d +Author: Jim Evins +Date: 2009-11-05 + + Automatically generate ChangeLog when building dist + + Automatically generate ChangeLog when building distributions. + Archived + pre 2.2 ChangeLog entries. + +M .gitignore +M ChangeLog +C090 ChangeLog ChangeLog.pre-2.2 +M Makefile.am + +commit 9542ced852f02b4ded00a923ea99bbfc5262234b +Author: Jim Evins +Date: 2009-11-05 + + Caught up on user submitted templates. + + Added user submitted templates and acknowledgements. + +M AUTHORS +M data/templates/misc-iso-templates.xml +M data/templates/zweckform-iso-templates.xml + +commit a2ad57fa1a0c1e826ff1b758a3baeed263d4b1a8 +Author: Jim Evins +Date: 2009-11-04 + + Fixed merge inconsistencies and crash + + merge.c: + Fixed crash when trying to print when a "key" radio has been + selected + but no key has been selected yet. + + object-editor-*-page.c: + Fixed potential inconsistencies with "key" radio buttons when + a merge + source has not been selected but the field indicates that it is + using a + merge key. This can happen when opening a glabels file that + has a merg + type not supported by the current instance of glabels. + + xml-label.c: + Also when parsing a merge field that has a merge type not + supported, + don't continue parsing it. + +M src/merge.c +M src/object-editor-bc-page.c +M src/object-editor-data-page.c +M src/object-editor-fill-page.c +M src/object-editor-image-page.c +M src/object-editor-line-page.c +M src/object-editor-shadow-page.c +M src/object-editor-text-page.c +M src/xml-label.c + +commit 4cbc3bf59c5b3f2fe8310a87a19c86f414e2e0ae +Author: Mario Blättermann +Date: 2009-11-04 + + Updated German translation + +M po/de.po + +commit 50e804b0aae8214a4354d084e36be88eace03f67 +Author: Mario Blättermann +Date: 2009-11-04 + + Updated German translation + +M po/de.po + +commit 499d70c757fe12219337e2ec9da267b723a1004c +Author: Mario Blättermann +Date: 2009-11-04 + + Updated German doc translation + +M help/de/de.po + +commit 7e1940ad444877f6fe17cff8befd469e4ee22ee8 +Author: Mario Blättermann +Date: 2009-11-04 + + Forgotten to add before + +A help/de/figures/merge-ex3-1.png +A help/de/figures/merge-ex3-2.png + +commit f01319ec821d3a3a0463010ca001eaf883cfd98a +Author: Mario Blättermann +Date: 2009-11-04 + + New screenshots + +M help/C/figures/merge-ex3-1.png +M help/C/figures/merge-ex3-2.png + +commit 4b24ee895b75d59225bedee6ee6a1140a54eebcb +Author: Mario Blättermann +Date: 2009-11-04 + + Updated German doc translation + +M po/de.po + +commit b9b0ec1e9eaedcf92ac4a2600d2e09a3a9f466c8 +Author: Daniel Nylander +Date: 2009-11-04 + + Updated Swedish translation + +M po/sv.po + +commit d0777b14a00530d90dab29e85aabad7b6ff57b67 +Author: Jim Evins +Date: 2009-11-03 + + Updated documentation for 2.2.6 + + - Added an example for doing document merge from evolution data + server. (Mario Blättermann) + - Updated most screenshots to 2.2.6 with Clearlooks theme. + - Minor corrections + +A .gitignore +M help/C/figures/main-window-empty.png +M help/C/figures/merge-ex1-1.png +M help/C/figures/merge-ex1-2.png +M help/C/figures/merge-ex1-3.png +M help/C/figures/merge-ex1-4.png +M help/C/figures/merge-ex2-1.png +M help/C/figures/merge-ex2-2.png +M help/C/figures/merge-ex2-3.png +M help/C/figures/merge-ex2-4.png +A help/C/figures/merge-ex3-1.png +A help/C/figures/merge-ex3-2.png +M help/C/figures/object-editor-sidebar.png +M help/C/figures/print-copies.png +M help/C/figures/print-merge.png +M help/C/glabels.xml +M help/Makefile.am + +commit 8fe92bd1ae20ab937f2a5de135c80d92e4c685eb +Author: Jim Evins +Date: 2009-10-25 + + Start new path when drawing round labels + + Start new path when drawing round labels. This fixes a bug, where + if the + top most object is a text object, an extras line would be drawn. + +M src/cairo-label-path.c + +commit d55ffd2866c5d6a20c1236f087b18316989c87dd +Author: Jim Evins +Date: 2009-10-25 + + Fixed incorrect storage of glPrefsModel's base object + + Parent object was declared as a pointer, so there was not enough + room for + the parent/base object. This potentially could have caused havoc + with this + object. + +M src/prefs-model.h + +commit 33821ebe5b65a8191215646fab2be577854bfb17 +Author: Mario Blättermann +Date: 2009-10-10 + + Converted translations to UTF-8 + +M po/pl.po +M po/pt_BR.po + +commit 69e71bfe60909459ed177b767b40f0940824ad6b +Author: Daniel Nylander +Date: 2009-10-06 + + Added Swedish translation + +M po/LINGUAS +A po/sv.po + +commit e04fe3a1a5b378412eb153350e2fb2b8a22eb8b1 +Author: Mario Blättermann +Date: 2009-10-06 + + Converted polish translation to UTF-8 + +M po/pl.po + +commit 37b8623b1615da2b54cf2b22444f89c3e36b429d +Author: Claude Paroz +Date: 2009-10-06 + + Convert zh_TW translation to UTF-8 + +M po/LINGUAS +R089 po/zh_TW.Big5.po po/zh_TW.po + +commit 885961d5ac802bf487d34b400679b2f15855d1e4 +Author: Mario Blättermann +Date: 2009-10-06 + + Updated German translation + +M po/de.po + +commit 3a3f0f3859c7ddeeeb9b2251fddf2c066ee9ca99 +Author: Jim Evins +Date: 2009-10-05 + + Moved files to top-level of branch. + + Moved files to top-level directory of glabels_2_2 branch. This is + an artifact + of the old SVN layout. Fixed problems with zh_CN.po that prevented + push. + +R100 glabels2/help/de/de.po help/de/de.po +R100 glabels2/help/de/figures/main-window-empty.png +help/de/figures/main-window-empty.png +R100 glabels2/help/de/figures/merge-ex1-1.png +help/de/figures/merge-ex1-1.png +R100 glabels2/help/de/figures/merge-ex1-2.png +help/de/figures/merge-ex1-2.png +R100 glabels2/help/de/figures/merge-ex1-3.png +help/de/figures/merge-ex1-3.png +R100 glabels2/help/de/figures/merge-ex1-4.png +help/de/figures/merge-ex1-4.png +R100 glabels2/help/de/figures/merge-ex2-1.png +help/de/figures/merge-ex2-1.png +R100 glabels2/help/de/figures/merge-ex2-2.png +help/de/figures/merge-ex2-2.png +R100 glabels2/help/de/figures/merge-ex2-3.png +help/de/figures/merge-ex2-3.png +R100 glabels2/help/de/figures/merge-ex2-4.png +help/de/figures/merge-ex2-4.png +R100 glabels2/help/de/figures/object-editor-sidebar.png +help/de/figures/object-editor-sidebar.png +R100 glabels2/help/de/figures/print-copies.png +help/de/figures/print-copies.png +R100 glabels2/help/de/figures/print-merge.png +help/de/figures/print-merge.png +R100 glabels2/help/glabels-help.pot help/glabels-help.pot +R100 glabels2/help/glabels.omf.in help/glabels.omf.in +R100 glabels2/po/LINGUAS po/LINGUAS +R100 glabels2/po/ca.po po/ca.po +R099 glabels2/po/zh_CN.po po/zh_CN.po + +commit 484197466a1ddace52d14046709ad6e8c4f17bbc +Merge: 9ebfc49 d3a7257 +Author: Jim Evins +Date: 2009-09-28 + + Merge original SVN glabels-2_2 branch into glabels_2_2 + + Restored history past 2.2.5 release that was lost when originally + creating + branch from SVN. + +commit 9ebfc492936b30b4095ae458278e63c51caf3f67 +Author: Jim Evins +Date: 2009-09-26 + + Reorganized glabels_2_2 branch so that it is the top-level glabels + directory, + instead of having a glabels2 subdirectory. + +R100 glabels2/AUTHORS AUTHORS +R100 glabels2/COPYING COPYING +R100 glabels2/COPYING-DOCS COPYING-DOCS +R100 glabels2/COPYING-LIBGLABELS COPYING-LIBGLABELS +R100 glabels2/COPYING.README_FIRST COPYING.README_FIRST +R100 glabels2/ChangeLog ChangeLog +R100 glabels2/INSTALL INSTALL +R100 glabels2/Makefile.am Makefile.am +R100 glabels2/NEWS NEWS +R100 glabels2/README README +R100 glabels2/TODO TODO +R100 glabels2/autogen.sh autogen.sh +R100 glabels2/barcode-0.98/COPYING barcode-0.98/COPYING +R100 glabels2/barcode-0.98/ChangeLog barcode-0.98/ChangeLog +R100 glabels2/barcode-0.98/INSTALL barcode-0.98/INSTALL +R100 glabels2/barcode-0.98/Makefile.am barcode-0.98/Makefile.am +R100 glabels2/barcode-0.98/Makefile.in.dist +barcode-0.98/Makefile.in.dist +R100 glabels2/barcode-0.98/README barcode-0.98/README +R100 glabels2/barcode-0.98/README.glabels +barcode-0.98/README.glabels +R100 glabels2/barcode-0.98/TODO barcode-0.98/TODO +R100 glabels2/barcode-0.98/barcode.h barcode-0.98/barcode.h +R100 glabels2/barcode-0.98/barcode.spec barcode-0.98/barcode.spec +R100 glabels2/barcode-0.98/bookland/bookland.py +barcode-0.98/bookland/bookland.py +R100 glabels2/barcode-0.98/cmdline.c barcode-0.98/cmdline.c +R100 glabels2/barcode-0.98/cmdline.h barcode-0.98/cmdline.h +R100 glabels2/barcode-0.98/codabar.c barcode-0.98/codabar.c +R100 glabels2/barcode-0.98/code128.c barcode-0.98/code128.c +R100 glabels2/barcode-0.98/code39.c barcode-0.98/code39.c +R100 glabels2/barcode-0.98/code93.c barcode-0.98/code93.c +R100 glabels2/barcode-0.98/compat/getopt.c +barcode-0.98/compat/getopt.c +R100 glabels2/barcode-0.98/compat/getopt.h +barcode-0.98/compat/getopt.h +R100 glabels2/barcode-0.98/configure barcode-0.98/configure +R100 glabels2/barcode-0.98/configure.in.dist +barcode-0.98/configure.in.dist +R100 glabels2/barcode-0.98/contrib/barcode-SVG.tar.gz +barcode-0.98/contrib/barcode-SVG.tar.gz +R100 glabels2/barcode-0.98/contrib/barcode-SVG.tar.gz.README +barcode-0.98/contrib/barcode-SVG.tar.gz.README +R100 glabels2/barcode-0.98/contrib/barcode-for-delphi.tar.gz +barcode-0.98/contrib/barcode-for-delphi.tar.gz +R100 glabels2/barcode-0.98/contrib/barcode-for-delphi.tar.gz.README +barcode-0.98/contrib/barcode-for-delphi.tar.gz.README +R100 glabels2/barcode-0.98/contrib/barcodeps-0.1.tgz +barcode-0.98/contrib/barcodeps-0.1.tgz +R100 glabels2/barcode-0.98/contrib/barcodeps-0.1.tgz.README +barcode-0.98/contrib/barcodeps-0.1.tgz.README +R100 glabels2/barcode-0.98/contrib/grab-0.0.4.tar.gz +barcode-0.98/contrib/grab-0.0.4.tar.gz +R100 glabels2/barcode-0.98/contrib/grab-0.0.4.tar.gz.README +barcode-0.98/contrib/grab-0.0.4.tar.gz.README +R100 glabels2/barcode-0.98/debian/README.debian +barcode-0.98/debian/README.debian +R100 glabels2/barcode-0.98/debian/changelog +barcode-0.98/debian/changelog +R100 glabels2/barcode-0.98/debian/control +barcode-0.98/debian/control +R100 glabels2/barcode-0.98/debian/copyright +barcode-0.98/debian/copyright +R100 glabels2/barcode-0.98/debian/dirs barcode-0.98/debian/dirs +R100 glabels2/barcode-0.98/debian/info barcode-0.98/debian/info +R100 glabels2/barcode-0.98/debian/rules barcode-0.98/debian/rules +R100 glabels2/barcode-0.98/doc/Makefile.in +barcode-0.98/doc/Makefile.in +R100 glabels2/barcode-0.98/doc/README barcode-0.98/doc/README +R100 glabels2/barcode-0.98/doc/barcode.info +barcode-0.98/doc/barcode.info +R100 glabels2/barcode-0.98/doc/barcode.pdf +barcode-0.98/doc/barcode.pdf +R100 glabels2/barcode-0.98/doc/barcode.ps +barcode-0.98/doc/barcode.ps +R100 glabels2/barcode-0.98/doc/barcodedoc.txt +barcode-0.98/doc/barcodedoc.txt +R100 glabels2/barcode-0.98/doc/doc.barcode +barcode-0.98/doc/doc.barcode +R100 glabels2/barcode-0.98/doc/infofilter +barcode-0.98/doc/infofilter +R100 glabels2/barcode-0.98/doc/manpager barcode-0.98/doc/manpager +R100 glabels2/barcode-0.98/doc/mktxt barcode-0.98/doc/mktxt +R100 glabels2/barcode-0.98/doc/texi2html barcode-0.98/doc/texi2html +R100 glabels2/barcode-0.98/ean.c barcode-0.98/ean.c +R100 glabels2/barcode-0.98/i25.c barcode-0.98/i25.c +R100 glabels2/barcode-0.98/install-sh barcode-0.98/install-sh +R100 glabels2/barcode-0.98/library.c barcode-0.98/library.c +R100 glabels2/barcode-0.98/main.c barcode-0.98/main.c +R100 glabels2/barcode-0.98/missing barcode-0.98/missing +R100 glabels2/barcode-0.98/mkinstalldirs barcode-0.98/mkinstalldirs +R100 glabels2/barcode-0.98/msi.c barcode-0.98/msi.c +R100 glabels2/barcode-0.98/pcl.c barcode-0.98/pcl.c +R100 glabels2/barcode-0.98/plessey.c barcode-0.98/plessey.c +R100 glabels2/barcode-0.98/ps.c barcode-0.98/ps.c +R100 glabels2/barcode-0.98/sample.c barcode-0.98/sample.c +R100 glabels2/configure.in configure.in +R100 glabels2/data/Makefile.am data/Makefile.am +R100 glabels2/data/desktop/Makefile.am data/desktop/Makefile.am +R100 glabels2/data/desktop/glabels.desktop.in +data/desktop/glabels.desktop.in +R100 glabels2/data/dtd/Makefile.am data/dtd/Makefile.am +R100 glabels2/data/dtd/glabels-2.2.dtd data/dtd/glabels-2.2.dtd +R100 glabels2/data/glade/Makefile.am data/glade/Makefile.am +R100 glabels2/data/glade/merge-properties-dialog.glade +data/glade/merge-properties-dialog.glade +R100 glabels2/data/glade/new-label-dialog.glade +data/glade/new-label-dialog.glade +R100 glabels2/data/glade/object-editor.glade +data/glade/object-editor.glade +R100 glabels2/data/glade/prefs-dialog.glade +data/glade/prefs-dialog.glade +R100 glabels2/data/glade/print-custom-widget.glade +data/glade/print-custom-widget.glade +R100 glabels2/data/glade/property-bar.glade +data/glade/property-bar.glade +R100 glabels2/data/glade/template-designer.glade +data/glade/template-designer.glade +R100 glabels2/data/glade/wdgt-media-select.glade +data/glade/wdgt-media-select.glade +R100 glabels2/data/glade/wdgt-rotate-label.glade +data/glade/wdgt-rotate-label.glade +R100 glabels2/data/man/Makefile.am data/man/Makefile.am +R100 glabels2/data/man/glabels.1 data/man/glabels.1 +R100 glabels2/data/mime/Makefile.am data/mime/Makefile.am +R100 glabels2/data/mime/glabels.applications +data/mime/glabels.applications +R100 glabels2/data/mime/glabels.keys.in data/mime/glabels.keys.in +R100 glabels2/data/mime/glabels.mime data/mime/glabels.mime +R100 glabels2/data/mime/glabels.xml.in data/mime/glabels.xml.in +R100 glabels2/data/pixmaps/Makefile.am data/pixmaps/Makefile.am +R100 glabels2/data/pixmaps/ex-1layout.png +data/pixmaps/ex-1layout.png +R100 glabels2/data/pixmaps/ex-2layouts.png +data/pixmaps/ex-2layouts.png +R100 glabels2/data/pixmaps/ex-cd-size.png +data/pixmaps/ex-cd-size.png +R100 glabels2/data/pixmaps/ex-rect-size.png +data/pixmaps/ex-rect-size.png +R100 glabels2/data/pixmaps/ex-round-size.png +data/pixmaps/ex-round-size.png +R100 glabels2/data/pixmaps/glabels-about-logo.png +data/pixmaps/glabels-about-logo.png +R100 glabels2/data/pixmaps/glabels-application-x-glabels.png +data/pixmaps/glabels-application-x-glabels.png +R100 glabels2/data/pixmaps/glabels-splash.png +data/pixmaps/glabels-splash.png +R100 glabels2/data/pixmaps/glabels.png data/pixmaps/glabels.png +R100 glabels2/data/templates/Makefile.am data/templates/Makefile.am +R100 glabels2/data/templates/avery-iso-templates.xml +data/templates/avery-iso-templates.xml +R100 glabels2/data/templates/avery-other-templates.xml +data/templates/avery-other-templates.xml +R100 glabels2/data/templates/avery-us-templates.xml +data/templates/avery-us-templates.xml +R100 glabels2/data/templates/brother-other-templates.xml +data/templates/brother-other-templates.xml +R100 glabels2/data/templates/categories.xml +data/templates/categories.xml +R100 glabels2/data/templates/dymo-other-templates.xml +data/templates/dymo-other-templates.xml +R100 glabels2/data/templates/misc-iso-templates.xml +data/templates/misc-iso-templates.xml +R100 glabels2/data/templates/misc-other-templates.xml +data/templates/misc-other-templates.xml +R100 glabels2/data/templates/misc-us-templates.xml +data/templates/misc-us-templates.xml +R100 glabels2/data/templates/paper-sizes.xml +data/templates/paper-sizes.xml +R100 glabels2/data/templates/zweckform-iso-templates.xml +data/templates/zweckform-iso-templates.xml +R100 glabels2/docs/Makefile.am docs/Makefile.am +R100 glabels2/docs/libglabels/Makefile.am +docs/libglabels/Makefile.am +R100 glabels2/docs/libglabels/libglabels-decl-list.txt +docs/libglabels/libglabels-decl-list.txt +R100 glabels2/docs/libglabels/libglabels-docs.sgml +docs/libglabels/libglabels-docs.sgml +R100 glabels2/docs/libglabels/libglabels-overrides.txt +docs/libglabels/libglabels-overrides.txt +R100 glabels2/docs/libglabels/libglabels-sections.txt +docs/libglabels/libglabels-sections.txt +R100 glabels2/docs/libglabels/libglabels-undocumented.txt +docs/libglabels/libglabels-undocumented.txt +R100 glabels2/docs/libglabels/libglabels.types +docs/libglabels/libglabels.types +R100 glabels2/docs/libglabels/tmpl/category.sgml +docs/libglabels/tmpl/category.sgml +R100 glabels2/docs/libglabels/tmpl/db.sgml +docs/libglabels/tmpl/db.sgml +R100 glabels2/docs/libglabels/tmpl/enums.sgml +docs/libglabels/tmpl/enums.sgml +R100 glabels2/docs/libglabels/tmpl/libglabels-unused.sgml +docs/libglabels/tmpl/libglabels-unused.sgml +R100 glabels2/docs/libglabels/tmpl/libglabels.sgml +docs/libglabels/tmpl/libglabels.sgml +R100 glabels2/docs/libglabels/tmpl/paper.sgml +docs/libglabels/tmpl/paper.sgml +R100 glabels2/docs/libglabels/tmpl/str.sgml +docs/libglabels/tmpl/str.sgml +R100 glabels2/docs/libglabels/tmpl/template.sgml +docs/libglabels/tmpl/template.sgml +R100 glabels2/docs/libglabels/tmpl/xml-category.sgml +docs/libglabels/tmpl/xml-category.sgml +R100 glabels2/docs/libglabels/tmpl/xml-paper.sgml +docs/libglabels/tmpl/xml-paper.sgml +R100 glabels2/docs/libglabels/tmpl/xml-template.sgml +docs/libglabels/tmpl/xml-template.sgml +R100 glabels2/docs/libglabels/tmpl/xml.sgml +docs/libglabels/tmpl/xml.sgml +R100 glabels2/glabels.spec.in glabels.spec.in +R100 glabels2/gtk-doc.make gtk-doc.make +R100 glabels2/help/C/Makefile.am help/C/Makefile.am +R100 glabels2/help/C/figures/glabels-template-cd.png +help/C/figures/glabels-template-cd.png +R100 glabels2/help/C/figures/glabels-template-label.png +help/C/figures/glabels-template-label.png +R100 glabels2/help/C/figures/glabels-template-layout.png +help/C/figures/glabels-template-layout.png +R100 glabels2/help/C/figures/main-window-empty.png +help/C/figures/main-window-empty.png +R100 glabels2/help/C/figures/merge-ex1-1.png +help/C/figures/merge-ex1-1.png +R100 glabels2/help/C/figures/merge-ex1-2.png +help/C/figures/merge-ex1-2.png +R100 glabels2/help/C/figures/merge-ex1-3.png +help/C/figures/merge-ex1-3.png +R100 glabels2/help/C/figures/merge-ex1-4.png +help/C/figures/merge-ex1-4.png +R100 glabels2/help/C/figures/merge-ex2-1.png +help/C/figures/merge-ex2-1.png +R100 glabels2/help/C/figures/merge-ex2-2.png +help/C/figures/merge-ex2-2.png +R100 glabels2/help/C/figures/merge-ex2-3.png +help/C/figures/merge-ex2-3.png +R100 glabels2/help/C/figures/merge-ex2-4.png +help/C/figures/merge-ex2-4.png +R100 glabels2/help/C/figures/object-editor-sidebar.png +help/C/figures/object-editor-sidebar.png +R100 glabels2/help/C/figures/print-copies.png +help/C/figures/print-copies.png +R100 glabels2/help/C/figures/print-merge.png +help/C/figures/print-merge.png +R100 glabels2/help/C/glabels-C.omf help/C/glabels-C.omf +R100 glabels2/help/C/glabels.xml help/C/glabels.xml +R100 glabels2/help/C/legal.xml help/C/legal.xml +R100 glabels2/help/Makefile.am help/Makefile.am +R100 glabels2/iec16022-0.2.1/BUGS iec16022-0.2.1/BUGS +R100 glabels2/iec16022-0.2.1/CHANGELOG iec16022-0.2.1/CHANGELOG +R100 glabels2/iec16022-0.2.1/CREDITS iec16022-0.2.1/CREDITS +R100 glabels2/iec16022-0.2.1/INSTALL iec16022-0.2.1/INSTALL +R100 glabels2/iec16022-0.2.1/LICENSE iec16022-0.2.1/LICENSE +R100 glabels2/iec16022-0.2.1/Makefile.am iec16022-0.2.1/Makefile.am +R100 glabels2/iec16022-0.2.1/Makefile.dist +iec16022-0.2.1/Makefile.dist +R100 glabels2/iec16022-0.2.1/README iec16022-0.2.1/README +R100 glabels2/iec16022-0.2.1/README.glabels +iec16022-0.2.1/README.glabels +R100 glabels2/iec16022-0.2.1/TODO iec16022-0.2.1/TODO +R100 glabels2/iec16022-0.2.1/iec16022.1 iec16022-0.2.1/iec16022.1 +R100 glabels2/iec16022-0.2.1/iec16022.c iec16022-0.2.1/iec16022.c +R100 glabels2/iec16022-0.2.1/iec16022ecc200.c +iec16022-0.2.1/iec16022ecc200.c +R100 glabels2/iec16022-0.2.1/iec16022ecc200.h +iec16022-0.2.1/iec16022ecc200.h +R100 glabels2/iec16022-0.2.1/image.c iec16022-0.2.1/image.c +R100 glabels2/iec16022-0.2.1/image.h iec16022-0.2.1/image.h +R100 glabels2/iec16022-0.2.1/reedsol.c iec16022-0.2.1/reedsol.c +R100 glabels2/iec16022-0.2.1/reedsol.h iec16022-0.2.1/reedsol.h +R100 glabels2/iec16022-0.2.1/test/testsuite-example.bin +iec16022-0.2.1/test/testsuite-example.bin +R100 glabels2/iec16022-0.2.1/test/testsuite-example.eps +iec16022-0.2.1/test/testsuite-example.eps +R100 glabels2/iec16022-0.2.1/test/testsuite-example.hex +iec16022-0.2.1/test/testsuite-example.hex +R100 glabels2/iec16022-0.2.1/test/testsuite-example.png +iec16022-0.2.1/test/testsuite-example.png +R100 glabels2/iec16022-0.2.1/test/testsuite-example.text +iec16022-0.2.1/test/testsuite-example.text +R100 glabels2/iec16022-0.2.1/test/testsuite.sh +iec16022-0.2.1/test/testsuite.sh +R100 glabels2/libglabels/Makefile.am libglabels/Makefile.am +R100 glabels2/libglabels/category.c libglabels/category.c +R100 glabels2/libglabels/category.h libglabels/category.h +R100 glabels2/libglabels/db.c libglabels/db.c +R100 glabels2/libglabels/db.h libglabels/db.h +R100 glabels2/libglabels/enums.h libglabels/enums.h +R100 glabels2/libglabels/libglabels-private.h +libglabels/libglabels-private.h +R100 glabels2/libglabels/libglabels.h libglabels/libglabels.h +R100 glabels2/libglabels/libglabels.pc.in +libglabels/libglabels.pc.in +R100 glabels2/libglabels/paper.c libglabels/paper.c +R100 glabels2/libglabels/paper.h libglabels/paper.h +R100 glabels2/libglabels/str.c libglabels/str.c +R100 glabels2/libglabels/str.h libglabels/str.h +R100 glabels2/libglabels/template.c libglabels/template.c +R100 glabels2/libglabels/template.h libglabels/template.h +R100 glabels2/libglabels/xml-category.c libglabels/xml-category.c +R100 glabels2/libglabels/xml-category.h libglabels/xml-category.h +R100 glabels2/libglabels/xml-paper.c libglabels/xml-paper.c +R100 glabels2/libglabels/xml-paper.h libglabels/xml-paper.h +R100 glabels2/libglabels/xml-template.c libglabels/xml-template.c +R100 glabels2/libglabels/xml-template.h libglabels/xml-template.h +R100 glabels2/libglabels/xml.c libglabels/xml.c +R100 glabels2/libglabels/xml.h libglabels/xml.h +R100 glabels2/po/POTFILES.in po/POTFILES.in +R100 glabels2/po/cs.po po/cs.po +R100 glabels2/po/de.po po/de.po +R100 glabels2/po/eo.po po/eo.po +R100 glabels2/po/es.po po/es.po +R100 glabels2/po/fr.po po/fr.po +R100 glabels2/po/it.po po/it.po +R100 glabels2/po/ja.po po/ja.po +R100 glabels2/po/ko.po po/ko.po +R100 glabels2/po/pl.po po/pl.po +R100 glabels2/po/pt_BR.po po/pt_BR.po +R100 glabels2/po/ru.po po/ru.po +R100 glabels2/po/zh_TW.Big5.po po/zh_TW.Big5.po +R100 glabels2/src/Makefile.am src/Makefile.am +R100 glabels2/src/base64.c src/base64.c +R100 glabels2/src/base64.h src/base64.h +R100 glabels2/src/bc-gnubarcode.c src/bc-gnubarcode.c +R100 glabels2/src/bc-gnubarcode.h src/bc-gnubarcode.h +R100 glabels2/src/bc-iec16022.c src/bc-iec16022.c +R100 glabels2/src/bc-iec16022.h src/bc-iec16022.h +R100 glabels2/src/bc-postnet.c src/bc-postnet.c +R100 glabels2/src/bc-postnet.h src/bc-postnet.h +R100 glabels2/src/bc.c src/bc.c +R100 glabels2/src/bc.h src/bc.h +R100 glabels2/src/cairo-ellipse-path.c src/cairo-ellipse-path.c +R100 glabels2/src/cairo-ellipse-path.h src/cairo-ellipse-path.h +R100 glabels2/src/cairo-label-path.c src/cairo-label-path.c +R100 glabels2/src/cairo-label-path.h src/cairo-label-path.h +R100 glabels2/src/cairo-markup-path.c src/cairo-markup-path.c +R100 glabels2/src/cairo-markup-path.h src/cairo-markup-path.h +R100 glabels2/src/color.c src/color.c +R100 glabels2/src/color.h src/color.h +R100 glabels2/src/critical-error-handler.c +src/critical-error-handler.c +R100 glabels2/src/critical-error-handler.h +src/critical-error-handler.h +R100 glabels2/src/debug.c src/debug.c +R100 glabels2/src/debug.h src/debug.h +R100 glabels2/src/file.c src/file.c +R100 glabels2/src/file.h src/file.h +R100 glabels2/src/glabels-batch.c src/glabels-batch.c +R100 glabels2/src/glabels.c src/glabels.c +R100 glabels2/src/hig.h src/hig.h +R100 glabels2/src/label-barcode.c src/label-barcode.c +R100 glabels2/src/label-barcode.h src/label-barcode.h +R100 glabels2/src/label-box.c src/label-box.c +R100 glabels2/src/label-box.h src/label-box.h +R100 glabels2/src/label-ellipse.c src/label-ellipse.c +R100 glabels2/src/label-ellipse.h src/label-ellipse.h +R100 glabels2/src/label-image.c src/label-image.c +R100 glabels2/src/label-image.h src/label-image.h +R100 glabels2/src/label-line.c src/label-line.c +R100 glabels2/src/label-line.h src/label-line.h +R100 glabels2/src/label-object.c src/label-object.c +R100 glabels2/src/label-object.h src/label-object.h +R100 glabels2/src/label-text.c src/label-text.c +R100 glabels2/src/label-text.h src/label-text.h +R100 glabels2/src/label.c src/label.c +R100 glabels2/src/label.h src/label.h +R100 glabels2/src/marshal.list src/marshal.list +R100 glabels2/src/merge-evolution.c src/merge-evolution.c +R100 glabels2/src/merge-evolution.h src/merge-evolution.h +R100 glabels2/src/merge-init.c src/merge-init.c +R100 glabels2/src/merge-init.h src/merge-init.h +R100 glabels2/src/merge-properties-dialog.c +src/merge-properties-dialog.c +R100 glabels2/src/merge-properties-dialog.h +src/merge-properties-dialog.h +R100 glabels2/src/merge-text.c src/merge-text.c +R100 glabels2/src/merge-text.h src/merge-text.h +R100 glabels2/src/merge-vcard.c src/merge-vcard.c +R100 glabels2/src/merge-vcard.h src/merge-vcard.h +R100 glabels2/src/merge.c src/merge.c +R100 glabels2/src/merge.h src/merge.h +R100 glabels2/src/mini-preview-pixbuf-cache.c +src/mini-preview-pixbuf-cache.c +R100 glabels2/src/mini-preview-pixbuf-cache.h +src/mini-preview-pixbuf-cache.h +R100 glabels2/src/mini-preview-pixbuf.c src/mini-preview-pixbuf.c +R100 glabels2/src/mini-preview-pixbuf.h src/mini-preview-pixbuf.h +R100 glabels2/src/mygal/Makefile.am src/mygal/Makefile.am +R100 glabels2/src/mygal/color-group.c src/mygal/color-group.c +R100 glabels2/src/mygal/color-group.h src/mygal/color-group.h +R100 glabels2/src/mygal/color-palette.c src/mygal/color-palette.c +R100 glabels2/src/mygal/color-palette.h src/mygal/color-palette.h +R100 glabels2/src/mygal/e-colors.c src/mygal/e-colors.c +R100 glabels2/src/mygal/e-colors.h src/mygal/e-colors.h +R100 glabels2/src/mygal/e-marshal.list src/mygal/e-marshal.list +R100 glabels2/src/mygal/e-util.h src/mygal/e-util.h +R100 glabels2/src/mygal/mygal-combo-box.c +src/mygal/mygal-combo-box.c +R100 glabels2/src/mygal/mygal-combo-box.h +src/mygal/mygal-combo-box.h +R100 glabels2/src/mygal/widget-color-combo.c +src/mygal/widget-color-combo.c +R100 glabels2/src/mygal/widget-color-combo.h +src/mygal/widget-color-combo.h +R100 glabels2/src/new-label-dialog.c src/new-label-dialog.c +R100 glabels2/src/new-label-dialog.h src/new-label-dialog.h +R100 glabels2/src/object-editor-bc-page.c +src/object-editor-bc-page.c +R100 glabels2/src/object-editor-data-page.c +src/object-editor-data-page.c +R100 glabels2/src/object-editor-edit-page.c +src/object-editor-edit-page.c +R100 glabels2/src/object-editor-fill-page.c +src/object-editor-fill-page.c +R100 glabels2/src/object-editor-image-page.c +src/object-editor-image-page.c +R100 glabels2/src/object-editor-line-page.c +src/object-editor-line-page.c +R100 glabels2/src/object-editor-lsize-page.c +src/object-editor-lsize-page.c +R100 glabels2/src/object-editor-position-page.c +src/object-editor-position-page.c +R100 glabels2/src/object-editor-private.h +src/object-editor-private.h +R100 glabels2/src/object-editor-shadow-page.c +src/object-editor-shadow-page.c +R100 glabels2/src/object-editor-size-page.c +src/object-editor-size-page.c +R100 glabels2/src/object-editor-text-page.c +src/object-editor-text-page.c +R100 glabels2/src/object-editor.c src/object-editor.c +R100 glabels2/src/object-editor.h src/object-editor.h +R100 glabels2/src/pixbuf-cache.c src/pixbuf-cache.c +R100 glabels2/src/pixbuf-cache.h src/pixbuf-cache.h +R100 glabels2/src/pixmaps/Makefile.am src/pixmaps/Makefile.am +R100 glabels2/src/pixmaps/checkerboard.xpm +src/pixmaps/checkerboard.xpm +R100 glabels2/src/pixmaps/collate.xpm src/pixmaps/collate.xpm +R100 glabels2/src/pixmaps/cursor_barcode.xbm +src/pixmaps/cursor_barcode.xbm +R100 glabels2/src/pixmaps/cursor_barcode_mask.xbm +src/pixmaps/cursor_barcode_mask.xbm +R100 glabels2/src/pixmaps/cursor_box.xbm src/pixmaps/cursor_box.xbm +R100 glabels2/src/pixmaps/cursor_box_mask.xbm +src/pixmaps/cursor_box_mask.xbm +R100 glabels2/src/pixmaps/cursor_ellipse.xbm +src/pixmaps/cursor_ellipse.xbm +R100 glabels2/src/pixmaps/cursor_ellipse_mask.xbm +src/pixmaps/cursor_ellipse_mask.xbm +R100 glabels2/src/pixmaps/cursor_image.xbm +src/pixmaps/cursor_image.xbm +R100 glabels2/src/pixmaps/cursor_image_mask.xbm +src/pixmaps/cursor_image_mask.xbm +R100 glabels2/src/pixmaps/cursor_line.xbm +src/pixmaps/cursor_line.xbm +R100 glabels2/src/pixmaps/cursor_line_mask.xbm +src/pixmaps/cursor_line_mask.xbm +R100 glabels2/src/pixmaps/cursor_text.xbm +src/pixmaps/cursor_text.xbm +R100 glabels2/src/pixmaps/cursor_text_mask.xbm +src/pixmaps/cursor_text_mask.xbm +R100 glabels2/src/pixmaps/nocollate.xpm src/pixmaps/nocollate.xpm +R100 glabels2/src/prefs-dialog.c src/prefs-dialog.c +R100 glabels2/src/prefs-dialog.h src/prefs-dialog.h +R100 glabels2/src/prefs-model.c src/prefs-model.c +R100 glabels2/src/prefs-model.h src/prefs-model.h +R100 glabels2/src/prefs.c src/prefs.c +R100 glabels2/src/prefs.h src/prefs.h +R100 glabels2/src/print-op.c src/print-op.c +R100 glabels2/src/print-op.h src/print-op.h +R100 glabels2/src/print.c src/print.c +R100 glabels2/src/print.h src/print.h +R100 glabels2/src/recent.c src/recent.c +R100 glabels2/src/recent.h src/recent.h +R100 glabels2/src/stock-pixmaps/Makefile.am +src/stock-pixmaps/Makefile.am +R100 glabels2/src/stock-pixmaps/stock_align_bottom_16.png +src/stock-pixmaps/stock_align_bottom_16.png +R100 glabels2/src/stock-pixmaps/stock_align_hcenter_16.png +src/stock-pixmaps/stock_align_hcenter_16.png +R100 glabels2/src/stock-pixmaps/stock_align_left_16.png +src/stock-pixmaps/stock_align_left_16.png +R100 glabels2/src/stock-pixmaps/stock_align_right_16.png +src/stock-pixmaps/stock_align_right_16.png +R100 glabels2/src/stock-pixmaps/stock_align_top_16.png +src/stock-pixmaps/stock_align_top_16.png +R100 glabels2/src/stock-pixmaps/stock_align_vcenter_16.png +src/stock-pixmaps/stock_align_vcenter_16.png +R100 glabels2/src/stock-pixmaps/stock_arrow_16.png +src/stock-pixmaps/stock_arrow_16.png +R100 glabels2/src/stock-pixmaps/stock_arrow_24.png +src/stock-pixmaps/stock_arrow_24.png +R100 glabels2/src/stock-pixmaps/stock_barcode_16.png +src/stock-pixmaps/stock_barcode_16.png +R100 glabels2/src/stock-pixmaps/stock_barcode_24.png +src/stock-pixmaps/stock_barcode_24.png +R100 glabels2/src/stock-pixmaps/stock_box_16.png +src/stock-pixmaps/stock_box_16.png +R100 glabels2/src/stock-pixmaps/stock_box_24.png +src/stock-pixmaps/stock_box_24.png +R100 glabels2/src/stock-pixmaps/stock_bucket_fill_16.png +src/stock-pixmaps/stock_bucket_fill_16.png +R100 glabels2/src/stock-pixmaps/stock_bucket_fill_24.png +src/stock-pixmaps/stock_bucket_fill_24.png +R100 glabels2/src/stock-pixmaps/stock_center_horiz_16.png +src/stock-pixmaps/stock_center_horiz_16.png +R100 glabels2/src/stock-pixmaps/stock_center_vert_16.png +src/stock-pixmaps/stock_center_vert_16.png +R100 glabels2/src/stock-pixmaps/stock_ellipse_16.png +src/stock-pixmaps/stock_ellipse_16.png +R100 glabels2/src/stock-pixmaps/stock_ellipse_24.png +src/stock-pixmaps/stock_ellipse_24.png +R100 glabels2/src/stock-pixmaps/stock_flip_horiz_16.png +src/stock-pixmaps/stock_flip_horiz_16.png +R100 glabels2/src/stock-pixmaps/stock_flip_vert_16.png +src/stock-pixmaps/stock_flip_vert_16.png +R100 glabels2/src/stock-pixmaps/stock_hchain_24.png +src/stock-pixmaps/stock_hchain_24.png +R100 glabels2/src/stock-pixmaps/stock_hchain_broken_24.png +src/stock-pixmaps/stock_hchain_broken_24.png +R100 glabels2/src/stock-pixmaps/stock_image_16.png +src/stock-pixmaps/stock_image_16.png +R100 glabels2/src/stock-pixmaps/stock_image_24.png +src/stock-pixmaps/stock_image_24.png +R100 glabels2/src/stock-pixmaps/stock_line_16.png +src/stock-pixmaps/stock_line_16.png +R100 glabels2/src/stock-pixmaps/stock_line_24.png +src/stock-pixmaps/stock_line_24.png +R100 glabels2/src/stock-pixmaps/stock_merge_16.png +src/stock-pixmaps/stock_merge_16.png +R100 glabels2/src/stock-pixmaps/stock_merge_24.png +src/stock-pixmaps/stock_merge_24.png +R100 glabels2/src/stock-pixmaps/stock_order_bottom_16.png +src/stock-pixmaps/stock_order_bottom_16.png +R100 glabels2/src/stock-pixmaps/stock_order_top_16.png +src/stock-pixmaps/stock_order_top_16.png +R100 glabels2/src/stock-pixmaps/stock_pencil_16.png +src/stock-pixmaps/stock_pencil_16.png +R100 glabels2/src/stock-pixmaps/stock_pencil_24.png +src/stock-pixmaps/stock_pencil_24.png +R100 glabels2/src/stock-pixmaps/stock_properties_16.png +src/stock-pixmaps/stock_properties_16.png +R100 glabels2/src/stock-pixmaps/stock_properties_24.png +src/stock-pixmaps/stock_properties_24.png +R100 glabels2/src/stock-pixmaps/stock_rotate_left_16.png +src/stock-pixmaps/stock_rotate_left_16.png +R100 glabels2/src/stock-pixmaps/stock_rotate_right_16.png +src/stock-pixmaps/stock_rotate_right_16.png +R100 glabels2/src/stock-pixmaps/stock_text_16.png +src/stock-pixmaps/stock_text_16.png +R100 glabels2/src/stock-pixmaps/stock_text_24.png +src/stock-pixmaps/stock_text_24.png +R100 glabels2/src/stock-pixmaps/stock_vchain_24.png +src/stock-pixmaps/stock_vchain_24.png +R100 glabels2/src/stock-pixmaps/stock_vchain_broken_24.png +src/stock-pixmaps/stock_vchain_broken_24.png +R100 glabels2/src/stock.c src/stock.c +R100 glabels2/src/stock.h src/stock.h +R100 glabels2/src/template-designer.c src/template-designer.c +R100 glabels2/src/template-designer.h src/template-designer.h +R100 glabels2/src/text-node.c src/text-node.c +R100 glabels2/src/text-node.h src/text-node.h +R100 glabels2/src/ui-commands.c src/ui-commands.c +R100 glabels2/src/ui-commands.h src/ui-commands.h +R100 glabels2/src/ui-property-bar.c src/ui-property-bar.c +R100 glabels2/src/ui-property-bar.h src/ui-property-bar.h +R100 glabels2/src/ui-sidebar.c src/ui-sidebar.c +R100 glabels2/src/ui-sidebar.h src/ui-sidebar.h +R100 glabels2/src/ui-util.c src/ui-util.c +R100 glabels2/src/ui-util.h src/ui-util.h +R100 glabels2/src/ui.c src/ui.c +R100 glabels2/src/ui.h src/ui.h +R100 glabels2/src/util.c src/util.c +R100 glabels2/src/util.h src/util.h +R100 glabels2/src/view-barcode.c src/view-barcode.c +R100 glabels2/src/view-barcode.h src/view-barcode.h +R100 glabels2/src/view-box.c src/view-box.c +R100 glabels2/src/view-box.h src/view-box.h +R100 glabels2/src/view-ellipse.c src/view-ellipse.c +R100 glabels2/src/view-ellipse.h src/view-ellipse.h +R100 glabels2/src/view-image.c src/view-image.c +R100 glabels2/src/view-image.h src/view-image.h +R100 glabels2/src/view-line.c src/view-line.c +R100 glabels2/src/view-line.h src/view-line.h +R100 glabels2/src/view-object.c src/view-object.c +R100 glabels2/src/view-object.h src/view-object.h +R100 glabels2/src/view-text.c src/view-text.c +R100 glabels2/src/view-text.h src/view-text.h +R100 glabels2/src/view.c src/view.c +R100 glabels2/src/view.h src/view.h +R100 glabels2/src/warning-handler.c src/warning-handler.c +R100 glabels2/src/warning-handler.h src/warning-handler.h +R100 glabels2/src/wdgt-chain-button.c src/wdgt-chain-button.c +R100 glabels2/src/wdgt-chain-button.h src/wdgt-chain-button.h +R100 glabels2/src/wdgt-media-select.c src/wdgt-media-select.c +R100 glabels2/src/wdgt-media-select.h src/wdgt-media-select.h +R100 glabels2/src/wdgt-mini-preview.c src/wdgt-mini-preview.c +R100 glabels2/src/wdgt-mini-preview.h src/wdgt-mini-preview.h +R100 glabels2/src/wdgt-print-copies.c src/wdgt-print-copies.c +R100 glabels2/src/wdgt-print-copies.h src/wdgt-print-copies.h +R100 glabels2/src/wdgt-print-merge.c src/wdgt-print-merge.c +R100 glabels2/src/wdgt-print-merge.h src/wdgt-print-merge.h +R100 glabels2/src/wdgt-rotate-label.c src/wdgt-rotate-label.c +R100 glabels2/src/wdgt-rotate-label.h src/wdgt-rotate-label.h +R100 glabels2/src/window.c src/window.c +R100 glabels2/src/window.h src/window.h +R100 glabels2/src/xml-label-04.c src/xml-label-04.c +R100 glabels2/src/xml-label-04.h src/xml-label-04.h +R100 glabels2/src/xml-label.c src/xml-label.c +R100 glabels2/src/xml-label.h src/xml-label.h + +commit d3a72579798314c893e9dd7b9c1dc0927f0a89f6 +Author: Jim Evins +Date: 2009-09-18 + + 2009-09-17 Jim Evins + + * src/stock.c: (add_icons), (add_button_icon): + Use proper free function for GtkIconSource + (gtk_icon_source_free() not g_free()). + Patch provided by Christian Persch . + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@887 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/stock.c + +commit d6ca76c9dbc400c5fb6d53a06213548ec06cb207 +Author: Jim Evins +Date: 2009-09-10 + + 2009-09-09 Jim Evins + + * configure.in: + Deleted help/C/Makefile.am. Fixes "make dist". + * help/Makefile.am: + Removed trailing whitespace. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@881 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in +M glabels2/gtk-doc.make +D glabels2/help/C/Makefile.am +M glabels2/help/Makefile.am + +commit 6aa23570ca0b86c434a605f3c5a283a0f5d22e73 +Author: Mario Blättermann +Date: 2009-09-09 + + Added a translation template for the documentation, + created with the latest xml2po version from gnome-doc-utils v0.17.3 + + Updated German doc translation + + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@879 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/help/de/de.po +A glabels2/help/glabels-help.pot + +commit 681ec7dbf587319f53d3ce59e8e62ac3b16e476c +Author: Mario Blättermann +Date: 2009-09-09 + + Removed unneeded whitespace from subject category in glabels.omf.in. + + Fixed some formatting bugs in glabels.xml. + + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@878 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/help/C/glabels.xml +M glabels2/help/glabels.omf.in + +commit fbdd5f00e6cde15930a2c9fd848bd8a6cc124208 +Author: Mario Blättermann +Date: 2009-09-08 + + Added screenshots to German docs + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@875 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +A glabels2/help/de/figures/main-window-empty.png +A glabels2/help/de/figures/merge-ex1-1.png +A glabels2/help/de/figures/merge-ex1-2.png +A glabels2/help/de/figures/merge-ex1-3.png +A glabels2/help/de/figures/merge-ex1-4.png +A glabels2/help/de/figures/merge-ex2-1.png +A glabels2/help/de/figures/merge-ex2-2.png +A glabels2/help/de/figures/merge-ex2-3.png +A glabels2/help/de/figures/merge-ex2-4.png +A glabels2/help/de/figures/object-editor-sidebar.png +A glabels2/help/de/figures/print-copies.png +A glabels2/help/de/figures/print-merge.png + +commit e17c32e30a18a859fcf20bd5d1b8f791e7b2b946 +Author: Mario Blättermann +Date: 2009-09-08 + + Updated German doc translation + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@874 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/help/de/de.po + +commit 26a4496bb2e3fe0a4320b68147a88e0e52673f7f +Author: Alexandre Prokoudine +Date: 2009-09-08 + + Updated Russian translation + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@873 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/po/ru.po + +commit 86a8bb0c5f86a84dc85a8238cee4e4b4c2ec895f +Author: Jim Evins +Date: 2009-09-01 + + 2009-08-31 Jim Evins + + * po/fr.po: + Updated french translation (Claude Paroz) + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@864 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/po/fr.po + +commit 2fdeef77371533c7ae0f627fa14dd683616b8dd5 +Author: Jim Evins +Date: 2009-05-20 + + 2009-05-19 Jim Evins + + * configure.in: + * po/LINGUAS: + Moved translation list from configure.in to po/LINGUAS. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@853 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in +A glabels2/po/LINGUAS + +commit ad91b41ce563ebe5b0fcb2a86c02d23f697c3790 +Author: Jim Evins +Date: 2009-05-20 + + 2009-05-19 Jim Evins + + * configure.in: + * po/zh_CN.po: + New Chinese translation (Careon + ). + * AUTHORS: + Added above translation to acknowledgements. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@850 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/configure.in +A glabels2/po/zh_CN.po + +commit d9d21f38de54637ea0713406beb5cfd93598369c +Author: Jim Evins +Date: 2009-05-18 + + 2009-05-18 Jim Evins + + * src/prefs-model.c: (gl_prefs_model_load_settings): + Make an educated guess at locale settings when run for the + first time. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@848 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/prefs-model.c + +commit 19a05da1d464dc893cb20d959f1bf7ec150ad08b +Author: Jim Evins +Date: 2009-05-18 + + Deleting file that is unused with last checkin. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@847 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +D glabels2/help/C/glabels-C.omf + +commit 1ef96f18da1704ef0fc131366b456e6dfa345f01 +Author: Jim Evins +Date: 2009-05-18 + + 2009-05-17 Jim Evins + + * Makefile.am: + * configure.in: + * help/C/glabels-C.omf: + * help/C/glabels.xml: + * help/Makefile.am: + * help/de/de.po: + * help/glabels.omf.in: + * po/de.po: + Updated german translation, gnome-doc-utils support and + german translation of glabels manual (Mario Blättermann). + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@844 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/Makefile.am +M glabels2/configure.in +M glabels2/help/C/glabels-C.omf +M glabels2/help/C/glabels.xml +M glabels2/help/Makefile.am +A glabels2/help/de/de.po +A glabels2/help/glabels.omf.in +M glabels2/po/de.po + +commit d06758ddbbea33616952af7ed1f3518782e15361 +Author: Jim Evins +Date: 2009-05-02 + + 2009-05-01 Jim Evins + + * AUTHORS: + * configure.in: + * po/ca.po: + Added catalan translation (David Planella). + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@842 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/configure.in +A glabels2/po/ca.po + +commit 4ce6f965c7c56a4be543898244fd8f330a3ecd24 +Author: Jim Evins +Date: 2009-05-01 + + Release 2.2.5 + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/tags/glabels-2_2_5@841 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +commit b26cfcc7d50b6980fae589120ccca4f2348642d0 +Author: Jim Evins +Date: 2009-04-30 + + 2009-04-29 Jim Evins + + * NEWS: + * configure.in: + * docs/libglabels/libglabels-decl-list.txt: + * gtk-doc.make: + * src/ui-commands.c: (gl_ui_cmd_help_about): + Prepare for 2.2.5 release. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@840 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/NEWS +M glabels2/configure.in +M glabels2/docs/libglabels/libglabels-decl-list.txt +M glabels2/gtk-doc.make +M glabels2/src/ui-commands.c + +commit b3db239b39cf13a96008574884f25f4c3e57d5c3 +Author: Jim Evins +Date: 2009-04-30 + + 2009-04-29 Jim Evins + + * data/templates/avery-iso-templates.xml: + * data/templates/misc-iso-templates.xml: + * data/templates/misc-us-templates.xml: + Make sure new descriptions are marked translatable. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@839 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/templates/avery-iso-templates.xml +M glabels2/data/templates/misc-iso-templates.xml +M glabels2/data/templates/misc-us-templates.xml + +commit 4443dc5d0c2546a028a9cfef97d6ca40a3833d1c +Author: Jim Evins +Date: 2009-04-30 + + 2009-04-29 Jim Evins + + * data/templates/avery-iso-templates.xml: + * data/templates/misc-iso-templates.xml: + * data/templates/misc-us-templates.xml: + Caught up on user submitted templates. + * AUTHORS: + Acknowledgements for above templates. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@837 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/data/templates/avery-iso-templates.xml +M glabels2/data/templates/misc-iso-templates.xml +M glabels2/data/templates/misc-us-templates.xml + +commit 23c906e6a07f047e932d1812be7668e1b312ad5f +Author: Jim Evins +Date: 2009-04-30 + + 2009-04-29 Jim Evins + + * po/de.po: + Updated german translation (Mario Blättermann). + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@836 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +D glabels2/po/ChangeLog +M glabels2/po/de.po + +commit 30da2882aea0fedfe88020c61dc642beee5a0a9d +Author: Jim Evins +Date: 2009-04-29 + + 2009-04-29 Jim Evins + + * src/color.c: (gl_color_to_gdk_color), (gl_color_from_gdk_color): + * src/mygal/widget-color-combo.c: (color_combo_new): + * src/object-editor.c: (gl_object_editor_construct_color_combo): + * src/ui-property-bar.c: + (gl_ui_property_bar_construct_color_combo): + Bug #2760830. Display correct preview color in color + combos when default + color selected. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@834 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/color.c +M glabels2/src/mygal/widget-color-combo.c +M glabels2/src/object-editor.c +M glabels2/src/ui-property-bar.c + +commit 987a9259d51cfe2fbbed149ded2e93c92e0b17ad +Author: Jim Evins +Date: 2009-04-29 + + 2009-04-28 Jim Evins + + * data/glade/object-editor.glade: + * data/glade/prefs-dialog.glade: + * data/glade/property-bar.glade: + * data/glade/template-designer.glade: + * src/wdgt-print-copies.c: (gl_wdgt_print_copies_construct), + (first_spin_cb), (last_spin_cb): + * src/wdgt-print-merge.c: (gl_wdgt_print_merge_construct): + Zero out adjustment->page_size for all spinbuttons. + With gtk-2.14 this causes + many warning and with gtk-2.16 this actually breaks + the spinbuttons. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@833 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glade/object-editor.glade +M glabels2/data/glade/prefs-dialog.glade +M glabels2/data/glade/property-bar.glade +M glabels2/data/glade/template-designer.glade +M glabels2/src/wdgt-print-copies.c +M glabels2/src/wdgt-print-merge.c + +commit ad51cdd46a8bdcb13c0bc4637e81a6d1e80de92c +Author: Jim Evins +Date: 2009-01-08 + + 2009-01-07 Jim Evins + + * src/critical-error-handler.c: (critical_error_handler): + * src/ui-commands.c: (gl_ui_cmd_help_contents): + * src/warning-handler.c: (warning_handler): + * src/view.c: (selection_received_cb): + Compile without warning with additional CFLAGS of + -O1 -Wall -Wformat=2. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@822 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/critical-error-handler.c +M glabels2/src/ui-commands.c +M glabels2/src/view.c +M glabels2/src/warning-handler.c + +commit fad7d2c766ab31ac4f083557d6543ef30fa84115 +Author: Jim Evins +Date: 2009-01-03 + + 2009-01-02 Jim Evins + + * COPYING.README_FIRST: + Fixed typo. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@820 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/COPYING.README_FIRST +M glabels2/ChangeLog + +commit 273e96234241a73a9e1f81de1ea691109025f189 +Author: Jim Evins +Date: 2008-12-28 + + 2008-12-27 Jim Evins + + * data/templates/avery-iso-templates.xml: + * data/templates/avery-other-templates.xml: + * data/templates/avery-us-templates.xml: + * data/templates/brother-other-templates.xml: + * data/templates/misc-iso-templates.xml: + * data/templates/misc-other-templates.xml: + * data/templates/zweckform-iso-templates.xml: + Make sure all descriptions are marked as translatable. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@818 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/templates/avery-iso-templates.xml +M glabels2/data/templates/avery-other-templates.xml +M glabels2/data/templates/avery-us-templates.xml +M glabels2/data/templates/brother-other-templates.xml +M glabels2/data/templates/misc-iso-templates.xml +M glabels2/data/templates/misc-other-templates.xml +M glabels2/data/templates/zweckform-iso-templates.xml + +commit f7097587f69419775838221b7d93d2b84d10ca53 +Author: Jim Evins +Date: 2008-12-28 + + 2008-12-27 Jim Evins + + * de.po: + Updated german translation (Mario Blättermann) + * AUTHORS: + Updated credits to reflect above translation. + * data/glade/object-editor.glade: + * data/glade/prefs-dialog.glade: + * data/glade/template-designer.glade: + Removed "translatable" attribute from whitespace strings, + which are used only to help layout. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@816 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/data/glade/object-editor.glade +M glabels2/data/glade/prefs-dialog.glade +M glabels2/data/glade/template-designer.glade +M glabels2/po/de.po + +commit fcaa5234cf2768a9167bc29a2875c56a146017a9 +Author: Jim Evins +Date: 2008-12-22 + + 2008-12-22 Jim Evins + + * NEWS: + * configure.in: + Prepare for 2.2.4 release. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@812 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/NEWS +M glabels2/configure.in + +commit 1a93a81faad1793bf17bef90238180aa748ee2aa +Author: Jim Evins +Date: 2008-12-22 + + 2008-12-21 Jim Evins + + * data/templates/avery-us-templates.xml: + * data/templates/misc-iso-templates.xml: + A couple of recent template submissions. + * AUTHORS: + Acknowledgements for above templates. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@810 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/data/templates/avery-us-templates.xml +M glabels2/data/templates/misc-iso-templates.xml + +commit eb69c885bee022e5617b4c99e7f6b34de68965a3 +Author: Jim Evins +Date: 2008-12-21 + + 2008-12-21 Jim Evins + + * src/view.c: (motion_notify_event_cb), (button_press_event_cb): + Don't check for handles on aggregate selections. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@808 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/view.c + +commit f87acc99c19ad66b78d6293e887412220a64f189 +Author: Jim Evins +Date: 2008-12-19 + + 2008-12-18 Jim Evins + + * src/view.c: (selection_received_cb): + Fixed paste bug that caused a duplicate phantom + view_object to be created for + each new label_object. This is because the view now + (as of r673) the view + monitiors the label for new objects and creates + view_objects automatically. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@803 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/view.c + +commit 033d3d8b724a44306ab3be30b26a39153d3b44bd +Author: Jim Evins +Date: 2008-12-15 + + 2008-12-14 Jim Evins + + * po/POTFILES.in: + Bug #2395628. Reconciled POTFILES.in with current files. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@802 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/po/POTFILES.in + +commit 85256c10a275c37d1efaa115840f0b7bb1f3d171 +Author: Jim Evins +Date: 2008-12-15 + + 2008-12-14 Jim Evins + + * src/ui.c: (gl_ui_new): + Bug #2395628. Fixed i18n for application shell. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@800 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/ui.c + +commit c8f375d7e8aebd472353953976a629730c857978 +Author: Jim Evins +Date: 2008-12-15 + + 2008-12-14 Jim Evins + + * configure.in: + Bug #2316013. Added PKG_PROG_PKG_CONFIG. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@798 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in + +commit b4abc77732a4daf5ada4cd4da0f945453380db7e +Author: Jim Evins +Date: 2008-11-16 + + 2008-11-15 Jim Evins + + * libglabels/db.c: (lgl_db_register_template): + * libglabels/xml-template.c: + (lgl_xml_template_parse_template_node): + * src/glabels-batch.c: + * src/view-text.c: (gl_view_text_create_button_press_event): + Fixed several issues such as possible use of uninitialized + variables found with "-O1 -Wall". + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@795 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/libglabels/db.c +M glabels2/libglabels/xml-template.c +M glabels2/src/glabels-batch.c +M glabels2/src/view-text.c + +commit eab7333647b997218395f4f30a5a6a18705c7f7c +Author: Jim Evins +Date: 2008-11-10 + + 2008-11-09 Jim Evins + + * data/templates/misc-iso-templates.xml: + Another user submitted template. + + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@793 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/templates/misc-iso-templates.xml + +commit 0fa94b3a05a329adf9ca6b52ca41b56b24e12766 +Author: Jim Evins +Date: 2008-10-28 + + 2008-10-27 Jim Evins + + * data/templates/avery-us-templates.xml: + * data/templates/misc-iso-templates.xml: + * data/templates/zweckform-iso-templates.xml: + Caught up on user submitted templates. + * AUTHORS: + Acknowledgements for above templates. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@789 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/data/templates/avery-us-templates.xml +M glabels2/data/templates/misc-iso-templates.xml +M glabels2/data/templates/zweckform-iso-templates.xml + +commit f3330ba8ef8348e17bcbb5f236507b94b92fb504 +Author: Jim Evins +Date: 2008-10-24 + + 2008-10-23 Jim Evins + + * src/label-text.c: (set_font_family): + * src/object-editor-text-page.c: + (gl_object_editor_prepare_text_page), + (gl_object_editor_set_font_family): + * src/prefs-dialog.c: (construct_object_page), + (update_object_page_from_prefs): + * src/ui-property-bar.c: (gl_ui_property_bar_construct), + (reset_to_default_properties): + * src/util.c: (gl_util_get_font_family_list): + * src/util.h: + Bug #1902275 and Bug #2186214. Cache font list so that + it is not re-created everytime + the list is requested. + * src/object-editor-text-page.c: + (gl_object_editor_set_font_family): + Don't change font-family if it hasn't actually changed. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@787 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/label-text.c +M glabels2/src/object-editor-text-page.c +M glabels2/src/prefs-dialog.c +M glabels2/src/ui-property-bar.c +M glabels2/src/util.c +M glabels2/src/util.h + +commit 6bfe40b9f5e173eae0b7176e9d0ffe3191bd0201 +Author: Jim Evins +Date: 2008-08-30 + + 2008-08-29 Jim Evins + + * src/file.c: (gl_file_open), (gl_file_save_as): + Bug #2069668. Corrected button order in Open and + "Save as" + dialogs. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@782 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/file.c + +commit 9d1db9a86dc38a2828d571e80d2a65f6d28c8ba1 +Author: Jim Evins +Date: 2008-08-19 + + 2008-08-18 Jim Evins + + * NEWS: + * configure.in: + * docs/libglabels/tmpl/paper.sgml: + Prepare for 2.2.3 release. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@779 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/NEWS +M glabels2/configure.in +M glabels2/docs/libglabels/tmpl/paper.sgml +M glabels2/gtk-doc.make + +commit 0cb3511ff16977b4bcaed8127929171ec8560f8d +Author: Jim Evins +Date: 2008-08-17 + + 2008-08-17 Jim Evins + + * data/dtd/glabels-2.2.dtd: + * data/templates/paper-sizes.xml: + * libglabels/db.c: (lgl_db_init): + * libglabels/paper.c: (lgl_paper_new), (lgl_paper_dup), + (lgl_paper_free): + * libglabels/paper.h: + * libglabels/xml-paper.c: (lgl_xml_paper_parse_paper_node): + * src/print-op.c: (set_page_size): + Bug #2049431. Always explicitely set page size. + Added pwg_size field (PWG 5101.1-2002 + size specification) to the libglabels paper database to + allow the page size to be + communicated to GtkPrintOp un-ambiguously. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@778 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/dtd/glabels-2.2.dtd +M glabels2/data/templates/paper-sizes.xml +M glabels2/libglabels/db.c +M glabels2/libglabels/paper.c +M glabels2/libglabels/paper.h +M glabels2/libglabels/xml-paper.c +M glabels2/src/print-op.c + +commit 1e2a5ab9232f284bda98dccaedb6016d6e5f2857 +Author: Jim Evins +Date: 2008-07-26 + + 2008-07-25 Jim Evins + + * src/object-editor-size-page.c: (size_reset_cb), + (gl_object_editor_set_max_size): + Bug #1993550. Set size limits based on longest side + of label. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@775 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/object-editor-size-page.c + +commit db3c2bd3a3b02e607ae60a08f01c2a50da66d7d3 +Author: Jim Evins +Date: 2008-07-20 + + 2008-07-19 Jim Evins + + * configure.in: + * src/mygal/Makefile.am: + Make sure libtool handles library dependencies for mygal + properly. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@773 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in +M glabels2/src/mygal/Makefile.am + +commit d7f7d6bd6d757805359b3e997e2978c0012f54a5 +Author: Jim Evins +Date: 2008-05-22 + + 2008-05-21 Jim Evins + + * src/glabels-batch.c: (main): + Bug #1968653. Initialize prefs subsystem in + glabels-batch. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@771 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/glabels-batch.c + +commit 72928ecdf1b1560209e55c3d64fe6e3dfaa19604 +Author: Jim Evins +Date: 2008-05-10 + + 2008-05-09 Jim Evins + + * data/glade/object-editor.glade: + Bug #1959135. A couple of radio buttons somehow became + ungrouped. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@770 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/glade/object-editor.glade + +commit bff482ebb178677634fd8f1d00d3e777d52d7ba1 +Author: Jim Evins +Date: 2008-04-05 + + 2008-04-04 Jim Evins + + * data/templates/brother-other-templates.xml: + Added categories to existing templates. + * data/templates/misc-other-templates.xml: + Moved dymo templates to their own file. + * data/templates/Makefile.am: + * data/templates/dymo-other-templates.xml: + Additional dymo templates provided by Harald Welte + . + * AUTHORS: + Acknowledgement for above templates. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@765 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/data/templates/Makefile.am +M glabels2/data/templates/brother-other-templates.xml +A glabels2/data/templates/dymo-other-templates.xml +M glabels2/data/templates/misc-other-templates.xml + +commit 77e287c50a70b8f21c1f6168e109ede934eeea15 +Author: Jim Evins +Date: 2008-03-25 + + 2008-03-24 Jim Evins + + * src/xml-label.c: (xml_doc_to_label): + Bug #1872584. Don't refuse to parse label file if + namespace is + unrecognized -- it may be from a newer version of glabels. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@764 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/xml-label.c + +commit da84fe8790466157cac18eed1895cffa20d316d4 +Author: Jim Evins +Date: 2008-03-16 + + 2008-03-15 Jim Evins + + * data/templates/Makefile.am: + * data/templates/brother-other-templates.xml: + Added brother templates. + * src/cairo-markup-path.c: (gl_cairo_markup_margin_rect_path), + (gl_cairo_markup_margin_cd_path): + * src/view.c: (draw_markup_layer): + Fixed markup drawing errors when label is rotated. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@761 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/data/templates/Makefile.am +A glabels2/data/templates/brother-other-templates.xml +M glabels2/src/cairo-markup-path.c +M glabels2/src/view.c + +commit 00e91e339f4184c5af3f026db6da7cb704362fb7 +Author: Jim Evins +Date: 2008-03-04 + + 2008-03-03 Jim Evins + + * configure.in: + * ko.po: + Added korean translation provided by xein@naver.com. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@759 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/configure.in +A glabels2/po/ko.po + +commit 1af444dffebbf48dd36214aee5d2e7ed8e73c8ab +Author: Jim Evins +Date: 2008-02-22 + + 2008-02-21 Jim Evins + + * src/ui.c: + Last minute bug fix for 2.2.2 release. + Fixed typo that prevented "Save" from being deactivated + when + document is not modified. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@754 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/ui.c + +commit c7b72805e8f9e88c788dcd8cb599b11515fac170 +Author: Jim Evins +Date: 2008-02-22 + + 2008-02-21 Jim Evins + + * NEWS: + * configure.in: + Prepare for 2.2.2 release. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@753 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/NEWS +M glabels2/configure.in + +commit 104d0092d40b8bbfef6eb417fdf9ee9c568ab7e3 +Author: Jim Evins +Date: 2008-02-19 + + 2008-02-18 Jim Evins + + * src/prefs-model.c: (gl_prefs_model_save_settings), + (gl_prefs_model_load_settings): + Set default units for file output. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@751 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/prefs-model.c + +commit ef2d442e373bf8f26ff49f1d9e2e4415d3690d15 +Author: Jim Evins +Date: 2008-02-18 + + 2008-02-18 Jim Evins + + * help/C/glabels.xml: + Fixed example template. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@749 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/help/C/glabels.xml + +commit df63b87a2eb63897873851c61c1200334aaccfcb +Author: Jim Evins +Date: 2008-02-17 + + 2008-02-16 Jim Evins + + * AUTHORS: + * data/templates/avery-iso-templates.xml: + * data/templates/avery-us-templates.xml: + * data/templates/misc-iso-templates.xml: + * data/templates/misc-us-templates.xml: + Caught up on user submitted templates. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@747 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/data/templates/avery-iso-templates.xml +M glabels2/data/templates/avery-us-templates.xml +M glabels2/data/templates/misc-iso-templates.xml +M glabels2/data/templates/misc-us-templates.xml + +commit bb17382205e5bae69c7dc96e394b2da864ef3645 +Author: Jim Evins +Date: 2008-02-05 + + 2008-02-04 Jim Evins + + * src/view-image.c: (update_object_from_editor_cb): + Bug #1886438. Don't update the image size unless it + is actually + triggered by a change in image source. The result of + this bug + was that any attempt to edit the size spinboxes, + immediately + reset the size. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@745 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/view-image.c + +commit cd2b98740455cb7a60925aa093fce003ecc8be81 +Author: Jim Evins +Date: 2008-02-03 + + 2008-02-03 Jim Evins + + * src/label-image.c: (gl_label_image_class_init), (set_size): + Enforce minimum size for images. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@744 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/label-image.c + +commit 16f9c5076bfe01daba6a98a6572cee8e69d6375e +Author: Jim Evins +Date: 2008-02-03 + + 2008-02-03 Jim Evins + + * src/object-editor-lsize-page.c: + (gl_object_editor_set_max_lsize): + * src/object-editor-private.h: + * src/object-editor-shadow-page.c: + (gl_object_editor_set_max_shadow_offset): + * src/object-editor-size-page.c: (gl_object_editor_set_max_size): + * src/object-editor.c: (gl_object_editor_finalize), + (gl_object_editor_new), (gl_object_notebook_construct_valist), + (label_changed_cb): + * src/object-editor.h: + * src/ui-sidebar.c: (gl_ui_sidebar_construct): + * src/view-barcode.c: (construct_properties_editor): + * src/view-box.c: (construct_properties_editor): + * src/view-ellipse.c: (construct_properties_editor): + * src/view-image.c: (construct_properties_editor): + * src/view-line.c: (construct_properties_editor): + * src/view-object.c: (gl_view_object_finalize): + * src/view-text.c: (construct_properties_editor): + Move update_editor_from_label callback from individual + view objects + to the object editor, so that signals can be disconnected + when + object editor is finalized. + * src/view-text.c: (gl_view_text_create_button_press_event): + Fixed bug that caused multiple view objects to be created + for a + single text object. This bug would manifest itself as + a crash + when deleting multi-object selections which included + text objects. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@742 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/object-editor-lsize-page.c +M glabels2/src/object-editor-private.h +M glabels2/src/object-editor-shadow-page.c +M glabels2/src/object-editor-size-page.c +M glabels2/src/object-editor.c +M glabels2/src/object-editor.h +M glabels2/src/ui-sidebar.c +M glabels2/src/view-barcode.c +M glabels2/src/view-box.c +M glabels2/src/view-ellipse.c +M glabels2/src/view-image.c +M glabels2/src/view-line.c +M glabels2/src/view-object.c +M glabels2/src/view-text.c + +commit 975cf2793e52a80c09f558064e0987d238b99edf +Author: Jim Evins +Date: 2008-02-01 + + 2008-01-31 Jim Evins + + * src/label-barcode.c: (draw_object): + Fixed rendering problem when "Invalid data" is displayed + when text + object is lower in stacking order. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@739 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/label-barcode.c + +commit 4908a24dc1a5d597a853a4806e791f78b522fafd +Author: Jim Evins +Date: 2008-01-31 + + 2008-01-30 Jim Evins + + * src/label-text.c: (get_size), (draw_object), (draw_shadow): + Don't turn off cairo_hint_metrics. This causes serious + issues with + bitmap fonts. + + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@737 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/label-text.c + +commit c173c24c951943fbdf0a5ecf35b84815ac736fcb +Author: Jim Evins +Date: 2008-01-30 + + 2008-01-29 Jim Evins + + * src/print-op.c: (gl_print_op_construct), + (gl_print_op_construct_batch), (set_page_size): + Explicitly set page size for "other" page sizes. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@735 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/print-op.c + +commit 28c8daaa0657de9c8894a5c9bbad604c8a8a6013 +Author: Jim Evins +Date: 2008-01-26 + + 2008-01-25 Jim Evins + + * src/bc.c: + Fixed Code128C backend parameters. + * src/label-barcode.c: (get_size): + Bug #1766425. If barcode is not renderable with either + input data or default data, use a default size. Also + fixed small leak. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@732 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/bc.c +M glabels2/src/label-barcode.c + +commit 5042beae2d6a1d83f2d0178fe97636b99bedde17 +Author: Jim Evins +Date: 2008-01-23 + + 2008-01-22 Jim Evins + + * NEWS: + * configure.in: + Preparation for 2.2.1 release. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@728 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/NEWS +M glabels2/configure.in + +commit 147a21ba6c21f68b40654752182f6bbf55d06f2a +Author: Jim Evins +Date: 2008-01-17 + + 2008-01-16 Jim Evins + + * src/print.c: (print_label): + Bug #1872568. Don't apply special transforms (rotate and + mirror) to clipping region or outline. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@726 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/print.c + +commit 512e3c088acd3f8a14d8152f7318cbbf17a3cdd8 +Author: Jim Evins +Date: 2008-01-02 + + 2008-01-01 Jim Evins + + * src/util.c: + Sort font lists alphabetically. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@724 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/util.c + +commit 655ca82e016d106d6d884ef2caf8f0434f14221a +Author: Jim Evins +Date: 2008-01-02 + + 2008-01-01 Jim Evins + + * src/merge-evolution.c: + Do a case-insensitive sort. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@722 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/src/merge-evolution.c + +commit 84dd6ce9eb82d51fefcc0f77a104adbf786feea1 +Author: Jim Evins +Date: 2008-01-02 + + 2008-01-01 Jim Evins + + * src/merge-evolution.c: + Sort evolution by "file_under" field. Original patch + provided + by Peter Cherriman + in + Patch #1860423. + * AUTHORS: + Added acknowledgement for above patch. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@720 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/AUTHORS +M glabels2/ChangeLog +M glabels2/src/merge-evolution.c + +commit dce85299fd3989e6636675c39317c7280592d86b +Author: Jim Evins +Date: 2007-12-25 + + 2007-12-25 Jim Evins + + * glabels.spec.in: + Fix spec file. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@715 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +M glabels2/glabels.spec.in + +commit c8dd36d8d3c61487c28560d11f52310d655ab72a +Author: Jim Evins +Date: 2007-12-25 + + 2007-12-25 Jim Evins + + * MESSAGE-OF-DOOM: + Removed for 2.2 stable branch. + * Makefile.am: + * NEWS: + * configure.in: + Prepare for 2.2.0 release. + + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@714 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +M glabels2/ChangeLog +D glabels2/MESSAGE-OF-DOOM +M glabels2/Makefile.am +M glabels2/NEWS +M glabels2/configure.in + +commit ea75118a021e733fa7e2281456581dab61d9c811 +Author: Jim Evins +Date: 2007-12-25 + + Creating glabels-2.2 branch. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@713 + f5e0f49d-192f-0410-a22d-a8d8700d0965 + +A glabels2/AUTHORS +A glabels2/COPYING +A glabels2/COPYING-DOCS +A glabels2/COPYING-LIBGLABELS +A glabels2/COPYING.README_FIRST +A glabels2/ChangeLog +A glabels2/INSTALL +A glabels2/MESSAGE-OF-DOOM +A glabels2/Makefile.am +A glabels2/NEWS +A glabels2/README +A glabels2/TODO +A glabels2/autogen.sh +A glabels2/barcode-0.98/COPYING +A glabels2/barcode-0.98/ChangeLog +A glabels2/barcode-0.98/INSTALL +A glabels2/barcode-0.98/Makefile.am +A glabels2/barcode-0.98/Makefile.in.dist +A glabels2/barcode-0.98/README +A glabels2/barcode-0.98/README.glabels +A glabels2/barcode-0.98/TODO +A glabels2/barcode-0.98/barcode.h +A glabels2/barcode-0.98/barcode.spec +A glabels2/barcode-0.98/bookland/bookland.py +A glabels2/barcode-0.98/cmdline.c +A glabels2/barcode-0.98/cmdline.h +A glabels2/barcode-0.98/codabar.c +A glabels2/barcode-0.98/code128.c +A glabels2/barcode-0.98/code39.c +A glabels2/barcode-0.98/code93.c +A glabels2/barcode-0.98/compat/getopt.c +A glabels2/barcode-0.98/compat/getopt.h +A glabels2/barcode-0.98/configure +A glabels2/barcode-0.98/configure.in.dist +A glabels2/barcode-0.98/contrib/barcode-SVG.tar.gz +A glabels2/barcode-0.98/contrib/barcode-SVG.tar.gz.README +A glabels2/barcode-0.98/contrib/barcode-for-delphi.tar.gz +A glabels2/barcode-0.98/contrib/barcode-for-delphi.tar.gz.README +A glabels2/barcode-0.98/contrib/barcodeps-0.1.tgz +A glabels2/barcode-0.98/contrib/barcodeps-0.1.tgz.README +A glabels2/barcode-0.98/contrib/grab-0.0.4.tar.gz +A glabels2/barcode-0.98/contrib/grab-0.0.4.tar.gz.README +A glabels2/barcode-0.98/debian/README.debian +A glabels2/barcode-0.98/debian/changelog +A glabels2/barcode-0.98/debian/control +A glabels2/barcode-0.98/debian/copyright +A glabels2/barcode-0.98/debian/dirs +A glabels2/barcode-0.98/debian/info +A glabels2/barcode-0.98/debian/rules +A glabels2/barcode-0.98/doc/Makefile.in +A glabels2/barcode-0.98/doc/README +A glabels2/barcode-0.98/doc/barcode.info +A glabels2/barcode-0.98/doc/barcode.pdf +A glabels2/barcode-0.98/doc/barcode.ps +A glabels2/barcode-0.98/doc/barcodedoc.txt +A glabels2/barcode-0.98/doc/doc.barcode +A glabels2/barcode-0.98/doc/infofilter +A glabels2/barcode-0.98/doc/manpager +A glabels2/barcode-0.98/doc/mktxt +A glabels2/barcode-0.98/doc/texi2html +A glabels2/barcode-0.98/ean.c +A glabels2/barcode-0.98/i25.c +A glabels2/barcode-0.98/install-sh +A glabels2/barcode-0.98/library.c +A glabels2/barcode-0.98/main.c +A glabels2/barcode-0.98/missing +A glabels2/barcode-0.98/mkinstalldirs +A glabels2/barcode-0.98/msi.c +A glabels2/barcode-0.98/pcl.c +A glabels2/barcode-0.98/plessey.c +A glabels2/barcode-0.98/ps.c +A glabels2/barcode-0.98/sample.c +A glabels2/configure.in +A glabels2/data/Makefile.am +A glabels2/data/desktop/Makefile.am +A glabels2/data/desktop/glabels.desktop.in +A glabels2/data/dtd/Makefile.am +A glabels2/data/dtd/glabels-2.2.dtd +A glabels2/data/glade/Makefile.am +A glabels2/data/glade/merge-properties-dialog.glade +A glabels2/data/glade/new-label-dialog.glade +A glabels2/data/glade/object-editor.glade +A glabels2/data/glade/prefs-dialog.glade +A glabels2/data/glade/print-custom-widget.glade +A glabels2/data/glade/property-bar.glade +A glabels2/data/glade/template-designer.glade +A glabels2/data/glade/wdgt-media-select.glade +A glabels2/data/glade/wdgt-rotate-label.glade +A glabels2/data/man/Makefile.am +A glabels2/data/man/glabels.1 +A glabels2/data/mime/Makefile.am +A glabels2/data/mime/glabels.applications +A glabels2/data/mime/glabels.keys.in +A glabels2/data/mime/glabels.mime +A glabels2/data/mime/glabels.xml.in +A glabels2/data/pixmaps/Makefile.am +A glabels2/data/pixmaps/ex-1layout.png +A glabels2/data/pixmaps/ex-2layouts.png +A glabels2/data/pixmaps/ex-cd-size.png +A glabels2/data/pixmaps/ex-rect-size.png +A glabels2/data/pixmaps/ex-round-size.png +A glabels2/data/pixmaps/glabels-about-logo.png +A glabels2/data/pixmaps/glabels-application-x-glabels.png +A glabels2/data/pixmaps/glabels-splash.png +A glabels2/data/pixmaps/glabels.png +A glabels2/data/templates/Makefile.am +A glabels2/data/templates/avery-iso-templates.xml +A glabels2/data/templates/avery-other-templates.xml +A glabels2/data/templates/avery-us-templates.xml +A glabels2/data/templates/categories.xml +A glabels2/data/templates/misc-iso-templates.xml +A glabels2/data/templates/misc-other-templates.xml +A glabels2/data/templates/misc-us-templates.xml +A glabels2/data/templates/paper-sizes.xml +A glabels2/data/templates/zweckform-iso-templates.xml +A glabels2/docs/Makefile.am +A glabels2/docs/libglabels/Makefile.am +A glabels2/docs/libglabels/libglabels-decl-list.txt +A glabels2/docs/libglabels/libglabels-docs.sgml +A glabels2/docs/libglabels/libglabels-overrides.txt +A glabels2/docs/libglabels/libglabels-sections.txt +A glabels2/docs/libglabels/libglabels-undocumented.txt +A glabels2/docs/libglabels/libglabels.types +A glabels2/docs/libglabels/tmpl/category.sgml +A glabels2/docs/libglabels/tmpl/db.sgml +A glabels2/docs/libglabels/tmpl/enums.sgml +A glabels2/docs/libglabels/tmpl/libglabels-unused.sgml +A glabels2/docs/libglabels/tmpl/libglabels.sgml +A glabels2/docs/libglabels/tmpl/paper.sgml +A glabels2/docs/libglabels/tmpl/str.sgml +A glabels2/docs/libglabels/tmpl/template.sgml +A glabels2/docs/libglabels/tmpl/xml-category.sgml +A glabels2/docs/libglabels/tmpl/xml-paper.sgml +A glabels2/docs/libglabels/tmpl/xml-template.sgml +A glabels2/docs/libglabels/tmpl/xml.sgml +A glabels2/glabels.spec.in +A glabels2/gtk-doc.make +A glabels2/help/C/Makefile.am +A glabels2/help/C/figures/glabels-template-cd.png +A glabels2/help/C/figures/glabels-template-label.png +A glabels2/help/C/figures/glabels-template-layout.png +A glabels2/help/C/figures/main-window-empty.png +A glabels2/help/C/figures/merge-ex1-1.png +A glabels2/help/C/figures/merge-ex1-2.png +A glabels2/help/C/figures/merge-ex1-3.png +A glabels2/help/C/figures/merge-ex1-4.png +A glabels2/help/C/figures/merge-ex2-1.png +A glabels2/help/C/figures/merge-ex2-2.png +A glabels2/help/C/figures/merge-ex2-3.png +A glabels2/help/C/figures/merge-ex2-4.png +A glabels2/help/C/figures/object-editor-sidebar.png +A glabels2/help/C/figures/print-copies.png +A glabels2/help/C/figures/print-merge.png +A glabels2/help/C/glabels-C.omf +A glabels2/help/C/glabels.xml +A glabels2/help/C/legal.xml +A glabels2/help/Makefile.am +A glabels2/iec16022-0.2.1/BUGS +A glabels2/iec16022-0.2.1/CHANGELOG +A glabels2/iec16022-0.2.1/CREDITS +A glabels2/iec16022-0.2.1/INSTALL +A glabels2/iec16022-0.2.1/LICENSE +A glabels2/iec16022-0.2.1/Makefile.am +A glabels2/iec16022-0.2.1/Makefile.dist +A glabels2/iec16022-0.2.1/README +A glabels2/iec16022-0.2.1/README.glabels +A glabels2/iec16022-0.2.1/TODO +A glabels2/iec16022-0.2.1/iec16022.1 +A glabels2/iec16022-0.2.1/iec16022.c +A glabels2/iec16022-0.2.1/iec16022ecc200.c +A glabels2/iec16022-0.2.1/iec16022ecc200.h +A glabels2/iec16022-0.2.1/image.c +A glabels2/iec16022-0.2.1/image.h +A glabels2/iec16022-0.2.1/reedsol.c +A glabels2/iec16022-0.2.1/reedsol.h +A glabels2/iec16022-0.2.1/test/testsuite-example.bin +A glabels2/iec16022-0.2.1/test/testsuite-example.eps +A glabels2/iec16022-0.2.1/test/testsuite-example.hex +A glabels2/iec16022-0.2.1/test/testsuite-example.png +A glabels2/iec16022-0.2.1/test/testsuite-example.text +A glabels2/iec16022-0.2.1/test/testsuite.sh +A glabels2/libglabels/Makefile.am +A glabels2/libglabels/category.c +A glabels2/libglabels/category.h +A glabels2/libglabels/db.c +A glabels2/libglabels/db.h +A glabels2/libglabels/enums.h +A glabels2/libglabels/libglabels-private.h +A glabels2/libglabels/libglabels.h +A glabels2/libglabels/libglabels.pc.in +A glabels2/libglabels/paper.c +A glabels2/libglabels/paper.h +A glabels2/libglabels/str.c +A glabels2/libglabels/str.h +A glabels2/libglabels/template.c +A glabels2/libglabels/template.h +A glabels2/libglabels/xml-category.c +A glabels2/libglabels/xml-category.h +A glabels2/libglabels/xml-paper.c +A glabels2/libglabels/xml-paper.h +A glabels2/libglabels/xml-template.c +A glabels2/libglabels/xml-template.h +A glabels2/libglabels/xml.c +A glabels2/libglabels/xml.h +A glabels2/po/ChangeLog +A glabels2/po/POTFILES.in +A glabels2/po/cs.po +A glabels2/po/de.po +A glabels2/po/eo.po +A glabels2/po/es.po +A glabels2/po/fr.po +A glabels2/po/it.po +A glabels2/po/ja.po +A glabels2/po/pl.po +A glabels2/po/pt_BR.po +A glabels2/po/ru.po +A glabels2/po/zh_TW.Big5.po +A glabels2/src/Makefile.am +A glabels2/src/base64.c +A glabels2/src/base64.h +A glabels2/src/bc-gnubarcode.c +A glabels2/src/bc-gnubarcode.h +A glabels2/src/bc-iec16022.c +A glabels2/src/bc-iec16022.h +A glabels2/src/bc-postnet.c +A glabels2/src/bc-postnet.h +A glabels2/src/bc.c +A glabels2/src/bc.h +A glabels2/src/cairo-ellipse-path.c +A glabels2/src/cairo-ellipse-path.h +A glabels2/src/cairo-label-path.c +A glabels2/src/cairo-label-path.h +A glabels2/src/cairo-markup-path.c +A glabels2/src/cairo-markup-path.h +A glabels2/src/color.c +A glabels2/src/color.h +A glabels2/src/critical-error-handler.c +A glabels2/src/critical-error-handler.h +A glabels2/src/debug.c +A glabels2/src/debug.h +A glabels2/src/file.c +A glabels2/src/file.h +A glabels2/src/glabels-batch.c +A glabels2/src/glabels.c +A glabels2/src/hig.h +A glabels2/src/label-barcode.c +A glabels2/src/label-barcode.h +A glabels2/src/label-box.c +A glabels2/src/label-box.h +A glabels2/src/label-ellipse.c +A glabels2/src/label-ellipse.h +A glabels2/src/label-image.c +A glabels2/src/label-image.h +A glabels2/src/label-line.c +A glabels2/src/label-line.h +A glabels2/src/label-object.c +A glabels2/src/label-object.h +A glabels2/src/label-text.c +A glabels2/src/label-text.h +A glabels2/src/label.c +A glabels2/src/label.h +A glabels2/src/marshal.list +A glabels2/src/merge-evolution.c +A glabels2/src/merge-evolution.h +A glabels2/src/merge-init.c +A glabels2/src/merge-init.h +A glabels2/src/merge-properties-dialog.c +A glabels2/src/merge-properties-dialog.h +A glabels2/src/merge-text.c +A glabels2/src/merge-text.h +A glabels2/src/merge-vcard.c +A glabels2/src/merge-vcard.h +A glabels2/src/merge.c +A glabels2/src/merge.h +A glabels2/src/mini-preview-pixbuf-cache.c +A glabels2/src/mini-preview-pixbuf-cache.h +A glabels2/src/mini-preview-pixbuf.c +A glabels2/src/mini-preview-pixbuf.h +A glabels2/src/mygal/Makefile.am +A glabels2/src/mygal/color-group.c +A glabels2/src/mygal/color-group.h +A glabels2/src/mygal/color-palette.c +A glabels2/src/mygal/color-palette.h +A glabels2/src/mygal/e-colors.c +A glabels2/src/mygal/e-colors.h +A glabels2/src/mygal/e-marshal.list +A glabels2/src/mygal/e-util.h +A glabels2/src/mygal/mygal-combo-box.c +A glabels2/src/mygal/mygal-combo-box.h +A glabels2/src/mygal/widget-color-combo.c +A glabels2/src/mygal/widget-color-combo.h +A glabels2/src/new-label-dialog.c +A glabels2/src/new-label-dialog.h +A glabels2/src/object-editor-bc-page.c +A glabels2/src/object-editor-data-page.c +A glabels2/src/object-editor-edit-page.c +A glabels2/src/object-editor-fill-page.c +A glabels2/src/object-editor-image-page.c +A glabels2/src/object-editor-line-page.c +A glabels2/src/object-editor-lsize-page.c +A glabels2/src/object-editor-position-page.c +A glabels2/src/object-editor-private.h +A glabels2/src/object-editor-shadow-page.c +A glabels2/src/object-editor-size-page.c +A glabels2/src/object-editor-text-page.c +A glabels2/src/object-editor.c +A glabels2/src/object-editor.h +A glabels2/src/pixbuf-cache.c +A glabels2/src/pixbuf-cache.h +A glabels2/src/pixmaps/Makefile.am +A glabels2/src/pixmaps/checkerboard.xpm +A glabels2/src/pixmaps/collate.xpm +A glabels2/src/pixmaps/cursor_barcode.xbm +A glabels2/src/pixmaps/cursor_barcode_mask.xbm +A glabels2/src/pixmaps/cursor_box.xbm +A glabels2/src/pixmaps/cursor_box_mask.xbm +A glabels2/src/pixmaps/cursor_ellipse.xbm +A glabels2/src/pixmaps/cursor_ellipse_mask.xbm +A glabels2/src/pixmaps/cursor_image.xbm +A glabels2/src/pixmaps/cursor_image_mask.xbm +A glabels2/src/pixmaps/cursor_line.xbm +A glabels2/src/pixmaps/cursor_line_mask.xbm +A glabels2/src/pixmaps/cursor_text.xbm +A glabels2/src/pixmaps/cursor_text_mask.xbm +A glabels2/src/pixmaps/nocollate.xpm +A glabels2/src/prefs-dialog.c +A glabels2/src/prefs-dialog.h +A glabels2/src/prefs-model.c +A glabels2/src/prefs-model.h +A glabels2/src/prefs.c +A glabels2/src/prefs.h +A glabels2/src/print-op.c +A glabels2/src/print-op.h +A glabels2/src/print.c +A glabels2/src/print.h +A glabels2/src/recent.c +A glabels2/src/recent.h +A glabels2/src/stock-pixmaps/Makefile.am +A glabels2/src/stock-pixmaps/stock_align_bottom_16.png +A glabels2/src/stock-pixmaps/stock_align_hcenter_16.png +A glabels2/src/stock-pixmaps/stock_align_left_16.png +A glabels2/src/stock-pixmaps/stock_align_right_16.png +A glabels2/src/stock-pixmaps/stock_align_top_16.png +A glabels2/src/stock-pixmaps/stock_align_vcenter_16.png +A glabels2/src/stock-pixmaps/stock_arrow_16.png +A glabels2/src/stock-pixmaps/stock_arrow_24.png +A glabels2/src/stock-pixmaps/stock_barcode_16.png +A glabels2/src/stock-pixmaps/stock_barcode_24.png +A glabels2/src/stock-pixmaps/stock_box_16.png +A glabels2/src/stock-pixmaps/stock_box_24.png +A glabels2/src/stock-pixmaps/stock_bucket_fill_16.png +A glabels2/src/stock-pixmaps/stock_bucket_fill_24.png +A glabels2/src/stock-pixmaps/stock_center_horiz_16.png +A glabels2/src/stock-pixmaps/stock_center_vert_16.png +A glabels2/src/stock-pixmaps/stock_ellipse_16.png +A glabels2/src/stock-pixmaps/stock_ellipse_24.png +A glabels2/src/stock-pixmaps/stock_flip_horiz_16.png +A glabels2/src/stock-pixmaps/stock_flip_vert_16.png +A glabels2/src/stock-pixmaps/stock_hchain_24.png +A glabels2/src/stock-pixmaps/stock_hchain_broken_24.png +A glabels2/src/stock-pixmaps/stock_image_16.png +A glabels2/src/stock-pixmaps/stock_image_24.png +A glabels2/src/stock-pixmaps/stock_line_16.png +A glabels2/src/stock-pixmaps/stock_line_24.png +A glabels2/src/stock-pixmaps/stock_merge_16.png +A glabels2/src/stock-pixmaps/stock_merge_24.png +A glabels2/src/stock-pixmaps/stock_order_bottom_16.png +A glabels2/src/stock-pixmaps/stock_order_top_16.png +A glabels2/src/stock-pixmaps/stock_pencil_16.png +A glabels2/src/stock-pixmaps/stock_pencil_24.png +A glabels2/src/stock-pixmaps/stock_properties_16.png +A glabels2/src/stock-pixmaps/stock_properties_24.png +A glabels2/src/stock-pixmaps/stock_rotate_left_16.png +A glabels2/src/stock-pixmaps/stock_rotate_right_16.png +A glabels2/src/stock-pixmaps/stock_text_16.png +A glabels2/src/stock-pixmaps/stock_text_24.png +A glabels2/src/stock-pixmaps/stock_vchain_24.png +A glabels2/src/stock-pixmaps/stock_vchain_broken_24.png +A glabels2/src/stock.c +A glabels2/src/stock.h +A glabels2/src/template-designer.c +A glabels2/src/template-designer.h +A glabels2/src/text-node.c +A glabels2/src/text-node.h +A glabels2/src/ui-commands.c +A glabels2/src/ui-commands.h +A glabels2/src/ui-property-bar.c +A glabels2/src/ui-property-bar.h +A glabels2/src/ui-sidebar.c +A glabels2/src/ui-sidebar.h +A glabels2/src/ui-util.c +A glabels2/src/ui-util.h +A glabels2/src/ui.c +A glabels2/src/ui.h +A glabels2/src/util.c +A glabels2/src/util.h +A glabels2/src/view-barcode.c +A glabels2/src/view-barcode.h +A glabels2/src/view-box.c +A glabels2/src/view-box.h +A glabels2/src/view-ellipse.c +A glabels2/src/view-ellipse.h +A glabels2/src/view-image.c +A glabels2/src/view-image.h +A glabels2/src/view-line.c +A glabels2/src/view-line.h +A glabels2/src/view-object.c +A glabels2/src/view-object.h +A glabels2/src/view-text.c +A glabels2/src/view-text.h +A glabels2/src/view.c +A glabels2/src/view.h +A glabels2/src/warning-handler.c +A glabels2/src/warning-handler.h +A glabels2/src/wdgt-chain-button.c +A glabels2/src/wdgt-chain-button.h +A glabels2/src/wdgt-media-select.c +A glabels2/src/wdgt-media-select.h +A glabels2/src/wdgt-mini-preview.c +A glabels2/src/wdgt-mini-preview.h +A glabels2/src/wdgt-print-copies.c +A glabels2/src/wdgt-print-copies.h +A glabels2/src/wdgt-print-merge.c +A glabels2/src/wdgt-print-merge.h +A glabels2/src/wdgt-rotate-label.c +A glabels2/src/wdgt-rotate-label.h +A glabels2/src/window.c +A glabels2/src/window.h +A glabels2/src/xml-label-04.c +A glabels2/src/xml-label-04.h +A glabels2/src/xml-label.c +A glabels2/src/xml-label.h + +commit aa41cfa57d2ea352fee26bbacfcd6ac919f1ee76 +Author: Jim Evins +Date: 2007-12-25 + + Creating glabels-2.2 branch. + + git-svn-id: + https://glabels.svn.sourceforge.net/svnroot/glabels/branches/glabels-2_2@712 + f5e0f49d-192f-0410-a22d-a8d8700d0965 diff --git a/ChangeLog.pre-2.2 b/ChangeLog.pre-2.2 new file mode 100644 index 00000000..1177cf67 --- /dev/null +++ b/ChangeLog.pre-2.2 @@ -0,0 +1,3891 @@ +2007-12-21 Jim Evins + + * COPYING.LIBGLABELS: + * COPYING.README_FIRST: + * README: + Updating license information to make more complete and understandable. + +2007-12-16 Jim Evins + + * configure.in: + Updated version to 2.pre2. + * help/C/glabels.xml: + Updated documentation. + * src/ui-commands.c: (gl_ui_cmd_help_about): + Updated copyright string. + +2007-12-15 Jim Evins + + * data/glade/object-editor.glade: + Removed any GtkTable that contained a GtkComboBox because the size of + the combo box was not constrained properly. This sacrifices the nice + orderly labels for combo boxes that don't extend beyond the edge of the + window. + +2007-12-15 Jim Evins + + * libglabels/db.c: (lgl_db_lookup_template_from_name): + * src/object-editor.c: (gl_object_editor_finalize): + * src/wdgt-media-select.c: (gl_wdgt_media_select_finalize): + Fixed several small memory leaks. + +2007-12-14 Jim Evins + + * libglabels/db.c: + Optimize template search by name by using a GHashTable. + * src/mini-preview-pixbuf-cache.c: + * src/mini-preview-pixbuf-cache.h: + Store one pixbuf per template, but use a key for each alias. + * src/wdgt-media-select.c: + Optimize loading of tree data, thus optimizing the "new label" dialog. + +2007-12-12 Jim Evins + + * data/templates/avery-us-templates.xml: + More templates and aliases. + +2007-12-08 Jim Evins + + * TODO: + More prep for 2.1.5/2.2.0. + +2007-12-08 Jim Evins + + * NEWS: + * README: + * TODO: + * configure.in: + Preparation for 2.1.5. + +2007-12-08 Jim Evins + + * docs/libglabels/libglabels-decl-list.txt: + * docs/libglabels/libglabels-docs.sgml: + * docs/libglabels/libglabels-sections.txt: + * docs/libglabels/libglabels-undocumented.txt: + * docs/libglabels/tmpl/db.sgml: + * docs/libglabels/tmpl/str.sgml: + * libglabels/str.c: + Documentation cleanup for libglabels. + +2007-11-29 Jim Evins + + * libglabels/db.h: + * libglabels/db.c: + Added lgl_db_does_template_name_exist(). + In lgl_db_lookup_template_from_name() substitute brand/part of new template from + requested alias. + * src/prefs-model.c: + Proof read recent templates -- make sure they still exist. + * src/wdgt-media-select.c: + Default to "search all templates" tab if no recent templates found. + +2007-11-28 Jim Evins + + * data/glade/wdgt-media-select.glade: + * src/wdgt-media-select.c: + Added tabbed notebook to allow selection of recent template versus searching the + entire database. + + +2007-11-26 Jim Evins + + * libglabels/Makefile.am: + * libglabels/libglabels.h: + Make str.h public. + * src/label.c: + * src/prefs-dialog.c: + * src/prefs-model.c: + * src/prefs-model.h: + * src/prefs.c: + * src/prefs.h: + Added tracking of recently used templates. + +2007-11-20 Jim Evins + + * data/glade/template-designer.glade: + * src/template-designer.c: + Added warning icon when match brand and part match an existing template. + +2007-11-18 Jim Evins + + * libglabels/Makefile.am: + * libglabels/str.h: + * libglabels/str.c: + Added lgl_str_utf8_casecmp(). + * libglabels/libglabels-private.h: + Use lgl_str_utf8_casecmp() for UTF8_EQUAL macro -- do case insensitive comparisons. + * libglabels/db.c: (lgl_db_get_brand_list): + Use lgl_str_utf8_casecmp() to determine if we have seen brand before when building + brand list. + +2007-11-18 Jim Evins + + * data/glade/template-designer.glade: + * src/template-designer.c: + Don't advance past name page, if brand and part match an existing template. + +2007-11-18 Jim Evins + + * libglabels/db.c: (lgl_db_register_template), (read_templates): + When registering a new template, don't add to "User defined" category before + writing to file. Add to "User defined" category when reading from "~/.glabels" + directory instead. This will allow legacy templates (and manually created + templates) to be automatically added to the "user defined" category. + * libglabels/xml-template.c: + (lgl_xml_template_create_template_node): + Fixed typo/bug causing brand to be wrong. + +2007-11-16 Jim Evins + + * libglabels/db.c: + * libglabels/db.h: + Added return codes to lgl_db_register_template(). Added lgl_db_does_template_exist() + function. Automatically create "User defined" category and add to all user + registered templates. + * libglabels/xml-template.c: + * libglabels/xml-template.h: + Return number of bytes written from lgl_xml_template_write_templates_to_file() and + lgl_xml_template_write_template_to_file(). + * docs/libglabels/libglabels-decl-list.txt: + * docs/libglabels/libglabels-sections.txt: + * docs/libglabels/libglabels-undocumented.txt: + * docs/libglabels/tmpl/db.sgml: + * docs/libglabels/tmpl/xml-template.sgml: + Update documentation to reflect above changes. + +2007-10-28 Jim Evins + + * libglabels/xml-template.c: + Remove any leading white space from part #s when parsing old names. + * src/mini-preview-pixbuf-cache.c: + If name isn't in cache add it. + +2007-10-26 Jim Evins + + * libglabels/Makefile.am: + * libglabels/category.c: + * libglabels/category.h: + * libglabels/db.c: + * libglabels/db.h: + * libglabels/libglabels-private.h: + * libglabels/libglabels.h: + * libglabels/paper.c: + * libglabels/paper.h: + * libglabels/template.c: + * libglabels/template.h: + * libglabels/xml-template.c: + Another pass at screwing with the libglabels API. Moved all + database related stuff to db.[ch]. + * docs/libglabels/libglabels-decl-list.txt: + * docs/libglabels/libglabels-docs.sgml: + * docs/libglabels/libglabels-sections.txt: + * docs/libglabels/libglabels-undocumented.txt: + * docs/libglabels/tmpl/category.sgml: + * docs/libglabels/tmpl/db.sgml: + * docs/libglabels/tmpl/init.sgml: + * docs/libglabels/tmpl/libglabels-unused.sgml: + * docs/libglabels/tmpl/paper.sgml: + * docs/libglabels/tmpl/template-construction.sgml: + * docs/libglabels/tmpl/template-db.sgml: + * docs/libglabels/tmpl/template-misc.sgml: + * docs/libglabels/tmpl/template-struct.sgml: + * docs/libglabels/tmpl/template.sgml: + Updated documentation to reflect above changes to libglabels API. + * src/file.c: + * src/glabels-batch.c: + * src/glabels.c: + * src/mini-preview-pixbuf-cache.c: + * src/prefs-model.c: + * src/print.c: + * src/template-designer.c: + * src/wdgt-media-select.c: + * src/wdgt-mini-preview.c: + * src/wdgt-rotate-label.c: + * src/xml-label-04.c: + * src/xml-label.c: + Reconciled usage with above libglabels API changes. + +2007-10-21 Jim Evins + + * data/glade/wdgt-media-select.glade: + * src/wdgt-media-select.c: + Added brand to filter settings. + +2007-10-21 Jim Evins + + * data/dtd/glabels-2.2.dtd: + Forgot to replace Alias name attribute with brand and part attributes. + * data/templates/avery-iso-templates.xml: + * data/templates/avery-other-templates.xml: + * data/templates/avery-us-templates.xml: + * data/templates/misc-iso-templates.xml: + * data/templates/misc-other-templates.xml: + * data/templates/misc-us-templates.xml: + * data/templates/zweckform-iso-templates.xml: + Replaced all name attributes with brand/part attribute pairs. + +2007-10-20 Jim Evins + + * src/stock-pixmaps/*.png + Updated icons to use Tango color palette. + +2007-10-20 Jim Evins + + * data/dtd/Makefile.am: + * data/dtd/glabels-2.0.dtd: + * data/dtd/glabels-2.2.dtd: + Rename glabels-2.0.dtd to glabels-2.2.dtd. Added brand and part attributes to + template node. + * libglabels/template.c: + * libglabels/template.h: + * libglabels/xml-template.c: + * libglabels/xml.h: + Added brand and part attributes to template and alias structures and nodes. + * src/file.c: + * src/label.c: + * src/mini-preview-pixbuf-cache.c: + * src/template-designer.c: + * src/wdgt-media-select.c: + Use modified libglabels API. + * docs/libglabels/libglabels-decl-list.txt: + * docs/libglabels/libglabels-sections.txt: + * docs/libglabels/libglabels-undocumented.txt: + * docs/libglabels/tmpl/template-construction.sgml: + * docs/libglabels/tmpl/template-db.sgml: + * docs/libglabels/tmpl/template-struct.sgml: + Update libglabels documentation to reflect above modifications. + +2007-10-14 Jim Evins + + * docs/libglabels/libglabels-decl-list.txt: + * docs/libglabels/libglabels-sections.txt: + * docs/libglabels/libglabels-undocumented.txt: + * docs/libglabels/tmpl/category.sgml: + * libglabels/category.c: + * libglabels/category.h: + Added lgl_category_get_id_list() and lgl_category_free_id_list() to have + parity with paper functions. + +2007-10-12 Jim Evins + + * docs/libglabels/libglabels-decl-list.txt: + * docs/libglabels/libglabels-sections.txt: + * docs/libglabels/libglabels-undocumented.txt: + * docs/libglabels/tmpl/category.sgml: + * docs/libglabels/tmpl/enums.sgml: + * docs/libglabels/tmpl/libglabels-unused.sgml: + * docs/libglabels/tmpl/paper.sgml: + * docs/libglabels/tmpl/template-struct.sgml: + * libglabels/init.c: + * libglabels/template.c: + * libglabels/template.h: + Another pass at fleshing out the libglabels documentation. + * src/cairo-label-path.c: + * src/cairo-markup-path.c: + * src/label.c: + * src/mini-preview-pixbuf.c: + * src/print-op.c: + * src/print.c: + * src/view.c: + * src/wdgt-media-select.c: + * src/wdgt-mini-preview.c: + * src/wdgt-print-copies.c: + * src/wdgt-print-merge.c: + * src/wdgt-rotate-label.c: + Removed lgl_template_get_first_frame() from libglabels API and all references. + +2007-10-11 Jim Evins + * configure.in: + Extended checks for deprecated symbols. + * libglabels/template.c: + Removed g_strcasecmp references, which are deprecated. + +2007-10-09 Jim Evins + + * src/merge-evolution.c: + Create address book if it does not exist. Also, be more robust about handling + error conditions -- don't just assume GError has been set. + +2007-10-08 Jim Evins + + * libglabels/template.c: + * libglabels/xml-template.c: + * src/template-designer.c: + Missed some symbols with libglabels API work. + +2007-10-01 Jim Evins + + * docs/libglabels/libglabels-decl-list.txt: + * docs/libglabels/libglabels-docs.sgml: + * docs/libglabels/libglabels-sections.txt: + * docs/libglabels/libglabels-undocumented.txt: + * docs/libglabels/tmpl/category.sgml: + * docs/libglabels/tmpl/enums.sgml: + * docs/libglabels/tmpl/init.sgml: + * docs/libglabels/tmpl/libglabels-unused.sgml: + * docs/libglabels/tmpl/paper.sgml: + * docs/libglabels/tmpl/template-construction.sgml: + * docs/libglabels/tmpl/template-db.sgml: + * docs/libglabels/tmpl/template-misc.sgml: + * docs/libglabels/tmpl/template-struct.sgml: + * docs/libglabels/tmpl/template.sgml: + * docs/libglabels/tmpl/xml-category.sgml: + * docs/libglabels/tmpl/xml-template.sgml: + * libglabels/category.h: + * libglabels/init.c: + * libglabels/libglabels-private.h: + * libglabels/paper.h: + * libglabels/template.c: + * libglabels/template.h: + * libglabels/xml-template.h: + Basic documentation framework for libglabels updated. This still needs some + fleshing out. + +2007-09-27 Jim Evins + + * docs/libglabels/libglabels-decl-list.txt: + * docs/libglabels/libglabels-docs.sgml: + * docs/libglabels/libglabels-sections.txt: + * docs/libglabels/libglabels-undocumented.txt: + * docs/libglabels/tmpl/enums.sgml: + * docs/libglabels/tmpl/init.sgml: + * docs/libglabels/tmpl/libglabels-unused.sgml: + * docs/libglabels/tmpl/paper.sgml: + * docs/libglabels/tmpl/template.sgml: + * docs/libglabels/tmpl/xml-paper.sgml: + * docs/libglabels/tmpl/xml-template.sgml: + * docs/libglabels/tmpl/xml.sgml: + * libglabels/Makefile.am: + * libglabels/category.c: + * libglabels/category.h: + * libglabels/enums.h: + * libglabels/init.c: + * libglabels/init.h: + * libglabels/libglabels-private.h: + * libglabels/libglabels.h: + * libglabels/paper.c: + * libglabels/paper.h: + * libglabels/template.c: + * libglabels/template.h: + * libglabels/xml-category.c: + * libglabels/xml-category.h: + * libglabels/xml-paper.c: + * libglabels/xml-paper.h: + * libglabels/xml-template.c: + * libglabels/xml-template.h: + * libglabels/xml.c: + * libglabels/xml.h: + * src/cairo-label-path.c: + * src/cairo-label-path.h: + * src/cairo-markup-path.c: + * src/cairo-markup-path.h: + * src/file.c: + * src/glabels-batch.c: + * src/glabels.c: + * src/label-object.c: + * src/label.c: + * src/label.h: + * src/mini-preview-pixbuf-cache.c: + * src/mini-preview-pixbuf.c: + * src/mini-preview-pixbuf.h: + * src/prefs-dialog.c: + * src/prefs-model.c: + * src/prefs-model.h: + * src/prefs.c: + * src/prefs.h: + * src/print-op.c: + * src/print.c: + * src/template-designer.c: + * src/view-barcode.c: + * src/view-box.c: + * src/view-ellipse.c: + * src/view-image.c: + * src/view-line.c: + * src/view.c: + * src/wdgt-media-select.c: + * src/wdgt-mini-preview.c: + * src/wdgt-mini-preview.h: + * src/wdgt-print-copies.c: + * src/wdgt-print-merge.c: + * src/wdgt-rotate-label.c: + * src/xml-label-04.c: + * src/xml-label.c: + Major cleanup of libglabels API -- this breaks API compatibility with older + development and stable versions -- as far as I know, there are currently + no external users of this library yet. + +2007-09-14 Jim Evins + + * src/marshal.list: + * src/label.c: + * src/label.h: + * src/label-object.c: + * src/label-object.h: + * src/label-barcode.c: + * src/label-ellipse.c: + * src/view.c: + * src/view-object.c: + * src/view-barcode.c: + * src/view-box.c: + * src/view-ellipse.c: + * src/view-image.c: + * src/view-line.c: + * src/view-text.c: + Better separation of model from view. + +2007-08-21 Jim Evins + + * src/print-op.c: (create_custom_widget_cb): + Fix problem with force_outline_flag -- don't override with default. + +2007-08-21 Jim Evins + + * data/dtd/glabels-2.0.dtd: + * libglabels/template.c: + * libglabels/template.h: + * libglabels/xml-template.c: + * src/cairo-markup-path.c: + Added "Markup-rect" element to template format. + +2007-08-21 Jim Evins + + * configure.in: + Changed version to 2.1.pre5svn. + * src/view.c: (draw_markup_layer): + Do a stroke for each markup path, otherwise multiple markups + get connected. + +2007-08-17 Jim Evins + + * configure.in: + Bump libglabels revision numbers for 2.1.4 release. + +2007-08-16 Jim Evins + + * Makefile.am: + Include subdir iec16022-0.2.1. + * NEWS: + * configure.in: + * glabels.spec.in: + Preparation for 2.1.4. + + +2007-08-11 Jim Evins + + * po/POTFILES.in: + Updated file list. + * configure.in: + * po/eo.po: + Added Esperanto translation. Provided by Antonio C. + Codazzi "la Filozofo" . + * po/fr.po: + Updated French translation. Provided by Claude Paroz + . + * AUTHORS: + Updated to reflect above translations. + +2007-08-11 Jim Evins + + * AUTHORS: + * data/templates/avery-iso-templates.xml: + * data/templates/avery-us-templates.xml: + * data/templates/misc-iso-templates.xml: + * data/templates/misc-other-templates.xml: + * data/templates/misc-us-templates.xml: + * data/templates/zweckform-iso-templates.xml: + Caught up with backlog of template submissions. + +2007-08-10 Jim Evins + + * src/bc-postnet.c: (gl_barcode_postnet_new): + * src/bc.c: + Added support for Brazilian CEPNet barcodes. This is simply an + instance of the US POSTNET format with 8 digits. Patch supplied + by Mário Meyer in bug # 1768792. + * AUTHORS: + Updated acknowledgments to reflect above patch and recent shuffling + of underlying technology. + +2007-05-13 Jim Evins + + * src/merge-text.c: (parse_line), (parse_field): + Remove leading and trailing spaces from CSV fields, unless quoted. + +2007-05-09 Jim Evins + + * src/object-editor-bc-page.c: + * src/object-editor-data-page.c: + * src/object-editor-fill-page.c: + * src/object-editor-image-page.c: + * src/object-editor-line-page.c: + * src/object-editor-lsize-page.c: + * src/object-editor-position-page.c: + * src/object-editor-private.h: + * src/object-editor-shadow-page.c: + * src/object-editor-size-page.c: + * src/object-editor-text-page.c: + * src/object-editor.c: + * src/prefs-dialog.c: + * src/template-designer.c: + * src/ui-property-bar.c: + * src/wdgt-media-select.c: + Replaced signal block/unblock pairs with simple flags. This reduces + some code clutter, hopefully making it easier to read. + +2007-05-05 Jim Evins + + * src/template-designer.c: (apply_cb): + Add new template to mini-preview pixbuf cache. + +2007-05-03 Jim Evins + + * src/label-image.c: (gl_label_image_init), (draw_object): + Scale default pixbuf up, to prevent bluring. Use cairo_fill to + render image. + +2007-05-02 Jim Evins + + * src/view.c: (draw_select_region_layer), (motion_notify_event_cb), + (button_release_event_cb): + Removed attempt at rendering optimization by clipping the updates + to areas affected -- this actually seemed to hurt update performance. + +2007-04-30 Jim Evins + + * src/color.h: + * src/color.c: (gl_color_shadow), (gl_color_node_new_default), + (gl_color_node_equal), (gl_color_node_expand): + * src/label-barcode.c: (draw_object): + * src/label-box.c: (draw_object), (draw_shadow): + * src/label-ellipse.c: (draw_object), (draw_shadow): + * src/label-line.c: (draw_object), (draw_shadow): + * src/label-text.c: (draw_object), (draw_shadow): + * src/wdgt-mini-preview.c: (draw_shadow), (draw_labels): + * src/wdgt-rotate-label.c: (drawingarea_update): + Some cleanup to color related code. + +2007-04-30 Jim Evins + + * src/label.h: + Added glLabelRegion structure type. + * src/label-object.c: (gl_label_object_get_extent): + * src/label-object.h: + Modified gl_label_object_get_extent() to fill in a glLabelRegion struct. + * src/view.h: + * src/view.c: (gl_view_update_region), (draw_select_region_layer), + (gl_view_select_region), (gl_view_align_selection_left), + (gl_view_align_selection_right), (gl_view_align_selection_hcenter), + (gl_view_align_selection_top), (gl_view_align_selection_bottom), + (gl_view_align_selection_vcenter), + (gl_view_center_selection_horiz), (gl_view_center_selection_vert), + (gl_view_move_selection), (gl_view_can_selection_text), + (motion_notify_event_cb), (button_press_event_cb), + (button_release_event_cb): + - Reconcile with new gl_label_object_get_extent() API. + - Use glLabelRegion for view->select_region. + - Added gl_view_update_region() to clip updates to region. + - Use gl_view_update_region() during manipulation of view->select_region. + +2007-04-26 Jim Evins + + * src/mini-preview-pixbuf.c: (draw_paper), (draw_label_outlines), + (draw_label_outline): + * src/print.c: (print_crop_marks), (draw_outline): + * src/view-object.c: (gl_view_object_draw_handles): + * src/view.c: (draw_bg_layer), (draw_grid_layer), + (draw_markup_layer), (draw_fg_layer), (draw_select_region_layer): + * src/wdgt-mini-preview.c: (draw_paper), (draw_labels): + * src/wdgt-rotate-label.c: (drawingarea_update): + Added defines for various magic numbers. + +2007-04-25 Jim Evins + + * src/label-text.c: (get_size), (draw_object), (draw_shadow): + Scale text down. Cairo seems to render text too large. + +2007-04-25 Jim Evins + + * src/view.h: + * src/view.c: (gl_view_update), (expose_cb), + (motion_notify_event_cb), (button_press_event_cb), + (button_release_event_cb): + - Try not to let updates get backed up. + - Grab pointer when doing any drag operations. + +2007-04-11 Jim Evins + + * src/cairo-label-path.c: (gl_cairo_label_path), + (gl_cairo_rect_label_path), (gl_cairo_round_label_path), + (gl_cairo_cd_label_path): + * src/cairo-label-path.h: + * src/mini-preview-pixbuf.c: (draw_paper), (draw_label_outlines), + (draw_label_outline): + * src/print.c: (draw_outline), (clip_to_outline): + * src/view.c: (draw_bg_layer), (draw_fg_layer): + * src/wdgt-mini-preview.c: (draw_labels): + * src/wdgt-rotate-label.c: (drawingarea_update): + Modified to universally use gl_cairo_label_path() to create paths + for labels. Added shadow to mini preview in rotate widget. + +2007-04-10 Jim Evins + + * libglabels/template.h: + * libglabels/template.c: (gl_template_get_name_list_unique), + (gl_template_get_name_list_all), (gl_template_from_name): + Modified libglabels to allow you to get a list of all template names + including all aliases or just a list of primary names of each unique + template. + * src/Makefile.am: + * src/file.c: (gl_file_properties): + * src/glabels.c: (main): + * src/mini-preview-pixbuf-cache.h: + * src/mini-preview-pixbuf-cache.c: + * src/wdgt-media-select.c: (gl_wdgt_media_select_construct), + (filter_changed_cb), (load_list): + Added mini-preview pixbuf cache, so that only one mini-preview is + needed for a unique template and gets reused for all aliases. These + pixbufs will also live for the life of the program so they are not + rebuilt everytime a new label dialog is invoked. + * src/mini-preview-pixbuf.c: (draw_paper), + (draw_rect_label_outline), (draw_round_label_outline), + (draw_cd_label_outline): + Removed some comment artifacts. + +2007-04-04 Jim Evins + + * src/mini-preview-pixbuf.c: (gl_mini_preview_pixbuf_new), + (draw_paper), (draw_label_outlines), (draw_rect_label_outline), + (draw_round_label_outline), (draw_cd_label_outline): + * src/wdgt-media-select.c: (load_list): + * src/wdgt-rotate-label.c: (draw_cd_label_outline): + Cosmetic enhancments to mini previews. + +2007-04-04 Jim Evins + + * src/ui-property-bar.c: (gl_ui_property_bar_finalize), + (gl_ui_property_bar_construct): + Save copy of GladeXML tree so that we don't lose tooltips. + +2007-04-02 Jim Evins + + * src/merge-properties-dialog.c: + * src/new-label-dialog.c: + * src/object-editor.c: + * src/prefs-dialog.c: + * src/print-op.c: + * src/template-designer.c: + * src/ui-property-bar.c: + * src/wdgt-media-select.c: + * src/wdgt-rotate-label.c: + Fixed several memory leaks. + +2007-04-01 Jim Evins + + * src/label-text.c: (gl_label_text_init), (copy), + (gl_label_text_set_lines), (buffer_changed_cb), (get_size), + (set_font_family), (set_font_size), (set_font_weight), + (set_font_italic_flag), (set_text_alignment), + (set_text_line_spacing): + Cache object size, so that expensive extent calculations are only done + when needed. + +2007-03-30 Jim Evins + + * src/prefs-model.c: (gl_prefs_model_load_settings): + Default to an unlimited list of recent documents, since this parameter + seems to be pre-filter anyway. + +2007-03-30 Jim Evins + + * src/label-box.c: (draw_shadow): + * src/label-ellipse.c: (draw_shadow): + Added missing shadow fill. + +2007-03-28 Jim Evins + + * src/ui-commands.c: (gl_ui_cmd_file_print): + Unreferencing the print operation sometimes crashes. Just don't do it + right now. + +2007-03-28 Jim Evins + + * src/print-op.c: (gl_print_op_construct), + (gl_print_op_get_settings), (gl_print_op_set_settings), + (gl_print_op_free_settings), (create_custom_widget_cb): + * src/print-op.h: + * src/ui-commands.c: (gl_ui_cmd_file_print): + * src/window.c: (gl_window_init): + * src/window.h: + Save print settings and custom settings between print operations + on the same window. + +2007-03-24 Jim Evins + + * src/object-editor-image-page.c: + (gl_object_editor_prepare_image_page), + (gl_object_editor_set_image), (img_selection_changed_cb): + Workaround for GtkFileChooserButton bug # 327243. This the root + cause for gLabels bug # 1192884. I have actually observed 3 delayed + "selection-changed" signals -- the first 2 return NULL -- this is + what caused the image to reset to the default followed by setting + it back to the original image, trying to fit it into a new bounding + box. This sequence of events is much more evident with the new + cairo rendering. + +2007-03-23 Jim Evins + + Merged all changes from experimental cairo branch to trunk. + Trunk no longer depends on libgnomecanvas or libgnomeprint[ui]. + +2007-03-23 Jim Evins + + * src/label-object.h: + * src/label-object.c: (gl_label_object_class_init), + (gl_label_object_get_raw_size), (gl_label_object_get_size): + Created "get_raw_size" method. + * src/label-barcode.c: (get_size): + * src/xml-label.c: (xml_create_object_text), + (xml_create_object_barcode): + Use new "get_raw_size" method on label-objects when apropos. + * src/label-text.h: + * src/label-text.c: (get_size), (draw_object), (draw_shadow), + (auto_shrink_font_size): + Added "auto shrink" functionality back. + +2007-03-19 Jim Evins + + * src/label-text.c: (draw_object), (draw_shadow): + Don't use negative scales in workaround from previous commit. + + +2007-03-18 Jim Evins + + * src/xml-label.c: + Forgot to remove include of xml-lable-191 in previous commit. + * src/label-text.c: (get_size), (draw_object), (draw_shadow): + Workaround for pango Bug #341481. Render text at device scale, + and scale font size accordingly. Also, don't do any hinting. + +2007-03-18 Jim Evins + + * src/cairo-ellipse-path.c: + * src/cairo-ellipse-path.h: + Forgot to add these new files during last mass commit. + +2007-03-18 Jim Evins + + * src/Makefile.am: + * src/xml-label-191.c: + * src/xml-label-191.h: + Removed -- Very buggy. Version 1.91 is a very old "unstable" version, + so there is no need to keep compatability. + * src/base64.c: + * src/bc-iec16022.c: + * src/cairo-label-path.c: + * src/cairo-label-path.h: + * src/cairo-markup-path.c: + * src/color.c: + * src/debug.c: + * src/file.c: + * src/glabels-batch.c: + * src/glabels.c: + * src/label-barcode.c: + * src/label-box.c: + * src/label-ellipse.c: + * src/label-image.c: + * src/label-line.c: + * src/label-object.c: + * src/label-object.h: + * src/label-text.c: + * src/label.c: + * src/label.h: + * src/merge-properties-dialog.c: + * src/merge.c: + * src/new-label-dialog.c: + * src/object-editor-bc-page.c: + * src/object-editor-data-page.c: + * src/object-editor-edit-page.c: + * src/object-editor-fill-page.c: + * src/object-editor-image-page.c: + * src/object-editor-line-page.c: + * src/object-editor-private.h: + * src/object-editor-shadow-page.c: + * src/object-editor-text-page.c: + * src/object-editor.c: + * src/pixbuf-cache.c: + * src/print-op.c: + * src/print.c: + * src/recent.c: + * src/stock.c: + * src/template-designer.c: + * src/text-node.c: + * src/ui-property-bar.c: + * src/ui.c: + * src/view-barcode.c: + * src/view-box.c: + * src/view-ellipse.c: + * src/view-image.c: + * src/view-line.c: + * src/view-object.c: + * src/view-object.h: + * src/view-text.c: + * src/view.c: + * src/wdgt-media-select.c: + * src/wdgt-print-copies.c: + * src/wdgt-print-merge.c: + * src/window.c: + * src/xml-label-04.c: + * src/xml-label.c: + Many changes, including: + - Move draw methods from view-*() to label-*(). + - Use same drawing code for on screen view and printing. + - Fix all issues exposed with '-Wall -Werror'. + +2007-03-14 Jim Evins + + * src/Makefile.am: + * src/cairo-handle-path.c: + * src/cairo-handle-path.h: + * src/cairo-object-path.c: + * src/cairo-object-path.h: + Removed cairo-handle-path.[ch] and cairo-object-path.[ch]. + * src/view-barcode.c: (gl_view_barcode_class_init), (draw_object), + (object_at): + * src/view-box.c: (gl_view_box_class_init), (draw_object), + (draw_shadow), (object_at): + * src/view-ellipse.c: (gl_view_ellipse_class_init), + (create_ellipse_path), (draw_object), (draw_shadow), (object_at): + * src/view-image.c: (gl_view_image_class_init), (draw_object), + (object_at): + * src/view-line.c: (gl_view_line_class_init), (draw_object), + (draw_shadow), (object_at): + * src/view-object.c: (gl_view_object_draw), (gl_view_object_at), + (create_handle_path), (gl_view_object_draw_handles), + (gl_view_object_handle_at): + * src/view-object.h: + * src/view-text.c: (gl_view_text_class_init), (draw_object), + (draw_shadow), (object_at): + * src/view.c: (motion_notify_event_cb), (button_press_event_cb): + Some restructuring of new code. + +2007-03-12 Jim Evins + + * src/Makefile.am: + * src/cairo-object-path.c: + * src/view-barcode.c: + * src/view-barcode.h: + * src/view.c: + Added barcode object support to view. + +2007-03-12 Jim Evins + + * src/Makefile.am: + * src/view-text.h: + * src/view-text.c: + * src/view.c: + * src/cairo-object-path.c: + * src/cairo-object-path.h: + * src/view-box.c: + * src/view-ellipse.c: + * src/view-image.c: + * src/view-line.c: + * src/view-object.c: + * src/view-object.h: + Added text object support to view. Added object_at method to all + view_objects. + +2007-03-11 Jim Evins + + * src/Makefile.am: + * src/cairo-object-path.c: (gl_cairo_object_path), + (gl_cairo_image_object_path): + * src/view-image.c: (gl_view_image_class_init), + (gl_view_image_finalize), (gl_view_image_new), + (update_editor_from_label_cb), (draw), + (gl_view_image_get_create_cursor), + (gl_view_image_create_button_press_event), + (gl_view_image_create_motion_event), + (gl_view_image_create_button_release_event): + * src/view-image.h: + * src/view.c: (gl_view_construct), (gl_view_object_create_mode), + (selection_received_cb), (motion_notify_event_cb), + (button_press_event_cb), (button_release_event_cb): + Added image object support to view. + +2007-03-11 Jim Evins + + * src/Makefile.am: + * src/cairo-object-path.c: (gl_cairo_object_path), + (gl_cairo_line_object_path): + * src/view-line.c: (gl_view_line_class_init), (gl_view_line_new), + (update_object_from_editor_cb), (update_editor_from_object_cb), + (update_editor_from_label_cb), (draw), + (gl_view_line_get_create_cursor), + (gl_view_line_create_button_press_event), + (gl_view_line_create_motion_event), + (gl_view_line_create_button_release_event): + * src/view-line.h: + * src/view-object.c: (gl_view_object_resize_event): + * src/view.c: (gl_view_construct), (gl_view_object_create_mode), + (selection_received_cb), (motion_notify_event_cb), + (button_press_event_cb), (button_release_event_cb): + Added line object support to view. + * src/cairo-handle-path.c: + Made handles slightly larger. + + +2007-03-11 Jim Evins + + * src/Makefile.am: + * src/cairo-handle-path.c: + * src/cairo-label-path.c: (gl_cairo_rect_label_path), + (gl_cairo_round_label_path), (gl_cairo_cd_label_path): + * src/cairo-markup-path.c: (gl_cairo_markup_margin_rect_path), + (gl_cairo_markup_margin_round_path), + (gl_cairo_markup_margin_cd_path), (gl_cairo_markup_circle_path): + * src/cairo-object-path.c: (gl_cairo_object_path), + (gl_cairo_ellipse_object_path): + * src/label-object.c: (gl_label_object_rotate): + * src/view-box.c: + * src/view-box.h: + * src/view-ellipse.c: (gl_view_ellipse_class_init), + (gl_view_ellipse_new), (update_object_from_editor_cb), + (update_editor_from_object_cb), (update_editor_from_label_cb), + (draw), (gl_view_ellipse_get_create_cursor), + (gl_view_ellipse_create_button_press_event), + (gl_view_ellipse_create_motion_event), + (gl_view_ellipse_create_button_release_event): + * src/view-ellipse.h: + * src/view-object.c: + * src/view-object.h: + * src/view.c: (gl_view_construct), (gl_view_object_create_mode), + (select_object_real), (selection_received_cb), + (motion_notify_event_cb), (button_press_event_cb), + (button_release_event_cb): + * src/view.h: + Added ellipse object support to view. Plus other cleanup. + +2007-03-11 Jim Evins + + * src/view-box.h: + * src/view-box.c: (gl_view_box_get_create_cursor), + (gl_view_box_create_button_press_event), + (gl_view_box_create_motion_event), + (gl_view_box_create_button_release_event): + * src/view-object.c: (gl_view_object_set_view), + (gl_view_object_handle_at): + * src/view.h: + * src/view.c: (gl_view_arrow_mode), (gl_view_object_create_mode), + (motion_notify_event_cb), (button_press_event_cb), + (button_release_event_cb), (key_press_event_cb): + Added creation code for box object. + +2007-03-09 Jim Evins + + * src/view-object.c: (gl_view_object_resize_event): + * src/view-object.h: + * src/view.c: (motion_notify_event_cb): + Fix bugs with resizing transformed objects. + * src/cairo-handle-path.c: (gl_cairo_handle_path): + * src/cairo-object-path.c: (gl_cairo_object_path): + * src/cairo-object-path.h: + * src/label-object.c: (gl_label_object_init), + (gl_label_object_dup), (gl_label_object_get_extent), + (gl_label_object_flip_horiz), (gl_label_object_flip_vert), + (gl_label_object_rotate), (gl_label_object_set_matrix), + (gl_label_object_get_matrix): + * src/label-object.h: + * src/print.c: (draw_object): + * src/view-box.c: + * src/view-highlight.c: + * src/view-highlight.h: + * src/xml-label-191.c: (xml191_parse_object): + * src/xml-label.c: (xml_parse_affine_attrs), + (xml_create_affine_attrs): + Replace libart affine matrices with cairo matrices. + +2007-03-08 Jim Evins + + * src/view-object.h: + * src/view.c: (gl_view_update), (motion_notify_event_cb): + * src/view-object.c: (gl_view_object_handle_at), + (gl_view_object_resize_event): + Added resize code -- still a bit buggy. + +2007-03-07 Jim Evins + + * src/Makefile.am: + * src/cairo-handle-path.c: + * src/cairo-handle-path.h: + * src/view-box.c: (gl_view_box_new): + * src/view-object.c: (gl_view_object_set_object), + (gl_view_object_draw_handles), (gl_view_object_handle_at): + * src/view-object.h: + * src/view.c: (draw_highlight_layer), (select_object_real), + (unselect_object_real), (view_handle_at), (motion_notify_event_cb), + (button_press_event_cb), (button_release_event_cb), + (key_press_event_cb): + * src/view.h: + Added beginnings of object resize handles. + +2007-03-07 Jim Evins + + * src/view.h: + * src/view.c: (gl_view_init), (gl_view_arrow_mode), + (gl_view_object_create_mode), (motion_notify_event_cb), + (button_press_event_cb), (button_release_event_cb), + (key_press_event_cb): + Added move selection support. + +2007-03-05 Jim Evins + + * src/cairo-object-path.c: (gl_cairo_object_path): + * src/view-object.c: (gl_view_object_draw), + (gl_view_object_draw_highlight): + * src/view.c: (view_object_at), (motion_notify_event_cb), + (button_press_event_cb), (button_release_event_cb): + Additional refinements to select logic. + +2007-03-05 Jim Evins + + * src/view.h: + * src/view.c: (gl_view_init), (gl_view_construct), + (label_changed_cb), (draw_layers), (draw_select_region_layer), + (gl_view_select_region), (object_at), (motion_notify_event_cb), + (button_press_event_cb), (button_release_event_cb): + Added initial select region support and context menu. + +2007-03-04 Jim Evins + + * configure.in: + * src/Makefile.am: + * src/debug.c: + * src/debug.h: + * src/file.c: + * src/label.c: + * src/label.h: + * src/print-op.c: + * src/print.c: + * src/ui-commands.c: + * src/view-box.c: + * src/view-box.h: + * src/view-object.c: + * src/view-object.h: + * src/view.c: + * src/view.h: + * src/wdgt-print-copies.c: + * src/wdgt-print-merge.c: + * src/xml-label.c: + Initial port to a raw Cairo canvas. This removes all remaining + dependencies on libgnomecanvas and libgnomeprint[ui]. Basically + the view is becoming a canvas widget in its own right. Still needs + a lot of work. + * src/cairo-label-path.c: + * src/cairo-label-path.h: + * src/cairo-markup-path.c: + * src/cairo-markup-path.h: + * src/cairo-object-path.c: + * src/cairo-object-path.h: + New files to support cairo canvas. + * src/canvas-hacktext.c: + * src/canvas-hacktext.h: + Removed. + +2007-02-18 Jim Evins + + * src/bc.h: + GNOME_FONT_BOOK changed to PANGO_WEIGHT_NORMAL. + +2007-02-14 Jim Evins + + * src/base64.c: + * src/base64.h: + * src/bc-gnubarcode.c: + * src/bc-gnubarcode.h: + * src/bc-postnet.c: + * src/bc-postnet.h: + * src/bc.c: + * src/bc.h: + * src/canvas-hacktext.c: + * src/canvas-hacktext.h: + * src/debug.c: + * src/debug.h: + * src/file.c: + * src/file.h: + * src/glabels.c: + * src/hig.h: + * src/label-barcode.c: + * src/label-barcode.h: + * src/label-box.c: + * src/label-box.h: + * src/label-ellipse.c: + * src/label-ellipse.h: + * src/label-image.c: + * src/label-image.h: + * src/label-line.c: + * src/label-line.h: + * src/label-object.c: + * src/label-object.h: + * src/label-text.c: + * src/label-text.h: + * src/label.c: + * src/label.h: + * src/merge-evolution.c: + * src/merge-evolution.h: + * src/merge-init.c: + * src/merge-init.h: + * src/merge-properties-dialog.c: + * src/merge-properties-dialog.h: + * src/merge-text.c: + * src/merge-text.h: + * src/merge-vcard.c: + * src/merge-vcard.h: + * src/merge.c: + * src/merge.h: + * src/mini-preview-pixbuf.h: + * src/new-label-dialog.c: + * src/new-label-dialog.h: + * src/object-editor-bc-page.c: + * src/object-editor-data-page.c: + * src/object-editor-edit-page.c: + * src/object-editor-fill-page.c: + * src/object-editor-image-page.c: + * src/object-editor-line-page.c: + * src/object-editor-lsize-page.c: + * src/object-editor-position-page.c: + * src/object-editor-private.h: + * src/object-editor-size-page.c: + * src/object-editor-text-page.c: + * src/object-editor.c: + * src/object-editor.h: + * src/pixbuf-cache.c: + * src/pixbuf-cache.h: + * src/prefs-dialog.c: + * src/prefs-dialog.h: + * src/prefs-model.c: + * src/prefs-model.h: + * src/prefs.c: + * src/prefs.h: + * src/print-op.c: + * src/stock.c: + * src/stock.h: + * src/template-designer.c: + * src/text-node.c: + * src/text-node.h: + * src/ui-commands.c: + * src/ui-commands.h: + * src/ui-property-bar.c: + * src/ui-property-bar.h: + * src/ui-sidebar.c: + * src/ui-sidebar.h: + * src/ui-util.c: + * src/ui-util.h: + * src/ui.c: + * src/ui.h: + * src/util.c: + * src/util.h: + * src/view-barcode.c: + * src/view-barcode.h: + * src/view-box.c: + * src/view-box.h: + * src/view-ellipse.c: + * src/view-ellipse.h: + * src/view-highlight.c: + * src/view-highlight.h: + * src/view-image.c: + * src/view-image.h: + * src/view-line.c: + * src/view-line.h: + * src/view-object.c: + * src/view-object.h: + * src/view-text.c: + * src/view-text.h: + * src/view.c: + * src/view.h: + * src/wdgt-chain-button.c: + * src/wdgt-chain-button.h: + * src/wdgt-media-select.c: + * src/wdgt-mini-preview.c: + * src/wdgt-print-copies.c: + * src/wdgt-print-copies.h: + * src/wdgt-print-merge.c: + * src/wdgt-print-merge.h: + * src/wdgt-rotate-label.c: + * src/window.h: + * src/xml-label-04.c: + * src/xml-label-04.h: + * src/xml-label-191.c: + * src/xml-label-191.h: + * src/xml-label.c: + * src/xml-label.h: + + Assorted superficial cleanup. Including: + - Use G_DEFINE_TYPE for all objects. + - Reconcile style of all class initializer functions + - Reconcile style of all finalize functions + - Add emacs mode line to all source files + +2007-02-06 Jim Evins + +Assorted cleanup and removal of deprecated items. + + * src/splash.c: + * src/splash.h: + * src/Makefile.am: + Removed annoying splash screen. + * src/glabels-batch.c: (main): + * src/glabels.c: (main): + Converted from popt to GOption. + * src/object-editor-shadow-page.c: + (gl_object_editor_set_shadow_state): + Removed deprecated method on GtkToggleButton. + * src/ui-commands.c: (gl_ui_cmd_help_about): + Removed dependency on libgnomui/qnome-url.h. + * src/template-designer.c: + Removed dependency on libgnome/gnome-program.h. + + +2007-02-04 Jim Evins + + * src/color.c: + * src/color.h: + * src/prefs-model.c: + * src/print.c: (draw_text_object): + * src/wdgt-mini-preview.c: (gl_wdgt_mini_preview_construct): + Removed GnomeCanvas artifacts from color.[ch] and related modules. + +2007-02-04 Jim Evins + + * src/wdgt-mini-preview.c: + * src/wdgt-mini-preview.h: + Ported widget from GnomeCanvas to Cairo. + +2007-02-03 Jim Evins + + * data/glade/template-designer.glade: + * src/template-designer.c: + * src/template-designer.h: + Ported GnomeDruid to GtkAssistant. Since libglade does not + yet support the GtkAssistant and we derive directly from + the Assistant, the pages are layed out in a GtkNotebook in + the glade description -- we then append each page to the + assistant. + +2007-01-25 Jim Evins + + * data/glade/object-editor.glade: + Added dummy page to notebook, to prevent shadow page from + becoming the default current page at creation. + * src/view-box.c: (construct_properties_editor): + * src/view-ellipse.c: (construct_properties_editor): + * src/view-line.c: (construct_properties_editor): + * src/view-text.c: (construct_properties_editor): + Reconciled order of params. + +2007-01-19 Jim Evins + + * src/label-barcode.h: + * src/label-object.c: (gl_label_object_set_font_weight), + (gl_label_object_set_text_alignment), + (gl_label_object_get_font_weight), + (gl_label_object_get_text_alignment): + * src/label-object.h: + * src/label-text.c: (gl_label_text_instance_init), (copy), + (get_size), (set_font_family), (set_font_weight), + (set_text_alignment), (get_font_weight), (get_text_alignment): + * src/label-text.h: + * src/object-editor-text-page.c: + (gl_object_editor_prepare_text_page), + (gl_object_editor_set_font_family), + (gl_object_editor_set_font_weight), + (gl_object_editor_get_font_weight), + (gl_object_editor_set_text_alignment), + (gl_object_editor_get_text_alignment), + (gl_object_editor_set_text_color): + * src/object-editor.h: + * src/prefs-dialog.c: (construct_object_page), + (update_object_page_from_prefs), (update_prefs_from_object_page): + * src/prefs-model.c: (gl_prefs_model_save_settings), + (gl_prefs_model_load_settings): + * src/prefs-model.h: + * src/print.c: (draw_text_object): + * src/ui-property-bar.c: (gl_ui_property_bar_construct), + (reset_to_default_properties), (update_text_properties), + (font_bold_toggled_cb), (text_align_toggled_cb): + * src/ui-sidebar.c: + * src/util.c: (gl_util_align_to_string), (gl_util_string_to_align), + (gl_util_weight_to_string), (gl_util_string_to_weight), + (gl_util_get_font_family_list), (gl_util_font_family_list_free): + * src/util.h: + * src/view-text.c: (update_object_from_editor_cb), + (update_editor_from_object_cb), (draw_hacktext), (draw_cursor): + * src/view.c: (gl_view_set_selection_text_alignment), + (gl_view_set_default_text_alignment), + (gl_view_get_default_text_alignment): + * src/view.h: + * src/xml-label-04.c: (xml04_parse_text_props): + * src/xml-label-191.c: (xml191_parse_text_props): + * src/xml-label.c: (xml_parse_object_text), + (xml_parse_toplevel_span), (xml_create_object_text), + (xml_create_toplevel_span): + Converted all model internals to Pango. GnomeFont remains in + view until GnomeCanvas can be replaced with a cairo-based canvas. + +2007-01-17 Jim Evins + + * src/Makefile.am: + * src/hig.c: + Deleted hig.c. + * src/hig.h: + * src/wdgt-print-copies.c: (gl_wdgt_print_copies_get_type), + (gl_wdgt_print_copies_construct): + * src/wdgt-print-copies.h: + * src/wdgt-print-merge.c: (gl_wdgt_print_merge_get_type), + (gl_wdgt_print_merge_construct): + * src/wdgt-print-merge.h: + Removed all remaining HIG wrapper widgets. + +2007-01-16 Jim Evins + + * src/Makefile.am: + * src/print-dialog.c: + * src/print-dialog.h: + * src/print-op.c: + * src/print-op.h: + * src/template-designer.c: (print_test_cb): + * src/ui-commands.c: (gl_ui_cmd_file_print): + * src/print.c: + Renamed PrintDialog to PrintOp. Added constructor for batch + printing. + * src/glabels-batch.c: (main): + Converted to use new PrintOp object for printing. + +2007-01-15 Jim Evins + + * data/glade/Makefile.am: + * data/glade/print-custom-widget.glade: + * src/print-dialog.c: + * src/print-dialog.h: + * src/print.c: + * src/print.h: + * src/template-designer.c: (print_test_cb): + * src/ui-commands.c: (gl_ui_cmd_file_print): + * src/wdgt-print-merge.c: (gl_wdgt_print_merge_get_copies): + * src/wdgt-print-merge.h: + * src/window.c: (gl_window_init): + * src/window.h: + Initial conversion to GtkPrintOperation. + Still to do: + - Remove font and other libgnomeprint[ui] from elsewhere + - Add batch initialization of print operation + +2007-01-08 Jim Evins + * configure.in: + Updated dependencies. Set version to 2.1.pre4cvs. + +2007-01-03 Jim Evins + + * src/recent-files/* + Removed EggRecent stuff. + * configure.in: + * src/Makefile.am: + * src/file.c: + * src/recent.c: + * src/recent.h: + * src/ui-commands.c: + * src/ui-commands.h: + * src/ui.c: + Ported from EggRecent to GtkRecentManager. + + +2007-01-02 Jim Evins + + * configure.in: + * iec16022-0.2.1/BUGS: + * iec16022-0.2.1/CHANGELOG: + * iec16022-0.2.1/CREDITS: + * iec16022-0.2.1/INSTALL: + * iec16022-0.2.1/LICENSE: + * iec16022-0.2.1/Makefile.am: + * iec16022-0.2.1/Makefile.dist: + * iec16022-0.2.1/README: + * iec16022-0.2.1/README.glabels: + * iec16022-0.2.1/TODO: + * iec16022-0.2.1/iec16022.1: + * iec16022-0.2.1/iec16022.c: + * iec16022-0.2.1/iec16022ecc200.c: + * iec16022-0.2.1/iec16022ecc200.h: + * iec16022-0.2.1/image.c: + * iec16022-0.2.1/image.h: + * iec16022-0.2.1/reedsol.c: + * iec16022-0.2.1/reedsol.h: + * iec16022-0.2.1/test/testsuite-example.bin: + * iec16022-0.2.1/test/testsuite-example.eps: + * iec16022-0.2.1/test/testsuite-example.hex: + * iec16022-0.2.1/test/testsuite-example.png: + * iec16022-0.2.1/test/testsuite-example.text: + * iec16022-0.2.1/test/testsuite.sh: + Include modified copy of iec16022-0.2.1 to provide encoding + support for datamatrix 2D barcodes. + * src/Makefile.am: + * src/bc-iec16022.c: + * src/bc-iec16022.h: + * src/bc.c: + Added initial datamatrix 2D barcode backend to barcode code. + * INSTALL: + * gtk-doc.make: + Automatic updates to later versions of these files. + +2006-11-28 Jim Evins + + * data/templates/avery-iso-templates.xml: + * data/templates/avery-us-templates.xml: + * data/templates/categories.xml: + * data/templates/misc-iso-templates.xml: + * data/templates/misc-us-templates.xml: + * data/templates/zweckform-iso-templates.xml: + More categorization. + +2006-09-12 Jim Evins + + * data/dtd/glabels-2.0.dtd: + * data/templates/Makefile.am: + * data/templates/avery-iso-templates.xml: + * data/templates/avery-other-templates.xml: + * data/templates/avery-us-templates.xml: + * data/templates/categories.xml: + * data/templates/misc-iso-templates.xml: + * data/templates/misc-other-templates.xml: + * data/templates/zweckform-iso-templates.xml: + * data/glade/Makefile.am: + * data/glade/new-label-dialog.glade: + * data/glade/wdgt-media-select.glade: + * data/glade/wdgt-rotate-label.glade: + * libglabels/Makefile.am: + * libglabels/category.c: + * libglabels/category.h: + * libglabels/libglabels.h: + * libglabels/paper.c: + * libglabels/template.c: + * libglabels/template.h: + * libglabels/xml-category.c: + * libglabels/xml-category.h: + * libglabels/xml-template.c: + Added support for category meta data. + * src/Makefile.am: + * src/file.c: + * src/mini-preview-pixbuf.c: + * src/mini-preview-pixbuf.h: + * src/new-label-dialog.c: + * src/new-label-dialog.h: + * src/wdgt-media-select.c: + * src/wdgt-media-select.h: + * src/wdgt-rotate-label.c: + * src/wdgt-rotate-label.h: + New "new label" dialog. + +2006-05-27 Jim Evins + + * NEWS: + * autogen.sh: + * configure.in: + Preparation for 2.1.3. + * acinclude.m4: + * omf.make: + * xmldocs.make: + Removed. + +2006-05-22 Jim Evins + + * src/print.c: (draw_barcode_object): + Don't print "Invalid barcode data" if data field is empty. Patch provided + by Darren Warner . Fixes Bug #1479839. + * AUTHORS: + Added acknowledgment for above patch. + * src/bc-gnubarcode.c: (gl_barcode_gnubarcode_new): + * src/bc-postnet.c: (postnet_code): + Removed "Invalid barcode data" warnings from stderr. + * src/view-barcode.c: (draw_barcode): + Draw box around barcode extent if data empty or invalid. Center a + message whether the data is empty or invalid in box. + +2006-05-22 Jim Evins + + * src/print.c: (draw_text_object): + Check shadow state when printing text. + +2006-05-20 Jim Evins + + * src/ui-commands.c: (gl_ui_cmd_view_grid_toggle), + (gl_ui_cmd_view_markup_toggle): + Fixed crash when grid or markup have been toggled off during + a previous session. Bug #1434324. + +2006-04-05 Jim Evins + + * src/object-editor.c: (gl_object_editor_set_key_names): + Fixed potential crash when freeing empty key list. + +2006-03-11 Jim Evins + + * src/print.c: (draw_text_object): + * src/view-text.c: (gl_view_text_new), + (construct_properties_editor), (update_object_from_editor_cb), + (update_editor_from_object_cb), (update_editor_from_label_cb), + (draw_hacktext): + Added shadow support to text object. + +2006-02-18 Jim Evins + + * src/print.c: (draw_line_object): + * src/view-line.c: (gl_view_line_new), + (construct_properties_editor), (update_canvas_item_from_object_cb), + (update_object_from_editor_cb), (update_editor_from_object_cb), + (update_editor_from_label_cb): + Added shadow support to line object. + +2006-02-16 Jim Evins + + * src/view-box.c: + Comment changes. + * src/print.c: (draw_ellipse_object): + * src/view-ellipse.c: (gl_view_ellipse_new), + (construct_properties_editor), (update_canvas_item_from_object_cb), + (update_object_from_editor_cb), (update_editor_from_object_cb), + (update_editor_from_label_cb): + Added shadow support to ellipse object. + +2006-02-15 Jim Evins + + * src/label-object.c: + Changed default shadow offsets. + * src/view-box.c: (gl_view_box_new): + Simplified gl_view_box_new() so that is does not duplicate code + in update_canvas_item_from_object_cb(). + +2006-02-07 Jim Evins + + * data/glade/object-editor.glade: + Fixed color groups of color combos. + * src/color.h: + Added default shadow color. + * src/object-editor.c: (gl_object_editor_construct_color_combo): + Added shadow color group. + +2006-02-06 Jim Evins + + * src/object-editor-shadow-page.c: + Forgot to add this file. + * src/view-box.c: (gl_view_box_new), + (update_canvas_item_from_object_cb), (update_editor_from_label_cb): + Update limits on shadow offset spinbuttons. + +2006-01-19 Jim Evins + + * src/merge-evolution.c: (gl_merge_evolution_get_key_list): + Initialize key_list to NULL. + * data/glade/object-editor.glade: + * src/Makefile.am: + * src/color.c: + * src/color.h: + * src/label-object.c: + * src/label-object.h: + * src/object-editor-fill-page.c: + * src/object-editor-private.h: + * src/object-editor.c: + * src/object-editor.h: + * src/xml-label.c: + Created infrastructure for shadow support. + * src/view-box.c: + * src/print.c: + Initial shadow support in box object only. + +2006-01-05 Jim Evins + + * src/merge-properties-dialog.c: (src_changed_cb): + Be extra paranoid before calling strcmp(). + * src/merge.c: (gl_merge_set_src): + Don't make (merge == NULL) a critical error. + +2005-12-22 Jim Evins + + * src/glabels-batch.c: (main): + Compile warning free with gcc 4.0. + +2005-12-21 Jim Evins + + * glabels.spec.in: + Updated example RPM spec file. + +2005-12-21 Jim Evins + + * NEWS: + * configure.in: + Preparation for 2.1.2. + +2005-12-20 Jim Evins + + * src/Makefile.am: + Define unique G_LOG_DOMAIN for glabels. + * src/critical-error-handler.c: (gl_critical_error_handler_init): + * src/warning-handler.c: (gl_warning_handler_init), + (warning_handler): + Register for G_LOG_DOMAIN instead of NULL. + +2005-12-10 Jim Evins + + * src/merge-evolution.c: + * src/merge-vcard.c: + Fixed indentation. + +2005-12-08 Jim Evins + + * libglabels/paper.c: (read_paper_files_from_dir): + * libglabels/template.c: (gl_template_register), + (read_template_files_from_dir): + * libglabels/xml-paper.c: (gl_xml_paper_read_papers_from_file), + (gl_xml_paper_parse_papers_doc): + * libglabels/xml-template.c: + (gl_xml_template_read_templates_from_file), + (gl_xml_template_parse_templates_doc), + (gl_xml_template_parse_template_node), + (xml_parse_label_rectangle_node), (xml_parse_label_round_node), + (xml_parse_label_cd_node), (xml_parse_layout_node), + (xml_parse_markup_margin_node), (xml_parse_markup_line_node), + (xml_parse_markup_circle_node), + (gl_xml_template_write_templates_to_file), (xml_create_label_node): + * libglabels/xml.c: (gl_xml_get_prop_length): + Re-classified g_warnings to g_messages. + * src/Makefile.am: + * src/glabels.c: (main): + * src/warning-handler.c: (gl_warning_handler_init), + (warning_handler): + * src/warning-handler.h: + Added warning message handler to make sure the user is + presented with appropriate non-fatal errors. + * src/critical-error-handler.c: (critical_error_handler): + Changed exit to abort. + * src/bc-gnubarcode.c: (gl_barcode_gnubarcode_new), (render_pass1): + * src/bc-postnet.c: (postnet_code): + * src/bc.c: (id_to_index), (name_to_index): + * src/merge.c: (gl_merge_register_backend), (gl_merge_new): + * src/object-editor.c: (gl_object_notebook_construct_valist): + * src/prefs-dialog.c: (update_locale_page_from_prefs): + * src/prefs.c: (gl_prefs_get_units_per_point), + (gl_prefs_get_units_precision), (gl_prefs_get_units_step_size), + (gl_prefs_get_units_string): + * src/print.c: (draw_outline), (clip_to_outline), (clip_punchouts): + * src/splash.c: (gl_splash): + * src/ui-commands.c: (gl_ui_cmd_help_contents): + * src/view-highlight.c: (gl_view_highlight_new), + (highlight_resizable_box_construct), (object_changed_cb), + (view_scale_changed_cb): + * src/view.c: (draw_label_layer), (draw_bg_fg_layers), + (draw_markup_layer), (draw_markup_margin), + (gl_view_object_create_mode), (canvas_event), + (selection_received_cb): + * src/wdgt-mini-preview.c: (mini_outline_list_new): + * src/wdgt-rotate-label.c: (mini_preview_canvas_update): + * src/xml-label-04.c: (gl_xml_label_04_parse), + (xml04_parse_media_description), (xml04_parse_text_props), + (xml04_parse_barcode_props): + * src/xml-label-191.c: (gl_xml_label_191_parse), + (xml191_parse_objects), (xml191_parse_object), + (xml191_parse_text_props), (xml191_parse_image_props), + (xml191_parse_barcode_props), (xml191_parse_data), + (xml191_parse_sheet), (xml191_parse_label), (xml191_parse_layout), + (xml191_parse_markup): + * src/xml-label.c: (gl_xml_label_open), (gl_xml_label_open_buffer), + (xml_doc_to_label), (xml_parse_label), (xml_parse_objects), + (xml_parse_object_text), (xml_parse_object_image), + (xml_parse_object_barcode), (xml_parse_data), + (xml_parse_toplevel_span), (gl_xml_label_save), + (xml_create_objects): + Re-classified g_warnings to g_messages. + * src/merge-evolution.c: (gl_merge_evolution_open), + (gl_merge_evolution_close), (gl_merge_evolution_get_record): + Use g_warning to output errors encountered while + communicating with the evolution data server + instead of embedding them in the data. + +2005-12-08 Jim Evins + + * libglabels/libglabels-private.h: + Set G_LOG_DOMAIN + * libglabels/paper.c: (read_papers): + * libglabels/template.c: (read_templates): + Made appropriate warnings critical. + * src/Makefile.am: + * src/critical-error-handler.h: + * src/critical-error-handler.c: (gl_critical_error_handler_init), + (critical_error_handler): + Created critical error handler. + * src/glabels.c: (main): + Register critical error handler. + * src/merge-properties-dialog.c: (gl_merge_properties_dialog_init): + * src/object-editor.c: (gl_object_editor_init): + * src/prefs-dialog.c: (gl_prefs_dialog_init): + * src/template-designer.c: (gl_template_designer_init): + * src/ui-property-bar.c: (gl_ui_property_bar_instance_init): + Made appropriate warnings critical. + +2005-11-27 Jim Evins + + * src/merge-evolution.c: (gl_merge_evolution_get_key_list), + (gl_merge_evolution_get_primary_key), + (gl_merge_evolution_get_record): + Don't create "record_key" pseudo-key. Don't populate + fields with null data. + +2005-11-25 Jim Evins + + * src/merge-evolution.c: (gl_merge_evolution_finalize), + (gl_merge_evolution_get_key_list), (gl_merge_evolution_open), + (gl_merge_evolution_get_record), (gl_merge_evolution_copy), + (free_field_list): + Query EDS for all supported fields. Patch provided by + Austin Henry . + +2005-10-29 Jim Evins + + * src/glabels.c: (main): + * src/label-barcode.c: (gl_label_barcode_finalize): + * src/label-text.c: (gl_label_text_finalize), (set_font_family): + * src/label.c: (gl_label_instance_init), (gl_label_finalize): + * src/object-editor.c: (gl_object_editor_finalize): + Another pass at valgrinding -- plugged several memory leaks. + * src/view-text.c: (gl_view_text_new), + (update_canvas_item_from_object_cb), (draw_hacktext): + Commented out artifacts of edit-in-place code. + +2005-10-28 Jim Evins + + * src/canvas-hacktext.c: (gl_canvas_hacktext_set_arg): + Fixed use of uninitialized variable. Caught by + d binderman . + +2005-10-27 Jim Evins + + * src/merge-evolution.c: (gl_merge_evolution_get_record): + * src/merge-vcard.c: (gl_merge_vcard_get_record), + (parse_next_vcard): + Additional cleanup of EDS and vcard backends. Provided by + Austin Henry . + +2005-10-24 Jim Evins + + * AUTHORS: + * src/Makefile.am: + * src/merge-evolution.c: + * src/merge-evolution.h: + * src/merge-init.c: (gl_merge_init): + * src/merge-properties-dialog.c: (type_changed_cb): + * src/merge-vcard.c: + * src/merge-vcard.h: + * src/ui-commands.c: (gl_ui_cmd_help_about): + Added Evolution Data Server and VCard merge backends. Original patch + provided by Austin Henry . + * configure.in: + Only support EDS and VCard backends if libebook is installed. Allow + user to disable support, even if installed. + +2005-10-24 Jim Evins + + * AUTHORS: + * data/templates/avery-iso-templates.xml: + * data/templates/avery-us-templates.xml: + * data/templates/misc-iso-templates.xml: + * data/templates/zweckform-iso-templates.xml: + Collected all template changes and submissions since last + release. + +2005-10-23 Jim Evins + + * configure.in: + * data/mime/Makefile.am: + Added configure options to disable update-mime-database and + update-desktop-database as part of the install. Patch + provided by Leonardo Boshell (qhoracio@sourceforge.net). + +2005-10-23 Jim Evins + + * libglabels/xml.h: + * libglabels/xml.c: (gl_xml_get_prop_string), + (gl_xml_get_prop_i18n_string), (gl_xml_set_prop_string), + (gl_xml_is_node), (gl_xml_get_node_content): + Added new XML utility functions. + * libglabels/xml-paper.c: + * libglabels/xml-template.c: + * src/xml-label.c: + Cleanup by using new xml utilities created above. + * libglabels/paper.c: (gl_paper_free): + * src/file.c: (new_response): + * src/object-editor-image-page.c: (add_image_filters_to_chooser): + * src/pixbuf-cache.c: (gl_pixbuf_cache_add_pixbuf), + (gl_pixbuf_cache_get_pixbuf): + * src/ui-property-bar.c: + (gl_ui_property_bar_construct_color_combo): + * src/view-highlight.c: (gl_view_highlight_finalize): + * src/view-image.c: (update_object_from_editor_cb): + * src/view.c: (gl_view_finalize), (draw_bg_fg_layers), + (draw_bg_fg_rounded_rect), (draw_bg_fg_round), (draw_bg_fg_cd), + (draw_bg_fg_cd_bc), (draw_markup_layer), (draw_markup_margin), + (draw_markup_margin_rect), (draw_markup_margin_rounded_rect), + (draw_markup_margin_round), (draw_markup_margin_cd), + (draw_markup_margin_cd_bc): + * src/wdgt-mini-preview.c: (mini_outline_list_new): + * src/wdgt-rotate-label.c: (gl_wdgt_rotate_label_finalize): + Plugged various memory leaks located with valgrind. + * src/view-image.c: (update_canvas_item_from_object_cb): + Don't allow a width or height of zero when drawing pixbuf. + +2005-10-22 Jim Evins + + * libglabels/xml-paper.c: + * libglabels/xml-template.c: + * libglabels/xml.c: + * src/base64.c: + * src/bc-gnubarcode.c: + * src/canvas-hacktext.c: + * src/label-text.c: + * src/object-editor-data-page.c: + * src/print-dialog.c: + * src/print.c: + * src/recent.c: + * src/template-designer.c: + * src/text-node.c: + * src/ui-property-bar.c: + * src/ui.c: + * src/view-barcode.c: + * src/view-box.c: + * src/view-ellipse.c: + * src/view-image.c: + * src/view-line.c: + * src/view-text.c: + * src/view.c: + * src/wdgt-media-select.c: + * src/xml-label-04.c: + * src/xml-label-191.c: + * src/xml-label.c: + Modified to compile warning free with gcc-4.0. Mostly + casting to change signedness of characters. Did not + attack gnu-barcode library yet. + +2005-10-22 Jim Evins + + * src/glabels.c: (main): + * src/splash.c: (gl_splash): + Removed some small memory leaks. + * gtk-doc.make: + Added. + +2005-09-19 Jim Evins + + * data/glade/property-bar.glade: + Remove items from font_family_combo. This prevents the + double entry after adding text model and list of fonts. + * src/ui-property-bar.c: (reset_to_default_properties): + Free font_family_list. + +2005-07-01 Jim Evins + + * po/it.po: + Updated italian translation (Daniele Medri) + +2005-06-26 Jim Evins + + * docs/libglabels/libglabels-decl-list.txt: + Somehow never got checked in before. + * docs/libglabels/libglabels.types: + Removed -- don't need it afterall. + +2005-06-20 Jim Evins + + * NEWS: + Final prep for 2.1.1 release. + +2005-06-20 Jim Evins + + * configure.in: + Final preps for 2.1.1 release. + * docs/libglabels/libglabels.types: + Somehow never got checked in before. + * po/POTFILES.in: + Bring up-to-date with recent reorg of ui code. + + +2005-06-19 Jim Evins + + * src/template-designer.c: (construct_layout_page): + Removed attempt to match background color of mini preview widget to + background. + +2005-06-17 Jim Evins + + * help/C/figures/merge-ex2-4.png: + * help/C/glabels.xml: + Fixed spelling error. + +2005-06-13 Jim Evins + + * help/C/figures/merge-ex1-1.png: + * help/C/figures/merge-ex1-2.png: + * help/C/figures/merge-ex1-3.png: + * help/C/figures/merge-ex1-4.png: + * help/C/figures/merge-ex2-1.png: + * help/C/figures/merge-ex2-2.png: + * help/C/figures/merge-ex2-3.png: + * help/C/figures/merge-ex2-4.png: + Added figures for document merge tutorial. + * help/C/glabels.xml: + Added document merge tutorial. + +2005-05-19 Jim Evins + + * data/glade/merge-properties-dialog.glade: + Fixed irregular spacing. + * src/merge-properties-dialog.c: (gl_merge_properties_dialog_init), + (gl_merge_properties_dialog_construct): + Set outer padding and remove separator. + +2005-05-18 Jim Evins + + * src/hig.h: + * src/hig.c: + Removed glHigDialog class. + * src/file.c: (gl_file_new), (create_new_dialog_widgets), + (gl_file_properties), (create_properties_dialog_widgets): + * src/prefs-dialog.h: + * src/prefs-dialog.c: (gl_prefs_dialog_get_type), + (gl_prefs_dialog_init), (gl_prefs_dialog_construct): + * src/print-dialog.h: + * src/prefs-dialog.h: + * src/print-dialog.c: (gl_print_dialog_get_type), + (gl_print_dialog_init), (gl_print_dialog_construct): + Replaced all instances of glHigDialog with GtkDialog. + +2005-05-17 Jim Evins + + * src/hig.h: + * src/hig.c: + Removed HigAlert class since it is obsoleted by the GtkMessageDialog class. + * src/file.c: (open_response), (gl_file_open_real), (gl_file_save), + (save_as_response), (gl_file_close): + Replaced all instances of HigAlert widgets with GtkMessageDialog widgets. + +2005-05-15 Jim Evins + + * src/ui-commands.h: + * src/ui-util.c: + * src/ui-util.h: + * src/ui.c: + * src/ui.h: + * src/view.c: + * src/window.c: + * src/window.h: + A little code reformatting -- no functional changes. + +2005-05-14 Jim Evins + + * src/Makefile.am: + Removed obsolete macros. + * src/marshal.list: + Added marshalling template to support new view signal: "context_menu_activate." + * src/view.h: + * src/view.c: (gl_view_class_init), (gl_view_construct), + (canvas_event_arrow_mode): + - Removed hardcoded context menus and added new signal "context_menu_activate" + to push this up to the uimanager. + - Removed merge properties and print dialogs so that they can be managed with + the window by the uimanager. + * src/merge-properties-dialog.h: + * src/merge-properties-dialog.c: (gl_merge_properties_dialog_new), + (gl_merge_properties_dialog_construct): + Changed calling convention of gl_merge_properties_dialog_new() to use + glLabel and GtkWindow instead of view to make more consistent with other + dialogs. + * src/print-dialog.h: + * src/print-dialog.c: (gl_print_dialog_new), + (gl_print_dialog_construct): + Removed last artifact of libbonoboui. + * src/ui-commands.c: (gl_ui_cmd_file_print), + (gl_ui_cmd_objects_merge_properties), (gl_ui_cmd_help_about): + Reconciled style for launching dialogs. + * src/ui.c: (gl_ui_new): + Added context menus to ui manager. + * src/view-object.c: (item_event_arrow_mode): + No longer try to select objects with right-click. + * src/window.h: + * src/window.c: (gl_window_init), (gl_window_set_label), + (context_menu_activate_cb): + Context menus and all dialogs are now managed in a consistent way in window + by the ui manager. + +2005-05-11 Jim Evins + + * src/window.h: + * src/window.c: (gl_window_init), (gl_window_destroy): + * src/ui.c: (gl_ui_new), (gl_ui_unref), (recent_tooltip_func): + * src/ui-commands.c: (gl_ui_cmd_file_open_recent): + Moved management of recent_view back from window.c to ui.c -- it just feels + better there. + +2005-05-10 Jim Evins + + * src/window.h: + * src/window.c: (gl_window_init): + * src/ui.h: + * src/ui.c: (gl_ui_new), (connect_proxy_cb), (disconnect_proxy_cb), + (menu_item_select_cb), (menu_item_deselect_cb): + Added GtkStatusbar which displays menu tooltips. + +2005-05-09 Jim Evins + + Replaced libbonoboui with GtkUIManager for creation of basic user interface menus + and toolbars. + + * configure.in: + * glabels.spec.in: + Removed dependencies on libbonoboui. + * data/Makefile.am: + * data/ui/Makefile.am: + * data/ui/glabels-ui.xml: + Removed data/ui directory. + * data/glade/Makefile.am: + * data/property-bar.glade: + Added glade description of property-bar for new libglade implementation + of glUIPropertyBar. + * src/Makefile.am: + * src/commands.h: + * src/commands.c: + * src/tools.h: + * src/tools.c: + * src/ui-commands.h: + * src/ui-commands.c: + Replaced commands.[ch] and tools.[ch] with the single ui-commands.[ch] module + since the distinction between "commands" and "tools" is no longer that clear. + * src/file.h: + * src/file.c: + Modified to expect glWindow instead of GtkWindow. gl_file_open_recent() + no longer has knowledge of eggRecent*. + * src/glabels.c: (main): + Removed libbonobo initialization and replaced bonobo_main loop with gtk_main + loop. + * src/object-editor.c: (gl_object_editor_init): + Make sure notebook does not respond to a "show_all" on the parent. + * src/recent-files/Makefile.am: + * src/recent-files/*.[ch] + Updated from latest version of libegg which now has a view based on + GtkUIManager. Removed unused bonobo and gtk views. + * src/ui-property-bar.h: + * src/ui-property-bar.c: + New implementation based on libglade. + * src/ui-sidebar.h: + * src/ui-sidebar.c: + Sidebar is now simply a GtkWidget and does not expect to be a part of + a libbonoboui interface. + * src/ui-util.h: + * src/ui-util.c: + * src/ui.h: + * src/ui.c: + Converted for use with GtkUIManager. + * src/window.h: + * src/window.c: + Now derived from GtkWindow instead of BonoboWindow and uses GtkUIManager + to create menus and toolbars. + +2005-04-25 Jim Evins + + * data/templates/misc-iso-templates.xml: + Added Fellows 04715 template provided by Steve Saxon. + * AUTHORS: + Updated acknowledgement for above. + +2005-04-23 Jim Evins + + * src/util.c: (gl_util_combo_box_set_strings): + Make sure to clear model before loading a new list of strings. + * src/wdgt-media-select.h: + * src/wdgt-media-select.c: (gl_wdgt_media_select_instance_init), + (gl_wdgt_media_select_construct), (page_size_combo_changed_cb), + (template_combo_changed_cb), (prefs_changed_cb), + (gl_wdgt_media_select_get_name), (gl_wdgt_media_select_set_name), + (gl_wdgt_media_select_get_page_size), + (gl_wdgt_media_select_set_page_size): + Replaced the deprecated GtkCombo widget with the new + GtkComboBox. + +2005-04-21 Jim Evins + + * data/glade/template-designer.glade: + * src/template-designer.c: (construct_pg_size_page), + (pg_size_page_changed_cb), (build_template): + Replaced the deprecated GtkCombo widget with the new + GtkComboBox. + +2005-04-20 Jim Evins + + * data/glade/prefs-dialog.glade: + * src/prefs-dialog.c: (construct_object_page), + (update_object_page_from_prefs), (update_prefs_from_object_page): + Replaced the deprecated GtkCombo widget with the new + GtkComboBox. + +2005-04-19 Jim Evins + + * data/glade/object-editor.glade: + * src/object-editor-bc-page.c: (gl_object_editor_prepare_bc_page), + (style_changed_cb), (gl_object_editor_set_bc_style), + (gl_object_editor_get_bc_style), (gl_object_editor_set_bc_color), + (gl_object_editor_get_bc_color): + * src/object-editor-data-page.c: + (gl_object_editor_prepare_data_page), (gl_object_editor_set_data), + (gl_object_editor_get_data): + * src/object-editor-edit-page.c: + (gl_object_editor_prepare_edit_page), (insert_button_cb): + * src/object-editor-fill-page.c: + (gl_object_editor_prepare_fill_page), + (gl_object_editor_set_fill_color), + (gl_object_editor_get_fill_color): + * src/object-editor-image-page.c: + (gl_object_editor_prepare_image_page), + (gl_object_editor_set_image), (gl_object_editor_get_image): + * src/object-editor-line-page.c: + (gl_object_editor_prepare_line_page), + (gl_object_editor_set_line_color), + (gl_object_editor_get_line_color): + * src/object-editor-private.h: + * src/object-editor-text-page.c: + (gl_object_editor_prepare_text_page), + (gl_object_editor_set_font_family), + (gl_object_editor_get_font_family), + (gl_object_editor_set_text_color), + (gl_object_editor_get_text_color): + * src/object-editor.c: (gl_object_editor_set_key_names): + * src/ui-sidebar.c: + In the object editor: replaced all instances of the deprecated + GtkCombo widget with the new GtkComboBox. + +2005-04-18 Jim Evins + + * src/stock.c: + Neglected to save this one in previous checkin to support + header cleanup. + +2005-04-17 Jim Evins + + * libglabels/libglabels-private.h: + * libglabels/paper.c: + * libglabels/paper.h: + * libglabels/template.c: + * libglabels/template.h: + * libglabels/xml-paper.c: + * libglabels/xml-paper.h: + * libglabels/xml-template.c: + * libglabels/xml.c: + * libglabels/xml.h: + * src/base64.c: + * src/base64.h: + * src/bc-gnubarcode.c: + * src/bc-postnet.c: + * src/bc.c: + * src/bc.h: + * src/commands.c: + * src/debug.c: + * src/debug.h: + * src/file.c: + * src/file.h: + * src/hig.c: + * src/hig.h: + * src/label-barcode.c: + * src/label-box.c: + * src/label-ellipse.c: + * src/label-image.c: + * src/label-image.h: + * src/label-line.c: + * src/label-object.c: + * src/label-text.c: + * src/label-text.h: + * src/label.c: + * src/merge-properties-dialog.c: + * src/object-editor-bc-page.c: + * src/object-editor-data-page.c: + * src/object-editor-edit-page.c: + * src/object-editor-fill-page.c: + * src/object-editor-image-page.c: + * src/object-editor-line-page.c: + * src/object-editor-lsize-page.c: + * src/object-editor-position-page.c: + * src/object-editor-private.h: + * src/object-editor-size-page.c: + * src/object-editor-text-page.c: + * src/object-editor.c: + * src/object-editor.h: + * src/pixbuf-cache.h: + * src/prefs-dialog.c: + * src/prefs-dialog.h: + * src/prefs-model.c: + * src/prefs-model.h: + * src/prefs.c: + * src/print-dialog.c: + * src/print-dialog.h: + * src/print.c: + * src/print.h: + * src/recent.c: + * src/recent.h: + * src/splash.c: + * src/splash.h: + * src/stock.h: + * src/template-designer.c: + * src/template-designer.h: + * src/text-node.h: + * src/tools.c: + * src/ui-property-bar.c: (gl_ui_property_bar_construct): + * src/ui-sidebar.c: + * src/ui-util.c: + * src/ui.c: + * src/util.c: + * src/util.h: + * src/view-barcode.c: + * src/view-box.c: + * src/view-ellipse.c: + * src/view-highlight.c: + * src/view-highlight.h: + * src/view-image.c: + * src/view-line.c: + * src/view-object.c: + * src/view-object.h: + * src/view-text.c: + * src/view.c: + * src/view.h: + * src/wdgt-chain-button.c: + * src/wdgt-media-select.c: + * src/wdgt-media-select.h: + * src/wdgt-mini-preview.c: + * src/wdgt-mini-preview.h: + * src/wdgt-print-copies.c: + * src/wdgt-print-copies.h: + * src/wdgt-print-merge.c: + * src/wdgt-print-merge.h: + * src/wdgt-rotate-label.c: + * src/wdgt-rotate-label.h: + * src/window.c: + * src/window.h: + * src/xml-label-04.c: + * src/xml-label-191.c: + * src/xml-label.c: + Cleanup of header files: + - all header files are now stand-alone, verified by including + first in corresponding "c" files + - replaced blanket includes of gnome, gtk, and glib with + targetted includes + +2005-04-16 Jim Evins + + * data/glade/Makefile.am: + * data/glade/merge-properties-dialog.glade: + Added merge properties dialog glade description file. + * src/merge-properties-dialog.h: + * src/merge-properties-dialog.c: + (gl_merge_properties_dialog_get_type), + (gl_merge_properties_dialog_init), + (gl_merge_properties_dialog_finalize), + (gl_merge_properties_dialog_new), + (gl_merge_properties_dialog_construct), (type_changed_cb), + (src_changed_cb), (response_cb), (load_tree), + (record_select_toggled_cb), (select_all_button_clicked_cb), + (unselect_all_button_clicked_cb): + Modified merge properties dialog to use libglade. Added + "select all" and "unselect all" buttons. + * src/merge-text.c: (parse_line): + Handle empty lines better. + * src/merge.c: (gl_merge_eval_key): + Evaluate the key whether the record is selected or not. + * src/util.h: + * src/util.c: (gl_util_combo_box_add_text_model): + Since libglade does not use the gtk_combo_box_new_text() + constructor for GtkComboBoxes, a utility function was created + to add an appropriate text model to a GtkComboBox. + * src/view.c: (gl_view_edit_merge_props): + Removed unnecessary "show all's". + +2005-04-15 Jim Evins + + * po/ru.po: + Updated russian translation (Vitaly Lipatov) + * data/templates/misc-iso-templates.xml: + Added templates for russian business cards provided by Vitaly Lipatov. + * AUTHORS: + Updated acknowledgements for above. + +2005-04-15 Jim Evins + + * data/templates/avery-us-templates.xml: + Added Avery 5388 and 5389 templates provided by Peter L. Berghold. + * data/templates/misc-iso-templates.xml: + Added Ryman standard CD/DVD template, provided by Dan Clark. + * AUTHORS: + Added acknowledgements for above. + +2005-04-10 Jim Evins + + * libglabels/xml-paper.c: (gl_xml_paper_parse_paper_node): + * libglabels/xml-template.c: (gl_xml_template_parse_template_node), + (xml_parse_label_rectangle_node), (xml_parse_label_round_node), + (xml_parse_label_cd_node), (xml_parse_alias_node): + * libglabels/xml.c: (gl_xml_get_prop_double), + (gl_xml_get_prop_boolean), (gl_xml_get_prop_int), + (gl_xml_get_prop_uint), (gl_xml_get_prop_length): + * src/xml-label-04.c: (xml04_parse_media_description), + (xml04_parse_text_props), (xml04_parse_barcode_props), + (xml04_parse_merge_properties): + * src/xml-label-191.c: (xml191_parse_object), + (xml191_parse_text_props), (xml191_parse_barcode_props), + (xml191_parse_merge_fields), (xml191_parse_pixdata), + (xml191_parse_sheet), (xml191_parse_label), (xml191_parse_markup), + (xml191_parse_alias): + * src/xml-label.c: (xml_parse_object_text), + (xml_parse_object_barcode), (xml_parse_merge_fields), + (xml_parse_pixdata), (xml_parse_toplevel_span): + Make sure to use xmlFree for anything obtained from libxml + in case libxml and glib use different memory management + space. + +2005-04-08 Jim Evins + + * src/util.h: + * src/util.c: (gl_util_combo_box_set_strings), (search_text_func), + (gl_util_combo_box_set_active_text): + Added utility functions to simplify working with GtkComboBox + widgets in GTK-2.6. + * src/ui-property-bar.h: + * src/ui-property-bar.c: (gl_ui_property_bar_construct), + (reset_to_default_properties), (update_text_properties), + (font_family_changed_cb): + Replaced deprecated GtkCombo with GtkComboBox. + + +2005-04-03 Jim Evins + + * src/Makefile.am: + * src/wdgt-image-select.h: + * src/wdgt-image-select.c: + Removed obsolete wdgt-image-select.[ch] files. + * libglabels/paper.c: (gl_paper_dup): + Fixed rename of parameter introduced during documentation + updates. + * data/glade/object-editor.glade: + * src/object-editor-image-page.c: + (gl_object_editor_prepare_image_page), (img_radio_toggled_cb), + (gl_object_editor_set_image), (gl_object_editor_get_image), + (update_preview_cb), (add_image_filters_to_chooser): + * src/object-editor-private.h: + Replaced deprecated GnomePixmapEntry with + GtkFileChooserButton. + +2005-04-02 Jim Evins + + * src/mygal/mygal-combo-box.c: (deactivate_arrow), + (mygal_combo_box_popup_hide_unconditional), + (mygal_combo_box_popup_hide), (mygal_combo_box_popup_display), + (mygal_combo_toggle_pressed), (mygal_combo_box_init), + (mygal_combo_popup_tear_off), (mygal_combo_set_tearoff_state), + (mygal_combo_tearoff_bg_copy), (mygal_combo_popup_reparent), + (cb_tearable_button_release), (mygal_combo_box_set_tearable): + Renamed all internal gtk_combo functions to mygal_combo + to prevent namespace confusion. + +2005-04-02 Jim Evins + + * src/mygal/color-palette.c: (color_palette_change_custom_color), + (cust_color_set), (color_palette_setup): + * src/mygal/color-palette.h: + Replaced deprecated GnomeColorPicker with GtkColorButton. + +2005-04-02 Jim Evins + + * docs/libglabels/libglabels-sections.txt: + * docs/libglabels/libglabels-undocumented.txt: + * docs/libglabels/tmpl/enums.sgml: + * docs/libglabels/tmpl/paper.sgml: + * docs/libglabels/tmpl/xml-paper.sgml: + * docs/libglabels/tmpl/xml-template.sgml: + * libglabels/enums.h: + * libglabels/paper.c: (gl_paper_dup): + * libglabels/paper.h: + * libglabels/xml-paper.c: + * libglabels/xml-template.c: + More documentation updates for libglabels. + +2005-03-23 Jim Evins + + * INSTALL: + Automatically updated. + * Makefile.am: + * autogen.sh: + * configure.in: + * docs/Makefile.am: + * docs/libglabels/Makefile.am: + * docs/libglabels/libglabels-docs.sgml: + * docs/libglabels/libglabels-sections.txt: + * docs/libglabels/libglabels-undocumented.txt: + * docs/libglabels/tmpl/enums.sgml: + * docs/libglabels/tmpl/libglabels-unused.sgml: + * docs/libglabels/tmpl/libglabels.sgml: + * docs/libglabels/tmpl/paper.sgml: + * docs/libglabels/tmpl/template.sgml: + * docs/libglabels/tmpl/xml-paper.sgml: + * docs/libglabels/tmpl/xml-template.sgml: + * docs/libglabels/tmpl/xml.sgml: + Added basic gtk-doc stuff to support documenting libglabels + API. + * libglabels/xml.c: + Updated function comments with gtk-doc markup. + * missing: + Removed. + +2005-03-22 Jim Evins + + Since the development version now requires gtk-2.6/gnome-2.10, I + have made a first pass at removing deprecations. + + * configure.in: + * libglabels/Makefile.am: + * src/Makefile.am: + Added configure option to turn on X_DISABLE_DEPRECATED flags. + Also removed all remnants of HAVE_FILECHOOSER. + * src/file.c: (gl_file_open_real): + Removed code for old GtkFileSelection. + * libglabels/libglabels-private.h: + * libglabels/paper.c: + * libglabels/template.c: + * libglabels/xml-paper.c: + * libglabels/xml-template.c: + * libglabels/xml.c: + * src/bc.c: + * src/file.c: + * src/glabels-batch.c: + * src/glabels.c: + * src/label.c: + * src/merge-init.c: + * src/merge-properties-dialog.c: + * src/merge.c: + * src/object-editor.c: + * src/prefs-dialog.c: + * src/prefs.c: + * src/print-dialog.c: + * src/print.c: + * src/stock.c: + * src/template-designer.c: + * src/ui-property-bar.c: + * src/ui-sidebar.c: + * src/view-barcode.c: + * src/view-box.c: + * src/view-ellipse.c: + * src/view-image.c: + * src/view-line.c: + * src/view-text.c: + * src/view.c: + * src/wdgt-image-select.c: + * src/wdgt-media-select.c: + * src/wdgt-print-copies.c: + * src/wdgt-print-merge.c: + * src/wdgt-rotate-label.c: + * src/window.c: + * src/xml-label-04.c: + * src/xml-label-191.c: + * src/xml-label.c: + Added '#include " where needed. + Removed any unused '#include "s. + +2005-03-22 Jim Evins + + * src/commands.c: (activate_url), (gl_cmd_help_about): + Replaced GnomeAbout with GtkAboutDialog. Therefore the + development version of glabels now depends on GTK 2.6 and + GNOME 2.10. + * configure.in: + Updated library dependencies. + +2005-02-28 Jim Evins + + * AUTHORS: + * data/templates/misc-iso-templates.xml: + Added 'Ednet 45021' template provided by Ali Akcaagac + . + +2005-02-14 Jim Evins + + * data/templates/avery-us-templates.xml: + Updated templates to use inches instead of points. + * src/print-dialog.c: (printer_page_new): + Changed packing style when adding printer selector widget. This fixes + debian Bug#295274. + +2005-02-13 Jim Evins + + * AUTHORS: + * po/es.po: + Updated spanish translations. (sergio rivadero) + +2005-02-05 Jim Evins + + Some cleanup to libglabels. + + * configure.in: + Updated version to 2.1.1cvs. Added generation of libglabels.pc. + * libglabels/libglabels.pc.in + Created. + * libglabels/enums.h + Created. Currently only contains glUnitsType which provides enumerations + for all possible units of distance. + * libglabels/Makefile.am: + Incorporated new files enums.h and libglabels.pc[.in]. + * libglabels/libglabels.h: + Include enums.h. + * libglabels/template.h: + * libglabels/template.c: (gl_template_layout_new): + Changed parameters nx and ny to gint from gdouble. + * libglabels/xml.h: + * libglabels/xml.c: (gl_xml_get_prop_length), + (gl_xml_set_prop_length), (gl_xml_set_default_units): + Added support for different output units. + * src/prefs-dialog.c: (update_locale_page_from_prefs), + (update_prefs_from_locale_page): + * src/prefs-model.c: (string_to_units), (units_to_string): + * src/prefs-model.h: + * src/prefs.c: (gl_prefs_get_units_per_point), + (gl_prefs_get_units_precision), (gl_prefs_get_units_step_size), + (gl_prefs_get_units_string): + * src/prefs.h: + * src/wdgt-media-select.c: (details_update), (get_label_size_desc): + Reconciled all length enumerations with the new enumerations provided + in libglabels/enums.h. + +2005-02-03 Jim Evins + + * po/cs.po: + Updated Czech translations. (David Makovský and Zbynek Mrkvick) + * po/it.po: + Updated Italian translations. (Daniele Medri) + * AUTHORS: + Updated credits to reflect above translations. + + +2005-01-22 Jim Evins + + * MESSAGE-OF-DOOM: + Added. + * Makefile.am: + Added MESSAGE-OF-DOOM to EXTRA_DIST. + * NEWS: + Final prep for 2.1.0. + * configure.in: + Set version to 2.1.0. Output MESSAGE-OF-DOOM. + * glabels.spec.in: + Added '--remove-original' flag to desktop-file-install, so that there is + only one menu entry. + +2005-01-20 Jim Evins + + * data/glade/object-editor.glade: + - Font family entry should not be editable. + - img_key_entry should have sensitivity=YES, so that it follows the + sensitivity of img_key_combo. + +2005-01-19 Jim Evins + + * AUTHORS: + Give credit to Frederic Ruaudel for the color merge patches. + +2005-01-18 Frederic Ruaudel + + Add support to merge color for all other color attribute (Feature + Requests item #1008635. If the data is invalid, the color used is transparent + (GL_COLOR_NONE). The format for color in merge data file are those accepted + by gdk_color_parse() these include name for a color from rgb.txt, such as + DarkSlateGray, or a hex specification such as #305050. File format has been + changed but backward compatibility is preserved for all format. For + box/ellipse/line, keep attribute "line_color" for static color or replace by + "line_color_field" for merge data. For text/barcode objects, keep attribute + "color" for static color or replace by "color_field" for merge data. In the + edit canvas window, merged color are represented by half-transparent black + line/area. + + * data/dtd/glabels-2.0.dtd: + Added line_color_field to line_attrs. Added color_field to + Object-barcode and Span. + * data/glade/object-editor.glade: + Modify the layout of the editor to add merge possibility to color options + * src/color.c: + Fix a copy/paste error in a comment + * src/color.h: + Add default color for merge color representation in the editor canvas. + * src/label-barcode.c: + * src/object-editor-bc-page.c: + * src/view-barcode.c: + Add merge color support for barcode color. + * src/label-box.c: + * src/view-box.c: + Add merge color support for box border color. + * src/label-ellipse.c: + * src/view-ellipse.c: + Add merge color support for ellipse border color. + * src/label-line.c: + * src/view-line.c: + Add merge color support for line color. + * src/label-object.c: + * src/label-object.h: + * src/object-editor.c: + * src/object-editor.h: + * src/ui-property-bar.c: + * src/view.c: + * src/view.h: + * src/xml-label-04.c: + * src/xml-label-191.c: + Add support for merging to other color attribute. + * src/label-text.c: + * src/object-editor-text-page.c: + * src/view-text.c: + Add merge color support for text color. + * src/object-editor-fill-page.c: + Change a blocked handler that didn't match the good widget. Fix the type + of some debug message. + * src/object-editor-line-page.c: + Add merging support to line color option. + * src/object-editor-private.h: + Add variables for new widget. + * src/print.c: + Modify the draw functions to get merge data if needed. + * src/window.c: + Change the default size of the window in order to see all widget in the + "text style tab" of the editor. + * src/xml-label.c: + Modify the parser to record/retreive the field value for objects that need + "color" attribute. For box/ellipse/line, keep attribute "line_color" for + static color or replace by "line_color_field" for merge data. For + text/barcode objects, keep attribute "color" for static color or replace + by "color_field" for merge data. + +2005-01-17 Jim Evins + + * src/view.c: (screen_changed_cb): + Don't do anything if we don't have a screen. + +2005-01-06 Jim Evins + + * src/view.c: (get_home_scale): + Fixed bad call to gtk_widget_has_screen() -- huh?. + +2005-01-06 Jim Evins + + * data/dtd/glabels-2.0.dtd: + Added fill_color_field to fill_attrs. Also added xmlns attribute to all + top-level elements. + +2005-01-06 Jim Evins + + * data/glade/object-editor.glade: + Set entries for fill and data field key dropdowns to NOT editable. + * src/view-box.c: (construct_properties_editor): + * src/view-ellipse.c: (construct_properties_editor): + Update object editor when label's merge property has changed. + * src/xml-label.c: (xml_parse_object_ellipse): + Completed the merge color support for the ellipse item. + +2005-01-06 Frederic Ruaudel + + Add support to merge color for object that have a "Fill color" attribute (Feature + Requests item #1008635. If the data is invalid, the color used is transparent + (GL_COLOR_NONE). The format for color in merge data file are those accepted + by gdk_color_parse() these include name for a color from rgb.txt, such as + DarkSlateGray, or a hex specification such as #305050. File format has been + changed but backward compatibility is preserved for all format. For box/ellipse, + keep attribute "fill_color" for static color or replace by "fill_color_field" + for merge data. + + * data/glade/object-editor.glade: + Modify "Fill" tab to add the merge key combo and convert the labels into + radio button. + * src/color.h: + * src/color.c: + Add "glColorNode" structure and associated functions to manage it. This + structure is equivalent for color than the "glTextNode". It holds the color + and the key field. + * src/label-object.h: + * src/label-object.c: + * src/label-box.c: + * src/label-ellipse.c: + * src/ui-property-bar.c: + * src/view.h: + * src/view.c: + * src/view-box.c: + * src/view-ellipse.c: + * src/xml-label-04.c: + * src/xml-label-191.c: + Change functions of objects that have a "fill color" attribute to use the + new "glColorNode" structure. Use barcode code as example. + * src/Makefile.am: + Add the color.[ch] file to glabels_batch binary that now need support for + "glColorNode". + * src/object-editor.h: + * src/object-editor.c: + * src/object-editor-fill-page.c: + Manage the new widget of the editor's "Fill" tab : key combo and radio button + to choose between static color or merge key. Use barcode code as example. + * src/object-editor-private.h: + Add new widget in the "_glObjectEditorPrivate" structure. + * src/print.c: + Modify the draw functions to get merge data if needed. + * src/xml-label.c: + Modify the parser to record/retreive the field value for objects that need + "Fill color" attribute. For box/ellipse, put attribute "fill_color" for static + color or "fill_color_field" for merge data. + +2005-01-04 Jim Evins + + * AUTHORS: + * data/templates/avery-iso-templates.xml: + * data/templates/misc-iso-templates.xml: + * data/templates/misc-us-templates.xml: + Added templates, submitted by Larry Harriman, Juan Carlos Valero, and + Nick Hill. + +2004-11-26 Jim Evins + + * AUTHORS: + * po/fr.po: + Updated french translations provided by Florent Morel . + * src/view-barcode.c: + * src/view-box.c: + * src/view-ellipse.c: + * src/view-image.c: + * src/view-line.c: + * src/view-text.c: + Added '#include ' -- HAVE_*GETTEXT macros were not defined and + thus _() strings were not being translated. + +2004-11-14 Jim Evins + + * src/debug.h: + * src/debug.c: (gl_debug_init), (gl_debug): + Borrowed from gedit: use environmental variables to select debug + sections. + * src/splash.c: + Removed unused include of debug.h. + * src/glabels.c: (main): + Added call to gl_debug_init(), and removed debug clutter from command line + options. + * src/glabels-batch.c: (main): + Added call to gl_debug_init(). + +2004-11-13 Jim Evins + + Drawing and property toolbars were being initialized with the "icons and text" + look in Fedora Core 3. Even though none of the buttons had any text attached to + them, the buttons were being sized as if they were. This led to less real estate + for the property editor, leading to Bug #1064630. The + + * data/ui/glabels-ui.xml: + Added explicit "look" property to both drawing and property toolbars. + * src/prefs-model.c: (gl_prefs_model_save_settings), + (gl_prefs_model_load_settings): + * src/prefs-model.h: + Removed drawing_toolbar_button_style configuration parameter. + * src/ui.c: (view_menu_item_toggled_cb), + (set_app_drawing_toolbar_style): + Do not attempt to adjust look property of the drawing toolbar. + +2004-10-28 Jim Evins + + * data/pixmaps/glabels-about-logo.png: + Updated about logo. + +2004-10-28 Jim Evins + + * data/man/glabels.1: + * src/glabels-batch.c: (main): + * src/print.h: + * src/print.c: (gl_print_batch): + + Added option to glabels-batch to select the first label to begin + printing on. + +2004-09-26 Jim Evins + + * data/desktop/glabels.desktop.in: + Point to app icon, "glabels.png" + * data/mime/glabels.keys.in: + Point at mime icon, "glabels-application-x-glabels.png" + * data/pixmaps/Makefile.am: + Added glabels_app_icondir. Renamed icons. + * data/pixmaps/glabels.png: + New cleaned up app icon. Deleted glabels-icon.png. + * data/pixmaps/glabels-application-x-glabels.png: + New mime icon. + * data/pixmaps/glabels-splash.png: + Renamed glabels-logo to glabels-splash to be more correct about role. + * src/glabels.c: + * src/template-designer.c: + Point at app icon, "glabels.png" + * src/splash.c: + Point at renamed splash image, "glabels-splash.png" + +2004-08-22 Jim Evins + + * AUTHORS: + * src/glabels-batch.c: (main): + Applied patch with minor mods to allow selecting merge source and + crop-marks on glabels-batch's command line. Original patch provided by + José Dapena Paz . + +2004-08-15 Jim Evins + + * data/desktop/glabels.desktop.in: + - Added encoding line + - Removed period from comment + - Fixed Terminal line, changed "0" to "false" + - Added semicolen to Categories line + * po/ja.po: + - Made sure desktop.in comment string above still translated properly + +2004-08-14 Jim Evins + + * libglabels/xml-paper.c: (gl_xml_paper_parse_paper_node): + * libglabels/xml-template.c: (gl_xml_template_parse_template_node): + * src/xml-label-191.c: (xml191_parse_sheet): + Fixed improper freeing of gettext strings. Merged from 2.0.1. + * configure.in: + Reconciled libglabels versioning with 2.0.1. + + +2004-08-14 Jim Evins + + * configure.in: + Updated version to 2.1cvs. + +2004-08-14 Jim Evins + + * po/ja.po: + Updated 2.0.x translation by Takeshi AIHANA . + +2004-08-14 Jim Evins + + Fixes for Bug #1008181. + + * src/bc.c: (gl_barcode_default_digits): + Make a format of zero digits, harmless. + * src/xml-label.c: (xml_parse_object_barcode): + Set default value of the format property of barcode objects to 10, not + zero. This will prevent crashes when reading pre 2.0.x files. + +2004-08-09 Jim Evins + + * NEWS: + * TODO: + * help/C/glabels-C.omf: + * help/C/glabels.xml: + Brought documentation up-to-date for 2.0.0 release. + +2004-08-09 Jim Evins + + These are hopefully the final preparations for 2.0.0. + + * data/mime/Makefile.am: + Include glabels.xml in EXTRA_DIST. + * configure.in: + - Updated comment style. + - Added LIBGLABELS_VERSION_INFO macro, updated Current. + - Added package and version info to configuration printout + - Update version to 2.0.0 + * libglabels/Makefile.am: + Use the new LIBGLABELS_VERSION_INFO macro. + +2004-08-09 Jim Evins + + * configure.in: + * glabels.spec.in: + Cleanup of required library macros. + +2004-08-08 Jim Evins + + * glabels.spec.in: + - Updated URL + - More specific of what to install in /usr/bin and /usr/lib + - Remove built mime registration files from staging directory + +2004-08-08 Jim Evins + + * data/mime/Makefile.am: + Fixed typo: key_files should have been keys_files. + +2004-08-08 Jim Evins + + Reorganization of runtime data files. Also added registration of mimetype with + new freedesktop.org mime database if available. + + * data/* + Moved files to appropriate subdirectories, creating local Makefile.am + in each subdirectory. + - Moved paper-sizes.xml and *-templates.xml to templates subdirectory. + These are now installed at $datadir/glabels/templates. + - Moved glabels.1 to man subdirectory. + - Moved glabels-2.0.dtd to dtd subdirectory. + - Moved glabels.desktop.in to desktop subdirectory. + - Moved glabels.keys.in and glabels.mime to mime subdirectory. + * data/pixmaps/* + Moved "./pixmaps" to "./data/pixmaps" + * data/ui/* + Moved src/glabels-ui.xml to data/ui directory. Created Makefile.am. + * data/glade/* + Moved libglade files from src to data/glade. Created Makefile.am. + * Makefile.am: + Removed pixmaps from SUBDIRS. + * configure.in: + - Removed pixmaps from makefiles. + - Added makefiles for new subdirs of data. + - Added tests for freedesktop.org mime database. + * glabels.spec.in: + - Added tests for freedesktop.org mime database for post install and + post un-install actions. + * libglabels/Makefile.am: + Moved system template files to $(datadir)/glabels/templates. + * libglabels/libglabels-private.h: + Moved system template files to $(datadir)/glabels/templates. + * po/POTFILES.in: + - Accounted for movement of ui and libglade files. + - Added missing .in files. + - Reorganized by directory. + * src/Makefile.am: + Accounted for movement of ui and libglade files. + * data/mime/glabels.xml.in: + New file for registering with freedesktop.org mime database. + +2004-08-07 Jim Evins + + * src/recent-files/*: + Re-synced to latest libegg/recent-files. + +2004-08-07 Jim Evins + + * Makefile.am: + * configure.in: + * help/* + Renamed "./doc" directory to "./help" which contains user documentation, + to be more consistent with other GNOME applications. + + +2004-07-26 Jim Evins + + * src/merge-properties-dialog.c: (gl_merge_properties_dialog_init): + Corrected button order of merge properties dialog. + +2004-07-18 Jim Evins + + * data/glabels-2.0.dtd: + * src/bc.c: (gl_barcode_default_digits), (gl_barcode_can_freeform), + (gl_barcode_get_prefered_n): + * src/bc.h: + * src/label-barcode.c: (copy), (gl_label_barcode_set_props), + (gl_label_barcode_get_props), (get_size): + * src/label-barcode.h: + * src/object-editor-bc-page.c: (gl_object_editor_prepare_bc_page), + (style_changed_cb), (gl_object_editor_set_bc_style), + (gl_object_editor_get_bc_style): + * src/object-editor-data-page.c: (data_radio_toggled_cb), + (gl_object_editor_set_data), (gl_object_editor_get_data): + * src/object-editor-private.h: + * src/object-editor.c: (gl_object_editor_set_key_names): + * src/object-editor.glade: + * src/object-editor.h: + * src/print.c: (draw_barcode_object): + * src/view-barcode.c: (update_object_from_editor_cb), + (update_editor_from_object_cb), + (gl_view_barcode_create_event_handler), (draw_barcode): + * src/xml-label-04.c: (xml04_parse_barcode_props): + * src/xml-label-191.c: (xml191_parse_barcode_props): + * src/xml-label.c: (xml_parse_object_barcode), + (xml_create_object_barcode): + Added "format" attribute to barcode objects. This attribute is used + to properly format freeform barcodes barcodes prior to merge data is + applied, so that barcodes can be accurately layed out. This addresses + remaining issues of feature request #824787. Also added an example of + the format in the object editor. + +2004-07-12 Jim Evins + + Various code cleanups. + + * src/label-barcode.c: + Removed unneeded include of gnome-glyphlist.h. + + * src/label-text.c: (get_size): + Fixed memory leak: unref glyphlists when done with them. + + * src/object-editor-bc-page.c: (gl_object_editor_prepare_bc_page): + * src/object-editor-data-page.c: + (gl_object_editor_prepare_data_page): + * src/object-editor-image-page.c: + (gl_object_editor_prepare_image_page): + * src/object-editor-line-page.c: + (gl_object_editor_prepare_line_page): + * src/object-editor-lsize-page.c: + (gl_object_editor_prepare_lsize_page): + * src/object-editor-position-page.c: + (gl_object_editor_prepare_position_page): + * src/object-editor-size-page.c: + (gl_object_editor_prepare_size_page): + * src/object-editor-text-page.c: + (gl_object_editor_prepare_text_page): + Removed unneeded size groups, originally intended to keep widgets aligned. + Now use tables to lay these out in object-editor.glade. + + * src/print.c: (draw_text_object): + Fixed memory leak: unref glyphlists when done with them. + + * src/view-barcode.c: (draw_barcode): + Fixed memory leak: unref glyphlists when done with them. + + * src/view-text.c: (update_object_from_editor_cb), (draw_hacktext): + - Removed unneeded cast of gl_object_editor_get_text_line_spacing()s + return value. + - Fixed memory leak: unref glyphlists when done with them. + +2004-07-11 Jim Evins + + * data/glabels-2.0.dtd: + * src/label-text.c: (gl_label_text_instance_init), (copy), + (gl_label_text_set_auto_shrink), (gl_label_text_get_auto_shrink): + * src/label-text.h: + * src/object-editor-private.h: + * src/object-editor-text-page.c: + (gl_object_editor_prepare_text_page), + (gl_object_editor_set_text_auto_shrink), + (gl_object_editor_get_text_auto_shrink): + * src/object-editor.c: (gl_object_editor_set_key_names): + * src/object-editor.glade: + * src/object-editor.h: + * src/print.c: (draw_text_object): + * src/view-text.c: (update_object_from_editor_cb), + (update_editor_from_object_cb): + * src/xml-label.c: (xml_parse_object_text), + (xml_create_object_text): + Added option to allow document merge to auto shrink text size to fit + within the text box. The code in print.c that actually shrinks the + text is loosely based on a patch submitted by Mark Harrison + . This addresses feature request + #661421. + +2004-07-11 Jim Evins + + * data/glabels-2.0.dtd: + * libglabels/template.c: (gl_template_rect_label_type_new), + (gl_template_round_label_type_new), + (gl_template_cd_label_type_new), (gl_template_label_type_dup), + (template_full_page): + * libglabels/template.h: + * libglabels/xml-template.c: (xml_parse_label_rectangle_node), + (xml_create_label_node): + * pixmaps/ex-rect-size.png: + * src/print.c: (clip_to_outline), (clip_punchouts): + * src/template-designer.c: (construct_rect_size_page), + (rect_size_page_prepare_cb), (layout_page_prepare_cb), + (build_template): + * src/template-designer.glade: + * src/xml-label-191.c: (xml191_parse_label): + Modifications to allow separate horizontal (x_waste) and vertical (y_waste) + properties for rectangular labels. Templates remain backwards compatible, + but this breaks the libglabels API (I don't know of anyone outside of + glabels using libglabels at this time -- what can I say, the program is + is still "unstable"). This addresses the suggestion in Feature Request + #976313. + +2004-07-05 Jim Evins + * src/print.c: (print_crop_marks), (draw_outline): + Changed crop marks and label outlines to black, instead of 25% gray. + This addresses debian Bug #257460. + +2004-07-05 Jim Evins + + * src/object-editor-fill-page.c: (gl_object_editor_set_fill_color): + * src/object-editor-line-page.c: (gl_object_editor_set_line_color): + Preserve "is_default" of fill and line color_combos when creating from + existing objects. + +2004-07-02 Jim Evins + + * data/glabels.1: + Created man page. Based on page submitted by Matthew J. Lockner, however + it has been severely edited. + + * data/avery-other-templates.xml + * data/misc-other-templates.xml: + Started new files for predefined templates with non-standard sheet sizes. + These have been initially populated with the Avery 06141 and + OfficeMax #86112, both provided by Matthew J. Lockner. + + * data/Makefile.am: + Install above manpage and template files. + + * glabels.spec.in: + Make sure we install man pages. + + * src/glabels-batch.c: + Changed short form of help option to '-?' to be consistent with glabels. + + * AUTHORS: + Added acknowledgement for above labels. + +2004-07-02 Jim Evins + + * src/glabels.c: (main), (save_session_cb): + - Now include libbonoboui.h, recent.h, and file.h to provide missing + prototypes. + - save_session_cb() now returns gboolean. + - Minor formatting changes. + + * src/window.h: + * src/window.c: + - Now include file.h to provide missing prototype. + - gl_window_get_type() now returns GType, not guint. I believe this may + ultimately be cause of the segfault reported in Bug #982287, since + GType is actually a gulong, which may not be compatible on other + architectures (64bit) -- I cannot personally test this at this time. + I was sloppy in several other xxx_get_type() functions which also + returned guint -- see next group of files: + + * src/window.c: (gl_window_get_type): + * src/canvas-hacktext.c: (gl_canvas_hacktext_get_type): + * src/canvas-hacktext.h: + * src/hig.c: (gl_hig_alert_get_type), (gl_hig_dialog_get_type), + (gl_hig_category_get_type), (gl_hig_vbox_get_type), + (gl_hig_hbox_get_type): + * src/hig.h: + * src/label-barcode.c: (gl_label_barcode_get_type): + * src/label-barcode.h: + * src/label-box.c: (gl_label_box_get_type): + * src/label-box.h: + * src/label-ellipse.c: (gl_label_ellipse_get_type): + * src/label-ellipse.h: + * src/label-image.c: (gl_label_image_get_type): + * src/label-image.h: + * src/label-line.c: (gl_label_line_get_type): + * src/label-line.h: + * src/label-object.c: (gl_label_object_get_type): + * src/label-object.h: + * src/label-text.c: (gl_label_text_get_type): + * src/label-text.h: + * src/label.c: (gl_label_get_type): + * src/label.h: + * src/merge-properties-dialog.c: + (gl_merge_properties_dialog_get_type): + * src/merge-properties-dialog.h: + * src/merge-text.c: (gl_merge_text_get_type): + * src/merge-text.h: + * src/merge.c: (gl_merge_get_type): + * src/merge.h: + * src/object-editor.c: (gl_object_editor_get_type): + * src/prefs-dialog.c: (gl_prefs_dialog_get_type): + * src/prefs-dialog.h: + * src/prefs-model.c: (gl_prefs_model_get_type): + * src/prefs-model.h: + * src/print-dialog.c: (gl_print_dialog_get_type): + * src/print-dialog.h: + * src/template-designer.c: (gl_template_designer_get_type): + * src/template-designer.h: + * src/ui-property-bar.c: (gl_ui_property_bar_get_type): + * src/ui-property-bar.h: + * src/ui-sidebar.c: (gl_ui_sidebar_get_type): + * src/ui-sidebar.h: + * src/view-barcode.c: (gl_view_barcode_get_type): + * src/view-barcode.h: + * src/view-box.c: (gl_view_box_get_type): + * src/view-box.h: + * src/view-ellipse.c: (gl_view_ellipse_get_type): + * src/view-ellipse.h: + * src/view-highlight.c: (gl_view_highlight_get_type): + * src/view-highlight.h: + * src/view-image.c: (gl_view_image_get_type): + * src/view-image.h: + * src/view-line.c: (gl_view_line_get_type): + * src/view-line.h: + * src/view-object.c: (gl_view_object_get_type): + * src/view-object.h: + * src/view-text.c: (gl_view_text_get_type): + * src/view-text.h: + * src/view.c: (gl_view_get_type): + * src/view.h: + * src/wdgt-chain-button.c: (gl_wdgt_chain_button_get_type): + * src/wdgt-image-select.c: (gl_wdgt_image_select_get_type): + * src/wdgt-image-select.h: + * src/wdgt-media-select.c: (gl_wdgt_media_select_get_type): + * src/wdgt-media-select.h: + * src/wdgt-mini-preview.c: (gl_wdgt_mini_preview_get_type): + * src/wdgt-mini-preview.h: + * src/wdgt-print-copies.c: (gl_wdgt_print_copies_get_type): + * src/wdgt-print-copies.h: + * src/wdgt-print-merge.c: (gl_wdgt_print_merge_get_type): + * src/wdgt-print-merge.h: + * src/wdgt-rotate-label.c: (gl_wdgt_rotate_label_get_type): + * src/wdgt-rotate-label.h: + - Made sure all xxx_get_type functions returned GType, not guint. This + was the case in hig.[ch], window.[ch], ui-property-bar.[ch], + ui-sidebar.[ch], view.[ch], wdgt-image-select.[ch], + wdgt-media-select.[ch], wdgt-mini-preview.[ch], wdgt-print-copies.[ch], + wdt-print-merge.[ch], and wdgt-rotate-label.[ch]. See separate + window.[ch] details above for more info. + - Reconciled various coding style differences in all xxx_get_type() + functions: + * All prototypes include G_GNUC_CONST. + * All prototypes specify the return value as GType, not GtkType + or guint. + * Info structures are all declared as "static const." + * Generalized the names of type and info variables. + * Miscelaneous formatting. + +2004-06-08 Jim Evins + + * src/label.c: + * src/label.h: + * src/xml-label.c: + * AUTHORS: + Don't touch compression of original file -- still defaults to 9 for + new files. Original patch provided by Javier Donaire Segarra + (#912252 in patch tracker). + +2004-05-05 Jim Evins + + * data/glabels-2.0.dtd: + Broke DTD previously when adding new barcode types that contain a + plus sign (+). Simply changed the BC_STYLE_TYPE entity to "CDATA" + to avoid the problem. + * data/avery-iso-templates.xml: + * data/zweckform-iso-templates.xml: + * AUTHORS: + Added templates for Avery 7165, Zweckform 3688, 4732, and 6021. Templates + provided by Frank Altpeter. + * libglabels/xml-template.c: (xml_create_label_node): + Reordered markup and layout sub-nodes so that resulting templates will + validate against DTD. + +2004-03-13 Jim Evins + + * src/object-editor-size-page.c: (gl_object_editor_prepare_size_page): + Changed spin callback signals from "value-changed" back to "changed." + This was accidentally introduced in a previous revision, and can cause + size changes just by selecting the size tab. + +2004-03-06 Jim Evins + + * src/view.c: (draw_grid_layer): + For round labels (round and cd) adjust grid so that it lines up with + center of label. Also, no longer draw box around label in the grid layer, + it is hidden by he fg layer anyway. Feature suggested by + nemolivier@free.fr. Although the grid is aligned with the center of the + label, the coordinate system is still relative to the upper left corner + of the rectangle containing the label. + +2004-02-25 Jim Evins + + * configure.in: + Changed version to 2.0pre1cvs + + * libglabels/xml-template.c: (gl_xml_template_parse_templates_doc): + Removed extra xmlFreeDoc() calls upon error. Also print the doc->URL + instead of doc->name fields when errors encountered. + +2004-02-21 Jim Evins + + * data/avery-iso-templates.xml: + Added aliases for Avery 8651. Patch provided by Wayne Schuller. + + * glabels.spec.in: + Added libglabels library and include file to installed files. + + * configure.in: + Final prep for 1.93.3. + +2004-02-20 Jim Evins + + * src/glabels-batch.c: (main): + Changed key for setting output filename to GNOME_PRINT_KEY_OUTPUT_FILENAME + as suggested by Javier Donaire Segarra. This addresses bug #901063. + +2004-02-16 Jim Evins + + * configure.in: + If gtk+ >= 2.3.2 then define HAVE_FILE_CHOOSER. + + * src/Makefile.am: + Added HAVE_FILE_CHOOSER to INCLUDES. + + * src/file.c: (gl_file_open), (open_response), (gl_file_open_real), + (gl_file_save_as), (save_as_response): + Ported to use GtkFileChooserDialog if HAVE_FILE_CHOOSER is defined. + +2004-02-16 Jim Evins + + * src/xml-label-04.c: (xml04_parse_image_props): + * src/xml-label-191.c: (xml191_parse_image_props): + * src/xml-label.c: (xml_parse_object_image): + Delay setting image size until after image has been applied to new + object. + +2004-02-15 Jim Evins + + * src/label-barcode.c: (gl_label_barcode_set_data), + (gl_label_barcode_set_props): + Don't emit "changed" signal, if no change actually made for these + methods. Reduces number of unnecessary redraws of barcodes. + + * src/label-object.h: + * src/label-object.c: (gl_label_object_set_position), + (gl_label_object_set_position_relative), (set_size), + (gl_label_object_set_size), + (gl_label_object_set_size_honor_aspect): + Don't emit "changed" signal, if no change actually made for these + methods. + +2004-02-15 Jim Evins + + * data/glabels-2.0.dtd: + Added specific subtypes for various barcode types. + + * src/bc.h: + * src/bc.c: (id_to_index), (name_to_index), (gl_barcode_new), + (gl_barcode_get_styles_list), (gl_barcode_default_digits), + (gl_barcode_can_text), (gl_barcode_text_optional), + (gl_barcode_can_csum), (gl_barcode_csum_optional), + (gl_barcode_id_to_name), (gl_barcode_name_to_id): + Changed API to use a string id, rather than a fixed enumeration. Id and + name are separate strings. Added entries to backend table for specific + subtypes for various barcode types. + + * src/bc-postnet.h: + * src/bc-postnet.c: (gl_barcode_postnet_new), (postnet_code), + (is_length_valid): + Modified to conform to above API. Now more stringent with data length + for various subtypes. + + * src/bc-gnubarcode.h: + * src/bc-gnubarcode.c: (gl_barcode_gnubarcode_new), + (is_length_valid), (is_length1_valid), (is_length2_valid): + Modified to conform to above API. Now more stringent with data length + for various subtypes. + + * src/label-barcode.h: + * src/label-barcode.c: (copy), (gl_label_barcode_set_props), + (gl_label_barcode_get_props), (get_size): + Modified to use above API for storing barcode type. + + * src/object-editor.h: + * src/object-editor-bc-page.c: (style_changed_cb), + (gl_object_editor_set_bc_style), (gl_object_editor_get_bc_style): + Modified to use above API for storing barcode type. + + * src/object-editor-size-page.c: + (gl_object_editor_prepare_size_page), (aspect_toggle_cb), + (w_spin_cb), (h_spin_cb), (size_reset_cb): + Added debug markers. + + * src/object-editor.glade: + Made barcode style combo's text entry non-editable. + + * src/print.c: (draw_barcode_object): + Modified to use above API for barcode type. + + * src/view-barcode.c: (update_object_from_editor_cb), + (update_editor_from_object_cb), + (gl_view_barcode_create_event_handler), (draw_barcode): + Modified to use above API for barcode type. + + * src/xml-label-04.c: (xml04_parse_barcode_props): + * src/xml-label-191.c: (xml191_parse_barcode_props): + * src/xml-label.c: (xml_parse_object_barcode), + (xml_create_object_barcode): + Modified to use above API for barcode type. + +2004-02-07 Jim Evins + + * src/stock-pixmaps/Makefile.am: + * src/stock-pixmaps/stock_hchain_24.png: + * src/stock-pixmaps/stock_hchain_broken_24.png: + * src/stock-pixmaps/stock_vchain_24.png: + * src/stock-pixmaps/stock_vchain_broken_24.png: + Added chain pixmaps borrowed from the gimp's default theme. + + * src/stock.h: + * src/stock.c: (gl_stock_init), (add_button_icon): + Added above pixmaps to stock icon sets. Created add_button_icon() to + add these pixmaps sized as GTK_ICON_SIZE_BUTTON. + + * src/wdgt-chain-button.h + * src/wdgt-chain-button.c + * src/Makefile.am: + * po/POTFILES.in: + Added this Modified version of gimpchainbutton widget, borrowed from + the gimp. + + * AUTHORS: + Added acknowledgements of the above borrowing from the gimp. + + * src/object-editor-size-page.c: (aspect_toggle_cb), (w_spin_cb), + (h_spin_cb): + * src/object-editor.c: (gl_object_editor_construct_chain_button): + * src/object-editor.glade: + Replaced the keep aspect ratio check box with the above chain-button + widget. + + * src/text-node.c: (gl_text_node_equal): + * src/text-node.h: + Added function gl_text_node_equal() to compare text_nodes. + + * src/label-image.c: (gl_label_image_set_filename): + Replaced incomplete text_node comparison code with invocation of + gl_text_node_equal. This fixed the problem of not being able to + resize an image using the object_editor if the aspect ratio is not + locked. + +2004-02-04 Jim Evins + + * src/object-editor-image-page.c: + (gl_object_editor_prepare_image_page): + Track "changed" signal of pixmap entry's GtkEntry rather than its + "activate" signal -- this catches all changes to the entry rather than + just changes resulting from a browse, so one can easily pull previous + entries from the history. (This change is marked below on 2004-02-03, + but somehow never got checked in.) + + * src/view-highlight.c: (sl_resize_event_handler), + (sr_resize_event_handler), (st_resize_event_handler), + (sb_resize_event_handler): + Side resize handles will now confirm the actual resize that the object + accepted before adjusting position parameters. Previously some interesting + things happened when resizing a barcode to its minimum size. + +2004-02-03 Jim Evins + + * src/object-editor-image-page.c: + (gl_object_editor_prepare_image_page): + Track "changed" signal of pixmap entry's GtkEntry rather than its + "activate" signal -- this catches all changes to the entry rather than + just changes resulting from a browse, so one can easily pull previous + entries from the history. + + * src/view-highlight.c: (tl_resize_event_handler), + (tr_resize_event_handler), (bl_resize_event_handler), + (br_resize_event_handler): + Allow control key to be dropped while dragging a corner resize handle + without losing the aspect ratio lock. + +2004-02-02 Jim Evins + + * src/label-image.c: (gl_label_image_set_filename): + When setting a new filename adjust size such that the aspect ratio of + the image is preserved using the current size as a bounding box. + + * src/view-image.c: (update_object_from_editor_cb): + When updating object from editor, feed back possible size changes to + editor as a result of a possible change in image. + + * src/object-editor-size-page.c: (size_reset_cb): + Fixed typo when blocking spin handlers. If the base size is larger than + the max size, treat max size as a bounding box while keeping aspect + ratio. + + +2004-02-02 Jim Evins + + * src/label-object.h: + * src/label-object.c: (gl_label_object_set_size), + (gl_label_object_set_size_honor_aspect): + Added gl_label_object_set_size_honor_aspect() which will maintain the + current aspect ratio by modifying the supplied w or h apropriately. + + * src/view-highlight.c: (tl_resize_event_handler), + (tr_resize_event_handler), (bl_resize_event_handler), + (br_resize_event_handler): + Corner handles will now maintain the current aspect ratio if the + control key is pressed while resizing. This addresses feature + request #816603. + + +2004-01-31 Jim Evins + + * AUTHORS: + * data/avery-us-templates.xml: + Added entries for "LSK-3," "LSK-5," and "LSK-8." Submitted by JBadger. + + * libglabels/template.c: (read_template_files_from_dir): + Corrected problem with testing for extensions. + + * src/object-editor.glade: + Corrected grouping of radio buttons in barcode data page. + + * src/print.c: (draw_barcode_object): + * src/view-barcode.c: (draw_barcode): + Corrected problem with calculation of y_offset for locating characters. + +2004-01-24 Jim Evins + + * AUTHORS: + * data/avery-us-templates.xml: + Added Avery 5824, submitted by Fred Bacon. + +2004-01-20 Jim Evins + + Catching up on a couple of backlogged user template submissions. + + * data/avery-iso-templates.xml: + Added "DECAdry OLW-4731" and "DECAdry DLW-1731" aliases for Avery 7160. + Suggested by Linas Jakucionis. + + * data/zweckform-iso-templates.xml: + Added Zweckform 4760, submitted by Thomas Vill. + + * AUTHORS: + Updated to reflect above submissions. + +2004-01-06 Jim Evins + + Split-out template.[ch], paper.[ch], xml-template.[ch], xml-paper.[ch], and + xml.[ch] into a separate library called libglabels, to facilitate third + party use of glabels template files. This was suggested by Wayne Schuller. + Once split-out, some modifications to the structures and functions to + make a cleaner more useful API, hopefully. Rather extensive changes have + propogated to other modules. + + * src/paper.h: + * src/paper.c: + * src/template.h: + * src/template.c: + * src/xml-paper.h: + * src/xml-paper.c: + * src/xml-template.h: + * src/xml-template.c: + * src/xml.h: + * src/xml.c: + These files have been moved to libglabels/. API cleanup performed. + + * libglabels/libglabels.h: + * libglabels/libglabels-private.h: + * libglabels/Makefile.am: + These files have been added to finish out libglabels. + + * Makefile.am: + * configure.in: + * glabels.spec.in: + * po/POTFILES.in: + * src/Makefile.am: + Modified to reflect new sets of files in src/ and libglabels/. + + * COPYING.LIBGLABELS: + * COPYING-DOCS: + Added copy of the LGPL for libglabels, and a copy the GFDL for + documentation. + + * src/glabels-batch.c: + * src/glabels.c: + * src/label.c: (gl_label_finalize), (gl_label_set_template), + (gl_label_get_size): + * src/label.h: + * src/prefs-model.c: (gl_prefs_model_load_settings): + * src/print-dialog.c: + * src/print.c: (gl_print_simple), (gl_print_merge_collated), + (gl_print_merge_uncollated), (gl_print_batch), (print_info_free), + (print_crop_marks), (print_label), (draw_outline), + (clip_to_outline), (clip_punchouts): + * src/template-designer.c: (construct_pg_size_page), + (pg_size_page_changed_cb), (layout_page_changed_cb), + (print_test_cb), (build_template): + * src/util.c: (gl_util_fraction): + * src/util.h: + * src/view.c: (draw_bg_fg_layers), (draw_bg_fg_rect), + (draw_bg_fg_rounded_rect), (draw_bg_fg_round), (draw_bg_fg_cd), + (draw_bg_fg_cd_bc), (draw_markup_layer), (draw_markup_margin), + (draw_markup_margin_rect), (draw_markup_margin_rounded_rect), + (draw_markup_margin_round), (draw_markup_margin_cd), + (draw_markup_margin_cd_bc), (draw_markup_line), + (draw_markup_circle), (gl_view_copy): + * src/wdgt-media-select.c: (gl_wdgt_media_select_construct), + (page_size_entry_changed_cb), (details_update), (get_layout_desc), + (get_label_size_desc): + * src/wdgt-mini-preview.c: + (gl_wdgt_mini_preview_set_label_by_name), (mini_outline_list_new), + (cdbc_item): + * src/wdgt-print-copies.c: (gl_wdgt_print_copies_construct): + * src/wdgt-print-merge.c: (gl_wdgt_print_merge_construct): + * src/wdgt-rotate-label.c: (mini_preview_canvas_update), + (gl_wdgt_rotate_label_set_template_name), (cdbc_item): + * src/wdgt-rotate-label.h: + * src/xml-label-04.c: (xml04_parse_media_description): + * src/xml-label-191.c: (gl_xml_label_191_parse), + (xml191_parse_sheet), (xml191_parse_label), (xml191_parse_layout), + (xml191_parse_markup), (xml191_parse_alias): + * src/xml-label.c: (xml_doc_to_label), (xml_parse_label), + (xml_label_to_doc): + Various changes to accomodate new libglabels API. + +2004-01-03 Jim Evins + + * configure.in: + Release 1.93.2. + +2004-01-03 Jim Evins + + * AUTHORS: + Added acknowledgement of contributions by Wayne Schuller. + + * src/commands.c: (gl_cmd_file_print): + Create extra reference to print dialog, so that it can be properly re-used. + + * src/mygal/mygal-combo-box.h: + * src/mygal/mygal-combo-box.c: + (mygal_combo_box_popup_hide_unconditional), + (mygal_combo_box_popup_display), (mygal_combo_box_set_display), + (gtk_combo_set_tearoff_state), (mygal_combo_box_construct), + (mygal_combo_box_set_arrow_relief), (mygal_combo_box_set_title), + (mygal_combo_box_set_tearable): + Changed all occurances of GTK_IS_COMBO_BOX to MYGAL_IS_COMBO_BOX, to + complete the rename of this widget to prevent namespace collisions + with Gtk+-2.3. + + * src/prefs-dialog.glade: + Fixed alignment of Fill/Color widgets. + +2004-01-03 Jim Evins + + * data/avery-iso-templates.xml: + Added user submitted templates. + Avery 8435A & 8435B, submitted by Ludger Solbach. + + * doc/C/glabels.xml: + Added minimal documentation, noting the new template designer. + +2004-01-03 Jim Evins + + * pixmaps/ex-rect-size.png: + * pixmaps/ex-round-size.png: + * pixmaps/ex-cd-size.png: + * pixmaps/Makefile.am: + Added ex-rect-size.png, ex-round-size.png, and ex-cd-size.png image + files to be used as illustrations/examples in the template-designer. + + * src/template-designer.c: (construct_rect_size_page), + (construct_round_size_page), (construct_cd_size_page), + (construct_nlayouts_page), (rect_size_page_prepare_cb), + (round_size_page_prepare_cb), (cd_size_page_prepare_cb), + (layout_page_prepare_cb), (build_template): + * src/template-designer.glade: + Added illustrations for rectangle, round, and cd label size pages. + Added margin spinboxes to these pages, and now add a margin markup + to the constructed template. Added realistic default values for + some of the size spinboxes. Cleaned up the code for setting spinbox + ranges on the layouts page. + +2004-01-02 Jim Evins + + * src/object-editor-size-page.c: (h_spin_cb): + Fixed cut-n-paste error in h_spin_cb that loaded h from + the wrong spinbutton. + + * src/object-editor.h: + * src/object-editor.c: (gl_object_editor_class_init), + (gl_object_editor_changed_cb), (gl_object_editor_size_changed_cb): + * src/object-editor-private.h: + * src/object-editor-size-page.c: (w_spin_cb), (h_spin_cb), + (size_reset_cb): + Added "size_changed" signal. + + * src/view-text.c: (construct_properties_editor), + (update_object_from_editor_cb), + (update_object_from_editor_size_cb): + Track size changes from object editor separately from other + properties. This is so the default size (0,0) of a text + object is not modified unintentionally. + +2003-12-30 Wayne Schuller + + Added feature: line spacing - allows you to comfortably space a text box to + fit a label perfectly. + + * data/glabels-2.0.dtd: + * src/label-object.c: (gl_label_object_set_text_line_spacing), + (gl_label_object_get_text_alignment), + (gl_label_object_get_text_line_spacing): + * src/label-object.h: + * src/label-text.c: (gl_label_text_class_init), + (gl_label_text_instance_init), (copy), (get_size), + (set_text_line_spacing), (get_text_alignment), + (get_text_line_spacing): + * src/object-editor-private.h: + * src/object-editor-text-page.c: + (gl_object_editor_prepare_text_page), + (gl_object_editor_set_text_line_spacing), + (gl_object_editor_get_text_line_spacing): + * src/object-editor.glade: + * src/object-editor.h: + * src/prefs-dialog.c: (construct_object_page), + (update_object_page_from_prefs), (update_prefs_from_object_page): + * src/prefs-dialog.glade: + * src/prefs-model.c: (gl_prefs_model_save_settings), + (gl_prefs_model_load_settings), (get_float): + * src/prefs-model.h: + * src/print.c: (draw_text_object): + * src/ui-sidebar.c: + * src/view-text.c: (update_object_from_editor_cb), + (update_editor_from_object_cb), + (gl_view_text_create_event_handler), (draw_hacktext): + * src/view.c: (gl_view_construct), + (gl_view_set_selection_text_line_spacing), + (gl_view_set_default_text_line_spacing), + (gl_view_get_default_text_line_spacing): + * src/view.h: + * src/xml-label.c: (xml_parse_toplevel_span), + (xml_create_toplevel_span): + +2003-12-30 Jim Evins + + * src/template-designer.c: + * src/template-designer.h: + * src/template-designer.glade: + New template designer assistant. + + * po/POTFILES.in: + * src/Makefile.am: + Added entries for src/template-designer.* files. + + * pixmaps/ex-1layout.png + * pixmaps/ex-2layouts.png + * pixmaps/Makefile.am: + Added the new image files ex-*.png used as illustrations in the + template designer assistant. + + * src/print-dialog.h: + * src/print-dialog.c: (gl_print_dialog_finalize), + (gl_print_dialog_new), (gl_print_dialog_construct), + (gl_print_dialog_force_outline_flag): + Changed first argument of gl_print_dialog_new() from glView to glLabel, + to support printing from the template designer assistant which does not + have a full-fledged view. Nothing else from the view object was being + used by the dialog anyway. + + Added the gl_print_dialog_force_outline_flag() method, for better + integration with the template designer assistant. + + + * src/commands.h: + * src/commands.c: (gl_cmd_file_template_designer), + (gl_cmd_file_print): + Modified print command to provide label instead of view to dialog. + Added the gl_cmd_file_template_designer() command to invoke the + template designer assistant. + + * src/ui.c: + * src/glabels-ui.xml: + Added support for template designer assistant. + + * src/wdgt-mini-preview.h: + * src/wdgt-mini-preview.c: (gl_wdgt_mini_preview_set_template), + (gl_wdgt_mini_preview_set_bg_color): + Preview is now centered in canvas. Added + gl_wdgt_mini_preview_set_bg_color() to allow the template designer + assistant to match the background color with its own. + + * src/print.c: (clip_to_outline): + Fixed really stupid bug when adding waste to clip region of rectangular + labels/cards. Each side of the clip region needs to be extended by + twice the waste margin, as well as negatively offset by the waste + margin. + +2003-12-28 Jim Evins + + * src/prefs-dialog.c: (update_object_page_from_prefs): + Block intermediary function align_toggle_cb() instead of + update_prefs_from_object_page() for the three alignment + widgets. + +2003-12-28 Wayne Schuller + + * src/file.c: (gl_file_new), (gl_file_properties): + Swap button order and set default for higificatory pleasure. + +2003-12-27 Jim Evins + + * barcode-0.98/Makefile.am: + One last time: removed doc/Makefile and po/Makefile.in.in from + EXTRA_DIST files. + +2003-12-27 Jim Evins + + * barcode-0.98/Makefile.am: + Removed config.stat entry from EXTRA_DIST files. + + * barcode-0.98/Makefile.in: + Removed. + +2003-12-27 Jim Evins + + * configure.in: + Updated to work with latest gnome-common package from CVS. + Removed recursive configuration of barcode-0.98. + + * acconfig.h: + * macros/*: + Removed. + + * Makefile.am: + Added barcode-0.98/ as a SUBDIR, and removed dist-hook. + + * barcode-0.98/Makefile.in: + * barcode-0.98/configure.in: + * barcode-0.98/Makefile.am: + * barcode-0.98/README.glabels: + Modified to ignore the barcode package's build system, and build + as a part of glabels. + Renamed Makefile.in to Makefile.in.dist. + Renamed configure.in to configure.in.dist. + Added barcode-0.98/Makefile.am and barcode-0.98/README.glabels. + + * src/Makefile.am: + * src/mygal/Makefile.am: + * src/recent-files/Makefile.am: + In order to build against the GNOME 2.5 platform, + all use of *_DISABLE_DEPRECATED compile-time flags has been removed. + + * src/mygal/Makefile.am: + * src/mygal/mygal-combo-box.c: + * src/mygal/mygal-combo-box.h: + * src/mygal/widget-color-combo.c: + * src/mygal/widget-color-combo.h: + * po/POTFILES.in: + In order to build against the GNOME 2.5 platform, + Renamed gtk_combo_box widget to mygal_combo_box, to prevent namespace + collisions with the real gtk_combo_box widget, now a part of gtk. + +2003-12-26 Jim Evins + + * src/paper.c: + * src/template.c: + * src/util.c: + * src/util.h: + Moved local versions of get_home_data_dir() in paper.c and + template.c to util package. Cleaned up formatting in + util.[ch]. + + * src/template.c: + In gl_template_register() save a copy of the template in + ~/.glabels if the template is not known. Still need to + handle duplicate filename case and duplicate name but + different template case. + + * src/xml-label.c: + * src/xml.h: + Moved local definition of NAME_SPACE macro from xml-label.c + to xml.h. + + * src/xml-template.c: + * src/xml-template.h: + Added function gl_xml_template_write_template_to_file(), used + in gl_template_register(). diff --git a/INSTALL b/INSTALL new file mode 100644 index 00000000..23e5f25d --- /dev/null +++ b/INSTALL @@ -0,0 +1,236 @@ +Installation Instructions +************************* + +Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free +Software Foundation, Inc. + +This file is free documentation; the Free Software Foundation gives +unlimited permission to copy, distribute and modify it. + +Basic Installation +================== + +These are generic installation instructions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. (Caching is +disabled by default to prevent problems with accidental use of stale +cache files.) + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You only need +`configure.ac' if you want to change it or regenerate `configure' using +a newer version of `autoconf'. + +The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. If you're + using `csh' on an old version of System V, you might need to type + `sh ./configure' instead to prevent `csh' from trying to execute + `configure' itself. + + Running `configure' takes awhile. While running, it prints some + messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package. + + 4. Type `make install' to install the programs and any data files and + documentation. + + 5. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + +Compilers and Options +===================== + +Some systems require unusual options for compilation or linking that the +`configure' script does not know about. Run `./configure --help' for +details on some of the pertinent environment variables. + + You can give `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: + + ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + +You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you must use a version of `make' that +supports the `VPATH' variable, such as GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not support the `VPATH' +variable, you have to compile the package for one architecture at a +time in the source code directory. After you have installed the +package for one architecture, use `make distclean' before reconfiguring +for another architecture. + +Installation Names +================== + +By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc. You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX'. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=DIR' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + +Optional Features +================= + +Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + +Specifying the System Type +========================== + +There may be some features `configure' cannot figure out automatically, +but needs to determine by the type of machine the package will run on. +Usually, assuming the package is built to be run on the _same_ +architectures, `configure' can figure that out, but if it prints a +message saying it cannot guess the machine type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS KERNEL-OS + + See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option `--target=TYPE' to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with `--host=TYPE'. + +Sharing Defaults +================ + +If you want to set default values for `configure' scripts to share, you +can create a site shell script called `config.site' that gives default +values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Defining Variables +================== + +Variables not defined in a site shell script can be set in the +environment passed to `configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the `configure' command line, using `VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +causes the specified `gcc' to be used as the C compiler (unless it is +overridden in the site shell script). Here is a another example: + + /bin/bash ./configure CONFIG_SHELL=/bin/bash + +Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent +configuration-related scripts to be executed by `/bin/bash'. + +`configure' Invocation +====================== + +`configure' recognizes the following options to control how it operates. + +`--help' +`-h' + Print a summary of the options to `configure', and exit. + +`--version' +`-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. + +`--config-cache' +`-C' + Alias for `--cache-file=config.cache'. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`configure' also accepts some other, not widely useful, options. Run +`configure --help' for more details. + diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 00000000..b8bc8b35 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,51 @@ +## Process this file with automake to produce Makefile.in + +LIB_BARCODE_DIR = barcode-0.98 +LIB_IEC16022_DIR = iec16022-0.2.1 + +SUBDIRS = \ + po \ + $(LIB_BARCODE_DIR) \ + $(LIB_IEC16022_DIR) \ + libglabels \ + src \ + data \ + help \ + docs + +EXTRA_DIST = \ + README \ + COPYING.README_FIRST \ + COPYING \ + COPYING-DOCS \ + COPYING-LIBGLABELS \ + AUTHORS \ + ChangeLog \ + ChangeLog.pre-2.2 \ + INSTALL \ + NEWS \ + TODO \ + intltool-extract.in \ + intltool-merge.in \ + intltool-update.in \ + glabels.spec.in \ + glabels.spec + gnome-doc-utils.make + +DISTCLEANFILES = gnome-doc-utils.make + +DISTCHECK_CONFIGURE_FLAGS = --disable-scrollkeeper + +dist-hook: + @if test -d "$(srcdir)/.git"; \ + then \ + echo Creating ChangeLog && \ + (GIT_DIR=$(top_srcdir)/.git \ + ./missing --run git log -M -C --name-status --date=short --no-color) | \ + fmt --split-only > ChangeLog.tmp \ + && mv -f ChangeLog.tmp $(top_distdir)/ChangeLog \ + || ( rm -f ChangeLog.tmp ; \ + echo Failed to generate ChangeLog >&2 ); \ + else \ + echo A git clone is required to generate a ChangeLog >&2; \ + fi diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 00000000..fbac3d58 --- /dev/null +++ b/Makefile.in @@ -0,0 +1,819 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = . +DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(srcdir)/glabels.spec.in $(top_srcdir)/configure AUTHORS \ + COPYING ChangeLog INSTALL NEWS TODO config.guess config.sub \ + depcomp install-sh ltmain.sh missing mkinstalldirs +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = glabels.spec +CONFIG_CLEAN_VPATH_FILES = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir dist dist-all distcheck +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + { test ! -d "$(distdir)" \ + || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr "$(distdir)"; }; } +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DISTCHECK_CONFIGURE_FLAGS = --disable-scrollkeeper +DOC_USER_FORMATS = @DOC_USER_FORMATS@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_CFLAGS = @GLABELS_CFLAGS@ +GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_REQUIRED = @GLIB_REQUIRED@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_REQUIRED = @GTK_REQUIRED@ +HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +HELP_DIR = @HELP_DIR@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ +LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ +LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ +LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ +LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ +LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ +LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ +LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +MYGAL_CFLAGS = @MYGAL_CFLAGS@ +MYGAL_LIBS = @MYGAL_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ +UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +XGETTEXT = @XGETTEXT@ +XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ +XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +LIB_BARCODE_DIR = barcode-0.98 +LIB_IEC16022_DIR = iec16022-0.2.1 +SUBDIRS = \ + po \ + $(LIB_BARCODE_DIR) \ + $(LIB_IEC16022_DIR) \ + libglabels \ + src \ + data \ + help \ + docs + +EXTRA_DIST = \ + README \ + COPYING.README_FIRST \ + COPYING \ + COPYING-DOCS \ + COPYING-LIBGLABELS \ + AUTHORS \ + ChangeLog \ + ChangeLog.pre-2.2 \ + INSTALL \ + NEWS \ + TODO \ + intltool-extract.in \ + intltool-merge.in \ + intltool-update.in \ + glabels.spec.in \ + glabels.spec + +DISTCLEANFILES = gnome-doc-utils.make +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +am--refresh: + @: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +config.h: stamp-h1 + @if test ! -f $@; then \ + rm -f stamp-h1; \ + $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ + else :; fi + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 +glabels.spec: $(top_builddir)/config.status $(srcdir)/glabels.spec.in + cd $(top_builddir) && $(SHELL) ./config.status $@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-lzma: distdir + tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma + $(am__remove_distdir) + +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lzma*) \ + lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @$(am__cd) '$(distuninstallcheck_dir)' \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile config.h +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-hdr \ + distclean-libtool distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ + ctags-recursive install-am install-strip tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am am--refresh check check-am clean clean-generic \ + clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ + dist-gzip dist-hook dist-lzma dist-shar dist-tarZ dist-xz \ + dist-zip distcheck distclean distclean-generic distclean-hdr \ + distclean-libtool distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-recursive uninstall uninstall-am + + gnome-doc-utils.make + +dist-hook: + @if test -d "$(srcdir)/.git"; \ + then \ + echo Creating ChangeLog && \ + (GIT_DIR=$(top_srcdir)/.git \ + ./missing --run git log -M -C --name-status --date=short --no-color) | \ + fmt --split-only > ChangeLog.tmp \ + && mv -f ChangeLog.tmp $(top_distdir)/ChangeLog \ + || ( rm -f ChangeLog.tmp ; \ + echo Failed to generate ChangeLog >&2 ); \ + else \ + echo A git clone is required to generate a ChangeLog >&2; \ + fi + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/NEWS b/NEWS new file mode 100644 index 00000000..ced6ef59 --- /dev/null +++ b/NEWS @@ -0,0 +1,218 @@ +* gLabels 2.2.8 (stable) release. Release date 2010-04-19 + +- Fix crash caused by new g_new macros in glib-2.24.0 +- Removed extra padding in "New label" dialog +- New Norwegian bokmÃ¥l translation (Kjartan Maraas) +- New Portuguese translation (Filipe Roque) +- Updated Japanese translation (Takeshi AIHANA) +- Updated Spanish translation (Jorge González) +- Updated Fresh translation (Bruno Brouard) +- Updated German translation (Mario Blättermann) +- Updated Slovenian translation (Andrej ŽnidarÅ¡ič) +- Updated Czech translation (Marek Černocký) +- New templates + + +* gLabels 2.2.7 (stable) release. Release date 2010-03-01 + +- Fixed limitation on encoded image sizes (fix only valid if libxml 2.7+ is installed) +- Fixed focus behavior of canvas so that focus does not get stolen when + highlighting text in the object editor +- New Slovenian translation (Andrej ŽnidarÅ¡ič) +- New Danish translation (Joe Hansen) +- Updated Czech translation (Marek Cernocky) +- Updated German translation (Mario Blättermann) +- Updated German help manual translation (Mario Blättermann) +- New French translation of help manual (Alain Lojewski and Claude Paroz) +- New Czech translation of help manual (Marek Cernocky) +- New Spanish translation of help manual (Jorge González) +- New templates + + +* gLabels 2.2.6 (stable) release. Release date 2009-11-11 + +- Fixed drawing artifact with round labels. +- Fixed several memory issues. +- Fixed several UI inconsistencies when changing merge source. +- Fixed potiential crash when doing a document merge. +- Now makes a better guess at locale defaults (page size and units). +- Updated user documentation (Mario Blättermann). +- Updated swedish translation (Daniel Nylander). +- Updated german translation (Mario Blättermann). +- Updated russian translation (Alexandre Prokoudine) +- Updated french translation (Claude Paroz) +- New chinese translation (Careon) +- New catalan translation (David Planella) +- Updated german translation of user documentation (Mario Blättermann). +- New templates. + + +* gLabels 2.2.5 (stable) release. Release date 2009-04-30 + +- Fixed spinbutton/adjustment bugs that made glabels unusable with Gtk 2.16. +- Fixed default preview colors in color combos. +- Updated german translation (Mario Blättermann). +- New templates. + + +* gLabels 2.2.4 (stable) release. Release date 2008-12-22 + +- Corrected button order in "Open" and "Save as" dialogs. +- Fixed performance problem when large number of fonts are installed. +- Corrected several i18n problems. +- Fixed "paste" bug that created phantom object views. +- Fixed performacne problem when many objects are selected. +- New templates. + + +* gLabels 2.2.3 (stable) release. Release date 2008-08-17 + +- Explicitely set page size when printing -- don't let print back-end use + a default size (Bug #2049431). +- Sets more appropriate object size limits for any aspect ratio (Bug #1993550). +- Fixed crash of glabels-batch (Bug #1968653). +- Fixed bug with barcode and image merge radio buttons (Bug #1959135). +- Will now attempt to parse newer namespaces (Bug #1872584). +- Fixed drawing errors when drawing markup on rotated labels. +- New korean translation (xein@navir.com). +- New templates. + + +* gLabels 2.2.2 (stable) release. Release date 2008-02-22 + +- Fixed crash when creating Code128C barcode (Bug #1766425). +- Explicitely set page size when printing "other" page size. +- Fixed rendering bug with bitmap fonts. +- Fixed rendering problem when displaying "Invalid barcode data". +- Fixed crash when deleting multi-object selections. +- Enforce minimum size for images to prevent rendering of images of zero size. +- Fixed problem with image size spinboxes (Bug #1886438). +- Fixed template example in documentation. +- Use default units when writing xml files. +- New templates. + +* gLabels 2.2.1 (stable) release. Release date 2008-01-23 + +- Sort font lists alphabetically. +- Sort evolution records by "file_under" field. +- Fixed clipping bug when rotating labels. + + +* gLabels 2.2.0 (stable) release. Release date 2007-12-26 + +- Migrated from EggRecent to GtkRecentManager +- Migrated from libgnomeprint to GtkPrintOperation and Cairo. +- Migrated from libgnomeprint to Pango for text layout. +- Migrated GnomeDruid to GtkAssistant for template designer. +- Migrated from GnomeCanvas to Cairo. +- Removed all deprecated widgets as of Gnome-2.16/Gtk-2.10. +- Added categorization of templates and an updated New Label dialog. +- New label dialog now allows selection of recently used templates +- Removed splash screen. +- Added initial support for datamatrix 2D barcodes. +- Added support for Brazilian CEPNet barcodes. +- Added shadow attribute to label objects. +- New merge backend for evolution data server (Austin Henry) +- Various bug fixes. +- New templates. + + +* gLabels 2.1.5 (unstable) release. Release date 2007-12-09. + +- New label dialog now allows selection of recently used templates +- Store brand and part number as separate fields in templates +- Major cleanup of libglabels API and documentation +- Minor bug fixes (and probably some new bugs). + + +* gLabels 2.1.4 (unstable) release. Release date 2007-08-17. + +- Added categorization of templates and an updated New Label dialog. +- Added initial support for datamatrix 2D barcodes. +- Migrated from EggRecent to GtkRecentManager. +- Migrated from libgnomeprint to GtkPrintOperation and Cairo. +- Migrated from libgnomeprint to Pango for text layout. +- Migrated GnomeDruid to GtkAssistant for template designer. +- Migrated from GnomeCanvas to Cairo. +- Removed splash screen. +- Added support for Brazilian CEPNet barcodes. +- Updated French translation (Claude Paroz) +- New Esperanto translation (Antonio C. Codazzi) +- Minor bug fixes (and probably some new bugs). +- New templates. + + +* gLabels 2.1.3 (unstable) release. Release date 2006-05-27. + +- Don't print "Invalid barcode data" if data field is empty. (Bug #1479839) (Darren Warner) +- Fixed hangup when grid or markup have been toggled during a previous session. (Bug #1434324) +- Added shadow attribute to label objects. +- Fixed color groups in color combo widgets. +- Fixed several potential crashes. + + +* gLabels 2.1.2 (unstable) release. Release date 2005-12-21. + +- Updated Italian translation (Daniele Medri) +- Fixed double entry in property bar's font family combobox +- Don't allow zero width or height when drawing pixbufs +- Fixed various memory leaks +- New configure option to disable update-mime-database and update-desktop-database +- New merge backend for evolution data server (Austin Henry) +- New minimal merge backend for VCards using evolution data server API (Austin Henry) +- New templates and fixes + + +* gLabels 2.1.1 (unstable) release. Release date 2005-06-21. + +- Added document merge tutorial to help documentation +- Replaced deprecated widgets (now requires Gnome 2.10 and GTK+ 2.6) +- Replaced libbonoboui with GtkUIManager (now requires Gnome 2.10 and GTK+ 2.6) +- Updated Russian translation (Vitaly Lipatov) +- Updated Spanish translation (Sergio Rivadero) +- Updated Czech translation (David Makovský and Zbynek Mrkvick) +- Updated Italian translation (Daniele Medri) +- Added documentation for libglabels +- Minor bug fixes and cleanup +- New templates + + +* gLabels 2.1.0 (unstable) release. Release date 2005-01-22. + +- Added ability to select color from merge source (Frederic Ruaudel) +- See 2.0.2 + + +* gLabels 2.0.2 release. Release date 2005-01-22. + +- Desktop file reconciled with desktop-entry-spec +- New cleaned-up icon +- Added option to glabels-batch to allow selection of first label. +- Added options to glabels-batch to allow selection of merge source and crop marks. + (José Dapena Paz) +- Updated french translation (Florent Morel) +- Fixed translation problem with object editor labels +- Minor bug fixes and cleanup +- New templates + +* gLabels 2.0.1 release. Release date 2004-08-15. + +- Fixed crash when reading some labels created with 1.93.x. +- Updated japanese translations (Takeshi AIHANA) +- Fixed crash from improperly freeing translation strings. + + +* gLabels 2.0.0 release. Release date 2004-08-09. + +- Fixed crash when encountering old template files +- Align grid to label center for DVD/CD and round labels +- Don't touch compression of original file +- 64-bit fixes +- Added man page +- Fixed missing outline problem experienced with some printers +- Added separate horizontal and vertical waste properties for rectangular templates +- Added option to auto-shrink text during document merge +- Fixed memory leaks +- Added format attibute to barcode objects, to allow correct layout of merged labels +- Fixed mime type registration for GNOME 2.6 + diff --git a/README b/README new file mode 100644 index 00000000..a8c42416 --- /dev/null +++ b/README @@ -0,0 +1,44 @@ +Copyright +========= + + Copyright (C) 2001-2007 Jim Evins + + gLabels contains components copyrighted by others -- see th 'AUTHORS' file in + this directory. + + For license information see the 'COPYING.README_FIRST' file in this directory. + + + +What is gLabels +=============== + +gLabels is a small stand-alone program for creating labels and business +cards using a laser or ink-jet printer. + + + +System Requirements +=================== + +GTK+-2.10.x +LIBGNOME[UI]-2.16.x +LIBXML-2.6.x +LIBGLADE-2.6.x + +All of these libraries are available as part of Gnome 2.16 + + + +Author and Acknowledgments: +=========================== + +See the AUTHORS file. + + + +Website +======= + +http://glabels.sourceforge.net/ + diff --git a/TODO b/TODO new file mode 100644 index 00000000..ed3140cc --- /dev/null +++ b/TODO @@ -0,0 +1,46 @@ + +Development plan +---------------- +This development plan sets a specific set of milestones for future versions of glabels. + + +Goals for 2.2.x: + + - Bugfixes + + - Translations + + +Possible Goals for 2.3.x (current development branch): + + - Undo, Redo capability + + - Make text items rich. I.e. allow multiple characteristics + to exist within a single object. + + - Text effects. (follow contour, non-rectangular text boxes, + ...) + + - Ability to select/unselect individual records during a merge-print. + + - Add additional "merge" backends. Candidates include: + generic XML + freedb (CDDB) for CD labels + gnome-db + ADIF for generating QSL-cards + + - Printer calibration tool: a facility for tweaking output origin and + scale. This should really be part of the underlying print system but + currently is not, so I may want to add the hack. + + - Adjustable grid spacing. Spacing of visible grid should be user + adjustable. This grid spacing should be an integral multiple of + a finer invisible grid. There should be a "snap to grid" toggle, + that causes all posistioning and sizing performed on the canvas + to snap to the closest grid. The possible grid spacing should be + appropriate for the current units selected (e.g. .1 points, .01 mm, + 1/64 inch, 0.001 inch). + + - Allow for management of custom templates + (i.e. delete, rename, edit). + diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 00000000..9bdf2c46 --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,10029 @@ +# generated automatically by aclocal 1.11.1 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],, +[m4_warning([this file was generated for autoconf 2.63. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically `autoreconf'.])]) + +# Copyright (C) 1995-2002 Free Software Foundation, Inc. +# Copyright (C) 2001-2003,2004 Red Hat, Inc. +# +# This file is free software, distributed under the terms of the GNU +# General Public License. As a special exception to the GNU General +# Public License, this file may be distributed as part of a program +# that contains a configuration script generated by Autoconf, under +# the same distribution terms as the rest of that program. +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# +# Macro to add for using GNU gettext. +# Ulrich Drepper , 1995, 1996 +# +# Modified to never use included libintl. +# Owen Taylor , 12/15/1998 +# +# Major rework to remove unused code +# Owen Taylor , 12/11/2002 +# +# Added better handling of ALL_LINGUAS from GNU gettext version +# written by Bruno Haible, Owen Taylor 5/30/3002 +# +# Modified to require ngettext +# Matthias Clasen 08/06/2004 +# +# We need this here as well, since someone might use autoconf-2.5x +# to configure GLib then an older version to configure a package +# using AM_GLIB_GNU_GETTEXT +AC_PREREQ(2.53) + +dnl +dnl We go to great lengths to make sure that aclocal won't +dnl try to pull in the installed version of these macros +dnl when running aclocal in the glib directory. +dnl +m4_copy([AC_DEFUN],[glib_DEFUN]) +m4_copy([AC_REQUIRE],[glib_REQUIRE]) +dnl +dnl At the end, if we're not within glib, we'll define the public +dnl definitions in terms of our private definitions. +dnl + +# GLIB_LC_MESSAGES +#-------------------- +glib_DEFUN([GLIB_LC_MESSAGES], + [AC_CHECK_HEADERS([locale.h]) + if test $ac_cv_header_locale_h = yes; then + AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, + [AC_TRY_LINK([#include ], [return LC_MESSAGES], + am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) + if test $am_cv_val_LC_MESSAGES = yes; then + AC_DEFINE(HAVE_LC_MESSAGES, 1, + [Define if your file defines LC_MESSAGES.]) + fi + fi]) + +# GLIB_PATH_PROG_WITH_TEST +#---------------------------- +dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +glib_DEFUN([GLIB_PATH_PROG_WITH_TEST], +[# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL(ac_cv_path_$1, +[case "[$]$1" in + /*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in ifelse([$5], , $PATH, [$5]); do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$]$1) +else + AC_MSG_RESULT(no) +fi +AC_SUBST($1)dnl +]) + +# GLIB_WITH_NLS +#----------------- +glib_DEFUN([GLIB_WITH_NLS], + dnl NLS is obligatory + [USE_NLS=yes + AC_SUBST(USE_NLS) + + gt_cv_have_gettext=no + + CATOBJEXT=NONE + XGETTEXT=: + INTLLIBS= + + AC_CHECK_HEADER(libintl.h, + [gt_cv_func_dgettext_libintl="no" + libintl_extra_libs="" + + # + # First check in libc + # + AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc, + [AC_TRY_LINK([ +#include +], + [return !ngettext ("","", 1)], + gt_cv_func_ngettext_libc=yes, + gt_cv_func_ngettext_libc=no) + ]) + + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, + [AC_TRY_LINK([ +#include +], + [return !dgettext ("","")], + gt_cv_func_dgettext_libc=yes, + gt_cv_func_dgettext_libc=no) + ]) + fi + + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + AC_CHECK_FUNCS(bind_textdomain_codeset) + fi + + # + # If we don't have everything we want, check in libintl + # + if test "$gt_cv_func_dgettext_libc" != "yes" \ + || test "$gt_cv_func_ngettext_libc" != "yes" \ + || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then + + AC_CHECK_LIB(intl, bindtextdomain, + [AC_CHECK_LIB(intl, ngettext, + [AC_CHECK_LIB(intl, dgettext, + gt_cv_func_dgettext_libintl=yes)])]) + + if test "$gt_cv_func_dgettext_libintl" != "yes" ; then + AC_MSG_CHECKING([if -liconv is needed to use gettext]) + AC_MSG_RESULT([]) + AC_CHECK_LIB(intl, ngettext, + [AC_CHECK_LIB(intl, dcgettext, + [gt_cv_func_dgettext_libintl=yes + libintl_extra_libs=-liconv], + :,-liconv)], + :,-liconv) + fi + + # + # If we found libintl, then check in it for bind_textdomain_codeset(); + # we'll prefer libc if neither have bind_textdomain_codeset(), + # and both have dgettext and ngettext + # + if test "$gt_cv_func_dgettext_libintl" = "yes" ; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS -lintl $libintl_extra_libs" + unset ac_cv_func_bind_textdomain_codeset + AC_CHECK_FUNCS(bind_textdomain_codeset) + LIBS="$glib_save_LIBS" + + if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then + gt_cv_func_dgettext_libc=no + else + if test "$gt_cv_func_dgettext_libc" = "yes" \ + && test "$gt_cv_func_ngettext_libc" = "yes"; then + gt_cv_func_dgettext_libintl=no + fi + fi + fi + fi + + if test "$gt_cv_func_dgettext_libc" = "yes" \ + || test "$gt_cv_func_dgettext_libintl" = "yes"; then + gt_cv_have_gettext=yes + fi + + if test "$gt_cv_func_dgettext_libintl" = "yes"; then + INTLLIBS="-lintl $libintl_extra_libs" + fi + + if test "$gt_cv_have_gettext" = "yes"; then + AC_DEFINE(HAVE_GETTEXT,1, + [Define if the GNU gettext() function is already present or preinstalled.]) + GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl + if test "$MSGFMT" != "no"; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS $INTLLIBS" + AC_CHECK_FUNCS(dcgettext) + MSGFMT_OPTS= + AC_MSG_CHECKING([if msgfmt accepts -c]) + GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: test 1.0\n" +"PO-Revision-Date: 2007-02-15 12:01+0100\n" +"Last-Translator: test \n" +"Language-Team: C \n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) + AC_SUBST(MSGFMT_OPTS) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) + AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr], + [CATOBJEXT=.gmo + DATADIRNAME=share], + [case $host in + *-*-solaris*) + dnl On Solaris, if bind_textdomain_codeset is in libc, + dnl GNU format message catalog is always supported, + dnl since both are added to the libc all together. + dnl Hence, we'd like to go with DATADIRNAME=share and + dnl and CATOBJEXT=.gmo in this case. + AC_CHECK_FUNC(bind_textdomain_codeset, + [CATOBJEXT=.gmo + DATADIRNAME=share], + [CATOBJEXT=.mo + DATADIRNAME=lib]) + ;; + *) + CATOBJEXT=.mo + DATADIRNAME=lib + ;; + esac]) + LIBS="$glib_save_LIBS" + INSTOBJEXT=.mo + else + gt_cv_have_gettext=no + fi + fi + ]) + + if test "$gt_cv_have_gettext" = "yes" ; then + AC_DEFINE(ENABLE_NLS, 1, + [always defined to indicate that i18n is enabled]) + fi + + dnl Test whether we really found GNU xgettext. + if test "$XGETTEXT" != ":"; then + dnl If it is not GNU xgettext we define it as : so that the + dnl Makefiles still can work. + if $XGETTEXT --omit-header /dev/null 2> /dev/null; then + : ; + else + AC_MSG_RESULT( + [found xgettext program is not GNU xgettext; ignore it]) + XGETTEXT=":" + fi + fi + + # We need to process the po/ directory. + POSUB=po + + AC_OUTPUT_COMMANDS( + [case "$CONFIG_FILES" in *po/Makefile.in*) + sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile + esac]) + + dnl These rules are solely for the distribution goal. While doing this + dnl we only have to keep exactly one list of the available catalogs + dnl in configure.in. + for lang in $ALL_LINGUAS; do + GMOFILES="$GMOFILES $lang.gmo" + POFILES="$POFILES $lang.po" + done + + dnl Make all variables we use known to autoconf. + AC_SUBST(CATALOGS) + AC_SUBST(CATOBJEXT) + AC_SUBST(DATADIRNAME) + AC_SUBST(GMOFILES) + AC_SUBST(INSTOBJEXT) + AC_SUBST(INTLLIBS) + AC_SUBST(PO_IN_DATADIR_TRUE) + AC_SUBST(PO_IN_DATADIR_FALSE) + AC_SUBST(POFILES) + AC_SUBST(POSUB) + ]) + +# AM_GLIB_GNU_GETTEXT +# ------------------- +# Do checks necessary for use of gettext. If a suitable implementation +# of gettext is found in either in libintl or in the C library, +# it will set INTLLIBS to the libraries needed for use of gettext +# and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable +# gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST() +# on various variables needed by the Makefile.in.in installed by +# glib-gettextize. +dnl +glib_DEFUN([GLIB_GNU_GETTEXT], + [AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_HEADER_STDC])dnl + + GLIB_LC_MESSAGES + GLIB_WITH_NLS + + if test "$gt_cv_have_gettext" = "yes"; then + if test "x$ALL_LINGUAS" = "x"; then + LINGUAS= + else + AC_MSG_CHECKING(for catalogs to be installed) + NEW_LINGUAS= + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + NEW_LINGUAS="$NEW_LINGUAS $presentlang" + fi + done + LINGUAS=$NEW_LINGUAS + AC_MSG_RESULT($LINGUAS) + fi + + dnl Construct list of names of catalog files to be constructed. + if test -n "$LINGUAS"; then + for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done + fi + fi + + dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly + dnl find the mkinstalldirs script in another subdir but ($top_srcdir). + dnl Try to locate is. + MKINSTALLDIRS= + if test -n "$ac_aux_dir"; then + MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" + fi + if test -z "$MKINSTALLDIRS"; then + MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" + fi + AC_SUBST(MKINSTALLDIRS) + + dnl Generate list of files to be processed by xgettext which will + dnl be included in po/Makefile. + test -d po || mkdir po + if test "x$srcdir" != "x."; then + if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then + posrcprefix="$srcdir/" + else + posrcprefix="../$srcdir/" + fi + else + posrcprefix="../" + fi + rm -f po/POTFILES + sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ + < $srcdir/po/POTFILES.in > po/POTFILES + ]) + +# AM_GLIB_DEFINE_LOCALEDIR(VARIABLE) +# ------------------------------- +# Define VARIABLE to the location where catalog files will +# be installed by po/Makefile. +glib_DEFUN([GLIB_DEFINE_LOCALEDIR], +[glib_REQUIRE([GLIB_GNU_GETTEXT])dnl +glib_save_prefix="$prefix" +glib_save_exec_prefix="$exec_prefix" +glib_save_datarootdir="$datarootdir" +test "x$prefix" = xNONE && prefix=$ac_default_prefix +test "x$exec_prefix" = xNONE && exec_prefix=$prefix +datarootdir=`eval echo "${datarootdir}"` +if test "x$CATOBJEXT" = "x.mo" ; then + localedir=`eval echo "${libdir}/locale"` +else + localedir=`eval echo "${datadir}/locale"` +fi +prefix="$glib_save_prefix" +exec_prefix="$glib_save_exec_prefix" +datarootdir="$glib_save_datarootdir" +AC_DEFINE_UNQUOTED($1, "$localedir", + [Define the location where the catalogs will be installed]) +]) + +dnl +dnl Now the definitions that aclocal will find +dnl +ifdef(glib_configure_in,[],[ +AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)]) +AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)]) +])dnl + +# GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL]) +# +# Create a temporary file with TEST-FILE as its contents and pass the +# file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with +# 0 and perform ACTION-IF-FAIL for any other exit status. +AC_DEFUN([GLIB_RUN_PROG], +[cat >conftest.foo <<_ACEOF +$2 +_ACEOF +if AC_RUN_LOG([$1 conftest.foo]); then + m4_ifval([$3], [$3], [:]) +m4_ifvaln([$4], [else $4])dnl +echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD +sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD +fi]) + + +dnl GNOME_COMPILE_WARNINGS +dnl Turn on many useful compiler warnings +dnl For now, only works on GCC +AC_DEFUN([GNOME_COMPILE_WARNINGS],[ + dnl ****************************** + dnl More compiler warnings + dnl ****************************** + + AC_ARG_ENABLE(compile-warnings, + AC_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@], + [Turn on compiler warnings]),, + [enable_compile_warnings="m4_default([$1],[yes])"]) + + warnCFLAGS= + if test "x$GCC" != xyes; then + enable_compile_warnings=no + fi + + warning_flags= + realsave_CFLAGS="$CFLAGS" + + case "$enable_compile_warnings" in + no) + warning_flags= + ;; + minimum) + warning_flags="-Wall" + ;; + yes) + warning_flags="-Wall -Wmissing-prototypes" + ;; + maximum|error) + warning_flags="-Wall -Wmissing-prototypes -Wnested-externs -Wpointer-arith" + CFLAGS="$warning_flags $CFLAGS" + for option in -Wno-sign-compare; do + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $option" + AC_MSG_CHECKING([whether gcc understands $option]) + AC_TRY_COMPILE([], [], + has_option=yes, + has_option=no,) + CFLAGS="$SAVE_CFLAGS" + AC_MSG_RESULT($has_option) + if test $has_option = yes; then + warning_flags="$warning_flags $option" + fi + unset has_option + unset SAVE_CFLAGS + done + unset option + if test "$enable_compile_warnings" = "error" ; then + warning_flags="$warning_flags -Werror" + fi + ;; + *) + AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings) + ;; + esac + CFLAGS="$realsave_CFLAGS" + AC_MSG_CHECKING(what warning flags to pass to the C compiler) + AC_MSG_RESULT($warning_flags) + + AC_ARG_ENABLE(iso-c, + AC_HELP_STRING([--enable-iso-c], + [Try to warn if code is not ISO C ]),, + [enable_iso_c=no]) + + AC_MSG_CHECKING(what language compliance flags to pass to the C compiler) + complCFLAGS= + if test "x$enable_iso_c" != "xno"; then + if test "x$GCC" = "xyes"; then + case " $CFLAGS " in + *[\ \ ]-ansi[\ \ ]*) ;; + *) complCFLAGS="$complCFLAGS -ansi" ;; + esac + case " $CFLAGS " in + *[\ \ ]-pedantic[\ \ ]*) ;; + *) complCFLAGS="$complCFLAGS -pedantic" ;; + esac + fi + fi + AC_MSG_RESULT($complCFLAGS) + + WARN_CFLAGS="$warning_flags $complCFLAGS" + AC_SUBST(WARN_CFLAGS) +]) + +dnl For C++, do basically the same thing. + +AC_DEFUN([GNOME_CXX_WARNINGS],[ + AC_ARG_ENABLE(cxx-warnings, + AC_HELP_STRING([--enable-cxx-warnings=@<:@no/minimum/yes@:>@] + [Turn on compiler warnings.]),, + [enable_cxx_warnings="m4_default([$1],[minimum])"]) + + AC_MSG_CHECKING(what warning flags to pass to the C++ compiler) + warnCXXFLAGS= + if test "x$GXX" != xyes; then + enable_cxx_warnings=no + fi + if test "x$enable_cxx_warnings" != "xno"; then + if test "x$GXX" = "xyes"; then + case " $CXXFLAGS " in + *[\ \ ]-Wall[\ \ ]*) ;; + *) warnCXXFLAGS="-Wall -Wno-unused" ;; + esac + + ## -W is not all that useful. And it cannot be controlled + ## with individual -Wno-xxx flags, unlike -Wall + if test "x$enable_cxx_warnings" = "xyes"; then + warnCXXFLAGS="$warnCXXFLAGS -Wshadow -Woverloaded-virtual" + fi + fi + fi + AC_MSG_RESULT($warnCXXFLAGS) + + AC_ARG_ENABLE(iso-cxx, + AC_HELP_STRING([--enable-iso-cxx], + [Try to warn if code is not ISO C++ ]),, + [enable_iso_cxx=no]) + + AC_MSG_CHECKING(what language compliance flags to pass to the C++ compiler) + complCXXFLAGS= + if test "x$enable_iso_cxx" != "xno"; then + if test "x$GXX" = "xyes"; then + case " $CXXFLAGS " in + *[\ \ ]-ansi[\ \ ]*) ;; + *) complCXXFLAGS="$complCXXFLAGS -ansi" ;; + esac + + case " $CXXFLAGS " in + *[\ \ ]-pedantic[\ \ ]*) ;; + *) complCXXFLAGS="$complCXXFLAGS -pedantic" ;; + esac + fi + fi + AC_MSG_RESULT($complCXXFLAGS) + + WARN_CXXFLAGS="$CXXFLAGS $warnCXXFLAGS $complCXXFLAGS" + AC_SUBST(WARN_CXXFLAGS) +]) + +dnl Do not call GNOME_DOC_DEFINES directly. It is split out from +dnl GNOME_DOC_INIT to allow gnome-doc-utils to bootstrap off itself. +AC_DEFUN([GNOME_DOC_DEFINES], +[ +AC_ARG_WITH([help-dir], + AC_HELP_STRING([--with-help-dir=DIR], [path to help docs]),, + [with_help_dir='${datadir}/gnome/help']) +HELP_DIR="$with_help_dir" +AC_SUBST(HELP_DIR) + +AC_ARG_WITH([omf-dir], + AC_HELP_STRING([--with-omf-dir=DIR], [path to OMF files]),, + [with_omf_dir='${datadir}/omf']) +OMF_DIR="$with_omf_dir" +AC_SUBST(OMF_DIR) + +AC_ARG_WITH([help-formats], + AC_HELP_STRING([--with-help-formats=FORMATS], [list of formats]),, + [with_help_formats='']) +DOC_USER_FORMATS="$with_help_formats" +AC_SUBST(DOC_USER_FORMATS) + +AC_ARG_ENABLE([scrollkeeper], + [AC_HELP_STRING([--disable-scrollkeeper], + [do not make updates to the scrollkeeper database])],, + enable_scrollkeeper=yes) +AM_CONDITIONAL([ENABLE_SK],[test "$gdu_cv_have_gdu" = "yes" -a "$enable_scrollkeeper" = "yes"]) + +dnl disable scrollkeeper automatically for distcheck +DISTCHECK_CONFIGURE_FLAGS="--disable-scrollkeeper $DISTCHECK_CONFIGURE_FLAGS" +AC_SUBST(DISTCHECK_CONFIGURE_FLAGS) + +AM_CONDITIONAL([HAVE_GNOME_DOC_UTILS],[test "$gdu_cv_have_gdu" = "yes"]) +]) + +# GNOME_DOC_INIT ([MINIMUM-VERSION],[ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND]) +# +AC_DEFUN([GNOME_DOC_INIT], +[AC_REQUIRE([AC_PROG_LN_S])dnl + +ifelse([$1],,[gdu_cv_version_required=0.3.2],[gdu_cv_version_required=$1]) + +AC_MSG_CHECKING([gnome-doc-utils >= $gdu_cv_version_required]) +PKG_CHECK_EXISTS([gnome-doc-utils >= $gdu_cv_version_required], + [gdu_cv_have_gdu=yes],[gdu_cv_have_gdu=no]) + +if test "$gdu_cv_have_gdu" = "yes"; then + AC_MSG_RESULT([yes]) + ifelse([$2],,[:],[$2]) +else + AC_MSG_RESULT([no]) + ifelse([$3],,[AC_MSG_ERROR([gnome-doc-utils >= $gdu_cv_version_required not found])],[$3]) +fi + +GNOME_DOC_DEFINES +]) + +dnl -*- mode: autoconf -*- + +# serial 1 + +dnl Usage: +dnl GTK_DOC_CHECK([minimum-gtk-doc-version]) +AC_DEFUN([GTK_DOC_CHECK], +[ + AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first + dnl for overriding the documentation installation directory + AC_ARG_WITH([html-dir], + AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),, + [with_html_dir='${datadir}/gtk-doc/html']) + HTML_DIR="$with_html_dir" + AC_SUBST([HTML_DIR]) + + dnl enable/disable documentation building + AC_ARG_ENABLE([gtk-doc], + AS_HELP_STRING([--enable-gtk-doc], + [use gtk-doc to build documentation [[default=no]]]),, + [enable_gtk_doc=no]) + + if test x$enable_gtk_doc = xyes; then + ifelse([$1],[], + [PKG_CHECK_EXISTS([gtk-doc],, + AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))], + [PKG_CHECK_EXISTS([gtk-doc >= $1],, + AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build gtk-doc]))]) + fi + + AC_MSG_CHECKING([whether to build gtk-doc documentation]) + AC_MSG_RESULT($enable_gtk_doc) + + AC_PATH_PROGS(GTKDOC_CHECK,gtkdoc-check,) + + AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes]) + AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"]) +]) + + +dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) +# serial 40 IT_PROG_INTLTOOL +AC_DEFUN([IT_PROG_INTLTOOL], [ +AC_PREREQ([2.50])dnl +AC_REQUIRE([AM_NLS])dnl + +case "$am__api_version" in + 1.[01234]) + AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) + ;; + *) + ;; +esac + +if test -n "$1"; then + AC_MSG_CHECKING([for intltool >= $1]) + + INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` + INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` + [INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` + ] + AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) + test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || + AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) +fi + +AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) +AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) +AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) +if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then + AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) +fi + + INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@' + INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' +INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' + INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' + +_IT_SUBST(INTLTOOL_DESKTOP_RULE) +_IT_SUBST(INTLTOOL_DIRECTORY_RULE) +_IT_SUBST(INTLTOOL_KEYS_RULE) +_IT_SUBST(INTLTOOL_PROP_RULE) +_IT_SUBST(INTLTOOL_OAF_RULE) +_IT_SUBST(INTLTOOL_PONG_RULE) +_IT_SUBST(INTLTOOL_SERVER_RULE) +_IT_SUBST(INTLTOOL_SHEET_RULE) +_IT_SUBST(INTLTOOL_SOUNDLIST_RULE) +_IT_SUBST(INTLTOOL_UI_RULE) +_IT_SUBST(INTLTOOL_XAM_RULE) +_IT_SUBST(INTLTOOL_KBD_RULE) +_IT_SUBST(INTLTOOL_XML_RULE) +_IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) +_IT_SUBST(INTLTOOL_CAVES_RULE) +_IT_SUBST(INTLTOOL_SCHEMAS_RULE) +_IT_SUBST(INTLTOOL_THEME_RULE) +_IT_SUBST(INTLTOOL_SERVICE_RULE) +_IT_SUBST(INTLTOOL_POLICY_RULE) + +# Check the gettext tools to make sure they are GNU +AC_PATH_PROG(XGETTEXT, xgettext) +AC_PATH_PROG(MSGMERGE, msgmerge) +AC_PATH_PROG(MSGFMT, msgfmt) +AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) +if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then + AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) +fi +xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" +mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" +mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" +if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then + AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) +fi + +AC_PATH_PROG(INTLTOOL_PERL, perl) +if test -z "$INTLTOOL_PERL"; then + AC_MSG_ERROR([perl not found]) +fi +AC_MSG_CHECKING([for perl >= 5.8.1]) +$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 +if test $? -ne 0; then + AC_MSG_ERROR([perl 5.8.1 is required for intltool]) +else + IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" + AC_MSG_RESULT([$IT_PERL_VERSION]) +fi +if test "x$2" != "xno-xml"; then + AC_MSG_CHECKING([for XML::Parser]) + if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then + AC_MSG_RESULT([ok]) + else + AC_MSG_ERROR([XML::Parser perl module is required for intltool]) + fi +fi + +# Substitute ALL_LINGUAS so we can use it in po/Makefile +AC_SUBST(ALL_LINGUAS) + +# Set DATADIRNAME correctly if it is not set yet +# (copied from glib-gettext.m4) +if test -z "$DATADIRNAME"; then + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[]], + [[extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr]])], + [DATADIRNAME=share], + [case $host in + *-*-solaris*) + dnl On Solaris, if bind_textdomain_codeset is in libc, + dnl GNU format message catalog is always supported, + dnl since both are added to the libc all together. + dnl Hence, we'd like to go with DATADIRNAME=share + dnl in this case. + AC_CHECK_FUNC(bind_textdomain_codeset, + [DATADIRNAME=share], [DATADIRNAME=lib]) + ;; + *) + [DATADIRNAME=lib] + ;; + esac]) +fi +AC_SUBST(DATADIRNAME) + +IT_PO_SUBDIR([po]) + +]) + + +# IT_PO_SUBDIR(DIRNAME) +# --------------------- +# All po subdirs have to be declared with this macro; the subdir "po" is +# declared by IT_PROG_INTLTOOL. +# +AC_DEFUN([IT_PO_SUBDIR], +[AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. +dnl +dnl The following CONFIG_COMMANDS should be exetuted at the very end +dnl of config.status. +AC_CONFIG_COMMANDS_PRE([ + AC_CONFIG_COMMANDS([$1/stamp-it], [ + if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then + AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) + fi + rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" + >"$1/stamp-it.tmp" + [sed '/^#/d + s/^[[].*] *// + /^[ ]*$/d + '"s|^| $ac_top_srcdir/|" \ + "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" + ] + [sed '/^POTFILES =/,/[^\\]$/ { + /^POTFILES =/!d + r $1/POTFILES + } + ' "$1/Makefile.in" >"$1/Makefile"] + rm -f "$1/Makefile.tmp" + mv "$1/stamp-it.tmp" "$1/stamp-it" + ]) +])dnl +]) + +# _IT_SUBST(VARIABLE) +# ------------------- +# Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST +# +AC_DEFUN([_IT_SUBST], +[ +AC_SUBST([$1]) +m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) +] +) + +# deprecated macros +AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) +# A hint is needed for aclocal from Automake <= 1.9.4: +# AC_DEFUN([AC_PROG_INTLTOOL], ...) + + +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +]) + +# serial 56 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_CC_BASENAME(CC) +# ------------------- +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +m4_defun([_LT_CC_BASENAME], +[for cc_temp in $1""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl +_LT_PROG_ECHO_BACKSLASH + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from `configure', and `config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# `config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain="$ac_aux_dir/ltmain.sh" +])# _LT_PROG_LTMAIN + + + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the `libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to `config.status' so that its +# declaration there will have the same value as in `configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags="_LT_TAGS"dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into `config.status', and then the shell code to quote escape them in +# for loops in `config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Fix-up fallback echo if it was mangled by the above quoting rules. +case \$lt_ECHO in +*'\\\[$]0 --fallback-echo"')dnl " + lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` + ;; +esac + +_LT_OUTPUT_LIBTOOL_INIT +]) + + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +cat >"$CONFIG_LT" <<_LTEOF +#! $SHELL +# Generated by $as_me. +# Run this file to recreate a libtool stub with the current configuration. + +lt_cl_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AS_SHELL_SANITIZE +_AS_PREPARE + +exec AS_MESSAGE_FD>&1 +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +\`$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2008 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test $[#] != 0 +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try \`$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try \`$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +if test "$no_create" != yes; then + lt_cl_success=: + test "$silent" = yes && + lt_config_lt_args="$lt_config_lt_args --quiet" + exec AS_MESSAGE_LOG_FD>/dev/null + $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false + exec AS_MESSAGE_LOG_FD>>config.log + $lt_cl_success || AS_EXIT(1) +fi +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +_LT_COPYING +_LT_LIBTOOL_TAGS + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + _LT_PROG_XSI_SHELLFNS + + sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS="$save_LDFLAGS" + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[[012]]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES +# -------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=echo + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + m4_if([$1], [CXX], +[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX +# ----------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +AC_LINK_IFELSE(AC_LANG_PROGRAM,[ +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi],[]) +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[ifdef([AC_DIVERSION_NOTICE], + [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], + [AC_DIVERT_PUSH(NOTICE)]) +$1 +AC_DIVERT_POP +])# _LT_SHELL_INIT + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Add some code to the start of the generated configure script which +# will find an echo command which doesn't interpret backslashes. +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[_LT_SHELL_INIT([ +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$lt_ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` + ;; +esac + +ECHO=${lt_ECHO-echo} +if test "X[$]1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X[$]1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then + # Yippee, $ECHO works! + : +else + # Restart under the correct shell. + exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} +fi + +if test "X[$]1" = X--fallback-echo; then + # used as fallback echo + shift + cat <<_LT_EOF +[$]* +_LT_EOF + exit 0 +fi + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test -z "$lt_ECHO"; then + if test "X${echo_test_string+set}" != Xset; then + # find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if { echo_test_string=`eval $cmd`; } 2>/dev/null && + { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null + then + break + fi + done + fi + + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : + else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$ECHO" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + ECHO='print -r' + elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} + else + # Try using printf. + ECHO='printf %s\n' + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + ECHO="$CONFIG_SHELL [$]0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$CONFIG_SHELL [$]0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do + if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "[$]0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} + else + # Oops. We lost completely, so just stick with echo. + ECHO=echo + fi + fi + fi + fi + fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +lt_ECHO=$ECHO +if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then + lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" +fi + +AC_SUBST(lt_ECHO) +]) +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], + [An echo program that does not interpret backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line __oline__ "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" +])# _LT_ENABLE_LOCK + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[AC_CHECK_TOOL(AR, ar, false) +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1]) + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test x"[$]$2" = xyes; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ + = "XX$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line __oline__ "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links="nottested" +if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", + [Define to the sub-directory in which libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || + test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` + else + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[[4-9]]*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[123]]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix[[3-9]]*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Add ABI-specific directories to the system library path. + sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], + [Run-time system search path for libraries]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program which can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program which can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method == "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi]) +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) + AC_SUBST([DUMPBIN]) + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +AC_MSG_CHECKING([for $compiler option to produce PIC]) +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64 which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC*) + # IBM XL 8.0 on PPC + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl*) + # IBM XL C 8.0/Fortran 10.1 on PPC + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Sun\ F*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac +AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw* | cegcc*) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag= + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + freebsd1*) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + AC_LINK_IFELSE(int foo(void) {}, + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + ) + LDFLAGS="$save_LDFLAGS" + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_MSG_CHECKING([whether -lc should be explicitly linked in]) + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], + [[If ld is used when linking, flag to hardcode $libdir into a binary + during linking. This must work even if $libdir does not exist]]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting ${shlibpath_var} if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [fix_srcfile_path], [1], + [Fix the shell variable $srcfile for the compiler]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC="$CC" +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report which library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC="$lt_save_CC" +])# _LT_LANG_C_CONFIG + + +# _LT_PROG_CXX +# ------------ +# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ +# compiler, we have our own version here. +m4_defun([_LT_PROG_CXX], +[ +pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) +AC_PROG_CXX +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi +popdef([AC_MSG_ERROR]) +])# _LT_PROG_CXX + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([_LT_PROG_CXX], []) + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[AC_REQUIRE([_LT_PROG_CXX])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_caught_CXX_error" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GXX" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared + # libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd[[12]]*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + gnu*) + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 will use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + xl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd2*) + # C++ shared libraries are fairly broken + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd=echo + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + + _LT_TAGVAR(GCC, $1)="$GXX" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test "$_lt_caught_CXX_error" != yes + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +]) +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" || + test $p = "-R"; then + prev=$p + continue + else + prev= + fi + + if test "$pre_test_object_deps_done" = no; then + case $p in + -L* | -R*) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)="${prev}${p}" + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" + fi + fi + ;; + + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)="$p" + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)="$p" + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; + +linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_PROG_F77 +# ------------ +# Since AC_PROG_F77 is broken, in that it returns the empty string +# if there is no fortran compiler, we have our own version here. +m4_defun([_LT_PROG_F77], +[ +pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) +AC_PROG_F77 +if test -z "$F77" || test "X$F77" = "Xno"; then + _lt_disable_F77=yes +fi +popdef([AC_MSG_ERROR]) +])# _LT_PROG_F77 + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([_LT_PROG_F77], []) + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_REQUIRE([_LT_PROG_F77])dnl +AC_LANG_PUSH(Fortran 77) + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_F77" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + CC=${F77-"f77"} + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$G77" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC="$lt_save_CC" +fi # test "$_lt_disable_F77" != yes + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_PROG_FC +# ----------- +# Since AC_PROG_FC is broken, in that it returns the empty string +# if there is no fortran compiler, we have our own version here. +m4_defun([_LT_PROG_FC], +[ +pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) +AC_PROG_FC +if test -z "$FC" || test "X$FC" = "Xno"; then + _lt_disable_FC=yes +fi +popdef([AC_MSG_ERROR]) +])# _LT_PROG_FC + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([_LT_PROG_FC], []) + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_REQUIRE([_LT_PROG_FC])dnl +AC_LANG_PUSH(Fortran) + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_FC" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + CC=${FC-"f95"} + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC="$lt_save_CC" +fi # test "$_lt_disable_FC" != yes + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds + +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC="$lt_save_CC" +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code="$lt_simple_compile_test_code" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC="$lt_save_CC" +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +AC_MSG_RESULT([$xsi_shell]) +_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) + +AC_MSG_CHECKING([whether the shell understands "+="]) +lt_shell_append=no +( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +AC_MSG_RESULT([$lt_shell_append]) +_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PROG_XSI_SHELLFNS +# --------------------- +# Bourne and XSI compatible variants of some useful shell functions. +m4_defun([_LT_PROG_XSI_SHELLFNS], +[case $xsi_shell in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac +} + +# func_basename file +func_basename () +{ + func_basename_result="${1##*/}" +} + +# func_dirname_and_basename file append nondir_replacement +# perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# Implementation must be kept synchronized with func_dirname +# and func_basename. For efficiency, we do not delegate to +# those functions but instead duplicate the functionality here. +func_dirname_and_basename () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}" +} + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +func_stripname () +{ + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"} +} + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=${1%%=*} + func_opt_split_arg=${1#*=} +} + +# func_lo2o object +func_lo2o () +{ + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=${1%.*}.lo +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=$(( $[*] )) +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=${#1} +} + +_LT_EOF + ;; + *) # Bourne compatible functions. + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` +} + +dnl func_dirname_and_basename +dnl A portable version of this function is already defined in general.m4sh +dnl so there is no need for it here. + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# func_strip_suffix prefix name +func_stripname () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; + esac +} + +# sed scripts: +my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' +my_sed_long_arg='1s/^-[[^=]]*=//' + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` + func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` +} + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=`expr "$[@]"` +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` +} + +_LT_EOF +esac + +case $lt_shell_append in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$[1]+=\$[2]" +} +_LT_EOF + ;; + *) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$[1]=\$$[1]\$[2]" +} + +_LT_EOF + ;; + esac +]) + +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option `$2'])])[]dnl +]) + + +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) + + +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) + +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl `shared' nor `disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + ]) +])# _LT_SET_OPTIONS + + + +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + + +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes +]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `dlopen' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + + +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac + +test -z "$AS" && AS=as +_LT_DECL([], [AS], [0], [Assembler program])dnl + +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl + +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `win32-dll' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + + +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the `shared' and +# `disable-shared' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) + +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) + +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) + + + +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the `static' and +# `disable-static' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC + +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) + +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) + +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) + + + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the `fast-install' +# and `disable-fast-install' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL + +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `fast-install' option into LT_INIT's first parameter.]) +]) + +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `disable-fast-install' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the `pic-only' and `no-pic' +# LT_INIT options. +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [pic_mode="$withval"], + [pic_mode=default]) + +test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) + +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC + +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) + +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `pic-only' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) + +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltsugar.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + + +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59 which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). +# +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + + + +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) + + +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) + + +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) + + +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) + + +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) + + +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +]) + +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# Generated from ltversion.in. + +# serial 3017 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.2.6b]) +m4_define([LT_PACKAGE_REVISION], [1.3017]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.2.6b' +macro_revision='1.3017' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) + +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 4 lt~obsolete.m4 + +# These exist entirely to fool aclocal when bootstrapping libtool. +# +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) + +# nls.m4 serial 3 (gettext-0.15) +dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2003. + +AC_PREREQ(2.50) + +AC_DEFUN([AM_NLS], +[ + AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE(nls, + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT($USE_NLS) + AC_SUBST(USE_NLS) +]) + +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# +# Copyright © 2004 Scott James Remnant . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# PKG_PROG_PKG_CONFIG([MIN-VERSION]) +# ---------------------------------- +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi + +fi[]dnl +])# PKG_PROG_PKG_CONFIG + +# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# +# Check to see whether a particular set of modules exists. Similar +# to PKG_CHECK_MODULES(), but does not set variables or print errors. +# +# +# Similar to PKG_CHECK_MODULES, make sure that the first instance of +# this or PKG_CHECK_MODULES is called, or make sure to call +# PKG_CHECK_EXISTS manually +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_ifval([$2], [$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + + +# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +# --------------------------------------------- +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])# _PKG_CONFIG + +# _PKG_SHORT_ERRORS_SUPPORTED +# ----------------------------- +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])# _PKG_SHORT_ERRORS_SUPPORTED + + +# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +# [ACTION-IF-NOT-FOUND]) +# +# +# Note that if there is a possibility the first call to +# PKG_CHECK_MODULES might not happen, you should be sure to include an +# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +# +# +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + ifelse([$4], , [AC_MSG_ERROR(dnl +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT +])], + [AC_MSG_RESULT([no]) + $4]) +elif test $pkg_failed = untried; then + ifelse([$4], , [AC_MSG_FAILURE(dnl +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])], + [$4]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + ifelse([$3], , :, [$3]) +fi[]dnl +])# PKG_CHECK_MODULES + +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.11' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.11.1], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.11.1])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + + +# Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# This was merged into AC_PROG_CC in Autoconf. + +AU_DEFUN([AM_PROG_CC_STDC], +[AC_PROG_CC +AC_DIAGNOSE([obsolete], [$0: + your code should no longer depend upon `am_cv_prog_cc_stdc', but upon + `ac_cv_prog_cc_stdc'. Remove this warning and the assignment when + you adjust the code. You can also remove the above call to + AC_PROG_CC if you already called it elsewhere.]) +am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc +]) +AU_DEFUN([fp_PROG_CC_STDC]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 9 + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 10 + +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "GCJ", or "OBJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], UPC, [depcc="$UPC" am_compiler_list=], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +#serial 5 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each `.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 8 + +# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. +AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 16 + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.62])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl +dnl The `parallel-tests' driver may need to know about EXEEXT, so add the +dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro +dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl +]) + +dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST(install_sh)]) + +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- +# From Jim Meyering + +# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +# AM_MAINTAINER_MODE([DEFAULT-MODE]) +# ---------------------------------- +# Control maintainer-specific portions of Makefiles. +# Default is to disable them, unless `enable' is passed literally. +# For symmetry, `disable' may be passed as well. Anyway, the user +# can override the default with the --enable/--disable switch. +AC_DEFUN([AM_MAINTAINER_MODE], +[m4_case(m4_default([$1], [disable]), + [enable], [m4_define([am_maintainer_other], [disable])], + [disable], [m4_define([am_maintainer_other], [enable])], + [m4_define([am_maintainer_other], [enable]) + m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) +AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles]) + dnl maintainer-mode's default is 'disable' unless 'enable' is passed + AC_ARG_ENABLE([maintainer-mode], +[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) + AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST([MAINT])dnl +] +) + +AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 6 + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it supports --run. +# If it does, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_MKDIR_P +# --------------- +# Check for `mkdir -p'. +AC_DEFUN([AM_PROG_MKDIR_P], +[AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# ------------------------------ +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) + +# _AM_SET_OPTIONS(OPTIONS) +# ---------------------------------- +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; +esac + +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of `v7', `ustar', or `pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. +AM_MISSING_PROG([AMTAR], [tar]) +m4_if([$1], [v7], + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + diff --git a/barcode-0.98/COPYING b/barcode-0.98/COPYING new file mode 100644 index 00000000..a43ea212 --- /dev/null +++ b/barcode-0.98/COPYING @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/barcode-0.98/ChangeLog b/barcode-0.98/ChangeLog new file mode 100644 index 00000000..024706de --- /dev/null +++ b/barcode-0.98/ChangeLog @@ -0,0 +1,460 @@ +2002-03-01 Alessandro Rubini + + * library.c (Barcode_Encode): handle bitsets separately, like + in Barcode_Print (otherwise, you might loose NO_CHECKSUM). + + * debian/changelog: moved to 0.98 (but should fix all debian/ stuff) + + * contrib/barcode-for-delphi.tar.gz: new, contributed by Michael Geddes + + * contrib/barcode-for-delphi.tar.gz.README: short info for file above + + * main.c (main): allow "-g" to set size of code in a table as well + -- suggested and initiallt implemented by Joachim Reichelt. + (main): fixed missing "Page: 1 1" in postscript for tables + (main): for tables don't use Encode_and_Print, use a local + unrolled version, so the default margin can be removed and + we avoid problems with negative xoff in the output phase + (first column may be offset, as noted by Karl Magnus Kolstoe) + + * doc/doc.barcode: documented change above. + + * README: removed refernces to systemy.it, I'm no more there + Added link to FreeBSD ports tree and GLabels + Organized as sections with titles + + * contrib/barcode-SVG.tar.gz: new contribution, by David J. Humphreys + + * contrib/barcode-SVG.tar.gz.README: short description of file above + + * contrib/grab-0.0.4.tar.gz: new program, by Tuukka Toivonen. + + * contrib/grab-0.0.4.tar.gz.README: short description of file above + +2002-03-01 Boszormenyi Zoltan + + * barcode.spec: new file + +2002-02-27 Alessandro Rubini + + * bookland/bookland.py: updated to version 0.92 by Judah Milgram + +2001-11-13 Alessandro Rubini + + * README: Added a pointer to the Windows port. + +2001-11-09 Cloyce D. Spradling + + * code128.c (Barcode_128b_verify): prototype fix (unsigned char). + + * ps.c (Barcode_ps_print): the comment for ascii codes must only + be printed if ascii is being printed (benign bug). + +2001-11-06 Christoph Pross + + * pcl.c (Barcode_pcl_print): bugfix: bars were misplaced + +2001-10-16 Nathan D. Holmes + + ====> Version 0.97 released to ftp.systemy.it and ftp.gnu.org + + * code93.c: new file (I modified something as well - Alessandro) + + * doc/doc.barcode (Supported Encodings): added docs for code93 + + * main.c: added code93 names + + * Makefile.in (LIBOBJECTS): added code93.o + + * library.c: added code93 entry points + +2001-10-16 Alessandro Rubini + + * doc/manpager: added (trivial) support for @itemize, added copyright + + * sample.c (main): accept -P to create PCL output + + * doc/doc.barcode (PCL Output): added the section, using text + provided by Andrea Scopece and turning it into texinfo. + Removed also a few extra newlines that made bad man pages + +2001-10-16 Andrea Scopece + + * barcode.h: added BARCODE_OUT_PCL and BARCODE_OUT_PCL_III + + * library.c (Barcode_Print): use BARCODE_OUT_PCL to select pcl_print() + + * Makefile.in (LIBOBJECTS): added pcl.o + + * pcl.c: new file, with PCL output support + +2001-10-16 Alessandro Rubini + + * doc/doc.barcode (Supported Encodings): added documentation for + EAN and UPC with checksum, as coded by mr. Böszörményi (below) + +2001-10-16 Boszormenyi Zoltan + + * ean.c: + + I found that barcode-0.96 does not correctly encodes UPC-E. + This was mainly because in upc_e_to_a() the switch() branches + all ended without "break;". + + Printing UPC-E did not print the leading encoding number and + the trailing UPC-A checksum. Now it does. + + Accept EAN-13 and EAN-8 with and without the checksum. + So always treat 7 and 12 digit sequences as valid EAN codes + and accept 8 and 13 digit sequences as valid EAN codes when + the last digit is the same as the calculated one. + + Accept UPC-A as above (11 or 12 digit sequences.) + + Accepts UPC-E as: + 6 digit sequence: the middle part of the code (leading '0' assumed) + 7 digit sequence: the middle part and either a leading '0' or '1', + or a trailing UPC-A checksum. In that case, leading '0' assumed. + 8 digit sequence: a leading '0' or '1', middle part, checksum + + UPC-A, UPC-E, EAN-13, and EAN-8 may all include + an additional barcode to the right of the main barcode. + + As a 7 or a 12 digit sequence may be ambiguous, please remember + that EAN is checked before UPC if you specified BARCODE_ANY. + +2001-08-20 Alessandro Rubini + + * sample.c (main): added upc-e and ean-8 samples + +2001-08-11 Boszormenyi Zoltan + + * ps.c (Barcode_ps_print): don't output "showpage" in EPS mode + +2001-08-11 Alessandro Rubini + + * README: Changed host names, added barcode-commit list. + +2000-11-29 Alessandro Rubini + + * doc/doc.barcode (The Field List): 1pt == 0.352mm, not 0.0352 + (thanks to Stephen Irven for reporting) + +2000-11-09 Alessandro Rubini + + ====> Version 0.96 released to ftp.systemy.it and ftp.gnu.org + + * doc/Makefile.in ($(TARGET).html): fixed bug introduced on Sep 08 + + * doc/doc.barcode (top): correctly deal with "makeinfo --html" + +2000-11-08 Alessandro Rubini + + * README: new network pointers added + + * codabar.c (Barcode_cbr_encode): don't print ascii text for the + checksum. + + * doc/doc.barcode (The Intermediate Representaion): new section + Documented the new encodings by Leonid. + Promoted two sections to chapters + Added Leonid in the AUTHORS section of the manpage. + + * Makefile.in: don't remove docs in distclean, as the distribution + now includes the docs + +2000-11-07 Alessandro Rubini + + * Makefile.in (clean): don't remove docs, do that only in distclean + + * doc/Makefile.in: a new life for the former Makefile (to build + with both gmake and pmake with features added on 2000-09-08) + + * configure.in: use $MAKE in checking for gmake if set + (to allow testing with BSD make) + Check if makeinfo can manage html, used for doc/Makefile.in + +2000-11-07 Leonid A. Broukhis + + * code128.c (Barcode_encode_as): fixed a bug that prevented F + symbols to be correctly encoded. + + * plessey.c: new file, for Plessey encoding. + + * msi.c: new file, for MSI encoding. + + * codabar.c: new file, for CodaBar encoding. + + * code128.c (Barcode_128raw_encode): new encoding + (Barcode_128raw_verify): checker for new encoding + + * barcode.h, library.c, main.c: added code128raw, codabar, + MSI and Plessey + +2000-11-07 Hans Schou + + * contrib/barcodeps-0.1.tgz: new file, sent to Alessandro on Oct 7 + +2000-10-10 Alessandro Rubini + + * doc/manpager: use gsub instead of gensub, even though it may + leas to problems with some input. This achieves compatibility + with the original awk, so gawk is not needed any more + +2000-10-02 Alessandro Rubini + + * ps.c (Barcode_ps_print): add a backslash in front of '(' too. + Suggested by H Y . + (Barcode_ps_print): use ps arrays to get compact (and prettier) + PostScript output. Suggested by Hans Schou . + + * main.c (get_geometry): accept "+offset+offset" to keep default size. + Suggested by Godmar Back . + +2000-09-16 Alessandro Rubini + + * ps.c (Barcode_ps_print): use "half text height" instead of + "two text heights" as minimum bar height. Suggested by + Oliver Vecernik . + +2000-09-14 Alessandro Rubini + + * barcode.h: added the standard ``extern "C"'' stuff for C++ + (bug reported by Dany Pardo ) + +2000-09-08 Andrea Ferraris + + * doc/Makefile: added support for pdf and html via makeinfo + + * doc/doc.barcode: added a missing trailing dot in an xref + +2000-08-28 Alessandro Rubini + + * i25.c (Barcode_i25_encode): fixed checksum calculation + (thanks to Hans Schou for reporting) + +2000-05-19 Alessandro Rubini + + ====> Version 0.95.1 released to ftp.prosa.it + + * code128.c (Barcode_128_make_array): use code C if encoding 2 digits + +2000-05-08 Alessandro Rubini + + * cmdline.c (commandline_errormsg): removed "?:" gcc extension + + * configure.in: added checks for unistd.h and strcasecmp, as + windows doesn't have them (thanks Marten Karl) + +2000-04-21 Alessandro Rubini + + * doc/Makefile: modified to build with both gmake and pmake + + * Makefile: modified to build with both gmake and pmake + +2000-04-20 Alessandro Rubini + + * Makefile.in (.depend): removed gmake-specific features. + Thanks to Jukka A. Ukkonen for reporting. + + * configure.in: detect gmake and avoid its features if not there + + * ps.c (Barcode_ps_print): fix: codes with (relatively) short bars + were enlarged in height instead of reduced in width (also + the enlarging was wrong). Thanks to Rob Seace for reporting. + +2000-04-09 Alessandro Rubini + + * code128.c (Barcode_128_encode): removed extra messages to stderr, + forgot in the code when I finished code128 support + + * doc/doc.barcode: bugfix: in the description of geometry, the unit + of measure is configurable + +2000-02-03 Alessandro Rubini + +====> Version 0.95 released to ftp.prosa.it and ftp.gnu.org + +2000-01-26 Alessandro Rubini + + * code128.c (Barcode_128_encode): new encoding: full-featured code128 + + * README: added reference to original ftp site + +2000-01-05 Alessandro Rubini + + * main.c (get_page_geometry): avoid using snprintf(), missing in HP/UX + + * code39.c (Barcode_39_verify): added missing parens (a syntax error, + but only apparent where islower() is not a macro). Thanks to + Alexandre Oliva for finding it out. + +2000-01-04 Alessandro Rubini + + * doc/doc.barcode (The API): removed spurious "flags" argument + from description of Barcode_Encode_and_Print(). + Thanks to Willy Wittesaele for noting the error. + +1999-12-24 Alessandro Rubini + + * main.c (get_geometry): fixed the y margin (thanks to Steve Kunath) + +====> Version 0.94 released to ftp.prosa.it and ftp.gnu.org + +1999-10-24 Alessandro Rubini + + * INSTALL: added instructions to install on a Debian GNU/Linux system + + * debian/*: edited information for proper Debian support + + * debian/rules (binary-arch): new file, from "deb-make" + + * Makefile.in (install): added "-m 0644" to install non-executables + + * code128.c (Barcode_128b_encode): fixed checksum calculation. + +====> Version 0.93 released to ftp.prosa.it and ftp.gnu.org + +1999-09-26 Alessandro Rubini + + * doc/doc.barcode: fixed the rendering of complex options (-g and -t) + Removed extra "table of contents" heading in the ps output + Changed attribution on cover page + + * main.c (get_table and others): be more specific in error msgs + (get_page_geometry): numeric specification is according to "-u" + (get_table): accept unsymmetric margin specification + (option_table): added "-u" to accept "cm", "mm", "in", "pt" + (get_page_geometry): bugfix: numeric spec was always consideder mm + + * cmdline.c (commandline): don't always print help + + * Makefile.in ($(INFO)): added missing dependency: distributed docs + formats were out of date with distributed doc source. + +1999-09-13 Alessandro Rubini + + * main.c (main): print tables: y used xmargin (Tim Withers,Jon Bakken) + +1999-09-06 Alessandro Rubini + + * Makefile.in: prevent -Wall when compiling getopt. + + * i25.c, ean.c, ps.c: switched to unsigned char, to prevent warnings + on newer gcc's (thanks Al Piszcz) + +====> Version 0.92 released to ftp.prosa.it and ftp.gnu.org + +1999-08-31 Alessandro Rubini + + * i25.c: the right guard was thinner than other bars + + * doc/doc.barcode: spelling and manpage fixes (thanks Joachim Schaaf) + +====> Version 0.91.4 released to ftp.prosa.it + +1999-08-23 Thad Floryan + + * main.c (strerror): replacement strerror selected by autoconf + +1999-08-06 Alessandro Rubini + + * changed all "ENODATA" in "EINVAL", as some system miss ENODATA + + * Makefile.in (all): removed ".depend" from all, as it needs gcc + + * i25.c (Barcode_i25_encode): fixed wrong free() in an unlinely path + + * ean.c (Barcode_ean_encode): don't use sprintf's result, as some + systems return a char pointer instead of the number of chars. + + * configure.in: new file, as autoconf support is being added + +====> Version 0.91.3 released to ftp.prosa.it + +1999-08-05 Alessandro Rubini + + * code128.c (Barcode_128c_encode): fixed malloc of textinfo (was short) + + * i25.c (Barcode_i25_encode): new encoding: interleaved 2 of 5 + + * ean.c (Barcode_ean_encode): enlarged static "text", to fit add-5 + + * code128.c (Barcode_128b_encode): new encoding: 128-B + +====> Version 0.91.2 released to ftp.prosa.it + +1999-08-04 Alessandro Rubini + + * bookland/bookland.py: upgraded to version 0.06 (Judas Milgram) + + * ean.c (Barcode_ean_encode): fixed layout of 1st/last digit in UPC-A + + * code128.c (Barcode_128c_encode): fixed checksum calculation + +====> Version 0.91.1 released to ftp.prosa.it + +1999-07-09 Alessandro Rubini + + * sample.c (main): due changes to show code128-C + + * code128.c (Barcode_128c_encode): implemented code 128-C + + * ps.c (Barcode_ps_print): Accept float position and font size + + * code39.c (Barcode_39_encode): reduced font (looked too big) + +====> Version 0.91 released to both ftp.prosa.it and ftp.gnu.org + +1999-07-08 Alessandro Rubini + + * ps.c (Barcode_ps_print): shrink all the bars by 0.15 points + (Barcode_ps_print): Use Helvetica as font, not Courier-Bold + (Barcode_ps_print): remember previous font to make shorter ps output + +1999-07-07 Alessandro Rubini + + * bookland/bookland.py: new enntry, by Judah Milgram. + + * ean.c (Barcode_isbn_verify): fixed bug with "-X" codes (thanks Judah) + +====> Version 0.90.3 released to ftp.prosa.it/pub/software + +1999-07-07 Alessandro Rubini + + * doc/doc.barcode: fixed the "BUGS" section (remove fixed stuff) + + * ean.c (Barcode_ean_encode): added '+' markers in partial and textinfo + + * ps.c (Barcode_ps_print): added support for text over bars ('+' mode) + +====> Version 0.90.2, internal checkpoint + +1999-07-06 Alessandro Rubini + + * Makefile: dirty autodetect of libpaper + + * main.c (get_page_geometry): parse a cmdline argument (mcm@glisco.it) + (main): added "--version" + (main): added diagnostic message for unencodable strings + +====> Version 0.90.1 released to ftp.prosa.it/pub/software + +1999-07-03 Alessandro Rubini + + * barcode.h: removed BARCODE_OUT_PG_* as only the library doesn't + need to hack with the page size. + + * ean.c (Barcode_ean_encode): supplemental 2 and 5 encodings (no text) + + * library.c: use unsigned char all over the place, to prevent warnings + +1999-07-01 Alessandro Rubini + + * ean.c: added EAN-8 and UPC-E support + + * Updated the address of the FSF in any source file + + * README: new file. + +====> Version 0.90 is the first public release. No Changelog up to now. diff --git a/barcode-0.98/INSTALL b/barcode-0.98/INSTALL new file mode 100644 index 00000000..5a6cb878 --- /dev/null +++ b/barcode-0.98/INSTALL @@ -0,0 +1,31 @@ + +Installing on generic Unix systems +---------------------------------- + +The package includes both a library and a standalone program. +To install everything try + + ./configure && make && make install + +To uninstall, try + + make uninstall + +You may have problems compiling the package on non-GNUish systems, +because the tool currently uses both gmake and gawk features, and I have +no access to non-gnu systems. If your operating system isn't able to +compile barcode and you are willing to help porting, feel free to call me. + + +Installing on Debian/GNU systems +-------------------------------- + +The suggested installation here includes creation of a Debian package: + + debian/rules binary + +Then, just install using dpkg: + + dpkg -i ../barcode-0.98_*.deb + +(the "*" here will represent your architecture: "i386", "alpha", "sparc", ...) diff --git a/barcode-0.98/Makefile.am b/barcode-0.98/Makefile.am new file mode 100644 index 00000000..e7456ab9 --- /dev/null +++ b/barcode-0.98/Makefile.am @@ -0,0 +1,73 @@ +INCLUDES = \ + $(GLABELS_CFLAGS) + + +BC_FILES = \ + library.c \ + ean.c \ + code128.c \ + code39.c \ + code93.c \ + i25.c \ + msi.c \ + plessey.c \ + codabar.c \ + ps.c \ + pcl.c \ + barcode.h + +noinst_LTLIBRARIES = libbarcode.la + +libbarcode_la_SOURCES = $(BC_FILES) + +EXTRA_DIST = \ + barcode.spec \ + ChangeLog \ + cmdline.c \ + cmdline.h \ + configure \ + configure.in.dist \ + COPYING \ + INSTALL \ + install-sh \ + main.c \ + Makefile.in.dist \ + missing \ + mkinstalldirs \ + README \ + README.glabels \ + sample.c \ + TODO \ + bookland/bookland.py \ + compat/getopt.c \ + compat/getopt.h \ + contrib/barcode-for-delphi.tar.gz \ + contrib/barcode-SVG.tar.gz.README \ + contrib/barcode-for-delphi.tar.gz.README \ + contrib/barcodeps-0.1.tgz \ + contrib/grab-0.0.4.tar.gz \ + contrib/barcodeps-0.1.tgz.README \ + contrib/grab-0.0.4.tar.gz.README \ + contrib/barcode-SVG.tar.gz \ + debian/changelog \ + debian/control \ + debian/copyright \ + debian/dirs \ + debian/info \ + debian/README.debian \ + debian/rules \ + doc/barcodedoc.txt \ + doc/barcode.ps \ + doc/infofilter \ + doc/manpager \ + doc/texi2html \ + doc/barcode.info \ + doc/mktxt \ + doc/barcode.pdf \ + doc/doc.barcode \ + doc/Makefile.in \ + doc/README + + + + diff --git a/barcode-0.98/Makefile.in b/barcode-0.98/Makefile.in new file mode 100644 index 00000000..4bbfd2ac --- /dev/null +++ b/barcode-0.98/Makefile.in @@ -0,0 +1,596 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = barcode-0.98 +DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + COPYING ChangeLog INSTALL TODO install-sh missing \ + mkinstalldirs +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libbarcode_la_LIBADD = +am__objects_1 = library.lo ean.lo code128.lo code39.lo code93.lo \ + i25.lo msi.lo plessey.lo codabar.lo ps.lo pcl.lo +am_libbarcode_la_OBJECTS = $(am__objects_1) +libbarcode_la_OBJECTS = $(am_libbarcode_la_OBJECTS) +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(libbarcode_la_SOURCES) +DIST_SOURCES = $(libbarcode_la_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_CFLAGS = @GLABELS_CFLAGS@ +GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_REQUIRED = @GLIB_REQUIRED@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_REQUIRED = @GTK_REQUIRED@ +HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +HELP_DIR = @HELP_DIR@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ +LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ +LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ +LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ +LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ +LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ +LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ +LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +MYGAL_CFLAGS = @MYGAL_CFLAGS@ +MYGAL_LIBS = @MYGAL_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ +UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +XGETTEXT = @XGETTEXT@ +XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ +XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +INCLUDES = \ + $(GLABELS_CFLAGS) + +BC_FILES = \ + library.c \ + ean.c \ + code128.c \ + code39.c \ + code93.c \ + i25.c \ + msi.c \ + plessey.c \ + codabar.c \ + ps.c \ + pcl.c \ + barcode.h + +noinst_LTLIBRARIES = libbarcode.la +libbarcode_la_SOURCES = $(BC_FILES) +EXTRA_DIST = \ + barcode.spec \ + ChangeLog \ + cmdline.c \ + cmdline.h \ + configure \ + configure.in.dist \ + COPYING \ + INSTALL \ + install-sh \ + main.c \ + Makefile.in.dist \ + missing \ + mkinstalldirs \ + README \ + README.glabels \ + sample.c \ + TODO \ + bookland/bookland.py \ + compat/getopt.c \ + compat/getopt.h \ + contrib/barcode-for-delphi.tar.gz \ + contrib/barcode-SVG.tar.gz.README \ + contrib/barcode-for-delphi.tar.gz.README \ + contrib/barcodeps-0.1.tgz \ + contrib/grab-0.0.4.tar.gz \ + contrib/barcodeps-0.1.tgz.README \ + contrib/grab-0.0.4.tar.gz.README \ + contrib/barcode-SVG.tar.gz \ + debian/changelog \ + debian/control \ + debian/copyright \ + debian/dirs \ + debian/info \ + debian/README.debian \ + debian/rules \ + doc/barcodedoc.txt \ + doc/barcode.ps \ + doc/infofilter \ + doc/manpager \ + doc/texi2html \ + doc/barcode.info \ + doc/mktxt \ + doc/barcode.pdf \ + doc/doc.barcode \ + doc/Makefile.in \ + doc/README + +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu barcode-0.98/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu barcode-0.98/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libbarcode.la: $(libbarcode_la_OBJECTS) $(libbarcode_la_DEPENDENCIES) + $(LINK) $(libbarcode_la_OBJECTS) $(libbarcode_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/codabar.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/code128.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/code39.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/code93.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ean.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i25.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/library.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msi.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pcl.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plessey.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ps.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/barcode-0.98/Makefile.in.dist b/barcode-0.98/Makefile.in.dist new file mode 100644 index 00000000..848aa265 --- /dev/null +++ b/barcode-0.98/Makefile.in.dist @@ -0,0 +1,141 @@ +# +# This Makefile should run fine with both pmake and gmake +# + +CC = @CC@ +CFLAGS = @CFLAGS@ @DEFS@ @NO_GETOPT@ @NO_LIBPAPER@ @NO_STRERROR@ +RANLIB = @RANLIB@ + +INSTALL = @INSTALL@ + +LDFLAGS = -L. -l$(TARGET) @LIBPAPER@ + +prefix = @prefix@ +BINDIR = $(prefix)/bin +LIBDIR = $(prefix)/lib +INCDIR = $(prefix)/include +MAN1DIR = $(prefix)/man/man1 +MAN3DIR = $(prefix)/man/man3 +INFODIR = $(prefix)/info + +# getopt may be installed or not, if not take our copy +GETOPT_O = @GETOPT_O@ + +TARGET = barcode +LIBRARY = lib$(TARGET).a +MAN1 = $(TARGET).1 +MAN3 = $(TARGET).3 +INFO = doc/$(TARGET).info +HEADER = $(TARGET).h + +LIBOBJECTS = library.o ean.o code128.o code39.o code93.o i25.o \ + msi.o plessey.o codabar.o \ + ps.o pcl.o +EXEOBJECTS = main.o cmdline.o $(GETOPT_O) +ALLSOURCES = $(LIBOBJECTS:.o=.c) $(EXEOBJECT:.o=.c) + + +#Hmm... "RM" is undefined in pmake +RM = rm + +all: $(TARGET) $(LIBRARY) $(MAN1) $(MAN3) $(INFO) sample + +$(TARGET): $(LIBRARY) $(EXEOBJECTS) + $(CC) $(CFLAGS) $(EXEOBJECTS) $(LDFLAGS) -o $(TARGET) + +sample: sample.o $(LIBRARY) + $(CC) $(CFLAGS) sample.o $(LDFLAGS) -o $@ + +# Avoid the standard CFLAGS, to avoid -Wall and -DNO_GETOPT +compat/getopt.o: compat/getopt.c + $(CC) -O -c compat/getopt.c -o $@ + +$(LIBRARY): $(LIBOBJECTS) + $(AR) r $(LIBRARY) $(LIBOBJECTS) + $(RANLIB) $(LIBRARY) + +$(MAN1) $(MAN3): doc/doc.$(TARGET) + awk -f doc/manpager doc/doc.$(TARGET) + + +# Unfortunately, pmake has no "-C". Also, "pmake -n" doesn't follow the cd. +$(INFO): doc/doc.$(TARGET) + cd doc && $(MAKE) + +install: + $(INSTALL) -d $(BINDIR) $(INCDIR) $(LIBDIR) $(MAN1DIR) \ + $(MAN3DIR) $(INFODIR) + $(INSTALL) -c $(TARGET) $(BINDIR) + $(INSTALL) -c -m 0644 $(HEADER) $(INCDIR) + $(INSTALL) -c -m 0644 $(LIBRARY) $(LIBDIR) + $(INSTALL) -c -m 0644 $(MAN1) $(MAN1DIR) + $(INSTALL) -c -m 0644 $(MAN3) $(MAN3DIR) + $(INSTALL) -c -m 0644 $(INFO) $(INFODIR) + +uninstall: + $(RM) -f $(BINDIR)/$(TARGET) + $(RM) -f $(INCDIR)/$(HEADER) + $(RM) -f $(LIBDIR)/$(LIBRARY) + $(RM) -f $(MAN1DIR)/$(MAN1) + $(RM) -f $(MAN3DIR)/$(MAN3) + $(RM) -f $(INDODIR)/$(INFO) + +#Make clean keeps the compiled documents +clean: + $(RM) -f *.o */*.o *~ */*~ $(TARGET) $(LIBRARY) + $(RM) -f $(MAN1) $(MAN3) core sample + cd doc && $(MAKE) terse + $(RM) -f .depend + +distclean: clean + if [ -f build ]; then debian/rules clean; fi + # remove the configure stuff as well + $(RM) -f Makefile config.h config.log config.status config.cache \ + doc/Makefile + +cleanest: clean + cd doc && $(MAKE) clean + +Makefile: Makefile.in configure + ./configure + +configure: configure.in + autoconf + +.depend: $(ALLSOURCES) + $(CC) $(CFLAGS) -MM $(ALLSOURCES) > $@ + +depend: .depend + +tar: + @if [ "x" = "x$(RELEASE)" ]; then \ + n=`basename \`pwd\``; cd ..; tar cvf - $$n | gzip > $$n.tar.gz; \ + echo 'you can set a numeric $$(RELEASE) to make a named tar'; \ + else \ + if [ -d ../$(TARGET)-$(RELEASE) ]; then \ + rm -rf ../$(TARGET)-$(RELEASE); \ + fi; \ + mkdir ../$(TARGET)-$(RELEASE) || exit 1; \ + cp -a . ../$(TARGET)-$(RELEASE) && cd .. && \ + tar --exclude '*/CVS*' \ + -cvzf $(TARGET)-$(RELEASE).tar.gz $(TARGET)-$(RELEASE); \ + fi + +# print the version, as I usually forget to update it when distributing +printv: + @grep -n VERSION $(HEADER) /dev/null + @grep -n set.version doc/doc.$(TARGET) /dev/null + @grep -n dpkg.-i INSTALL /dev/null + +# and this is how I make the distribution +distrib: $(INFO) distclean tar printv + + +.PHONY: all install uninstall mostlyclean clean disclean depend \ + tar printv distrib + +# Only if make is gmake, have a rule to conditionally include .depend +@GMAKEDEPEND0@ +@GMAKEDEPEND1@ +@GMAKEDEPEND2@ + diff --git a/barcode-0.98/README b/barcode-0.98/README new file mode 100644 index 00000000..d3ae2a7f --- /dev/null +++ b/barcode-0.98/README @@ -0,0 +1,93 @@ + +NETWORK LINKS +============= + +This is GNU-barcode. The latest release can be downloaded from ftp.gnu.org +and mirrors: + ftp://ftp.gnu.org/pub/gnu/barcode/ + +It is also available from my own ftp/http server + ftp://ar.linux.it/pub/barcode/ + http://ar.linux.it/pub/barcode/ (same as above). + +The current source tree is available by anonymous CVS. See + http://ar.linux.it/software/#cvs + +Plesae note that ar.linux.it/pub/barcode also includes CVS snapshots, +semi-atumatically taken when I commit stuff to CVS. Note that CVS +snapshots include "CVS/" directories, so you can then "cvs update" for +further updates. + +The documentation is online at: + http://ar.linux.it/software/barcode + +The MS-Windows port is maintained at: + http://gnuwin32.sourceforge.net/packages/barcode.htm + +It as also been included in the FreeBSD ports tree in the "graphics" section. +This means /usr/ports/graphics/barcode. It's thus available from: + http://www.freebsd.org/ports/graphics.html + +GLabels, at http://snaught.com/glabels/, uses barcode internally, too. + +DESCRIPTION +=========== + +The package is meant to solve most needs in barcode creation with a +conventional printer. It can create printouts for the conventional +product tagging standards: UPC-A, UPC-E, EAN-13, EAN-8, ISBN, as well +as a few other formats. Ouput is generated as either Postscript or +Encapsulated Postscript (other back-ends may be added if needed). + +The package is released as both a library and a command-line frontend, +so that you can include barcode-generation into your application. The +program is released in the hope that is proves useful but without any +warranty, according to the GPL Licence (see ./COPYING). + +If you're specifically interested in making an ISBN (Bookland EAN) +symbol, you might try to get "bookland.py" by Judah Milgram +(http://www.cgpp.com/bookland/, whose version 0.92 is also included in +the directory "bookland" within this package, for your convenience). +While my main target is flexibility his main target is strict +adherence to the standards. Bookland is free software like the barcode +library and will probabily have its role in the GNU project. +Bookland.py is a self-documenting program, you'll enjoy browsing its +source code. + +Other contributed patches and/or software are available in the +contrib/ directory. + +Please take the "no-warranty" disclaimer seriously: even though I +spent reasonable efforts to make sure the output is useable in +production you should verify it suits your needs as a faulty bar can +cost you a bundle, and you'll be on your own. It's up to you to verify +that the symbol is valid (and, obviously, I'd like to know about any +problem you encounter). [This paragraph copied verbatim from bookland.py] + + +ACKNOWLEDGMENTS +=============== + +I would like to thank both Judah Milgram and Michele Comitini +(mcm@glisco.it) for their help with this tool, as well as Jim Westveer +for introducing me to Debian packaging. Several encodings have been +implemented by Leonid A. Broukhis (leob@mailcom.com). + + +MAILING LISTS +============= + +There is a mailing list where development is coordinated, called +barcode@lists.linux.it . To get subscribed you should + echo subscribe | mail barcode-request@lists.linux.it +or anything equivalent. + +To receive notification of CVS commit messages, please subscribe to +barcode-commit@ar.linux.it, by issuing: + echo subscribe | mail barcode-commit-request@ar.linux.it + +(if you guess, "ar" or "arcana" is my own server, while lists.linux.it +is the mail server of the italian association of gnu/linux users). + +/alessandro (rubini@gnu.org) + diff --git a/barcode-0.98/README.glabels b/barcode-0.98/README.glabels new file mode 100644 index 00000000..b0dc9592 --- /dev/null +++ b/barcode-0.98/README.glabels @@ -0,0 +1,7 @@ +The following changes have been made to the stock barcode-0.98 distribution +to facilitate compilation with glabels: + + Makefile.in renamed to Makefile.in.dist + configure.in renamed to configure.in.dist + added Makefile.am, which is configured from ../configure.in + diff --git a/barcode-0.98/TODO b/barcode-0.98/TODO new file mode 100644 index 00000000..c91c79cf --- /dev/null +++ b/barcode-0.98/TODO @@ -0,0 +1,23 @@ + + Possible enhancements that I'd like to add + +* verbose mode, printing position information to stderr + +* document how a new encoding standard can be added + +* add Barcode_String, which has been contributed + +* EAN128 (as agreed with Dani Pardo) + +* Postnet and associated encoding-specific bar definitions + +* Use texinfo 4 with images + +* shrink the bars to account for ink spreading + + Currently, small barcodes don't get rendered well. While + version 0.91 and later subtracts 0.15 points from the size of + the bars (I found that this makes good results for small + bars), a smart alghorithm to shrink the bars is needed to get + lighter prints at small sizes without loosing readability. + diff --git a/barcode-0.98/barcode.h b/barcode-0.98/barcode.h new file mode 100644 index 00000000..6b9bdf4e --- /dev/null +++ b/barcode-0.98/barcode.h @@ -0,0 +1,119 @@ +/* + * barcode.h -- definitions for libbarcode + * + * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org) + * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef _BARCODE_H_ +#define _BARCODE_H_ + +#include + +#define BARCODE_VERSION "0.98" +#define BARCODE_VERSION_INT 9800 + +/* + * The object + */ +struct Barcode_Item { + int flags; /* type of encoding and decoding */ + char *ascii; /* malloced */ + char *partial; /* malloced too */ + char *textinfo; /* information about text positioning */ + char *encoding; /* code name, filled by encoding engine */ + int width, height; /* output units */ + int xoff, yoff; /* output units */ + int margin; /* output units */ + double scalef; /* requested scaling for barcode */ + int error; /* an errno-like value, in case of failure */ +}; + +/* + * The flags field + */ +#define BARCODE_DEFAULT_FLAGS 0x00000000 + +#define BARCODE_ENCODING_MASK 0x000000ff /* 256 possibilites... */ +#define BARCODE_NO_ASCII 0x00000100 /* avoid text in output */ +#define BARCODE_NO_CHECKSUM 0x00000200 /* avoid checksum in output */ + +#define BARCODE_OUTPUT_MASK 0x000ff000 /* 256 output types */ +#define BARCODE_OUT_EPS 0x00001000 +#define BARCODE_OUT_PS 0x00002000 +#define BARCODE_OUT_PCL 0x00004000 /* by Andrea Scopece */ +/* PCL_III 0x00008000 */ +#define BARCODE_OUT_PCL_III 0x0000C000 +#define BARCODE_OUT_NOHEADERS 0x00100000 /* no header nor footer */ + +enum { + BARCODE_ANY = 0, /* choose best-fit */ + BARCODE_EAN, + BARCODE_UPC, /* upc == 12-digit ean */ + BARCODE_ISBN, /* isbn numbers (still EAN13) */ + BARCODE_39, /* code 39 */ + BARCODE_128, /* code 128 (a,b,c: autoselection) */ + BARCODE_128C, /* code 128 (compact form for digits) */ + BARCODE_128B, /* code 128, full printable ascii */ + BARCODE_I25, /* interleaved 2 of 5 (only digits) */ + BARCODE_128RAW, /* Raw code 128 (by Leonid A. Broukhis) */ + BARCODE_CBR, /* Codabar (by Leonid A. Broukhis) */ + BARCODE_MSI, /* MSI (by Leonid A. Broukhis) */ + BARCODE_PLS, /* Plessey (by Leonid A. Broukhis) */ + BARCODE_93 /* code 93 (by Nathan D. Holmes) */ +}; + +#define BARCODE_DEFAULT_MARGIN 10 + +#ifdef __cplusplus +extern "C" { +#endif +/* + * Create and destroy barcode structures + */ +extern struct Barcode_Item *Barcode_Create(char *text); +extern int Barcode_Delete(struct Barcode_Item *bc); + +/* + * Encode and print + */ +extern int Barcode_Encode(struct Barcode_Item *bc, int flags); +extern int Barcode_Print(struct Barcode_Item *bc, FILE *f, int flags); + +/* + * Choose the position + */ +extern int Barcode_Position(struct Barcode_Item *bc, int wid, int hei, + int xoff, int yoff, double scalef); + +/* + * Do it all in one step + */ +extern int Barcode_Encode_and_Print(char *text, FILE *f, int wid, int hei, + int xoff, int yoff, int flags); + + +/* + * Return current version (integer and string) + */ +extern int Barcode_Version(char *versionname); + +#ifdef __cplusplus +} +#endif + +#endif /* _BARCODE_H_ */ diff --git a/barcode-0.98/barcode.spec b/barcode-0.98/barcode.spec new file mode 100644 index 00000000..eccb6026 --- /dev/null +++ b/barcode-0.98/barcode.spec @@ -0,0 +1,84 @@ +%define name barcode +%define ver 0.98 +%define rel 1 +%define prefix /usr +%define sysconfdir /etc + +Summary: GNU barcode +Name: %name +Version: %ver +Release: %rel +Copyright: GPL +Group: Applications/Productivity +Source: ftp://ar.linux.it/pub/barcode/%name-%{ver}.tar.gz +BuildRoot: /var/tmp/%name-%{ver}-root +URL: http://gnu.systemy.it/software/barcode +Prefix: %prefix + +%description +This is GNU-barcode. +The package is meant to solve most needs in barcode creation with a +conventional printer. It can create printouts for the conventional +product tagging standards: UPC-A, UPC-E, EAN-13, EAN-8, ISBN, as well +as a few other formats. Ouput is generated as either Postscript or +Encapsulated Postscript (other back-ends may be added if needed). + +%package devel +Summary: GNU barcode files for development +Group: Development/Libraries + +%description devel +This is GNU-barcode. +The package is meant to solve most needs in barcode creation with a +conventional printer. It can create printouts for the conventional +product tagging standards: UPC-A, UPC-E, EAN-13, EAN-8, ISBN, as well +as a few other formats. Ouput is generated as either Postscript or +Encapsulated Postscript (other back-ends may be added if needed). + +This package contain the C header, the static library and man page +for development. + +%prep +%setup + +%ifarch alpha + ARCH_FLAGS="--host=alpha-redhat-linux" +%endif + +export -n LANG LINGUAS LC_ALL +if [ ! -f configure ]; then + CFLAGS="$RPM_OPT_FLAGS" ./autogen.sh $ARCH_FLAGS --prefix=%{prefix} --sysconfdir=%{sysconfdir} +else + CFLAGS="$RPM_OPT_FLAGS" ./configure $ARCH_FLAGS --prefix=%{prefix} --sysconfdir=%{sysconfdir} +fi + +%build +export -n LANG LINGUAS LC_ALL + +if [ "$SMP" != "" ]; then + (make "MAKE=make -k -j $SMP"; exit 0) + make +else + make +fi + +%install +[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT +make prefix=$RPM_BUILD_ROOT%{prefix} sysconfdir=$RPM_BUILD_ROOT%{sysconfdir} install + +%clean +[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-, root, root) + +%doc COPYING ChangeLog INSTALL README TODO doc/*.html doc/*.pdf doc/*.ps + +%attr(0755,root,root) %{prefix}/bin/barcode +%attr(0644,root,root) %{prefix}/info/barcode.info* +%attr(0644,root,root) %{prefix}/man/man1/barcode.1* + +%files devel +%attr(0644,root,root) %{prefix}/include/barcode.h +%attr(0644,root,root) %{prefix}/lib/libbarcode.a +%attr(0644,root,root) %{prefix}/man/man3/barcode.3* diff --git a/barcode-0.98/bookland/bookland.py b/barcode-0.98/bookland/bookland.py new file mode 100644 index 00000000..373587cb --- /dev/null +++ b/barcode-0.98/bookland/bookland.py @@ -0,0 +1,884 @@ +#!/usr/local/bin/python + +MYNAME="bookland.py" +MYVERSION="0.92" +COPYRIGHT="(C) 1999-2001 J. Milgram" +DATE = "Jan. 2002" +MAINTAINER = "bookland-bugs@cgpp.com" + +# Copyright (C) 1999,2000 Judah Milgram +# +# bookland.py - generate Bookland EAN symbol for ISBN encoding +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. +# +# ============================================================================== +# +# usage: bookland.py [ISBN] [price-code] > output.eps +# +# ISBN - the ISBN, with or without check digit, with or without hyphens. +# default: 1-56592-197-6 ("Programming Python"). If the check digit +# is provided on the command line, it is verified. If not, it is +# calculated. It's up to you to get the hyphenation right - it's +# important, and something the program can't calculate for you. +# +# price - the five digit add-on code. Usually used to indicate the price, +# in which case the first digit indicates the currency (4=$CAN, +# 5=$US, etc.). The remaining digits indicate the price, with +# decimal point assumed to be between the digit 3 and 4. +# For example: $US 6.95 = 50695, $CAN 35.00 = 43500. Instead of a +# price code, a 5 digit add-on ranging from 90000-98999 can be +# used for internal purposes. BISG recommends just using 90000 if +# you don't want to specify a price. Add-ons ranging from 99000 to +# 99999 have been reserved for special use. +# +# An Encapsulated Postscript file (eps) is sent to standard out. This may in turn +# be converted to other formats using the pbmplus package. You may have trouble +# getting the OCRB to map correctly. If you already have the font, you can look in +# the Fontmap file to see what your system calls it, and edit the fontnames accordingly +# (see below). If you don't have it, you might find it on your DOS system. You +# need a .pfa/.pfb (Type 1) or .ttf (TrueType). Your Postscript interpreter might +# or might not be able to deal with TrueType. In any event, in an emergency, you +# might get away with Helvetica. Note that as of 1990 BISG no longer requires the +# ISBN to be printed in OCR-A. +# +# Take the "no-warranty" disclaimer seriously. Going to print with a faulty bar +# can cost you a bundle, and you'll be on your own. It's up to you to verify that +# the symbol is valid. If you need "corporate accountability", try the Book +# Industry Study Group at (212) 929-1393 or the US ISBN Agency at (908) 665-6770 +# and ask for a list of commercial vendors. Outside the US, don't know. +# +# Feedback welcome. If you discover a case where the program generates a faulty +# symbol, I definitely want to hear about it - write me at milgram@cgpp.com or +# P.O. Box 8376, Langley Park, MD 20787, USA +# +# INSTALLATION: +# +# If you have a Python interpreter on your system, you're done. Just put this file +# somewhere in your path and give it execute permission. If you haven't installed +# Python, see http://www.python.org. It has been ported to Macs, DOS, and MS-Windows. +# +# ABOUT THE BOOKLAND EAN +# +# The most difficult part of this project was finding the documents that define +# the Bookland EAN. There appears to be no single, authoritative source that +# provides all the information required. Some good sources: +# +# [1] "Machine-Readable Coding Guidelines for the U.S. Book Industry", Book +# Industry Study Group, New York, Jan., 1992. (212) 929-1393 +# [2] "UPC Symbol Specification Manual", Uniform Code Council Inc., +# Dayton, Ohio, January 1986 (May 1995 Reprint). (937) 435-3870; I found it +# at http://www.uc-council.org/d36-t.htm +# [3] "EAN Identification for Retail/Trade Items", EAN International. I found it +# in Feb. 1999 at http://www.ean.be/html/Numbering.html +# [4] "Hyphenation Instructions", web page at: +# http://www.isbn.org/standards/home/isbn/international/hyphenation-instructions.asp +# +# The starting point of the exercise is the ISBN, assigned by the national ISBN +# Agency. This is a 10 digit number, the last being a check digit. The ISBN is +# converted to a 13 digit EAN number. The first three digits of the EAN-13 indicate +# the country or region. A prefix of 978 has been assigned to books, regardless +# of country of origin (hence, "Bookland") [3]. The remaining ten digits are the +# first 9 digits of the ISBN followed by the EAN-13 check digit. +# +# It seems the EAN-13 check digit can be calculated using the same algorithm as the +# UPC Version A number. Note that the EAN-13 check digit is always between 0 and 9, +# compare with ISBN check digit which can range to 10 ("X"). See Reference [2], +# Section 2 and Appendix G for details of creation of the EAN-13 symbol. Table 2 of +# Appendix G provides a good comparison of the UPC-A and EAN-13 symbols. +# +# The 5 digit add-on (here called, "UPC5") is defined in Ref. [2] Appendix D. +# The ">" to the right of the five digit code serves to enforce the "quiet zone" to +# the right of the bar pattern. Can't remember where I read that. It's probably +# optional. According to [1], in the UK, three horizontal bars appear over price +# add-ons. Haven't implemented that here. The UPC5 encoding is based on UPC-A and +# UPC-E. +# +# According to [2], Section 3, the EAN-13 numbers and 5-digit add-ons are supposed +# to be printed in OCR-B. The ISBN itself is printed above the EAN-13 symbol. At +# one time it was to be printed in OCR-A, but as of 1990 this requirement has been +# dropped [1], and I assume this means you can use any font you like. +# +# SEE ALSO: +# +# "TinyHelp 5 - Making ISBN Barcodes", D. Byram-Wigfield. Another approach to making +# the ISBN barcode symbol. I saw it at +# http://www.cappella.demon.co.uk/index.html/ +# but haven't tried it. +# +# "XBarcode" - nice open-source X-Windows program for generating all sorts of bar codes. +# It does much more than this program, but didn't seem to do the UPC +# 5-digit add-on or do the ISBN->EAN13 calculation (as of v. 2.11). Might +# have made more sense to add this capability, but I needed a Python project. +# In any event, their license forbids distribution in modified form! +# +# HYPHENATION +# +# bookland.py includes automatic hyphenation for ISBN's in group 0 and 1 +# (English-language). This is based on my reading of Ref [4]. If in doubt, +# users can use the "-y" option to force the program to accept the hyphenation +# as input. For other ISBN groups and for ISMN's, no hyphenation is performed +# other than to ensure a hyphen is placed after the group identifier and before +# the check digit. +# +# ABOUT THE ISMN: +# +# See the ISMN Users' Manual, 3rd Edition, 1998, ISBN 3-88053-070-X, published by +# the International ISMN Agency, Staatsbibliothek Preussischer Kulturbesitz, Berlin. +# I found my copy at http://www.ismn.spk-berlin.de/download/ISMNmanual.pdf +# +# An ISMN is just like an ISBN, except: +# - first character is an "M" +# - the "M" counts as a "3" for computing the ISMN check digit (last digit) +# - the checksum weights are 3,1,3,1,3,1,3,1,3, sum to be divisible by "10". This +# means the last character is always a numerical digit, never an "X". +# - the EAN number is "979" plus the *entire* ten character ISMN, except the +# "M" is replaced by "0". Note this means the ISMN checksum is identical to the +# corresponding EAN-13 checksum (excercise left to the reader). +# +# When bookland.py detects an "M" in the first position of the ISBN, it interprets +# it as an ISMN and proceeds accordingly. The 5-digit price code symbol is suppressed. +# +# BAR WIDTH REDUCTIONS +# +# Starting Version 0.92, the widths of the individual bars can be reduced using the +# "-r" option (units are inches). This is to compensate for bleed during printing. +# I don't know when it's a good idea to actually use this; in any event consult with +# your printer first. If not input, it defaults to zero (no reduction). +# +# ABOUT PYTHON +# +# See http://www.python.org +# +# TO DO: +# +# - Generalize to more bar codes, starting with UPC-A and UPC-E. "Plain" EAN13 is +# already built in, could add command line argument to generate that instead of +# Bookland. +# - Make font sizes and placement easier to configure - not sure I have it right. +# Does human-readable 5-digit code take wider font spacing? +# - Clean up bounding box stuff. +# - Bells and whistles. +# - GUI? +# +# HISTORY: +# +# 1/2002 - v 0.92 add ISMN support (thanks to Lars-Henrik Nysten for this suggestion) +# re-wrote bar generation to preclude possibility of white hairlines +# between adjacent black modules. Thanks to Tero Lindfors for +# reporting this bug. +# new -o option to write eps to file rather than stdout +# new -x option for "check only" (verifies check digit) +# new -r option for bar width reduction (compensate for print bleed) +# new -s option to scale module (bar) height (Lars-Henrik Nysten again) +# can suppress UPC-5 price code by entering empty string. (thanks to +# Jacques Du Pasquier for this suggestion) +# re-wrote ISBN/ISMN sanity checks +# lowercase alphas ("x" for ISBN and "m" for ISMN) now ok on input +# fix "long" command line options. +# 10/2001 - v 0.91 add -z option for quiet zone ">" +# add -f option for fonts +# re-write command line parsing to use getopt +# 1/2000 - v 0.09 eliminate use of eval +# 9/99 - v 0.08 accomodate different versions of OCRB by fitting +# all strings to prescribed width. Thanks to Toby Gadd +# for reporting this problem and Peter Deutsch for +# help finding the fix. +# 7/99 -v0.05-0.07 improve error handling. +# 3/27/99 - v0.04 add "--help" and "--version". +# 3/13/99 - v0.03, do a showpage at end (it's allowed) +# fixed checksum calculations for certain cases +# 2/7/99 - v0.02, fixed LH parity pattern for EAN13. It's not the check digit! +# 2/7/99 - initial release +# ================================================================================ + +# +# barCodeSymbol - the whole printed symbol, including bar code(s) and product code(s). +# UPC, UPCA, UPC5, EAN13 - the number itself, with check digit, string representation, +# and barcode bits +# + +import re # we should get rid of regsub and regex in favor of re + # hope there's no conflict. +import string +import sys +import regsub +from regex_syntax import * +import regex +regex.set_syntax(RE_SYNTAX_AWK) +from types import * + +BooklandError = "Something wrong" + + +A="A";B="B";C="C";O="O";E="E" +UPCABITS = [{O:"0001101",E:"1110010"}, + {O:"0011001",E:"1100110"}, + {O:"0010011",E:"1101100"}, + {O:"0111101",E:"1000010"}, + {O:"0100011",E:"1011100"}, + {O:"0110001",E:"1001110"}, + {O:"0101111",E:"1010000"}, + {O:"0111011",E:"1000100"}, + {O:"0110111",E:"1001000"}, + {O:"0001011",E:"1110100"}] +UPCAPARITY = [ "OOOOOOEEEEEE" ] * 10 +UPCEBITS = [{O:"0001101",E:"0100111"}, + {O:"0011001",E:"0110011"}, + {O:"0010011",E:"0011011"}, + {O:"0111101",E:"0100001"}, + {O:"0100011",E:"0011101"}, + {O:"0110001",E:"0111001"}, + {O:"0101111",E:"0000101"}, + {O:"0111011",E:"0010001"}, + {O:"0110111",E:"0001001"}, + {O:"0001011",E:"0010111"}] +# what about UPCEPARITY? Don't need for isbn. +UPC5BITS = UPCEBITS +UPC5PARITY = ["EEOOO","EOEOO","EOOEO","EOOOE","OEEOO", + "OOEEO","OOOEE","OEOEO","OEOOE","OOEOE"] +EAN13BITS = [{A:"0001101", B:"0100111", C:"1110010"}, + {A:"0011001", B:"0110011", C:"1100110"}, + {A:"0010011", B:"0011011", C:"1101100"}, + {A:"0111101", B:"0100001", C:"1000010"}, + {A:"0100011", B:"0011101", C:"1011100"}, + {A:"0110001", B:"0111001", C:"1001110"}, + {A:"0101111", B:"0000101", C:"1010000"}, + {A:"0111011", B:"0010001", C:"1000100"}, + {A:"0110111", B:"0001001", C:"1001000"}, + {A:"0001011", B:"0010111", C:"1110100"}] +EAN13PARITY = map(lambda x: x+"CCCCCC", + ["AAAAAA","AABABB","AABBAB","AABBBA","ABAABB", + "ABBAAB","ABBBAA","ABABAB","ABABBA","ABBABA"]) + +PSFORMAT = "%.6f" +# Default fonts. +# Fonts might have a different name on your system. +# Edit if required. +ISBNFONT = "OCRB" # Doesn't have to be OCR-B +EAN13FONT = "OCRB" +UPC5FONT = "OCRB" + +class psfile: + + def __init__(self): + self.x0 = 100; self.y0 = 100 + self.lines=[] + self.bb=[self.x0,self.y0,self.x0,self.y0] + + def orbb(self,arg): + self.bb[0] = min(self.bb[0],self.x0+arg[0]) + self.bb[1] = min(self.bb[1],self.y0+arg[1]) + self.bb[2] = max(self.bb[2],self.x0+arg[2]) + self.bb[3] = max(self.bb[3],self.y0+arg[3]) + + def translate(self,dx,dy): + self.x0 = self.x0 + dx + self.y0 = self.y0 + dy + return "%d %d translate 0 0 moveto" % (dx,dy) + + def out(self,file=None): + if file: + outfid=open(file,"w") + else: + outfid=sys.stdout + for line in self.lines: + outfid.write("%s\n"%line) + outfid.close() + + def do(self,arg): + self.lines = self.lines + arg + + def setbb(self): + for i in range(len(self.lines)): + if self.lines[i]=="%%BoundingBox: TBD": + self.lines[i]= "%%BoundingBox:" + \ + " %d"%self.bb[0] + \ + " %d"%self.bb[1] + \ + " %d"%self.bb[2] + \ + " %d"%self.bb[3] + return + + def header(self,title,comments,ean13font,isbnfont,upc5font): + for i in range(len(comments)): + comments[i] = regsub.gsub("^","% ",comments[i]) + # There's a more elegant way to do the bounding box line: + return [ "%!PS-Adobe-2.0 EPSF-1.2", + "%%Creator: " + MYNAME + " " + MYVERSION + " " + DATE, + "%%Title: " + title, + "%%BoundingBox: TBD", + "%%EndComments" ] +\ + comments + \ + [ "\n% These font names might be different on your system:", + "/ean13font { /" + ean13font + " findfont 10 scalefont setfont } def", + "/isbnfont { /" + isbnfont + " findfont 8 scalefont setfont } def", + "/upc5font { /" + upc5font +" findfont 14 scalefont setfont } def\n", + "/nextModule { moduleWidth 0 rmoveto } def", + "% The following shenanigans is to deal with different implementations", + "% of same font having different char sizes and spacing.", + "% function fitstring:", + "% usage: width string font fitstring", + "% set font, scaled so that string exactly fits desired width", + "% leave string on stack", + "/fitstring { dup findfont 1 scalefont setfont % w s f", + "3 1 roll % f w s", + "dup stringwidth pop % f w s sw", + "3 2 roll exch div % f s x", + "3 2 roll findfont exch scalefont setfont", + "} def", + "/barHeight { 72 } def", + "/nextModule { moduleWidth 0 rmoveto } def", + "/topcentershow {dup stringwidth pop neg 2 div -9 rmoveto show} def", + "/toprightshow {dup stringwidth pop neg -9 rmoveto show} def", + "/bottomcentershow {dup stringwidth pop neg 2 div 0 rmoveto show} def", + "/bottomrightshow {dup stringwidth pop neg 0 rmoveto show} def", + "/W { moduleWidth mul 0 rmoveto } def", + "/B { dup moduleWidth mul 2 div 0 rmoveto", + "dup moduleWidth mul barWidthReduction sub setlinewidth", + "0 barHeight rlineto 0 barHeight neg rmoveto", + "currentpoint stroke moveto", + "moduleWidth mul 2 div 0 rmoveto } def", + "/L { dup moduleWidth mul 2 div 0 rmoveto", + "dup moduleWidth mul barWidthReduction sub setlinewidth", + "0 -5 rmoveto 0 5 rlineto", + "0 barHeight rlineto 0 barHeight neg rmoveto", + "currentpoint stroke moveto", + "moduleWidth mul 2 div 0 rmoveto } def", + self.x0,self.y0,"translate", + "0 0 moveto" ] + + def trailer(self): + return ["stroke","% showpage supposedly OK in EPS", + "showpage","\n% Good luck!"] + + +class UPC: + + # Includes UPC-A, UPC-E, EAN-13 (sorry), UPC-5 et al. + + def __init__(self,arg): + # arg is a string, either: + # - product code including checksum + # - same, with hyphens (hyphens not verified) + # - same, but with last digit (checksum) dropped, possibly leaving a + # trailing hyphen. + # If checksum is included, it will be verified. + # N.B. "integer" representation is still a string! Just has no hyphens. + + self.s=arg + self.verifyChars(self.s) + self.n = regsub.gsub("-","",self.s) # create "integer" representation + self.x = self.checkDigit(self.n) # always calculate check digit + if len(self.n) == self.ndigits: + self.verifyCheckDigit() # if check digit given, verify it + elif len(self.n) == self.ndigits-1: + self.tackonCheckDigit() # tack on check digit + else: + raise BooklandError, "UPC: wrong number of digits in \"" + self.s + "\"" + + def setbits(self,arg): # UPC (all) + self.bits="" + parityPattern=self.parityPattern() + bitchar=self.bitchar() + for p in range(len(arg)): + digit=int(arg[p]) + # maybe better to define parityPattern with a leading blank? + parity=parityPattern[p] + bit=bitchar[digit][parity] + self.bits=self.bits + bit + + def verifyChars(self,s): # UPC (all) + # Trailing hyphen allowed. + nevergood = "--|^-|[^0-9-]" + ierr=regex.search(nevergood,s) + if ierr != -1: + raise BooklandError, \ + "UPCA: in %s: illegal characters beginning with: %s" % (s,s[ierr]) + + def verifyCheckDigit(self): # UPC (all) + # first verify correct number of digits. + soll=self.checkDigit(self.n) + ist=self.s[-1:] + if ist != soll: + raise BooklandError, "For %s checksum %s is wrong, should be %s" % \ + (self.s,ist,soll) + + def xstring(self,p): # UPC (all) + return "%d" % p + + def tackonCheckDigit(self): + self.n = self.n + self.x # UPC (all) + self.s = self.s + self.x + +class UPCA(UPC): + + def __init__(self,arg): + UPC.__init__(self,arg) + self.setbits(self.n[1:]) # skip first digit + + def parityPattern(self): + return UPCAPARITY[int(self.x)] + def bitchar(self): + return UPCABITS + + def checkDigit(self,arg): # UPCA/EAN13 + weight=[1,3]*6; magic=10; sum = 0 + for i in range(12): # checksum based on first 12 digits. + sum = sum + int(arg[i]) * weight[i] + z = ( magic - (sum % magic) ) % magic + if z < 0 or z >= magic: + raise BooklandError, "UPC checkDigit: something wrong." + return self.xstring(z) + + +class ISBN: + # Includes ISMN, if the plan falls together. + def __init__(self,arg): + self.ndigits=10 # Includes check digit! + self.s=string.upper(arg) + self.n=re.sub("[ -]","",self.s) # "integer" representation + # In ISMN, I allow spaces in place of hyphens. See ISMN User's manual. + if re.match("^M( |-)?\d(( |-)?\d){7,7}(-| )?\d?$",self.s): + # ISMN + self.name="ISMN" + self.n=re.sub("^M","3",self.n) + self.weight=[3,1,3,1,3,1,3,1,3] + self.magic=10 + elif re.match("^\d-?\d(-?\d){7,7}-?(\d|X)?$",self.s): + # ISBN + self.name="ISBN" + self.weight=[10,9,8,7,6,5,4,3,2] + self.magic=11 + else: + raise BooklandError, "%s invalid (hyphenation, characters, or length)" % self.s + self.x = self.checkDigit() + if len(self.n) == self.ndigits: + self.verifyCheckDigit() # if check digit given, verify it + elif len(self.n) == self.ndigits-1: + self.tackonCheckDigit() # tack on check digit + else: + raise BooklandError, "%s failed. Please report as bug" % self.s + + + def checkDigit(self): # ISBN and ISMN; UPCA/EAN13 similar but for weights etc. + # now that we're checking regex's in init, we don't have to check the + # argument at all. (used to check length and bad characters) + sum = 0 + for i in range(9): # checksum based on first nine digits. + sum = sum + int(self.n[i]) * self.weight[i] + z = ( self.magic - (sum % self.magic) ) % self.magic + if z < 0 or z >= self.magic: + raise BooklandError, \ + "%s: checksum %d is wrong - please report as bug" % (self.s,z) + return self.xstring(z) + + def xstring(self,p): + if p == 10: + return "X" + else: + return "%d" % p + + def tackonCheckDigit(self): + if self.s[-1:] == "-": + # Already have a trailing hyphen + self.s = self.s + self.x + else: + self.s = self.s + "-" + self.x + + def verifyCheckDigit(self): # UPC A; EAN13 + # first verify correct number of digits. + soll=self.x + ist=self.s[-1:] + if ist != soll: raise BooklandError, \ + "For %s checksum %s is wrong, should be %s\n" % (self.s,ist,soll) + +class Bar: + # a run of adjacent modules of identical value. + def __init__(self,val): + self.val=val + if not self.val in "L01": + raise BooklandError, "bar bit: %s, pls report as a bug" % self.val + self.width=1 + if self.val=="1": + self.color="Black" + elif self.val=="0": + self.color="White" + elif self.val=="L": + self.color="Long Black" + def __cmp__(self,other): + if self.val==other or (self.val=="L" and other=="1"): + return 0 + else: + return 1 + def inc(self): + self.width=self.width+1 + def pslines(self): + if self.val=="L": + rval = [ "%d L " % self.width ] + elif self.val=="1": + rval = [ "%d B " % self.width ] + else: + rval = [ "%d W " % self.width ] + return rval + def __repr__(self): + return "%s bar of width %d" % (self.color,self.width) + +class barCodeSymbol: + + def __init__(self): + self.patternWidth = len(self.bits)*self.moduleWidth + # Anything else? + + def bitsComment(self): + return [ "%% Bits:\n%% %s" % self.bits ] + + def psbars(self): + # new version, try to prevent all hairlines between adjacent modules. + bars = [] + bar=Bar(self.bits[0]) + for bit in self.bits[1:]: + if bit==bar: + bar.inc() + else: + bars.append(bar) + bar=Bar(bit) + bars.append(bar) + rval = ["0 0 moveto"] + for bar in bars: + rval = rval + bar.pslines() + rval = rval + [ "stroke" ] + return rval + + def psbarsold(self): + psbits=regsub.gsub("1","I ",self.bits) + psbits=regsub.gsub("0","O ",psbits) + psbits=regsub.gsub("L","L ",psbits) + linewidth=50 + p=0; j=linewidth; m=len(psbits); psbarlines=[]; blanks="^ | $" + while p <= m: + j = min(linewidth,m-p) + psbarlines = psbarlines + [ regsub.gsub(blanks,"",psbits[p:p+j]) ] + p=p+linewidth + return [ "0 0 moveto" ] + psbarlines + [ "stroke" ] + + def psSetBarHeight(self): + return [ "/barHeight { " + PSFORMAT % self.moduleHeight + " 72 mul } def" ] + + def psSetBarWidthReduction(self): + return [ "/barWidthReduction { " + \ + PSFORMAT % self.barWidthReduction + " 72 mul } def" ] + + def psSetModuleWidth(self): + rval = [ "/moduleWidth { " + PSFORMAT % self.moduleWidth + " 72 mul } def" ] + return rval + + def psBottomRightText(self,text,font): + # this is specifically for the upc5 price code. + # this is all starting to get messy. + return [ PSFORMAT % self.patternWidth + " 72 mul dup 2 div", + PSFORMAT % self.moduleHeight + " 72 mul 2 add moveto", + "(" + text + ") /" + font + " fitstring bottomcentershow" ] + + def psTopCenterText(self,text,font): + # the text at the top center of the bar pattern (i.e. the ISBN) + return [ PSFORMAT % self.patternWidth + " 72 mul dup 2 div", + PSFORMAT % self.moduleHeight + " 72 mul 3 add moveto", + " (" + text + ") /" + font + " fitstring bottomcentershow" ] + + def psFittedText(self,width,text,font): + return [ PSFORMAT % width + " (" + text + ") " + font + " fitstring" ] + + # This is optional; serves to enforce quiet zone to right of UPC 5 add-on + def psGreaterThan(self,font): + return [ PSFORMAT % self.patternWidth + " 72 mul", + PSFORMAT % self.moduleHeight + " 72 mul 2 add moveto", + "/%s (>) show" % font ] + +class EAN13Symbol(barCodeSymbol): + + def __init__(self,arg,font=EAN13FONT,heightMultiplier=1,barWidthReduction=0): + # arg is a string with the EAN product code + self.barWidthReduction=barWidthReduction + self.ean13 = EAN13(arg) + self.moduleWidth = 0.0130 + specModuleHeight = 1.00 + self.moduleHeight = 1.00 * heightMultiplier + self.bits = self.ean13.bits + barCodeSymbol.__init__(self) + self.font=font + + def bb(self): + return [ -12, -10, self.patternWidth*72+10, self.moduleHeight*72+12 ] + + def pslines(self): + return self.bitsComment() + \ + self.psSetModuleWidth() + \ + self.psSetBarWidthReduction() + \ + self.psSetBarHeight() + \ + self.psbars() + \ + self.psLRDigitLines() + + def psLRDigitLines(self): + # 24 = 3+6*7/2 + # 70 = 3+6*7+4+6*7/2 "4" so we center on the "L" bars (the rightmost of + # the center guard bars is an "O". + # "5" in check digit is the five-module spacing recommended by [2], section 3. + return [ "% We do the left digits first and leave the font scaled", + "% as is for the 9-digit and the right-digits.", + "% EAN13 Left Digits:", + "moduleWidth 24 mul 0 moveto", + "moduleWidth 40 mul (" + self.ean13.leftDigits + ") ", + "/" + self.font + " fitstring topcentershow", + "\n% EAN13 human-readable number", + "% The \"9\" digit (only when encoding ISBN's and ISMN's, I think):", + "-5 0 moveto (" + self.ean13.n[0] + ") toprightshow", + "% EAN13 Right Digits:", + "moduleWidth 70 mul 0 moveto", + "moduleWidth 40 mul (" + self.ean13.rightDigits + ") topcentershow" ] + +class EAN13(UPCA): + + def __init__(self,arg): + self.ndigits=13 # Includes check digit! + UPCA.__init__(self,arg) + leftBits = self.bits[0:42] + rightBits = self.bits[42:] + leftGuard="L0L" + rightGuard="L0L" + center="0L0L0" + self.bits = leftGuard + leftBits + center + rightBits + rightGuard + self.leftDigits = self.n[1:7] + self.rightDigits = self.n[7:13] + + def parityPattern(self): + # N.B. parity pattern based on leftmost digit, the UCC Spec calls this + # the "13th" digit. It's not the check digit! + return EAN13PARITY[int(self.n[0])] + def bitchar(self): + return EAN13BITS + +class UPC5Symbol(barCodeSymbol): + + def __init__(self,arg,heightMultiplier=1,barWidthReduction=0): + # arg is a string with the 5 digit add-on. + self.barWidthReduction=barWidthReduction + self.upc5 = UPC5(arg) + self.moduleWidth = 0.0130 + specModuleHeight = 0.852 + self.moduleHeight = 0.852 * heightMultiplier + self.bits = self.upc5.bits + barCodeSymbol.__init__(self) + + def pslines(self): + return self.bitsComment() + \ + self.psSetModuleWidth() + \ + self.psSetBarHeight() + \ + self.psbars() + + def bb(self): + # Note quiet zone is there even if we don't print the ">". + return [ 0, 0, self.patternWidth*72+10, self.moduleHeight*72+10 ] + +UPC5Error = "Something wrong with 5-digit price code add-on." +class UPC5(UPC): + + def __init__(self,arg): + self.ndigits=5 # Includes check digit! + p=re.search("[^0-9]",arg) + if p: + badchar=arg[p.start()] + raise UPC5Error, "\"%s\" is wrong. The character \"%s\" is not allowed. Price code add-on should contain %d digits and nothing else. Or leave blank to suppress the UPC-5 code." % (arg,badchar,self.ndigits) + elif len(arg) != self.ndigits: + raise UPC5Error, \ + "\"%s\" is wrong. Price code add-on should have exactly %d digits." % (arg,self.ndigits) + UPC.__init__(self,arg) + self.setbits(self.n) + leftGuard="1011" + # no right guard for UPC 5-digit add-on + # Have to insert pesky delineators: + delineator = "01" + self.bits = leftGuard + \ + self.bits[0:7] + delineator + \ + self.bits[7:14] + delineator + \ + self.bits[14:21] + delineator + \ + self.bits[21:28] + delineator + \ + self.bits[28:35] + + def checkDigit(self,arg): # UPC5 + weight=[3,9,3,9,3]; sum = 0 + for i in range(5): + sum = sum + int(arg[i]) * weight[i] + return self.xstring(sum % 10) + + def verifyCheckDigit(self): # UPC2/5 checksum not in number + return + + def parityPattern(self): + return UPC5PARITY[int(self.x)] + def bitchar(self): + return UPC5BITS + +class bookland(barCodeSymbol): + + def __init__(self,isbn,price="",*rest): + + + # Some defaults: + ean13font=EAN13FONT + isbnfont=ISBNFONT + upc5font = UPC5FONT + zone=None + heightMultiplier=1.0 + commandLine="" + barWidthReduction=0 + + # Maybe different fonts: + if len(rest)>0: + font=rest[0] + if font: + ean13font=font + isbnfont=font + upc5font=font + if len(rest)>1: + zone=rest[1] + if len(rest)>2: + heightMultiplier=float(rest[2]) + if len(rest) > 3: + commandLine=rest[3] + if len(rest) > 4: + barWidthReduction=float(rest[4]) + + # Initial setup: + + self.ps = psfile() + self.isbn = ISBN(isbn) + + # Header, EAN13 bars, EAN13 number, and ISBN: + + if self.isbn.name=="ISMN": + self.ean13Symbol = EAN13Symbol("9790"+self.isbn.n[1:9],ean13font,heightMultiplier,barWidthReduction) + elif self.isbn.name=="ISBN": + self.ean13Symbol = EAN13Symbol("978"+self.isbn.n[:9],ean13font,heightMultiplier,barWidthReduction) + else: + raise BooklandError, "Internal error doing %s, please report as bug" % isbn + + self.ps.orbb(self.ean13Symbol.bb()) + comments = ["", + " This is free software and comes with NO WARRANTY WHATSOVER", + " Think twice before going to press with this bar code!", + "", + "Command line: %s" % commandLine, + "" ] + self.ps.lines = self.ps.header(self.isbn.s,comments,ean13font,isbnfont,upc5font) + \ + [ "ean13font" ] + \ + self.ean13Symbol.pslines() +\ + [ "isbnfont" ] + \ + self.ean13Symbol.psTopCenterText("%s %s" % (self.isbn.name,self.isbn.s),isbnfont) + + # 5-digit add-on: (optional for ISBN only) + BLANK=re.compile("^ *$") + if self.isbn.name=="ISBN" and not BLANK.match(price): + # 105 = 95 + 10; 10 = separation (min is 9) + translate=[ self.ps.translate( self.ean13Symbol.moduleWidth * 72 * 105, 0 ) ] + self.upc5Symbol = UPC5Symbol(price,heightMultiplier,barWidthReduction) + self.ps.orbb(self.upc5Symbol.bb()) + self.ps.lines = self.ps.lines + \ + translate + \ + self.upc5Symbol.pslines() + \ + [ "upc5font" ] +\ + self.upc5Symbol.psBottomRightText(price,upc5font) + if zone: self.ps.lines=self.ps.lines + self.upc5Symbol.psGreaterThan(upc5font) + else: + self.ps.lines.append("%% Skipping UPC-5 price code symbol per request") + + self.ps.lines=self.ps.lines + self.ps.trailer() + + # Can now set bounding box. + + self.ps.setbb() + +# Here we go ... + +if __name__ == '__main__': + + def printUsage(): + print "Usage: bookland [-h|--help] [-v|--version] [-x|--check] [-f|--font=] [-s|--height=] [-r|--reduction=] [-o|outfile=] [-z|--quietzone] [| ]" + print "Report bugs to " + MAINTAINER + + def printVersion(): + sys.stderr.write("%s version %s %s.\n" % (MYNAME,MYVERSION,COPYRIGHT)) + sys.stderr.write("Bugs to %s\n" % MAINTAINER) + sys.stderr.write("This is free software and comes with NO WARRANTY\n") + + import getopt + try: + opts,args = getopt.getopt(sys.argv[1:], + "xr:s:uvf:hzo:", + ["reduction=","outfile=","height=","noupc", + "check","version","help","font=","quietzone"]) + except: + printUsage() + sys.exit(0) + + # some initial defaults: + isbn = "1-56592-197-6" # Mark Lutz, "Programming Python", + # O'Reilly, Sebastopol CA, 1996 + price = "90000" + font=None + zone=None + checkonly=None + outfile=None + heightMultiplier=1 + commandLine = string.join(sys.argv) + barWidthReduction = 0 + + # parse command line: + for opt,val in opts: + if opt in ("-v","--version"): + printVersion() + sys.exit(0) + elif opt in ("-h","--help"): + printUsage() + sys.exit(0) + elif opt in ("-f","--font"): + font=val + elif opt in ("-z","--quietzone"): + zone=1 + elif opt in ("-x","--check"): + checkonly=1 + elif opt in ("-s","--height"): + heightMultiplier = float(val) + elif opt in ("-r","--reduction"): + barWidthReduction = val + elif opt in ("-o","--outfile"): + outfile=val + if len(args)==1: + isbn=args[0] + elif len(args)==2: + isbn=args[0] + price=args[1] + + # Do stuff. + + printVersion() + try: + b = bookland(isbn,price,font,zone,heightMultiplier, + commandLine,barWidthReduction) + if not checkonly: b.ps.out(outfile) + if outfile: + sys.stderr.write("Output written to %s\n" % outfile) + except BooklandError, message: + sys.stderr.write(BooklandError + ": " + message + "\n") + sys.exit(1) diff --git a/barcode-0.98/cmdline.c b/barcode-0.98/cmdline.c new file mode 100644 index 00000000..a69a825b --- /dev/null +++ b/barcode-0.98/cmdline.c @@ -0,0 +1,177 @@ +/* + * cmdline.c -- parse a command line using getopt, environment and defaults + * + * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org) + * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + * + * Changes: + * Michele Comitini (mcm@glisco.it): better handling of numeric type args. + */ + +#include +#include +#include + +#ifdef NO_GETOPT + /* use replacement */ + #include "compat/getopt.h" +#else + #include +#endif + +#include "cmdline.h" + +/* In case of error, print help string and return error (-1) */ +int commandline_errormsg(FILE *f, struct commandline *args, + char *prgname, char *messagehead) +{ + char *buffer; + char *buffer2; + int len; + struct commandline *ptr; + + if (!messagehead) { + fprintf(f,"%s: Error in cmdline\nPossible options:\n",prgname); + } else { + fprintf(f,"%s: %s",prgname,messagehead); + } + + for (ptr = args; ptr->option; ptr++) { + if (ptr->descrip) { + len = strlen(ptr->descrip); + len += ptr->default_v ? strlen(ptr->default_v) : 6; + len += ptr->env ? strlen(ptr->env) : 6; + buffer2 = malloc(len+3); /* 3 to be safe :) */ + len += 32; + if (buffer2) { + buffer = malloc(len); + if (buffer) { + sprintf(buffer2, ptr->descrip, + ptr->default_v ? ptr->default_v : "(none)", + ptr->env ? ptr->env : "(none)"); + sprintf(buffer, " -%c %s %s", ptr->option, + ptr->type ? "" : " ", buffer2); + fprintf(f, "%s\n",buffer); + free(buffer); + } + free(buffer2); + } + } + } + return -1; +} + +/* + * Associate formats to type. + */ +struct type_fmt { + enum option_type type; + char *fmt; +}; +static struct type_fmt formats[] = { + {CMDLINE_I, "%i%s"}, /* the trailing "%s" is used for error check */ + {CMDLINE_D, "%d%s"}, + {CMDLINE_X, "%x%s"}, + {CMDLINE_O, "%o%s"}, + {CMDLINE_F, "%lf%s"}, + {CMDLINE_P, "%p%s"}, + {0, NULL} /* If we get here, it's CMDLINE_S: no sscanf buf strcpy() */ +}; + + +/* Parse one argument (default or provided) */ +static int commandline_oneopt(struct commandline *ptr, char *value) +{ + struct type_fmt *tptr; + char *trash = value ? strdup(value) : NULL; + + /* convert it, if needed */ + if ((ptr->type != CMDLINE_NONE) && ptr->result) { + for (tptr = formats; tptr->type; tptr++) + if (tptr->type == ptr->type) + break; + if (!tptr->type) /* not found: it is a string */ + *(char **)(ptr->result) = value; + else + if (sscanf(value, tptr->fmt, ptr->result, trash)!=1) { + free(trash); + return -1; + } + } + if (trash) + free(trash); + + if ((ptr->type == CMDLINE_NONE) && ptr->result) /* no type, just count */ + (*(int *)(ptr->result))++; + + /* call the function, if needed */ + if (ptr->fun) { + if (ptr->type) { + if (ptr->result) return ptr->fun(ptr->result); /* converted */ + return ptr->fun(value); /* type, but not converted */ + } + return ptr->fun(NULL); /* no type: just call it */ + } + return 0; +} + +/* The main function */ +int commandline(struct commandline *args, int argc, char **argv, + char *errorhead) +{ + struct commandline *ptr; + char *getopt_desc = (char *)calloc(512, 1); + int desc_offset = 0; + int opt, retval; + char *value; + + /* Build getopt string and process defaults values */ + for (ptr = args; ptr->option; ptr++) { + getopt_desc[desc_offset++] = ptr->option; + if (ptr->type) getopt_desc[desc_offset++] = ':'; + + value = NULL; + if (ptr->env) + value = getenv(ptr->env); + if (!value) + value = ptr->default_v; + if (value && (retval = commandline_oneopt(ptr, value))) { + /* + * if the function returns a specific (not -1) value, it already + * printed its message, so avoid the generic help + */ + if (retval == -1) + commandline_errormsg(stderr, args, argv[0], errorhead); + return retval; + } + } + + /* Run getopt and process material */ + while ((opt = getopt(argc, argv, getopt_desc)) != -1) { + for (ptr = args; ptr->option; ptr++) + if (opt == ptr->option) + break; + if (!ptr->option) /* unknown option */ + return commandline_errormsg(stderr, args, argv[0], errorhead); + if ( (retval = commandline_oneopt(ptr, optarg)) ) { /* wrong arg */ + if (retval == -1) + commandline_errormsg(stderr, args, argv[0], errorhead); + return retval; + } + } + return 0; +} diff --git a/barcode-0.98/cmdline.h b/barcode-0.98/cmdline.h new file mode 100644 index 00000000..69319915 --- /dev/null +++ b/barcode-0.98/cmdline.h @@ -0,0 +1,58 @@ +/* + * cmdline.h -- generic commandline editing (uses getopt, only short) + * + * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org) + * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + * + */ + +/* + * The options may have different arguments of different type + */ +enum option_type { + CMDLINE_NONE=0, /* no argument after option */ + CMDLINE_I, /* integer (any base) */ + CMDLINE_D, /* decimal integer */ + CMDLINE_X, /* hex integer */ + CMDLINE_O, /* octal integer */ + CMDLINE_S, /* string */ + CMDLINE_F, /* double float */ + CMDLINE_P, /* pointer */ +}; + + +struct commandline { + int option; /* Single byte: option id */ + int type; /* Type of argument, used in sscanf */ + void *result; /* Store data here, if non null */ + int (*fun)(void *); /* Call if defined: arg is "result" or input string */ + char *env; /* Where to get runtime defaults, may be NULL */ + char *default_v; /* The compile-time default, may be NULL */ + char *descrip; /* For err msg. May have %s's for default and env */ +}; + +/* returns: 0 or -1. "optarg" is global (see getopt) */ +extern int commandline(struct commandline *args, + int argc, char **argv, char *errorhead); + +/* prints an error message based on "args" */ +extern int commandline_errormsg(FILE *f, struct commandline *args, + char *prgname, char *messagehead); + + + + diff --git a/barcode-0.98/codabar.c b/barcode-0.98/codabar.c new file mode 100644 index 00000000..7065b9ea --- /dev/null +++ b/barcode-0.98/codabar.c @@ -0,0 +1,182 @@ +/* + * codabar.c -- encoding for Codabar + * + * Copyright (c) 2000 Leonid A. Broukhis (leob@mailcom.com) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + +#include +#include +#include +#include +#include + +#include "barcode.h" + + +/* this is ordered in decades to simplify encoding */ +static char alphabet[] = + "0123456789" "-$:/.+ABCD"; + +#define CODE_A 16 +#define CODE_B 17 + +#define NARROW 12 +#define WIDE 14 + +/* Patterns */ +static char *patterns[] = { +"1111133","1111331","1113113","3311111","1131131", +"3111131","1311113","1311311","1331111","3113111", +"1113311","1133111","3111313","3131113","3131311", +"1131313","1133131","1313113","1113133","1113331" }; + +/* + * Check that the text can be encoded. Returns 0 or -1. + * If it's all lowecase convert to uppercase and accept it. + * If the first character is a letter (A to D), the last one must be too; + * no other character should be a letter. + */ +int Barcode_cbr_verify(unsigned char *text) +{ + int i, lower=0, upper=0; + int startpresent = 0; + + if (!strlen(text)) + return -1; + for (i=0; text[i]; i++) { + char * pos; + if (isupper(text[i])) upper++; + if (islower(text[i])) lower++; + pos = strchr(alphabet,toupper(text[i])); + if (!pos) + return -1; + if (i == 0 && pos - alphabet >= CODE_A) + startpresent = 1; + else if (pos - alphabet >= CODE_A && + (!startpresent || i != strlen(text) - 1)) + return -1; + } + if (lower && upper) + return -1; + return 0; +} + +static int add_one(char *ptr, int code) +{ + sprintf(ptr,"1%s", /* separator */ patterns[code]); + return 0; +} + +/* + * The encoding functions fills the "partial" and "textinfo" fields. + * Lowercase chars are converted to uppercase + */ +int Barcode_cbr_encode(struct Barcode_Item *bc) +{ + static char *text; + static char *partial; /* dynamic */ + static char *textinfo; /* dynamic */ + char *c, *ptr, *textptr; + int i, code, textpos, usesum, checksum = 0, startpresent; + + if (bc->partial) + free(bc->partial); + if (bc->textinfo) + free(bc->textinfo); + bc->partial = bc->textinfo = NULL; /* safe */ + + if (!bc->encoding) + bc->encoding = strdup("codabar"); + + text = bc->ascii; + if (!text) { + bc->error = EINVAL; + return -1; + } + /* the partial code is 8 * (head + text + check + tail) + margin + term. */ + partial = malloc( (strlen(text) + 3) * 8 + 2); + if (!partial) { + bc->error = errno; + return -1; + } + + /* the text information is at most "nnn:fff:c " * (strlen + check) +term */ + textinfo = malloc(10*(strlen(text) + 1) + 2); + if (!textinfo) { + bc->error = errno; + free(partial); + return -1; + } + + ptr = partial; + textptr = textinfo; + textpos = 0; + usesum = bc->flags & BARCODE_NO_CHECKSUM ? 0 : 1; + /* if no start character specified, A is used as a start character */ + if (!isalpha(text[0])) { + add_one(ptr, CODE_A); + ptr += strlen(ptr); + textpos = WIDE; + checksum = CODE_A; + startpresent = 0; + } else { + startpresent = 1; + } + for (i=0; ierror = EINVAL; /* impossible if text is verified */ + free(partial); + free(textinfo); + return -1; + } + code = c - alphabet; + add_one(ptr, code); + sprintf(textptr, "%i:12:%c ", textpos, toupper(text[i])); + textpos += code < 12 ? NARROW : WIDE; + textptr += strlen(textptr); + ptr += strlen(ptr); + checksum += code; + if (startpresent && usesum && i == strlen(text) - 2) { + /* stuff a check symbol before the stop */ + c = strchr(alphabet, toupper(text[i+1])); + if (!c) /* impossible */ + continue; + code = c - alphabet; + checksum += code; + + /* Complement to a multiple of 16 */ + checksum = (checksum + 15) / 16 * 16 - checksum; + add_one(ptr, checksum); + ptr += strlen(ptr); + } + } + if (!startpresent) { + if (usesum) { + /* if no start character specified, B is used as a stop char */ + checksum += CODE_B; + checksum = (checksum + 15) / 16 * 16 - checksum; + add_one(ptr, checksum); + ptr += strlen(ptr); + } + add_one(ptr, CODE_B); + } + bc->partial = partial; + bc->textinfo = textinfo; + + return 0; +} diff --git a/barcode-0.98/code128.c b/barcode-0.98/code128.c new file mode 100644 index 00000000..cebba54c --- /dev/null +++ b/barcode-0.98/code128.c @@ -0,0 +1,607 @@ +/* + * code128.c -- encoding for code128 (A, B, C) + * + * Copyright (c) 1999,2000 Alessandro Rubini (rubini@gnu.org) + * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it) + * Copyright (c) 2000 Leonid A. Broukhis (leob@mailcom.com) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + +#include +#include +#include +#include +#include + +#include "barcode.h" + +static char *codeset[] = { + "212222", "222122", "222221", "121223", "121322", /* 0 - 4 */ + "131222", "122213", "122312", "132212", "221213", + "221312", "231212", "112232", "122132", "122231", /* 10 - 14 */ + "113222", "123122", "123221", "223211", "221132", + "221231", "213212", "223112", "312131", "311222", /* 20 - 24 */ + "321122", "321221", "312212", "322112", "322211", + "212123", "212321", "232121", "111323", "131123", /* 30 - 34 */ + "131321", "112313", "132113", "132311", "211313", + "231113", "231311", "112133", "112331", "132131", /* 40 - 44 */ + "113123", "113321", "133121", "313121", "211331", + "231131", "213113", "213311", "213131", "311123", /* 50 - 54 */ + "311321", "331121", "312113", "312311", "332111", + "314111", "221411", "431111", "111224", "111422", /* 60 - 64 */ + "121124", "121421", "141122", "141221", "112214", + "112412", "122114", "122411", "142112", "142211", /* 70 - 74 */ + "241211", "221114", "413111", "241112", "134111", + "111242", "121142", "121241", "114212", "124112", /* 80 - 84 */ + "124211", "411212", "421112", "421211", "212141", + "214121", "412121", "111143", "111341", "131141", /* 90 - 94 */ + "114113", "114311", "411113", "411311", "113141", + "114131", "311141", "411131", "b1a4a2", "b1a2a4", /* 100 - 104 */ + "b1a2c2", "b3c1a1b" +}; + +#define START_A 103 +#define START_B 104 +#define START_C 105 +#define STOP 106 +#define SHIFT 98 /* only A and B */ +#define CODE_A 101 /* only B and C */ +#define CODE_B 100 /* only A and C */ +#define CODE_C 99 /* only A and B */ +#define FUNC_1 102 /* all of them */ +#define FUNC_2 97 /* only A and B */ +#define FUNC_3 96 /* only A and B */ +/* FUNC_4 is CODE_A when in A and CODE_B when in B */ + +#define SYMBOL_WID 11 /* all of them are 11-bar wide */ + +/* + * code 128-b includes all printable ascii chars + */ + +int Barcode_128b_verify(unsigned char *text) +{ + if (text[0] == '\0') + return -1; + while (*text && *text>=32 && !(*text&0x80)) + text++; + if (*text) + return -1; /* a non-ascii char */ + return 0; /* ok */ +} + +int Barcode_128b_encode(struct Barcode_Item *bc) +{ + static char *text; + static char *partial; /* dynamic */ + static char *textinfo; /* dynamic */ + char *textptr; + int i, code, textpos, checksum = 0; + + if (bc->partial) + free(bc->partial); + if (bc->textinfo) + free(bc->textinfo); + bc->partial = bc->textinfo = NULL; /* safe */ + + if (!bc->encoding) + bc->encoding = strdup("code 128-B"); + + text = bc->ascii; + if (!text) { + bc->error = EINVAL; + return -1; + } + /* the partial code is 6* (head + text + check + tail) + final + term. */ + partial = malloc( (strlen(text) + 4) * 6 +2); + if (!partial) { + bc->error = errno; + return -1; + } + + /* the text information is at most "nnn:fff:c " * strlen +term */ + textinfo = malloc(10*strlen(text) + 2); + if (!textinfo) { + bc->error = errno; + free(partial); + return -1; + } + + /* up to now, it was the same code as other encodings */ + + strcpy(partial, "0"); /* the first space */ + strcat(partial, codeset[START_B]); + checksum += START_B; /* the start char is counted in the checksum */ + textptr = textinfo; + textpos = SYMBOL_WID; + + for (i=0; ierror = EINVAL; /* impossible if text is verified */ + free(partial); + free(textinfo); + return -1; + } + code = text[i]-32; + strcat(partial, codeset[code]); + checksum += code * (i+1); /* first * 1 + second * 2 + third * 3... */ + sprintf(textptr, "%i:12:%c ", textpos, text[i]); + textptr += strlen(textptr); + textpos += SYMBOL_WID; /* width of each code */ + } + /* Add the checksum, independent of BARCODE_NO_CHECKSUM */ + checksum %= 103; + strcat(partial, codeset[checksum]); + /* and the end marker */ + strcat(partial, codeset[STOP]); + + bc->partial = partial; + bc->textinfo = textinfo; + + return 0; +} + +/* + * code 128-c is only digits, but two per symbol + */ + +int Barcode_128c_verify(unsigned char *text) +{ + if (text[0] == '\0') + return -1; + /* must be an even number of digits */ + if (strlen(text)%2) + return -1; + /* and must be all digits */ + for (; *text; text++) + if (!isdigit(*text)) + return -1; + return 0; +} + +int Barcode_128c_encode(struct Barcode_Item *bc) +{ + static char *text; + static char *partial; /* dynamic */ + static char *textinfo; /* dynamic */ + char *textptr; + int i, code, textpos, checksum = 0; + + if (bc->partial) + free(bc->partial); + if (bc->textinfo) + free(bc->textinfo); + bc->partial = bc->textinfo = NULL; /* safe */ + + if (!bc->encoding) + bc->encoding = strdup("code 128-C"); + + text = bc->ascii; + if (!text) { + bc->error = EINVAL; + return -1; + } + /* the partial code is 6* (head + text + check + tail) + final + term. */ + partial = malloc( (strlen(text) + 3) * 6 +2); + if (!partial) { + bc->error = errno; + return -1; + } + + /* the text information is at most "nnn.5:fff:c " * strlen +term */ + textinfo = malloc(12*strlen(text) + 2); + if (!textinfo) { + bc->error = errno; + free(partial); + return -1; + } + + strcpy(partial, "0"); /* the first space */ + strcat(partial, codeset[START_C]); + checksum += START_C; /* the start char is counted in the checksum */ + textptr = textinfo; + textpos = SYMBOL_WID; + + for (i=0; text[i]; i+=2) { + if (!isdigit(text[i]) || !isdigit(text[i+1])) { + bc->error = EINVAL; /* impossible if text is verified */ + free(partial); + free(textinfo); + return -1; + } + code = (text[i]-'0') * 10 + text[i+1]-'0'; + strcat(partial, codeset[code]); + checksum += code * (i/2+1); /* first * 1 + second * 2 + third * 3... */ + + /* print as "%s", because we have ".5" positions */ + sprintf(textptr, "%g:9:%c %g:9:%c ", (double)textpos, text[i], + textpos + (double)SYMBOL_WID/2, text[i+1]); + textptr += strlen(textptr); + textpos += SYMBOL_WID; /* width of each code */ + } + /* Add the checksum, independent of BARCODE_NO_CHECKSUM */ + checksum %= 103; + strcat(partial, codeset[checksum]); + /* and the end marker */ + strcat(partial, codeset[STOP]); + + bc->partial = partial; + bc->textinfo = textinfo; + + return 0; +} + +/* + * generic (full-featured) code128 implementation: it selects between + * A, B, C according to the data being encoded. F1, F2, F3, F4 are expressed + * using ascii chars 0xc1, 0xc2, 0xc3, 0xc4 (0301, 0302, 0303, 0304). + * Char '\0' is expressed by 0x80 (0200). + */ + +int Barcode_128_verify(unsigned char *text) +{ + if (text[0] == '\0') + return -1; + while (*text && (*text<=0x80 || (*text >= 0xc1 && *text <= 0xc4))) + text++; + if (*text) + return -1; /* unencodable character */ + return 0; /* ok */ +} + + +/* + * These functions are extracted from Barcode_128_encode for clarity. + * It deals with choosing the symbols used to represent the text + * and returns a dynamic array of integers, terminated by -1. + * + * The algorithm used in choosing the codes comes from App 2 of + * "El Codigo Estandar EAN/UCC 128", courtesy of AECOC, Spain. + * Thanks to Dani Pardo for getting permission and giving me a copy + * of the document + */ + +#define NEED_CODE_A(c) ((c)<32 || (c)==0x80) +#define NEED_CODE_B(c) ((c)>=96 && (c)<128) + +static int Barcode_a_or_b(unsigned char *text) +{ + for ( ; *text; text++) { + if (NEED_CODE_A(*text)) + return 'A'; + if (NEED_CODE_B(*text)) + return 'B'; + } + return 0; /* any */ +} + +/* code is either 'A' or 'B', and value must be valid */ +static int Barcode_encode_as(int code, int value) +{ + + /* first check the special chars */ + if (value == 0xC1) return FUNC_1; + if (value == 0xC2) return FUNC_2; + if (value == 0xC3) return FUNC_3; + if (value == 0xC4) { /* F4 */ + if (code == 'A') return CODE_A; + return CODE_B; + } + + /* then check ascii values */ + if (value >= 0x20 && value <= 0x5F) + return value - 0x20; /* both codes */ + if (value == 0x80) return 64; /* code A */ + if (value < 0x20) return value+64; /* code A */ + if (value >= 0x60) return value - 0x20; /* code B */ + /* can't happen */ + return -1; +} + +static int *Barcode_128_make_array(struct Barcode_Item *bc, int *lptr) +{ + int len, *codes; + unsigned char *s; + int i=0, j, code, checksum; + + /* allocate twice the text length + 5, as this is the worst case */ + len = 2 * strlen(bc->ascii) + 5; + codes = malloc(len * sizeof(int)); + s = bc->ascii; + + /* choose the starting code */ + if (s[2]=='\0' && isdigit(s[0]) && isdigit(s[1])) { + code = 'C'; + } else if (isdigit(s[0])&&isdigit(s[1]) && isdigit(s[2])&&isdigit(s[3])) { + code = 'C'; + } else { + code = Barcode_a_or_b(s); + if (!code) code = 'B'; /* default */ + } + codes[i++] = START_A + code - 'A'; + + for (s = bc->ascii; *s; /* increments are in the loop */) { + switch(code) { + + case 'C': + if (s[0] == 0xC1) { /* F1 is valid */ + codes[i++] = FUNC_1; + s++; + } else if (isdigit(s[0]) && isdigit(s[1])) { + /* encode two digits */ + codes[i++] = (s[0]-'0') * 10 + s[1]-'0'; + s += 2; + } else { + /* change code */ + code = Barcode_a_or_b(s); + if (!code) code = 'B'; + codes[i++] = (code == 'A') ? CODE_A : CODE_B; + } + break; + + case 'B': + case 'A': + for (j=0; isdigit(s[j]); j++) + ; + if (j>=4) { /* if there are 4 or more digits, turn to C */ + if (j&1) { + /* odd number: encode one first */ + codes[i++] = *(s++) - ' '; + } + codes[i++] = CODE_C; + code = 'C'; + } else if (code == 'A' && NEED_CODE_B(*s)) { + /* check whether we should use SHIFT or change code */ + j = Barcode_a_or_b(s+1); + if (j == 'B') { + codes[i++] = CODE_B; + code = 'B'; + } else { + codes[i++] = SHIFT; + codes[i++] = Barcode_encode_as('B', *s); + s++; + } + } else if (code == 'B' && NEED_CODE_A(*s)) { + /* check whether we should use SHIFT or change code */ + j = Barcode_a_or_b(s+1); + if (j == 'A') { + codes[i++] = CODE_A; + code = 'A'; + } else { + codes[i++] = SHIFT; + codes[i++] = Barcode_encode_as('A', *s); + s++; + } + } else { + codes[i++] = Barcode_encode_as(code, *s); + s++; + } + break; + } + } + /* add the checksum */ + checksum = codes[0]; + for (j=1; j len) { + fprintf(stderr, "impossible: length is > allocated len\n"); + } + *lptr = i; + return codes; +} + +/* + * Encoding is tricky, in that we cannot print the ascii + * representation in an easy way. Therefore, just skip non-printable + * chars and try to fit the rest somehow. + */ +int Barcode_128_encode(struct Barcode_Item *bc) +{ + static char *text; + static char *partial; /* dynamic */ + static char *textinfo; /* dynamic */ + char *textptr; + int *codes; /* dynamic */ + int i, c, len; + double textpos, size, step; + + if (bc->partial) + free(bc->partial); + if (bc->textinfo) + free(bc->textinfo); + bc->partial = bc->textinfo = NULL; /* safe */ + + if (!bc->encoding) + bc->encoding = strdup("code 128"); + + text = bc->ascii; + if (!text) { + bc->error = EINVAL; + return -1; + } + + codes = Barcode_128_make_array(bc, &len); + if (!codes) return -1; + + /* the partial code is 6*codelen + ini + term (+margin) */ + partial = malloc( 6 * len + 4); + if (!partial) { + bc->error = errno; + free(codes); + return -1; + } + + /* the text information is at most "nnn.n:ff.f:c " * strlen +term */ + textptr = textinfo = malloc(13*strlen(text) + 2); + if (!textinfo) { + bc->error = errno; + free(partial); + free(codes); + return -1; + } + + /* up to now, it was almost the same code as other encodings */ + + strcpy(partial, "0"); /* the first space */ + for (i=0; i 12.0) size = 12.0; + + /* align the text to the left, using its natural size */ + step = (int)(10 * (size/18.0 * SYMBOL_WID) + .5) / 10.0; + textpos = SYMBOL_WID; + + for (i=0; i 0xc0) c = ' '; /* F code */ + sprintf(textptr, "%g:%g:%c ", textpos, size, c); + textptr += strlen(textptr); + textpos += step; + } + + bc->partial = partial; + bc->textinfo = textinfo; + free(codes); + return 0; +} + +/* + * A raw 128 code is given as a sequence of space separated numbers + * from 0 to 105, starting from the start code to be (Leonid) + */ + +int Barcode_128raw_verify(unsigned char *text) +{ + int n; + unsigned val; + + if (!strlen(text)) + return -1; + while (*text) { + if (sscanf(text, "%u%n", &val, &n) < 1) + return -1; + if (val > 105) + return -1; + text += n; + } + return 0; +} + +int Barcode_128raw_encode(struct Barcode_Item *bc) +{ + static char *text; + static char *partial; /* dynamic */ + static char *textinfo; /* dynamic */ + char *textptr; + int i, n, count, code, textpos, checksum = 0; + + if (bc->partial) + free(bc->partial); + if (bc->textinfo) + free(bc->textinfo); + bc->partial = bc->textinfo = NULL; /* safe */ + + if (!bc->encoding) + bc->encoding = strdup("128raw"); + + text = bc->ascii; + if (!text) { + bc->error = EINVAL; + return -1; + } + /* + * length of partial code is unknown in advance, but it is + * at most 6* (1+text/2 + check + tail) + final + terminator + */ + partial = malloc( (3+ strlen(text)/2) * 6 + 2); + if (!partial) { + bc->error = errno; + return -1; + } + + /* the text information is at most "nnn.5:fff:c " * 1+strlen/2 +term */ + textinfo = malloc(12 * (1+strlen(text)/2) + 2); + if (!textinfo) { + bc->error = errno; + free(partial); + return -1; + } + + strcpy(partial, "0"); /* the first space */ + textptr = textinfo; + textpos = 0; + + for (i=0, count = 0; i < strlen(text); count++) { + if (sscanf(text + i, "%u%n", &code, &n) < 1) { + bc->error = EINVAL; /* impossible if text is verified */ + free(partial); + free(textinfo); + return -1; + } + strcat(partial, codeset[code]); + + /* + * since the start code is part of the "raw" input, it is + * counted in the checksum by itself + */ + if (!count) checksum += code; /* the start code */ + else checksum += code * count; /* first * 1 + second * 2 ... */ + + /* + * print as "%s", because we have ".5" positions + * also, use a size of 9 like codeC above, as each symbol is + * represented by two chars + */ + sprintf(textptr, "%g:9:%c %g:9:%c ", (double)textpos, + code >= 100 ? 'A' : code/10 + '0', + textpos + (double)SYMBOL_WID/2, code%10 + '0'); + textptr += strlen(textptr); + textpos += SYMBOL_WID; /* width of each code */ + i += n; + } + /* Add the checksum, independent of BARCODE_NO_CHECKSUM */ + checksum %= 103; + strcat(partial, codeset[checksum]); + /* and the end marker */ + strcat(partial, codeset[STOP]); + + bc->partial = partial; + bc->textinfo = textinfo; + + return 0; +} + diff --git a/barcode-0.98/code39.c b/barcode-0.98/code39.c new file mode 100644 index 00000000..3308c950 --- /dev/null +++ b/barcode-0.98/code39.c @@ -0,0 +1,173 @@ +/* + * code39.c -- encoding for code39 + * + * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org) + * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + +#include +#include +#include +#include +#include + +#include "barcode.h" + + +/* this is ordered in decades to simplify encoding */ +static char alphabet[] = + "1234567890" "ABCDEFGHIJ" "KLMNOPQRST" "UVWXYZ-. *" "$/+%"; + +/* the checksum alphabet has a different order */ +static char checkbet[] = + "0123456789" "ABCDEFGHIJ" "KLMNOPQRST" "UVWXYZ-. $" "/+%"; + +/* The first 40 symbols repeat this bar pattern */ +static char *bars[] = { + "31113","13113","33111","11313","31311", + "13311","11133","31131","13131","11331"}; + +/* The first 4 decades use these space patterns */ +static char *spaces[] = {"1311","1131","1113","3111"}; + +/* the last four symbols are special */ +static char *specialbars[] = { + "11111","11111","11111","11111"}; + +static char *specialspaces[] = { + "3331","3313","3133","1333"}; + +static char *fillers[]= { + "0a3a1c1c1a", + "1a3a1c1c1a" +}; + + +/* + * Check that the text can be encoded. Returns 0 or -1. + * If it's all lowecase convert to uppercase and accept it + */ +int Barcode_39_verify(unsigned char *text) +{ + int i, lower=0, upper=0; + + if (text[0] == '\0') + return -1; + for (i=0; text[i]; i++) { + if (isupper(text[i])) upper++; + if (islower(text[i])) lower++; + if (!strchr(alphabet,toupper(text[i]))) + return -1; + } + if (lower && upper) + return -1; + return 0; +} + +static int add_one(char *ptr, int code) +{ + char *b, *s; + + if (code < 40) { + b = bars[code%10]; + s = spaces[code/10]; + } else { + b = specialbars[code-40]; + s = specialspaces[code-40]; + } + sprintf(ptr,"1%c%c%c%c%c%c%c%c%c", /* separator */ + b[0], s[0], b[1], s[1], b[2], s[2], + b[3], s[3], b[4]); + return 0; +} + +/* + * The encoding functions fills the "partial" and "textinfo" fields. + * Lowercase chars are converted to uppercase + */ +int Barcode_39_encode(struct Barcode_Item *bc) +{ + static char *text; + static char *partial; /* dynamic */ + static char *textinfo; /* dynamic */ + char *c, *ptr, *textptr; + int i, code, textpos, checksum = 0; + + if (bc->partial) + free(bc->partial); + if (bc->textinfo) + free(bc->textinfo); + bc->partial = bc->textinfo = NULL; /* safe */ + + if (!bc->encoding) + bc->encoding = strdup("code 39"); + + text = bc->ascii; + if (!text) { + bc->error = EINVAL; + return -1; + } + /* the partial code is 10* (head + text + check + tail) + margin + term. */ + partial = malloc( (strlen(text) + 3) * 10 +2); + if (!partial) { + bc->error = errno; + return -1; + } + + /* the text information is at most "nnn:fff:c " * strlen +term */ + textinfo = malloc(10*strlen(text) + 2); + if (!textinfo) { + bc->error = errno; + free(partial); + return -1; + } + + strcpy(partial, fillers[0]); + ptr = partial + strlen(partial); + textptr = textinfo; + textpos = 22; + + for (i=0; text[i]; i++) { + c = strchr(alphabet, toupper(text[i])); + if (!c) { + bc->error = EINVAL; /* impossible if text is verified */ + free(partial); + free(textinfo); + return -1; + } + code = c - alphabet; + add_one(ptr, code); + c = strchr(checkbet,*c); + if (c) /* the '*' is not there */ + checksum += (c-checkbet); + sprintf(textptr, "%i:12:%c ", textpos, toupper(text[i])); + + textpos += 16; /* width of each code */ + textptr += strlen(textptr); + ptr += strlen(ptr); + } + /* Add the checksum */ + if ( (bc->flags & BARCODE_NO_CHECKSUM)==0 ) { + code = (strchr(alphabet, checkbet[checksum % 43]) - alphabet); + add_one(ptr, code); + } + strcat(ptr, fillers[1]); /* end */ + bc->partial = partial; + bc->textinfo = textinfo; + + return 0; +} diff --git a/barcode-0.98/code93.c b/barcode-0.98/code93.c new file mode 100644 index 00000000..73f8cee3 --- /dev/null +++ b/barcode-0.98/code93.c @@ -0,0 +1,213 @@ +/* + * code39.c -- encoding for code39 + * + * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org) + * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it) + * Copyright (c) 2001 Nathan D. Holmes / FedEx Services (ndholmes@fedex.com) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + +#include +#include +#include +#include +#include + +#include "barcode.h" + + +/* this is ordered in decades to simplify encoding */ +static char alphabet[] = + "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%"; + +static char *codeset[] = { + "131112", "111213", "111312", "111411", "121113", /* 0 - 4 */ + "121212", "121311", "111114", "131211", "141111", /* 5 - 9 */ + "211113", "211212", "211311", "221112", "221211", /* A - E */ + "231111", "112113", "112212", "112311", "122112", /* F - J */ + "132111", "111123", "111222", "111321", "121122", /* K - O */ + "131121", "212112", "212211", "211122", "211221", /* P - T */ + "221121", "222111", "112122", "112221", "122121", /* U - Y */ + "123111", "121131", "311112", "311211", "321111", /* Z - $ */ + "112131", "113121", "211131", "121221", "312111", /* / - (%) */ + "311121", "122211", "111141" /* (/) - (terminator) */ +}; + + +/* 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111 */ +/* 00000000001111111111222222222233333333334444444444555555555566666666667777777777888888888899999999990000000000111111111122222222 */ +/* 01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567 */ +static char shiftset[] = + "%$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%% /// ///// / /%%%%%% %%%%%%++++++++++++++++++++++++++%%%%%"; +static char shiftset2[] = + "UABCDEFGHIJKLMNOPQRSTUVWXYZABCDE ABC FGHIJ L ZFGHIJV KLMNOWABCDEFGHIJLKMNOPQRSTUVWXYZPQRST"; + +#define START_STOP 47 +#define EXTEND_DOLLAR 43 +#define EXTEND_PERCENT 44 +#define EXTEND_SLASH 45 +#define EXTEND_PLUS 46 + +/* + * Check that the text can be encoded. Returns 0 or -1. + * All of ASCII-7 is accepted. + */ +int Barcode_93_verify(unsigned char *text) +{ + int i; + + if (!strlen(text)) + return -1; + for (i=0; text[i]; i++) { + + /* Test if beyond the range of 7-bit ASCII */ + if ((int)text[i] > 127) + return -1; + } + return 0; +} + +/* + * The encoding functions fills the "partial" and "textinfo" fields. + * Lowercase chars are converted to uppercase + */ +int Barcode_93_encode(struct Barcode_Item *bc) +{ + static unsigned char *text; + static char *partial; /* dynamic */ + static char *textinfo; /* dynamic */ + char *c, *textptr; + int *checksum_str; + int i, code, textpos, checksum_len=0; + int c_checksum = 0; + int k_checksum = 0; + + if (bc->partial) + free(bc->partial); + if (bc->textinfo) + free(bc->textinfo); + bc->partial = bc->textinfo = NULL; /* safe */ + + if (!bc->encoding) + bc->encoding = strdup("code 93"); + + text = bc->ascii; + if (!text) { + bc->error = EINVAL; + return -1; + } + + /* the partial code is 6 * (head + 2* text + 2* check + tail) + margin + term. */ + partial = malloc( (strlen(text) *2 + 4) * 6 +2); + if (!partial) { + bc->error = errno; + return -1; + } + + checksum_str = (int *)malloc( (strlen(text) + 3) * 2 * sizeof(int)); + if (!checksum_str) { + free(partial); + bc->error = errno; + return -1; + } + + /* the text information is at most "nnn:fff:c " * strlen +term */ + textinfo = malloc(10*strlen(text) + 2); + if (!textinfo) { + bc->error = errno; + free(partial); + free(checksum_str); + return -1; + } + + textptr = textinfo; + textpos = 22; + strcpy(partial, "0"); + strcat(partial, codeset[START_STOP]); + + for (i=0; iflags & BARCODE_NO_CHECKSUM)==0 ) + { + for(i=1; i<=checksum_len; i++) + { + c_checksum += i * (int)checksum_str[checksum_len - i]; + k_checksum += (i+1) * (int)checksum_str[checksum_len - i]; + } + + c_checksum = c_checksum % 47; + k_checksum += c_checksum; + k_checksum = k_checksum % 47; + + strcat(partial, codeset[c_checksum]); + strcat(partial, codeset[k_checksum]); + + } + strcat(partial, codeset[START_STOP]); /* end */ + + /* Encodes final 1-unit width bar to turn the start character into a stop char */ + strcat(partial, "1"); + bc->partial = partial; + bc->textinfo = textinfo; + + return 0; +} diff --git a/barcode-0.98/compat/getopt.c b/barcode-0.98/compat/getopt.c new file mode 100644 index 00000000..91f00b55 --- /dev/null +++ b/barcode-0.98/compat/getopt.c @@ -0,0 +1,831 @@ +/* Getopt for GNU. + NOTE: getopt is now part of the C library, so if you don't know what + "Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu + before changing it! + + Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 1996 + Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) any + later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +/* This tells Alpha OSF/1 not to define a getopt prototype in . + Ditto for AIX 3.2 and . */ +#ifndef _NO_PROTO +#define _NO_PROTO +#endif + +#ifdef HAVE_CONFIG_H +#include +#endif + +#if !defined (__STDC__) || !__STDC__ +/* This is a separate conditional since some stdc systems + reject `defined (const)'. */ +#ifndef const +#define const +#endif +#endif + +#include + +/* Comment out all this code if we are using the GNU C Library, and are not + actually compiling the library itself. This code is part of the GNU C + Library, but also included in many other GNU distributions. Compiling + and linking in this code is a waste when using the GNU C library + (especially if it is a shared library). Rather than having every GNU + program understand `configure --with-gnu-libc' and omit the object files, + it is simpler to just do this in the source for each such file. */ + +#if defined (_LIBC) || !defined (__GNU_LIBRARY__) + + +/* This needs to come after some library #include + to get __GNU_LIBRARY__ defined. */ +#ifdef __GNU_LIBRARY__ +/* Don't include stdlib.h for non-GNU C libraries because some of them + contain conflicting prototypes for getopt. */ +#include +#if defined (_LIBC) || defined (HAVE_UNISTD_H) +#include +#endif +#endif /* GNU C library. */ + +#ifdef VMS +#include +#if HAVE_STRING_H - 0 +#include +#endif +#endif + +#ifdef WIN32 +/* It's not Unix, really. See? Capital letters. */ +#include +#define getpid() GetCurrentProcessId() +#endif + +#ifndef _ +/* This is for other GNU distributions with internationalized messages. + When compiling libc, the _ macro is predefined. */ +#ifdef HAVE_LIBINTL_H +# include +# define _(msgid) gettext (msgid) +#else +# define _(msgid) (msgid) +#endif +#endif + +/* This version of `getopt' appears to the caller like standard Unix `getopt' + but it behaves differently for the user, since it allows the user + to intersperse the options with the other arguments. + + As `getopt' works, it permutes the elements of ARGV so that, + when it is done, all the options precede everything else. Thus + all application programs are extended to handle flexible argument order. + + Setting the environment variable POSIXLY_CORRECT disables permutation. + Then the behavior is completely standard. + + GNU application programs can use a third alternative mode in which + they can distinguish the relative order of options and other arguments. */ + +#include "getopt.h" + +/* For communication from `getopt' to the caller. + When `getopt' finds an option that takes an argument, + the argument value is returned here. + Also, when `ordering' is RETURN_IN_ORDER, + each non-option ARGV-element is returned here. */ + +char *optarg = NULL; + +/* Index in ARGV of the next element to be scanned. + This is used for communication to and from the caller + and for communication between successive calls to `getopt'. + + On entry to `getopt', zero means this is the first call; initialize. + + When `getopt' returns EOF, this is the index of the first of the + non-option elements that the caller should itself scan. + + Otherwise, `optind' communicates from one call to the next + how much of ARGV has been scanned so far. */ + +/* XXX 1003.2 says this must be 1 before any call. */ +int optind = 0; + +/* The next char to be scanned in the option-element + in which the last option character we returned was found. + This allows us to pick up the scan where we left off. + + If this is zero, or a null string, it means resume the scan + by advancing to the next ARGV-element. */ + +static char *nextchar; + +/* Callers store zero here to inhibit the error message + for unrecognized options. */ + +int opterr = 1; + +/* Set to an option character which was unrecognized. + This must be initialized on some systems to avoid linking in the + system's own getopt implementation. */ + +int optopt = '?'; + +/* Describe how to deal with options that follow non-option ARGV-elements. + + If the caller did not specify anything, + the default is REQUIRE_ORDER if the environment variable + POSIXLY_CORRECT is defined, PERMUTE otherwise. + + REQUIRE_ORDER means don't recognize them as options; + stop option processing when the first non-option is seen. + This is what Unix does. + This mode of operation is selected by either setting the environment + variable POSIXLY_CORRECT, or using `+' as the first character + of the list of option characters. + + PERMUTE is the default. We permute the contents of ARGV as we scan, + so that eventually all the non-options are at the end. This allows options + to be given in any order, even with programs that were not written to + expect this. + + RETURN_IN_ORDER is an option available to programs that were written + to expect options and other ARGV-elements in any order and that care about + the ordering of the two. We describe each non-option ARGV-element + as if it were the argument of an option with character code 1. + Using `-' as the first character of the list of option characters + selects this mode of operation. + + The special argument `--' forces an end of option-scanning regardless + of the value of `ordering'. In the case of RETURN_IN_ORDER, only + `--' can cause `getopt' to return EOF with `optind' != ARGC. */ + +static enum +{ + REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER +} ordering; + +/* Value of POSIXLY_CORRECT environment variable. */ +static char *posixly_correct; + +#ifdef __GNU_LIBRARY__ +/* We want to avoid inclusion of string.h with non-GNU libraries + because there are many ways it can cause trouble. + On some systems, it contains special magic macros that don't work + in GCC. */ +#include +#define my_index strchr +#else + +/* Avoid depending on library functions or files + whose names are inconsistent. */ + +char *getenv (); + +static char * +my_index (str, chr) + const char *str; + int chr; +{ + while (*str) + { + if (*str == chr) + return (char *) str; + str++; + } + return 0; +} + +/* If using GCC, we can safely declare strlen this way. + If not using GCC, it is ok not to declare it. */ +#ifdef __GNUC__ +/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h. + That was relevant to code that was here before. */ +#if !defined (__STDC__) || !__STDC__ +/* gcc with -traditional declares the built-in strlen to return int, + and has done so at least since version 2.4.5. -- rms. */ +extern int strlen (const char *); +#endif /* not __STDC__ */ +#endif /* __GNUC__ */ + +#endif /* not __GNU_LIBRARY__ */ + +/* Handle permutation of arguments. */ + +/* Describe the part of ARGV that contains non-options that have + been skipped. `first_nonopt' is the index in ARGV of the first of them; + `last_nonopt' is the index after the last of them. */ + +static int first_nonopt; +static int last_nonopt; + +/* Bash 2.0 gives us an environment variable containing flags + indicating ARGV elements that should not be considered arguments. */ + +static const char *nonoption_flags; +static int nonoption_flags_len; + +/* Exchange two adjacent subsequences of ARGV. + One subsequence is elements [first_nonopt,last_nonopt) + which contains all the non-options that have been skipped so far. + The other is elements [last_nonopt,optind), which contains all + the options processed since those non-options were skipped. + + `first_nonopt' and `last_nonopt' are relocated so that they describe + the new indices of the non-options in ARGV after they are moved. */ + +#if defined (__STDC__) && __STDC__ +static void exchange (char **); +#endif + +static void +exchange (argv) + char **argv; +{ + int bottom = first_nonopt; + int middle = last_nonopt; + int top = optind; + char *tem; + + /* Exchange the shorter segment with the far end of the longer segment. + That puts the shorter segment into the right place. + It leaves the longer segment in the right place overall, + but it consists of two parts that need to be swapped next. */ + + while (top > middle && middle > bottom) + { + if (top - middle > middle - bottom) + { + /* Bottom segment is the short one. */ + int len = middle - bottom; + register int i; + + /* Swap it with the top part of the top segment. */ + for (i = 0; i < len; i++) + { + tem = argv[bottom + i]; + argv[bottom + i] = argv[top - (middle - bottom) + i]; + argv[top - (middle - bottom) + i] = tem; + } + /* Exclude the moved bottom segment from further swapping. */ + top -= len; + } + else + { + /* Top segment is the short one. */ + int len = top - middle; + register int i; + + /* Swap it with the bottom part of the bottom segment. */ + for (i = 0; i < len; i++) + { + tem = argv[bottom + i]; + argv[bottom + i] = argv[middle + i]; + argv[middle + i] = tem; + } + /* Exclude the moved top segment from further swapping. */ + bottom += len; + } + } + + /* Update records for the slots the non-options now occupy. */ + + first_nonopt += (optind - last_nonopt); + last_nonopt = optind; +} + +/* Initialize the internal data when the first call is made. */ + +#if defined (__STDC__) && __STDC__ +static const char *_getopt_initialize (const char *); +#endif +static const char * +_getopt_initialize (optstring) + const char *optstring; +{ + /* Start processing options with ARGV-element 1 (since ARGV-element 0 + is the program name); the sequence of previously skipped + non-option ARGV-elements is empty. */ + + first_nonopt = last_nonopt = optind = 1; + + nextchar = NULL; + + posixly_correct = getenv ("POSIXLY_CORRECT"); + + /* Determine how to handle the ordering of options and nonoptions. */ + + if (optstring[0] == '-') + { + ordering = RETURN_IN_ORDER; + ++optstring; + } + else if (optstring[0] == '+') + { + ordering = REQUIRE_ORDER; + ++optstring; + } + else if (posixly_correct != NULL) + ordering = REQUIRE_ORDER; + else + ordering = PERMUTE; + + if (posixly_correct == NULL) + { + /* Bash 2.0 puts a special variable in the environment for each + command it runs, specifying which ARGV elements are the results of + file name wildcard expansion and therefore should not be + considered as options. */ + char var[100]; + sprintf (var, "_%d_GNU_nonoption_argv_flags_", getpid ()); + nonoption_flags = getenv (var); + if (nonoption_flags == NULL) + nonoption_flags_len = 0; + else + nonoption_flags_len = strlen (nonoption_flags); + } + + return optstring; +} + +/* Scan elements of ARGV (whose length is ARGC) for option characters + given in OPTSTRING. + + If an element of ARGV starts with '-', and is not exactly "-" or "--", + then it is an option element. The characters of this element + (aside from the initial '-') are option characters. If `getopt' + is called repeatedly, it returns successively each of the option characters + from each of the option elements. + + If `getopt' finds another option character, it returns that character, + updating `optind' and `nextchar' so that the next call to `getopt' can + resume the scan with the following option character or ARGV-element. + + If there are no more option characters, `getopt' returns `EOF'. + Then `optind' is the index in ARGV of the first ARGV-element + that is not an option. (The ARGV-elements have been permuted + so that those that are not options now come last.) + + OPTSTRING is a string containing the legitimate option characters. + If an option character is seen that is not listed in OPTSTRING, + return '?' after printing an error message. If you set `opterr' to + zero, the error message is suppressed but we still return '?'. + + If a char in OPTSTRING is followed by a colon, that means it wants an arg, + so the following text in the same ARGV-element, or the text of the following + ARGV-element, is returned in `optarg'. Two colons mean an option that + wants an optional arg; if there is text in the current ARGV-element, + it is returned in `optarg', otherwise `optarg' is set to zero. + + If OPTSTRING starts with `-' or `+', it requests different methods of + handling the non-option ARGV-elements. + See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above. + + Long-named options begin with `--' instead of `-'. + Their names may be abbreviated as long as the abbreviation is unique + or is an exact match for some defined option. If they have an + argument, it follows the option name in the same ARGV-element, separated + from the option name by a `=', or else the in next ARGV-element. + When `getopt' finds a long-named option, it returns 0 if that option's + `flag' field is nonzero, the value of the option's `val' field + if the `flag' field is zero. + + The elements of ARGV aren't really const, because we permute them. + But we pretend they're const in the prototype to be compatible + with other systems. + + LONGOPTS is a vector of `struct option' terminated by an + element containing a name which is zero. + + LONGIND returns the index in LONGOPT of the long-named option found. + It is only valid when a long-named option has been found by the most + recent call. + + If LONG_ONLY is nonzero, '-' as well as '--' can introduce + long-named options. */ + +int +_getopt_internal (argc, argv, optstring, longopts, longind, long_only) + int argc; + char *const *argv; + const char *optstring; + const struct option *longopts; + int *longind; + int long_only; +{ + optarg = NULL; + + if (optind == 0) + { + optstring = _getopt_initialize (optstring); + optind = 1; /* Don't scan ARGV[0], the program name. */ + } + + /* Test whether ARGV[optind] points to a non-option argument. + Either it does not have option syntax, or there is an environment flag + from the shell indicating it is not an option. */ +#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \ + || (optind < nonoption_flags_len \ + && nonoption_flags[optind] == '1')) + + if (nextchar == NULL || *nextchar == '\0') + { + /* Advance to the next ARGV-element. */ + + /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been + moved back by the user (who may also have changed the arguments). */ + if (last_nonopt > optind) + last_nonopt = optind; + if (first_nonopt > optind) + first_nonopt = optind; + + if (ordering == PERMUTE) + { + /* If we have just processed some options following some non-options, + exchange them so that the options come first. */ + + if (first_nonopt != last_nonopt && last_nonopt != optind) + exchange ((char **) argv); + else if (last_nonopt != optind) + first_nonopt = optind; + + /* Skip any additional non-options + and extend the range of non-options previously skipped. */ + + while (optind < argc && NONOPTION_P) + optind++; + last_nonopt = optind; + } + + /* The special ARGV-element `--' means premature end of options. + Skip it like a null option, + then exchange with previous non-options as if it were an option, + then skip everything else like a non-option. */ + + if (optind != argc && !strcmp (argv[optind], "--")) + { + optind++; + + if (first_nonopt != last_nonopt && last_nonopt != optind) + exchange ((char **) argv); + else if (first_nonopt == last_nonopt) + first_nonopt = optind; + last_nonopt = argc; + + optind = argc; + } + + /* If we have done all the ARGV-elements, stop the scan + and back over any non-options that we skipped and permuted. */ + + if (optind == argc) + { + /* Set the next-arg-index to point at the non-options + that we previously skipped, so the caller will digest them. */ + if (first_nonopt != last_nonopt) + optind = first_nonopt; + return EOF; + } + + /* If we have come to a non-option and did not permute it, + either stop the scan or describe it to the caller and pass it by. */ + + if (NONOPTION_P) + { + if (ordering == REQUIRE_ORDER) + return EOF; + optarg = argv[optind++]; + return 1; + } + + /* We have found another option-ARGV-element. + Skip the initial punctuation. */ + + nextchar = (argv[optind] + 1 + + (longopts != NULL && argv[optind][1] == '-')); + } + + /* Decode the current option-ARGV-element. */ + + /* Check whether the ARGV-element is a long option. + + If long_only and the ARGV-element has the form "-f", where f is + a valid short option, don't consider it an abbreviated form of + a long option that starts with f. Otherwise there would be no + way to give the -f short option. + + On the other hand, if there's a long option "fubar" and + the ARGV-element is "-fu", do consider that an abbreviation of + the long option, just like "--fu", and not "-f" with arg "u". + + This distinction seems to be the most useful approach. */ + + if (longopts != NULL + && (argv[optind][1] == '-' + || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1]))))) + { + char *nameend; + const struct option *p; + const struct option *pfound = NULL; + int exact = 0; + int ambig = 0; + int indfound; + int option_index; + + for (nameend = nextchar; *nameend && *nameend != '='; nameend++) + /* Do nothing. */ ; + +#ifdef lint /* Suppress `used before initialized' warning. */ + indfound = 0; +#endif + + /* Test all long options for either exact match + or abbreviated matches. */ + for (p = longopts, option_index = 0; p->name; p++, option_index++) + if (!strncmp (p->name, nextchar, nameend - nextchar)) + { + if (nameend - nextchar == strlen (p->name)) + { + /* Exact match found. */ + pfound = p; + indfound = option_index; + exact = 1; + break; + } + else if (pfound == NULL) + { + /* First nonexact match found. */ + pfound = p; + indfound = option_index; + } + else + /* Second or later nonexact match found. */ + ambig = 1; + } + + if (ambig && !exact) + { + if (opterr) + fprintf (stderr, _("%s: option `%s' is ambiguous\n"), + argv[0], argv[optind]); + nextchar += strlen (nextchar); + optind++; + optopt = 0; + return '?'; + } + + if (pfound != NULL) + { + option_index = indfound; + optind++; + if (*nameend) + { + /* Don't test has_arg with >, because some C compilers don't + allow it to be used on enums. */ + if (pfound->has_arg) + optarg = nameend + 1; + else + { + if (opterr) + if (argv[optind - 1][1] == '-') + /* --option */ + fprintf (stderr, + _("%s: option `--%s' doesn't allow an argument\n"), + argv[0], pfound->name); + else + /* +option or -option */ + fprintf (stderr, + _("%s: option `%c%s' doesn't allow an argument\n"), + argv[0], argv[optind - 1][0], pfound->name); + + nextchar += strlen (nextchar); + + optopt = pfound->val; + return '?'; + } + } + else if (pfound->has_arg == 1) + { + if (optind < argc) + optarg = argv[optind++]; + else + { + if (opterr) + fprintf (stderr, + _("%s: option `%s' requires an argument\n"), + argv[0], argv[optind - 1]); + nextchar += strlen (nextchar); + optopt = pfound->val; + return optstring[0] == ':' ? ':' : '?'; + } + } + nextchar += strlen (nextchar); + if (longind != NULL) + *longind = option_index; + if (pfound->flag) + { + *(pfound->flag) = pfound->val; + return 0; + } + return pfound->val; + } + + /* Can't find it as a long option. If this is not getopt_long_only, + or the option starts with '--' or is not a valid short + option, then it's an error. + Otherwise interpret it as a short option. */ + if (!long_only || argv[optind][1] == '-' + || my_index (optstring, *nextchar) == NULL) + { + if (opterr) + { + if (argv[optind][1] == '-') + /* --option */ + fprintf (stderr, _("%s: unrecognized option `--%s'\n"), + argv[0], nextchar); + else + /* +option or -option */ + fprintf (stderr, _("%s: unrecognized option `%c%s'\n"), + argv[0], argv[optind][0], nextchar); + } + nextchar = (char *) ""; + optind++; + optopt = 0; + return '?'; + } + } + + /* Look at and handle the next short option-character. */ + + { + char c = *nextchar++; + char *temp = my_index (optstring, c); + + /* Increment `optind' when we start to process its last character. */ + if (*nextchar == '\0') + ++optind; + + if (temp == NULL || c == ':') + { + if (opterr) + { + if (posixly_correct) + /* 1003.2 specifies the format of this message. */ + fprintf (stderr, _("%s: illegal option -- %c\n"), + argv[0], c); + else + fprintf (stderr, _("%s: invalid option -- %c\n"), + argv[0], c); + } + optopt = c; + return '?'; + } + if (temp[1] == ':') + { + if (temp[2] == ':') + { + /* This is an option that accepts an argument optionally. */ + if (*nextchar != '\0') + { + optarg = nextchar; + optind++; + } + else + optarg = NULL; + nextchar = NULL; + } + else + { + /* This is an option that requires an argument. */ + if (*nextchar != '\0') + { + optarg = nextchar; + /* If we end this ARGV-element by taking the rest as an arg, + we must advance to the next element now. */ + optind++; + } + else if (optind == argc) + { + if (opterr) + { + /* 1003.2 specifies the format of this message. */ + fprintf (stderr, + _("%s: option requires an argument -- %c\n"), + argv[0], c); + } + optopt = c; + if (optstring[0] == ':') + c = ':'; + else + c = '?'; + } + else + /* We already incremented `optind' once; + increment it again when taking next ARGV-elt as argument. */ + optarg = argv[optind++]; + nextchar = NULL; + } + } + return c; + } +} + +int +getopt (argc, argv, optstring) + int argc; + char *const *argv; + const char *optstring; +{ + return _getopt_internal (argc, argv, optstring, + (const struct option *) 0, + (int *) 0, + 0); +} + +#endif /* _LIBC or not __GNU_LIBRARY__. */ + +#ifdef TEST + +/* Compile with -DTEST to make an executable for use in testing + the above definition of `getopt'. */ + +int +main (argc, argv) + int argc; + char **argv; +{ + int c; + int digit_optind = 0; + + while (1) + { + int this_option_optind = optind ? optind : 1; + + c = getopt (argc, argv, "abc:d:0123456789"); + if (c == EOF) + break; + + switch (c) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + if (digit_optind != 0 && digit_optind != this_option_optind) + printf ("digits occur in two different argv-elements.\n"); + digit_optind = this_option_optind; + printf ("option %c\n", c); + break; + + case 'a': + printf ("option a\n"); + break; + + case 'b': + printf ("option b\n"); + break; + + case 'c': + printf ("option c with value `%s'\n", optarg); + break; + + case '?': + break; + + default: + printf ("?? getopt returned character code 0%o ??\n", c); + } + } + + if (optind < argc) + { + printf ("non-option ARGV-elements: "); + while (optind < argc) + printf ("%s ", argv[optind++]); + printf ("\n"); + } + + exit (0); +} + +#endif /* TEST */ diff --git a/barcode-0.98/compat/getopt.h b/barcode-0.98/compat/getopt.h new file mode 100644 index 00000000..952f4830 --- /dev/null +++ b/barcode-0.98/compat/getopt.h @@ -0,0 +1,129 @@ +/* Declarations for getopt. + Copyright (C) 1989, 90, 91, 92, 93, 94 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) any + later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef _GETOPT_H +#define _GETOPT_H 1 + +#ifdef __cplusplus +extern "C" { +#endif + +/* For communication from `getopt' to the caller. + When `getopt' finds an option that takes an argument, + the argument value is returned here. + Also, when `ordering' is RETURN_IN_ORDER, + each non-option ARGV-element is returned here. */ + +extern char *optarg; + +/* Index in ARGV of the next element to be scanned. + This is used for communication to and from the caller + and for communication between successive calls to `getopt'. + + On entry to `getopt', zero means this is the first call; initialize. + + When `getopt' returns EOF, this is the index of the first of the + non-option elements that the caller should itself scan. + + Otherwise, `optind' communicates from one call to the next + how much of ARGV has been scanned so far. */ + +extern int optind; + +/* Callers store zero here to inhibit the error message `getopt' prints + for unrecognized options. */ + +extern int opterr; + +/* Set to an option character which was unrecognized. */ + +extern int optopt; + +/* Describe the long-named options requested by the application. + The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector + of `struct option' terminated by an element containing a name which is + zero. + + The field `has_arg' is: + no_argument (or 0) if the option does not take an argument, + required_argument (or 1) if the option requires an argument, + optional_argument (or 2) if the option takes an optional argument. + + If the field `flag' is not NULL, it points to a variable that is set + to the value given in the field `val' when the option is found, but + left unchanged if the option is not found. + + To have a long-named option do something other than set an `int' to + a compiled-in constant, such as set a value from `optarg', set the + option's `flag' field to zero and its `val' field to a nonzero + value (the equivalent single-letter option character, if there is + one). For long options that have a zero `flag' field, `getopt' + returns the contents of the `val' field. */ + +struct option +{ +#if defined (__STDC__) && __STDC__ + const char *name; +#else + char *name; +#endif + /* has_arg can't be an enum because some compilers complain about + type mismatches in all the code that assumes it is an int. */ + int has_arg; + int *flag; + int val; +}; + +/* Names for the values of the `has_arg' field of `struct option'. */ + +#define no_argument 0 +#define required_argument 1 +#define optional_argument 2 + +#if defined (__STDC__) && __STDC__ +#ifdef __GNU_LIBRARY__ +/* Many other libraries have conflicting prototypes for getopt, with + differences in the consts, in stdlib.h. To avoid compilation + errors, only prototype getopt for the GNU C library. */ +extern int getopt (int argc, char *const *argv, const char *shortopts); +#else /* not __GNU_LIBRARY__ */ +extern int getopt (); +#endif /* __GNU_LIBRARY__ */ +extern int getopt_long (int argc, char *const *argv, const char *shortopts, + const struct option *longopts, int *longind); +extern int getopt_long_only (int argc, char *const *argv, + const char *shortopts, + const struct option *longopts, int *longind); + +/* Internal only. Users should not call this directly. */ +extern int _getopt_internal (int argc, char *const *argv, + const char *shortopts, + const struct option *longopts, int *longind, + int long_only); +#else /* not __STDC__ */ +extern int getopt (); +extern int getopt_long (); +extern int getopt_long_only (); + +extern int _getopt_internal (); +#endif /* __STDC__ */ + +#ifdef __cplusplus +} +#endif + +#endif /* _GETOPT_H */ diff --git a/barcode-0.98/configure b/barcode-0.98/configure new file mode 100755 index 00000000..f0e5d457 --- /dev/null +++ b/barcode-0.98/configure @@ -0,0 +1,5197 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.57. +# +# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 +# Free Software Foundation, Inc. +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi + +# Support unset when possible. +if (FOO=FOO; unset FOO) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# Work around bugs in pre-3.0 UWIN ksh. +$as_unset ENV MAIL MAILPATH +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + + +# PATH needs CR, and LINENO needs CR and PATH. +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done + + ;; + esac + # We did not find ourselves, most probably we were run as `sh COMMAND' + # in which case we are not to be found in the path. + if test "x$as_myself" = x; then + as_myself=$0 + fi + if test ! -f "$as_myself"; then + { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for as_base in sh bash ksh sh5; do + case $as_dir in + /*) + if ("$as_dir/$as_base" -c ' + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | + sed ' + N + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + t loop + s,-$,, + s,^['$as_cr_digits']*\n,, + ' >$as_me.lineno && + chmod +x $as_me.lineno || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensible to this). + . ./$as_me.lineno + # Exit status is that of the last command. + exit +} + + +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +esac + +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.file + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + as_mkdir_p=false +fi + +as_executable_p="test -f" + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" + + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH + + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +exec 6>&1 + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_config_libobj_dir=. +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Maximum number of lines to put in a shell here document. +# This variable seems obsolete. It should probably be removed, and +# only ac_max_sed_lines should be used. +: ${ac_max_here_lines=38} + +# Identity of this package. +PACKAGE_NAME= +PACKAGE_TARNAME= +PACKAGE_VERSION= +PACKAGE_STRING= +PACKAGE_BUGREPORT= + +ac_unique_file="barcode.h" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#if HAVE_SYS_TYPES_H +# include +#endif +#if HAVE_SYS_STAT_H +# include +#endif +#if STDC_HEADERS +# include +# include +#else +# if HAVE_STDLIB_H +# include +# endif +#endif +#if HAVE_STRING_H +# if !STDC_HEADERS && HAVE_MEMORY_H +# include +# endif +# include +#endif +#if HAVE_STRINGS_H +# include +#endif +#if HAVE_INTTYPES_H +# include +#else +# if HAVE_STDINT_H +# include +# endif +#endif +#if HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT RANLIB ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CPP EGREP GETOPT_O NO_GETOPT NO_LIBPAPER LIBPAPER NO_STRERROR GMAKEDEPEND0 GMAKEDEPEND1 GMAKEDEPEND2 LIBOBJS LTLIBOBJS MAKEINFO REMOVEHTMLTAGS INFOTOHTML' +ac_subst_files='' + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +ac_prev= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_option in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + eval "enable_$ac_feature=no" ;; + + -enable-* | --enable-*) + ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac + eval "enable_$ac_feature='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package| sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; + *) ac_optarg=yes ;; + esac + eval "with_$ac_package='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/-/_/g'` + eval "with_$ac_package=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) { echo "$as_me: error: unrecognized option: $ac_option +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } + ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` + eval "$ac_envvar='$ac_optarg'" + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + { echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } +fi + +# Be sure to have absolute paths. +for ac_var in exec_prefix prefix +do + eval ac_val=$`echo $ac_var` + case $ac_val in + [\\/$]* | ?:[\\/]* | NONE | '' ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; + esac +done + +# Be sure to have absolute paths. +for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ + localstatedir libdir includedir oldincludedir infodir mandir +do + eval ac_val=$`echo $ac_var` + case $ac_val in + [\\/$]* | ?:[\\/]* ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; + esac +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_confdir=`(dirname "$0") 2>/dev/null || +$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$0" : 'X\(//\)[^/]' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$0" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 + { (exit 1); exit 1; }; } + else + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } + fi +fi +(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || + { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 + { (exit 1); exit 1; }; } +srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` +ac_env_build_alias_set=${build_alias+set} +ac_env_build_alias_value=$build_alias +ac_cv_env_build_alias_set=${build_alias+set} +ac_cv_env_build_alias_value=$build_alias +ac_env_host_alias_set=${host_alias+set} +ac_env_host_alias_value=$host_alias +ac_cv_env_host_alias_set=${host_alias+set} +ac_cv_env_host_alias_value=$host_alias +ac_env_target_alias_set=${target_alias+set} +ac_env_target_alias_value=$target_alias +ac_cv_env_target_alias_set=${target_alias+set} +ac_cv_env_target_alias_value=$target_alias +ac_env_CC_set=${CC+set} +ac_env_CC_value=$CC +ac_cv_env_CC_set=${CC+set} +ac_cv_env_CC_value=$CC +ac_env_CFLAGS_set=${CFLAGS+set} +ac_env_CFLAGS_value=$CFLAGS +ac_cv_env_CFLAGS_set=${CFLAGS+set} +ac_cv_env_CFLAGS_value=$CFLAGS +ac_env_LDFLAGS_set=${LDFLAGS+set} +ac_env_LDFLAGS_value=$LDFLAGS +ac_cv_env_LDFLAGS_set=${LDFLAGS+set} +ac_cv_env_LDFLAGS_value=$LDFLAGS +ac_env_CPPFLAGS_set=${CPPFLAGS+set} +ac_env_CPPFLAGS_value=$CPPFLAGS +ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} +ac_cv_env_CPPFLAGS_value=$CPPFLAGS +ac_env_CPP_set=${CPP+set} +ac_env_CPP_value=$CPP +ac_cv_env_CPP_set=${CPP+set} +ac_cv_env_CPP_value=$CPP + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures this package to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +_ACEOF + + cat <<_ACEOF +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data [PREFIX/share] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --infodir=DIR info documentation [PREFIX/info] + --mandir=DIR man documentation [PREFIX/man] +_ACEOF + + cat <<\_ACEOF +_ACEOF +fi + +if test -n "$ac_init_help"; then + + cat <<\_ACEOF + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have + headers in a nonstandard directory + CPP C preprocessor + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +_ACEOF +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + ac_popdir=`pwd` + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d $ac_dir || continue + ac_builddir=. + +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac +# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +# absolute. +ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` + + cd $ac_dir + # Check for guested configure; otherwise get Cygnus style configure. + if test -f $ac_srcdir/configure.gnu; then + echo + $SHELL $ac_srcdir/configure.gnu --help=recursive + elif test -f $ac_srcdir/configure; then + echo + $SHELL $ac_srcdir/configure --help=recursive + elif test -f $ac_srcdir/configure.ac || + test -f $ac_srcdir/configure.in; then + echo + $ac_configure --help + else + echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi + cd $ac_popdir + done +fi + +test -n "$ac_init_help" && exit 0 +if $ac_init_version; then + cat <<\_ACEOF + +Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 +Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit 0 +fi +exec 5>config.log +cat >&5 <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by $as_me, which was +generated by GNU Autoconf 2.57. Invocation command line was + + $ $0 $@ + +_ACEOF +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +hostinfo = `(hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + echo "PATH: $as_dir" +done + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_sep= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) + ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 2) + ac_configure_args1="$ac_configure_args1 '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" + # Get rid of the leading space. + ac_sep=" " + ;; + esac + done +done +$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } +$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Be sure not to use single quotes in there, as some shells, +# such as our DU 5.0 friend, will then `close' the trap. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + cat <<\_ASBOX +## ---------------- ## +## Cache variables. ## +## ---------------- ## +_ASBOX + echo + # The following way of writing the cache mishandles newlines in values, +{ + (set) 2>&1 | + case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in + *ac_space=\ *) + sed -n \ + "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" + ;; + *) + sed -n \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; +} + echo + + cat <<\_ASBOX +## ----------------- ## +## Output variables. ## +## ----------------- ## +_ASBOX + echo + for ac_var in $ac_subst_vars + do + eval ac_val=$`echo $ac_var` + echo "$ac_var='"'"'$ac_val'"'"'" + done | sort + echo + + if test -n "$ac_subst_files"; then + cat <<\_ASBOX +## ------------- ## +## Output files. ## +## ------------- ## +_ASBOX + echo + for ac_var in $ac_subst_files + do + eval ac_val=$`echo $ac_var` + echo "$ac_var='"'"'$ac_val'"'"'" + done | sort + echo + fi + + if test -s confdefs.h; then + cat <<\_ASBOX +## ----------- ## +## confdefs.h. ## +## ----------- ## +_ASBOX + echo + sed "/^$/d" confdefs.h | sort + echo + fi + test "$ac_signal" != 0 && + echo "$as_me: caught signal $ac_signal" + echo "$as_me: exit $exit_status" + } >&5 + rm -f core core.* *.core && + rm -rf conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status + ' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo >confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then + { echo "$as_me:$LINENO: loading cache $cache_file" >&5 +echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . $cache_file;; + *) . ./$cache_file;; + esac + fi +else + { echo "$as_me:$LINENO: creating cache $cache_file" >&5 +echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in `(set) 2>&1 | + sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val="\$ac_cv_env_${ac_var}_value" + eval ac_new_val="\$ac_env_${ac_var}_value" + case $ac_old_set,$ac_new_set in + set,) + { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 +echo "$as_me: former value: $ac_old_val" >&2;} + { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 +echo "$as_me: current value: $ac_new_val" >&2;} + ac_cache_corrupted=: + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) + ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + + + + + + + + + + + + + + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + CC=$ac_ct_CC +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + CC=$ac_ct_CC +else + CC="$ac_cv_prog_CC" +fi + +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$ac_ct_CC" && break +done + + CC=$ac_ct_CC +fi + +fi + + +test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&5 +echo "$as_me: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + +# Provide some information about the compiler. +echo "$as_me:$LINENO:" \ + "checking for C compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 + (eval $ac_compiler --version &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 + (eval $ac_compiler -v &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 + (eval $ac_compiler -V &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +echo "$as_me:$LINENO: checking for C compiler default output" >&5 +echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6 +ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` +if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 + (eval $ac_link_default) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Find the output, starting from the most likely. This scheme is +# not robust to junk in `.', hence go to wildcards (a.*) only as a last +# resort. + +# Be careful to initialize this variable, since it used to be cached. +# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. +ac_cv_exeext= +# b.out is created by i960 compilers. +for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) + ;; + conftest.$ac_ext ) + # This is the source file. + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + # FIXME: I believe we export ac_cv_exeext for Libtool, + # but it would be cool to find out if it's true. Does anybody + # maintain Libtool? --akim. + export ac_cv_exeext + break;; + * ) + break;; + esac +done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: C compiler cannot create executables +See \`config.log' for more details." >&5 +echo "$as_me: error: C compiler cannot create executables +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } +fi + +ac_exeext=$ac_cv_exeext +echo "$as_me:$LINENO: result: $ac_file" >&5 +echo "${ECHO_T}$ac_file" >&6 + +# Check the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 +# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 +# If not cross compiling, check that we can run a simple program. +if test "$cross_compiling" != yes; then + if { ac_try='./$ac_file' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { echo "$as_me:$LINENO: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + fi + fi +fi +echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + +rm -f a.out a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +# Check the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 +echo "$as_me:$LINENO: result: $cross_compiling" >&5 +echo "${ECHO_T}$cross_compiling" >&6 + +echo "$as_me:$LINENO: checking for suffix of executables" >&5 +echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + export ac_cv_exeext + break;; + * ) break;; + esac +done +else + { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest$ac_cv_exeext +echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +echo "${ECHO_T}$ac_cv_exeext" >&6 + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +echo "$as_me:$LINENO: checking for suffix of object files" >&5 +echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 +if test "${ac_cv_objext+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +echo "${ECHO_T}$ac_cv_objext" >&6 +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 +if test "${ac_cv_c_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_compiler_gnu=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 +GCC=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +CFLAGS="-g" +echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 +if test "${ac_cv_prog_cc_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_prog_cc_g=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 +echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 +if test "${ac_cv_prog_cc_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_prog_cc_stdc=no +ac_save_CC=$CC +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +# Don't try gcc -ansi; that turns off useful extensions and +# breaks some systems' header files. +# AIX -qlanglvl=ansi +# Ultrix and OSF/1 -std1 +# HP-UX 10.20 and later -Ae +# HP-UX older versions -Aa -D_HPUX_SOURCE +# SVR4 -Xc -D__EXTENSIONS__ +for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_stdc=$ac_arg +break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.$ac_objext +done +rm -f conftest.$ac_ext conftest.$ac_objext +CC=$ac_save_CC + +fi + +case "x$ac_cv_prog_cc_stdc" in + x|xno) + echo "$as_me:$LINENO: result: none needed" >&5 +echo "${ECHO_T}none needed" >&6 ;; + *) + echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 + CC="$CC $ac_cv_prog_cc_stdc" ;; +esac + +# Some people use a C++ compiler to compile C. Since we use `exit', +# in C++ we need to declare it. In case someone uses the same compiler +# for both compiling C and C++ we need to have the C++ compiler decide +# the declaration of exit, since it's the most demanding environment. +cat >conftest.$ac_ext <<_ACEOF +#ifndef __cplusplus + choke me +#endif +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + for ac_declaration in \ + ''\ + '#include ' \ + 'extern "C" void std::exit (int) throw (); using std::exit;' \ + 'extern "C" void std::exit (int); using std::exit;' \ + 'extern "C" void exit (int) throw ();' \ + 'extern "C" void exit (int);' \ + 'void exit (int);' +do + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +$ac_declaration +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +continue +fi +rm -f conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_declaration +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.$ac_objext conftest.$ac_ext +done +rm -f conftest* +if test -n "$ac_declaration"; then + echo '#ifdef __cplusplus' >>confdefs.h + echo $ac_declaration >>confdefs.h + echo '#endif' >>confdefs.h +fi + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.$ac_objext conftest.$ac_ext +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + echo "$as_me:$LINENO: result: $RANLIB" >&5 +echo "${ECHO_T}$RANLIB" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +echo "${ECHO_T}$ac_ct_RANLIB" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + RANLIB=$ac_ct_RANLIB +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +ac_aux_dir= +for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f $ac_dir/shtool; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 +echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} + { (exit 1); exit 1; }; } +fi +ac_config_guess="$SHELL $ac_aux_dir/config.guess" +ac_config_sub="$SHELL $ac_aux_dir/config.sub" +ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done + + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL=$ac_install_sh + fi +fi +echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +if test x$GCC = xyes; then + CFLAGS="$CFLAGS -Wall" +fi + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +echo "$as_me:$LINENO: result: $CPP" >&5 +echo "${ECHO_T}$CPP" >&6 +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +echo "$as_me:$LINENO: checking for egrep" >&5 +echo $ECHO_N "checking for egrep... $ECHO_C" >&6 +if test "${ac_cv_prog_egrep+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if echo a | (grep -E '(a|b)') >/dev/null 2>&1 + then ac_cv_prog_egrep='grep -E' + else ac_cv_prog_egrep='egrep' + fi +fi +echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 +echo "${ECHO_T}$ac_cv_prog_egrep" >&6 + EGREP=$ac_cv_prog_egrep + + +echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_header_stdc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_header_stdc=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + exit(2); + exit (0); +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6 +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. + + + + + + + + + +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_Header=no" +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +if test "${ac_cv_header_getopt_h+set}" = set; then + echo "$as_me:$LINENO: checking for getopt.h" >&5 +echo $ECHO_N "checking for getopt.h... $ECHO_C" >&6 +if test "${ac_cv_header_getopt_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_getopt_h" >&5 +echo "${ECHO_T}$ac_cv_header_getopt_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking getopt.h usability" >&5 +echo $ECHO_N "checking getopt.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking getopt.h presence" >&5 +echo $ECHO_N "checking getopt.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: getopt.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: getopt.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: getopt.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: getopt.h: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------ ## +## Report this to bug-autoconf@gnu.org. ## +## ------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; + no:yes ) + { echo "$as_me:$LINENO: WARNING: getopt.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: getopt.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: getopt.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: getopt.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: getopt.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: getopt.h: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------ ## +## Report this to bug-autoconf@gnu.org. ## +## ------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for getopt.h" >&5 +echo $ECHO_N "checking for getopt.h... $ECHO_C" >&6 +if test "${ac_cv_header_getopt_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_getopt_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_getopt_h" >&5 +echo "${ECHO_T}$ac_cv_header_getopt_h" >&6 + +fi +if test $ac_cv_header_getopt_h = yes; then + : +else + NO_GETOPT=-DNO_GETOPT;GETOPT_O=compat/getopt.o +fi + + +if test "${ac_cv_header_paper_h+set}" = set; then + echo "$as_me:$LINENO: checking for paper.h" >&5 +echo $ECHO_N "checking for paper.h... $ECHO_C" >&6 +if test "${ac_cv_header_paper_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_paper_h" >&5 +echo "${ECHO_T}$ac_cv_header_paper_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking paper.h usability" >&5 +echo $ECHO_N "checking paper.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking paper.h presence" >&5 +echo $ECHO_N "checking paper.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: paper.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: paper.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: paper.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: paper.h: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------ ## +## Report this to bug-autoconf@gnu.org. ## +## ------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; + no:yes ) + { echo "$as_me:$LINENO: WARNING: paper.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: paper.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: paper.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: paper.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: paper.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: paper.h: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------ ## +## Report this to bug-autoconf@gnu.org. ## +## ------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for paper.h" >&5 +echo $ECHO_N "checking for paper.h... $ECHO_C" >&6 +if test "${ac_cv_header_paper_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_paper_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_paper_h" >&5 +echo "${ECHO_T}$ac_cv_header_paper_h" >&6 + +fi +if test $ac_cv_header_paper_h = yes; then + LIBPAPER=-lpaper +else + NO_LIBPAPER=-DNO_LIBPAPER +fi + + + +for ac_header in unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------ ## +## Report this to bug-autoconf@gnu.org. ## +## ------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; + no:yes ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------ ## +## Report this to bug-autoconf@gnu.org. ## +## ------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=$ac_header_preproc" +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +echo "$as_me:$LINENO: checking for strerror" >&5 +echo $ECHO_N "checking for strerror... $ECHO_C" >&6 +if test "${ac_cv_func_strerror+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char strerror (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ +#ifdef __STDC__ +# include +#else +# include +#endif +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char strerror (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_strerror) || defined (__stub___strerror) +choke me +#else +char (*f) () = strerror; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != strerror; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_strerror=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_func_strerror=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_func_strerror" >&5 +echo "${ECHO_T}$ac_cv_func_strerror" >&6 +if test $ac_cv_func_strerror = yes; then + : +else + NO_STRERROR=-DNO_STRERROR +fi + + +for ac_func in strcasecmp +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 +if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ +#ifdef __STDC__ +# include +#else +# include +#endif +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +{ +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +char (*f) () = $ac_func; +#endif +#ifdef __cplusplus +} +#endif + +int +main () +{ +return f != $ac_func; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_var=no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +echo "$as_me:$LINENO: checking \"for gmake\"" >&5 +echo $ECHO_N "checking \"for gmake\"... $ECHO_C" >&6 +GMAKE=no +${MAKE=make} --version 2> /dev/null | grep GNU > /dev/null && GMAKE=yes +echo "$as_me:$LINENO: result: $GMAKE" >&5 +echo "${ECHO_T}$GMAKE" >&6 +if test "$GMAKE" = "yes"; then + GMAKEDEPEND0='ifeq (.depend,$(wildcard .depend))' + GMAKEDEPEND1='include .depend' + GMAKEDEPEND2='endif' +fi + +echo "$as_me:$LINENO: checking \"if makeinfo can output html\"" >&5 +echo $ECHO_N "checking \"if makeinfo can output html\"... $ECHO_C" >&6 +MAKEINFOHTML=no +${MAKEINFO=makeinfo} --help | grep .--html > /dev/null && MAKEINFOHTML=yes +echo "$as_me:$LINENO: result: $MAKEINFOHTML" >&5 +echo "${ECHO_T}$MAKEINFOHTML" >&6 +if test "$MAKEINFOHTML" = "yes"; then + REMOVEHTMLTAGS="cat" + INFOTOHTML="$MAKEINFO --html" +else + REMOVEHTMLTAGS="sed 's/ifnottex/ifinfo/; s/ifnotinfo/iftex/'" + INFOTOHTML="perl texi2html -monolithic" +fi + + + + + + + + + + + + ac_config_files="$ac_config_files Makefile" +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +{ + (set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; +} | + sed ' + t clear + : clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + : end' >>confcache +if diff $cache_file confcache >/dev/null 2>&1; then :; else + if test -w $cache_file; then + test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" + cat confcache >$cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/; +s/:*\${srcdir}:*/:/; +s/:*@srcdir@:*/:/; +s/^\([^=]*=[ ]*\):*/\1/; +s/:*$//; +s/^[^=]*=[ ]*$//; +}' +fi + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +# +# If the first sed substitution is executed (which looks for macros that +# take arguments), then we branch to the quote section. Otherwise, +# look for a macro that doesn't take arguments. +cat >confdef2opt.sed <<\_ACEOF +t clear +: clear +s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g +t quote +s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g +t quote +d +: quote +s,[ `~#$^&*(){}\\|;'"<>?],\\&,g +s,\[,\\&,g +s,\],\\&,g +s,\$,$$,g +p +_ACEOF +# We use echo to avoid assuming a particular line-breaking character. +# The extra dot is to prevent the shell from consuming trailing +# line-breaks from the sub-command output. A line-break within +# single-quotes doesn't work because, if this script is created in a +# platform that uses two characters for line-breaks (e.g., DOS), tr +# would break. +ac_LF_and_DOT=`echo; echo .` +DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` +rm -f confdef2opt.sed + + +ac_libobjs= +ac_ltlibobjs= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_i=`echo "$ac_i" | + sed 's/\$U\././;s/\.o$//;s/\.obj$//'` + # 2. Add them. + ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + +: ${CONFIG_STATUS=./config.status} +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi + +# Support unset when possible. +if (FOO=FOO; unset FOO) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# Work around bugs in pre-3.0 UWIN ksh. +$as_unset ENV MAIL MAILPATH +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + + +# PATH needs CR, and LINENO needs CR and PATH. +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done + + ;; + esac + # We did not find ourselves, most probably we were run as `sh COMMAND' + # in which case we are not to be found in the path. + if test "x$as_myself" = x; then + as_myself=$0 + fi + if test ! -f "$as_myself"; then + { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 +echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for as_base in sh bash ksh sh5; do + case $as_dir in + /*) + if ("$as_dir/$as_base" -c ' + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | + sed ' + N + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + t loop + s,-$,, + s,^['$as_cr_digits']*\n,, + ' >$as_me.lineno && + chmod +x $as_me.lineno || + { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 +echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensible to this). + . ./$as_me.lineno + # Exit status is that of the last command. + exit +} + + +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +esac + +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.file + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + as_mkdir_p=false +fi + +as_executable_p="test -f" + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" + + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH + +exec 6>&1 + +# Open the log real soon, to keep \$[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. Logging --version etc. is OK. +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX +} >&5 +cat >&5 <<_CSEOF + +This file was extended by $as_me, which was +generated by GNU Autoconf 2.57. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +_CSEOF +echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 +echo >&5 +_ACEOF + +# Files that config.status was made for. +if test -n "$ac_config_files"; then + echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_headers"; then + echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_links"; then + echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_commands"; then + echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS +fi + +cat >>$CONFIG_STATUS <<\_ACEOF + +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTIONS] [FILE]... + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + +Configuration files: +$config_files + +Report bugs to ." +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF +ac_cs_version="\\ +config.status +configured by $0, generated by GNU Autoconf 2.57, + with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" + +Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 +Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." +srcdir=$srcdir +INSTALL="$INSTALL" +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If no file are specified by the user, then we need to provide default +# value. By we need to know if files were specified by the user. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=*) + ac_option=`expr "x$1" : 'x\([^=]*\)='` + ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` + ac_shift=: + ;; + -*) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + *) # This is not an option, so the user has probably given explicit + # arguments. + ac_option=$1 + ac_need_defaults=false;; + esac + + case $ac_option in + # Handling of the options. +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --vers* | -V ) + echo "$ac_cs_version"; exit 0 ;; + --he | --h) + # Conflict between --help and --header + { { echo "$as_me:$LINENO: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + echo "$ac_cs_usage"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + CONFIG_FILES="$CONFIG_FILES $ac_optarg" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + ac_need_defaults=false;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +if \$ac_cs_recheck; then + echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 + exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion +fi + +_ACEOF + + + + + +cat >>$CONFIG_STATUS <<\_ACEOF +for ac_config_target in $ac_config_targets +do + case "$ac_config_target" in + # Handling of arguments. + "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + esac +done + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason to put it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Create a temporary directory, and hook for its removal unless debugging. +$debug || +{ + trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} + +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./confstat$$-$RANDOM + (umask 077 && mkdir $tmp) +} || +{ + echo "$me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } +} + +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF + +# +# CONFIG_FILES section. +# + +# No need to generate the scripts if there are no CONFIG_FILES. +# This happens for instance when ./config.status config.h +if test -n "\$CONFIG_FILES"; then + # Protect against being on the right side of a sed subst in config.status. + sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; + s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF +s,@SHELL@,$SHELL,;t t +s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t +s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t +s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t +s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t +s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t +s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t +s,@exec_prefix@,$exec_prefix,;t t +s,@prefix@,$prefix,;t t +s,@program_transform_name@,$program_transform_name,;t t +s,@bindir@,$bindir,;t t +s,@sbindir@,$sbindir,;t t +s,@libexecdir@,$libexecdir,;t t +s,@datadir@,$datadir,;t t +s,@sysconfdir@,$sysconfdir,;t t +s,@sharedstatedir@,$sharedstatedir,;t t +s,@localstatedir@,$localstatedir,;t t +s,@libdir@,$libdir,;t t +s,@includedir@,$includedir,;t t +s,@oldincludedir@,$oldincludedir,;t t +s,@infodir@,$infodir,;t t +s,@mandir@,$mandir,;t t +s,@build_alias@,$build_alias,;t t +s,@host_alias@,$host_alias,;t t +s,@target_alias@,$target_alias,;t t +s,@DEFS@,$DEFS,;t t +s,@ECHO_C@,$ECHO_C,;t t +s,@ECHO_N@,$ECHO_N,;t t +s,@ECHO_T@,$ECHO_T,;t t +s,@LIBS@,$LIBS,;t t +s,@CC@,$CC,;t t +s,@CFLAGS@,$CFLAGS,;t t +s,@LDFLAGS@,$LDFLAGS,;t t +s,@CPPFLAGS@,$CPPFLAGS,;t t +s,@ac_ct_CC@,$ac_ct_CC,;t t +s,@EXEEXT@,$EXEEXT,;t t +s,@OBJEXT@,$OBJEXT,;t t +s,@RANLIB@,$RANLIB,;t t +s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t +s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t +s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t +s,@INSTALL_DATA@,$INSTALL_DATA,;t t +s,@CPP@,$CPP,;t t +s,@EGREP@,$EGREP,;t t +s,@GETOPT_O@,$GETOPT_O,;t t +s,@NO_GETOPT@,$NO_GETOPT,;t t +s,@NO_LIBPAPER@,$NO_LIBPAPER,;t t +s,@LIBPAPER@,$LIBPAPER,;t t +s,@NO_STRERROR@,$NO_STRERROR,;t t +s,@GMAKEDEPEND0@,$GMAKEDEPEND0,;t t +s,@GMAKEDEPEND1@,$GMAKEDEPEND1,;t t +s,@GMAKEDEPEND2@,$GMAKEDEPEND2,;t t +s,@LIBOBJS@,$LIBOBJS,;t t +s,@LTLIBOBJS@,$LTLIBOBJS,;t t +CEOF + +_ACEOF + + cat >>$CONFIG_STATUS <<\_ACEOF + # Split the substitutions into bite-sized pieces for seds with + # small command number limits, like on Digital OSF/1 and HP-UX. + ac_max_sed_lines=48 + ac_sed_frag=1 # Number of current file. + ac_beg=1 # First line for current file. + ac_end=$ac_max_sed_lines # Line after last line for current file. + ac_more_lines=: + ac_sed_cmds= + while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + else + sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + fi + if test ! -s $tmp/subs.frag; then + ac_more_lines=false + else + # The purpose of the label and of the branching condition is to + # speed up the sed processing (if there are no `@' at all, there + # is no need to browse any of the substitutions). + # These are the two extra sed commands mentioned above. + (echo ':t + /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" + else + ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" + fi + ac_sed_frag=`expr $ac_sed_frag + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_lines` + fi + done + if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat + fi +fi # test -n "$CONFIG_FILES" + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; + esac + + # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. + ac_dir=`(dirname "$ac_file") 2>/dev/null || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dir" + else + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } + + ac_builddir=. + +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac +# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +# absolute. +ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` + + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_builddir$INSTALL ;; + esac + + if test x"$ac_file" != x-; then + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + rm -f "$ac_file" + fi + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + if test x"$ac_file" = x-; then + configure_input= + else + configure_input="$ac_file. " + fi + configure_input=$configure_input"Generated from `echo $ac_file_in | + sed 's,.*/,,'` by configure." + + # First look for the input files in the build tree, otherwise in the + # src tree. + ac_file_inputs=`IFS=: + for f in $ac_file_in; do + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + echo $f;; + *) # Relative + if test -f "$f"; then + # Build tree + echo $f + elif test -f "$srcdir/$f"; then + # Source tree + echo $srcdir/$f + else + # /dev/null tree + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; + esac + done` || { (exit 1); exit 1; } +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF + sed "$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s,@configure_input@,$configure_input,;t t +s,@srcdir@,$ac_srcdir,;t t +s,@abs_srcdir@,$ac_abs_srcdir,;t t +s,@top_srcdir@,$ac_top_srcdir,;t t +s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t +s,@builddir@,$ac_builddir,;t t +s,@abs_builddir@,$ac_abs_builddir,;t t +s,@top_builddir@,$ac_top_builddir,;t t +s,@abs_top_builddir@,$ac_abs_top_builddir,;t t +s,@INSTALL@,$ac_INSTALL,;t t +" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out + rm -f $tmp/stdin + if test x"$ac_file" != x-; then + mv $tmp/out $ac_file + else + cat $tmp/out + rm -f $tmp/out + fi + +done +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF + +{ (exit 0); exit 0; } +_ACEOF +chmod +x $CONFIG_STATUS +ac_clean_files=$ac_clean_files_save + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || { (exit 1); exit 1; } +fi + + + + + + + ac_config_files="$ac_config_files doc/Makefile" +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +{ + (set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; +} | + sed ' + t clear + : clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + : end' >>confcache +if diff $cache_file confcache >/dev/null 2>&1; then :; else + if test -w $cache_file; then + test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" + cat confcache >$cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/; +s/:*\${srcdir}:*/:/; +s/:*@srcdir@:*/:/; +s/^\([^=]*=[ ]*\):*/\1/; +s/:*$//; +s/^[^=]*=[ ]*$//; +}' +fi + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +# +# If the first sed substitution is executed (which looks for macros that +# take arguments), then we branch to the quote section. Otherwise, +# look for a macro that doesn't take arguments. +cat >confdef2opt.sed <<\_ACEOF +t clear +: clear +s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g +t quote +s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g +t quote +d +: quote +s,[ `~#$^&*(){}\\|;'"<>?],\\&,g +s,\[,\\&,g +s,\],\\&,g +s,\$,$$,g +p +_ACEOF +# We use echo to avoid assuming a particular line-breaking character. +# The extra dot is to prevent the shell from consuming trailing +# line-breaks from the sub-command output. A line-break within +# single-quotes doesn't work because, if this script is created in a +# platform that uses two characters for line-breaks (e.g., DOS), tr +# would break. +ac_LF_and_DOT=`echo; echo .` +DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` +rm -f confdef2opt.sed + + +ac_libobjs= +ac_ltlibobjs= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_i=`echo "$ac_i" | + sed 's/\$U\././;s/\.o$//;s/\.obj$//'` + # 2. Add them. + ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + +: ${CONFIG_STATUS=./config.status} +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi + +# Support unset when possible. +if (FOO=FOO; unset FOO) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# Work around bugs in pre-3.0 UWIN ksh. +$as_unset ENV MAIL MAILPATH +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + + +# PATH needs CR, and LINENO needs CR and PATH. +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done + + ;; + esac + # We did not find ourselves, most probably we were run as `sh COMMAND' + # in which case we are not to be found in the path. + if test "x$as_myself" = x; then + as_myself=$0 + fi + if test ! -f "$as_myself"; then + { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 +echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for as_base in sh bash ksh sh5; do + case $as_dir in + /*) + if ("$as_dir/$as_base" -c ' + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | + sed ' + N + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + t loop + s,-$,, + s,^['$as_cr_digits']*\n,, + ' >$as_me.lineno && + chmod +x $as_me.lineno || + { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 +echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensible to this). + . ./$as_me.lineno + # Exit status is that of the last command. + exit +} + + +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +esac + +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.file + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + as_mkdir_p=false +fi + +as_executable_p="test -f" + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" + + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH + +exec 6>&1 + +# Open the log real soon, to keep \$[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. Logging --version etc. is OK. +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX +} >&5 +cat >&5 <<_CSEOF + +This file was extended by $as_me, which was +generated by GNU Autoconf 2.57. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +_CSEOF +echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 +echo >&5 +_ACEOF + +# Files that config.status was made for. +if test -n "$ac_config_files"; then + echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_headers"; then + echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_links"; then + echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_commands"; then + echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS +fi + +cat >>$CONFIG_STATUS <<\_ACEOF + +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTIONS] [FILE]... + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + +Configuration files: +$config_files + +Report bugs to ." +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF +ac_cs_version="\\ +config.status +configured by $0, generated by GNU Autoconf 2.57, + with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" + +Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 +Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." +srcdir=$srcdir +INSTALL="$INSTALL" +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If no file are specified by the user, then we need to provide default +# value. By we need to know if files were specified by the user. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=*) + ac_option=`expr "x$1" : 'x\([^=]*\)='` + ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` + ac_shift=: + ;; + -*) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + *) # This is not an option, so the user has probably given explicit + # arguments. + ac_option=$1 + ac_need_defaults=false;; + esac + + case $ac_option in + # Handling of the options. +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --vers* | -V ) + echo "$ac_cs_version"; exit 0 ;; + --he | --h) + # Conflict between --help and --header + { { echo "$as_me:$LINENO: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + echo "$ac_cs_usage"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + CONFIG_FILES="$CONFIG_FILES $ac_optarg" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + ac_need_defaults=false;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +if \$ac_cs_recheck; then + echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 + exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion +fi + +_ACEOF + + + + + +cat >>$CONFIG_STATUS <<\_ACEOF +for ac_config_target in $ac_config_targets +do + case "$ac_config_target" in + # Handling of arguments. + "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + esac +done + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason to put it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Create a temporary directory, and hook for its removal unless debugging. +$debug || +{ + trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} + +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./confstat$$-$RANDOM + (umask 077 && mkdir $tmp) +} || +{ + echo "$me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } +} + +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF + +# +# CONFIG_FILES section. +# + +# No need to generate the scripts if there are no CONFIG_FILES. +# This happens for instance when ./config.status config.h +if test -n "\$CONFIG_FILES"; then + # Protect against being on the right side of a sed subst in config.status. + sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; + s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF +s,@SHELL@,$SHELL,;t t +s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t +s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t +s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t +s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t +s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t +s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t +s,@exec_prefix@,$exec_prefix,;t t +s,@prefix@,$prefix,;t t +s,@program_transform_name@,$program_transform_name,;t t +s,@bindir@,$bindir,;t t +s,@sbindir@,$sbindir,;t t +s,@libexecdir@,$libexecdir,;t t +s,@datadir@,$datadir,;t t +s,@sysconfdir@,$sysconfdir,;t t +s,@sharedstatedir@,$sharedstatedir,;t t +s,@localstatedir@,$localstatedir,;t t +s,@libdir@,$libdir,;t t +s,@includedir@,$includedir,;t t +s,@oldincludedir@,$oldincludedir,;t t +s,@infodir@,$infodir,;t t +s,@mandir@,$mandir,;t t +s,@build_alias@,$build_alias,;t t +s,@host_alias@,$host_alias,;t t +s,@target_alias@,$target_alias,;t t +s,@DEFS@,$DEFS,;t t +s,@ECHO_C@,$ECHO_C,;t t +s,@ECHO_N@,$ECHO_N,;t t +s,@ECHO_T@,$ECHO_T,;t t +s,@LIBS@,$LIBS,;t t +s,@CC@,$CC,;t t +s,@CFLAGS@,$CFLAGS,;t t +s,@LDFLAGS@,$LDFLAGS,;t t +s,@CPPFLAGS@,$CPPFLAGS,;t t +s,@ac_ct_CC@,$ac_ct_CC,;t t +s,@EXEEXT@,$EXEEXT,;t t +s,@OBJEXT@,$OBJEXT,;t t +s,@RANLIB@,$RANLIB,;t t +s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t +s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t +s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t +s,@INSTALL_DATA@,$INSTALL_DATA,;t t +s,@CPP@,$CPP,;t t +s,@EGREP@,$EGREP,;t t +s,@GETOPT_O@,$GETOPT_O,;t t +s,@NO_GETOPT@,$NO_GETOPT,;t t +s,@NO_LIBPAPER@,$NO_LIBPAPER,;t t +s,@LIBPAPER@,$LIBPAPER,;t t +s,@NO_STRERROR@,$NO_STRERROR,;t t +s,@GMAKEDEPEND0@,$GMAKEDEPEND0,;t t +s,@GMAKEDEPEND1@,$GMAKEDEPEND1,;t t +s,@GMAKEDEPEND2@,$GMAKEDEPEND2,;t t +s,@LIBOBJS@,$LIBOBJS,;t t +s,@LTLIBOBJS@,$LTLIBOBJS,;t t +s,@MAKEINFO@,$MAKEINFO,;t t +s,@REMOVEHTMLTAGS@,$REMOVEHTMLTAGS,;t t +s,@INFOTOHTML@,$INFOTOHTML,;t t +CEOF + +_ACEOF + + cat >>$CONFIG_STATUS <<\_ACEOF + # Split the substitutions into bite-sized pieces for seds with + # small command number limits, like on Digital OSF/1 and HP-UX. + ac_max_sed_lines=48 + ac_sed_frag=1 # Number of current file. + ac_beg=1 # First line for current file. + ac_end=$ac_max_sed_lines # Line after last line for current file. + ac_more_lines=: + ac_sed_cmds= + while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + else + sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + fi + if test ! -s $tmp/subs.frag; then + ac_more_lines=false + else + # The purpose of the label and of the branching condition is to + # speed up the sed processing (if there are no `@' at all, there + # is no need to browse any of the substitutions). + # These are the two extra sed commands mentioned above. + (echo ':t + /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" + else + ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" + fi + ac_sed_frag=`expr $ac_sed_frag + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_lines` + fi + done + if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat + fi +fi # test -n "$CONFIG_FILES" + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; + esac + + # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. + ac_dir=`(dirname "$ac_file") 2>/dev/null || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dir" + else + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } + + ac_builddir=. + +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac +# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +# absolute. +ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` + + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_builddir$INSTALL ;; + esac + + if test x"$ac_file" != x-; then + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + rm -f "$ac_file" + fi + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + if test x"$ac_file" = x-; then + configure_input= + else + configure_input="$ac_file. " + fi + configure_input=$configure_input"Generated from `echo $ac_file_in | + sed 's,.*/,,'` by configure." + + # First look for the input files in the build tree, otherwise in the + # src tree. + ac_file_inputs=`IFS=: + for f in $ac_file_in; do + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + echo $f;; + *) # Relative + if test -f "$f"; then + # Build tree + echo $f + elif test -f "$srcdir/$f"; then + # Source tree + echo $srcdir/$f + else + # /dev/null tree + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; + esac + done` || { (exit 1); exit 1; } +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF + sed "$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s,@configure_input@,$configure_input,;t t +s,@srcdir@,$ac_srcdir,;t t +s,@abs_srcdir@,$ac_abs_srcdir,;t t +s,@top_srcdir@,$ac_top_srcdir,;t t +s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t +s,@builddir@,$ac_builddir,;t t +s,@abs_builddir@,$ac_abs_builddir,;t t +s,@top_builddir@,$ac_top_builddir,;t t +s,@abs_top_builddir@,$ac_abs_top_builddir,;t t +s,@INSTALL@,$ac_INSTALL,;t t +" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out + rm -f $tmp/stdin + if test x"$ac_file" != x-; then + mv $tmp/out $ac_file + else + cat $tmp/out + rm -f $tmp/out + fi + +done +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF + +{ (exit 0); exit 0; } +_ACEOF +chmod +x $CONFIG_STATUS +ac_clean_files=$ac_clean_files_save + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || { (exit 1); exit 1; } +fi + + diff --git a/barcode-0.98/configure.in.dist b/barcode-0.98/configure.in.dist new file mode 100644 index 00000000..07120b48 --- /dev/null +++ b/barcode-0.98/configure.in.dist @@ -0,0 +1,65 @@ +dnl Process this file with autoconf to produce a configure script. + +AC_INIT(barcode.h) +AC_PREREQ(2.12) + +AC_PROG_CC +AC_PROG_RANLIB +AC_PROG_INSTALL + +dnl Add "-Wall" if this is gcc +if test x$GCC = xyes; then + CFLAGS="$CFLAGS -Wall" +fi + + +dnl Check for getopt and libpaper. If getopt is missing, use our version +AC_CHECK_HEADER(getopt.h, ,NO_GETOPT=-DNO_GETOPT;GETOPT_O=compat/getopt.o) +AC_CHECK_HEADER(paper.h, LIBPAPER=-lpaper, NO_LIBPAPER=-DNO_LIBPAPER) +AC_CHECK_HEADERS(unistd.h) + +AC_CHECK_FUNC(strerror, , NO_STRERROR=-DNO_STRERROR) +AC_CHECK_FUNCS(strcasecmp) + +dnl Check if this is gmake, but allow ovverriding using $MAKE +AC_MSG_CHECKING("for gmake") +GMAKE=no +${MAKE=make} --version 2> /dev/null | grep GNU > /dev/null && GMAKE=yes +AC_MSG_RESULT($GMAKE) +if test "$GMAKE" = "yes"; then + GMAKEDEPEND0='ifeq (.depend,$(wildcard .depend))' + GMAKEDEPEND1='include .depend' + GMAKEDEPEND2='endif' +fi + +dnl Check if we use makeinfo or the local texi2html tool +AC_MSG_CHECKING("if makeinfo can output html") +MAKEINFOHTML=no +${MAKEINFO=makeinfo} --help | grep .--html > /dev/null && MAKEINFOHTML=yes +AC_MSG_RESULT($MAKEINFOHTML) +if test "$MAKEINFOHTML" = "yes"; then + REMOVEHTMLTAGS="cat" + INFOTOHTML="$MAKEINFO --html" +else + REMOVEHTMLTAGS="sed 's/ifnottex/ifinfo/; s/ifnotinfo/iftex/'" + INFOTOHTML="perl texi2html -monolithic" +fi + + +AC_SUBST(GETOPT_O) +AC_SUBST(NO_GETOPT) +AC_SUBST(NO_LIBPAPER) +AC_SUBST(LIBPAPER) +AC_SUBST(NO_STRERROR) +AC_SUBST(GMAKEDEPEND0) +AC_SUBST(GMAKEDEPEND1) +AC_SUBST(GMAKEDEPEND2) + +AC_OUTPUT(Makefile) + +AC_SUBST(MAKEINFO) +AC_SUBST(REMOVEHTMLTAGS) +AC_SUBST(INFOTOHTML) + +AC_OUTPUT(doc/Makefile) + diff --git a/barcode-0.98/contrib/barcode-SVG.tar.gz b/barcode-0.98/contrib/barcode-SVG.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..69df9562ce09785778516c0fb6a73a8d2181eda5 GIT binary patch literal 2880 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 literal 0 HcmV?d00001 diff --git a/barcode-0.98/contrib/barcode-SVG.tar.gz.README b/barcode-0.98/contrib/barcode-SVG.tar.gz.README new file mode 100644 index 00000000..1608ebaf --- /dev/null +++ b/barcode-0.98/contrib/barcode-SVG.tar.gz.README @@ -0,0 +1,24 @@ + +[readme written by GNU-barcode maintainer] + +This is a stripped version of what you can find at: + http://www.onefour.net/barcode/SVG/barcode097-SVG.tar.gz + +It's by David J. Humphreys, it's GPL code and the original tarball +(as per the previous URL) contains: + +-rwxr--r-- david/david 243 2002-01-02 04:18:00 Makefile +-rwxr--r-- david/david 1284 2002-01-08 00:26:42 main.c +-rwxr--r-- david/david 37796 2002-01-02 04:33:00 screen1.png +-rwxr--r-- david/david 5503 2002-01-08 00:30:00 svg.c +-rwxr--r-- david/david 2499 2002-01-02 03:37:00 test1.svg +-rwxr--r-- david/david 2499 2002-01-02 03:44:00 test2.svg +-rwxr--r-- david/david 2499 2002-01-02 03:49:00 test3.svg +-rwxr--r-- david/david 34185 2002-01-02 04:41:00 test4.png +-rwxr--r-- david/david 1834 2002-01-02 04:19:00 test4.svg +-rwxr--r-- david/david 92713 2002-01-02 04:36:00 transformation.png +-rwxr--r-- david/david 586 2002-01-02 04:11:00 transformation.svg + +Here I only included Makefile, main.c, svg.c, after converting +newlines to unix-style and changing permissions. + diff --git a/barcode-0.98/contrib/barcode-for-delphi.tar.gz b/barcode-0.98/contrib/barcode-for-delphi.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..cbc8e67693f6a90df86e6aafb2debb625321e861 GIT binary patch literal 19010 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 literal 0 HcmV?d00001 diff --git a/barcode-0.98/contrib/barcode-for-delphi.tar.gz.README b/barcode-0.98/contrib/barcode-for-delphi.tar.gz.README new file mode 100644 index 00000000..36d216d7 --- /dev/null +++ b/barcode-0.98/contrib/barcode-for-delphi.tar.gz.README @@ -0,0 +1,10 @@ + +The barcode-for-delphi tarball includes a version of this package +ported to run under Delphi. Please note that you can't distribute the +executable because of the GPL (i.e., disitributing it would be +copyright violation, because the executable is a derived work of GNU +barcode, whose authors don't allow distributing under non-GPL terms. + +I still think it may be useful to some users. + +The code has been contributed by Michael Geddes . diff --git a/barcode-0.98/contrib/barcodeps-0.1.tgz b/barcode-0.98/contrib/barcodeps-0.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..1dadb1c6a6dc085cee750585295ea63d06b5e056 GIT binary patch literal 2036 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 UE&rB({{nyi7cfXlfdG&J0B5`&mH+?% literal 0 HcmV?d00001 diff --git a/barcode-0.98/contrib/grab-0.0.4.tar.gz.README b/barcode-0.98/contrib/grab-0.0.4.tar.gz.README new file mode 100644 index 00000000..4a048075 --- /dev/null +++ b/barcode-0.98/contrib/grab-0.0.4.tar.gz.README @@ -0,0 +1,13 @@ + +The purpose of this program is to read a (scanned) image containing a +barcode. The image is then interpreted and the barcode is decoded. +The decoded string is outputted to stdout. + +Currently, only Code-128 is supported. + +The program is GPL'd and it's the work of Tuukka Toivonen. + +The home page for this and other programs by Tuukka is + http://www.ee.oulu.fi/~tuukkat/releases.html +while a bare ls-like listing of all packages is at + http://www.ee.oulu.fi/~tuukkat/rel/ diff --git a/barcode-0.98/debian/README.debian b/barcode-0.98/debian/README.debian new file mode 100644 index 00000000..7223023a --- /dev/null +++ b/barcode-0.98/debian/README.debian @@ -0,0 +1,9 @@ +The Debian Package barcode +---------------------------- + +This Debian package is integrated in the upstream release of GNU +barcode, maintained by Alessandro Rubini (rubini@gnu.org, +rubini@prosa.it). Since I have no extended experience with Debian +packages, I'm willing to accept any fixes that seem fit, as well as a +real Debian maintainer for the Debian package. + diff --git a/barcode-0.98/debian/changelog b/barcode-0.98/debian/changelog new file mode 100644 index 00000000..b43e686f --- /dev/null +++ b/barcode-0.98/debian/changelog @@ -0,0 +1,27 @@ +barcode (0.98) unstable; urgency=low + + * New upstream release + + -- Alessandro Rubini Fri, 1 Mar 2002 23:04:14 +0100 + +barcode (0.96) unstable; urgency=low + + * New upstream release + + -- Alessandro Rubini Wed, 8 Nov 2000 18:29:18 +0200 + +barcode (0.95) unstable; urgency=low + + * New upstream release + + -- Alessandro Rubini Thu, 3 Feb 2000 21:16:59 +0200 + +barcode (0.94) unstable; urgency=low + + * Initial Release. + + -- Alessandro Rubini Sun, 24 Oct 1999 01:10:23 +0200 + +Local variables: +mode: debian-changelog +End: diff --git a/barcode-0.98/debian/control b/barcode-0.98/debian/control new file mode 100644 index 00000000..aacbfd49 --- /dev/null +++ b/barcode-0.98/debian/control @@ -0,0 +1,14 @@ +Source: barcode +Section: misc +Priority: optional +Maintainer: Alessandro Rubini +Standards-Version: 2.5.0 + +Package: barcode +Architecture: any +Depends: ${shlibs:Depends} +Description: Creates barcodes in .ps format + GNU barcode can create printouts for the conventional + product packagging standards: UPC-A, UPC-E, EAN-13, EAN-8, ISBN, code 39 + code 128 (b and c), and interleaved 2 of 5 . Ouput is generated as + either Postscript or Encapsulated Postscript. diff --git a/barcode-0.98/debian/copyright b/barcode-0.98/debian/copyright new file mode 100644 index 00000000..c193af2c --- /dev/null +++ b/barcode-0.98/debian/copyright @@ -0,0 +1,8 @@ +This package was written by Alessandro Rubini rubini@gnu.org on Sun, 24 Oct 1999 01:10:23 +0200. + +The pristine source can be downloaded from ftp://ftp.gnu.org/pub/barcode +and GNU mirrors. Latest and greatest version (also beta) are immediately +uploaded to ftp://ftp.prosa.it/pub/software. + +Copyright: GPL (see /usr/doc/copyright/GPL) + diff --git a/barcode-0.98/debian/dirs b/barcode-0.98/debian/dirs new file mode 100644 index 00000000..6822e402 --- /dev/null +++ b/barcode-0.98/debian/dirs @@ -0,0 +1,3 @@ +usr/bin +usr/include +usr/info diff --git a/barcode-0.98/debian/info b/barcode-0.98/debian/info new file mode 100644 index 00000000..18336bfb --- /dev/null +++ b/barcode-0.98/debian/info @@ -0,0 +1,15 @@ +# This is a configuration files for installing a .info menu +# The Description to be placed into the directory +DESCR="Barcode library and frontend" + +# The section this info file should be placed in (Regexp) followed by +# the new section name to be created if the Regexp does not match +# (Optional. If not given the .info will be appended to the directory) +SECTION_MATCH="[cC]ommands" +SECTION_NAME="General Commands" + +# The file referred to from the Info directory +FILE=barcode.info + +# Optional. The files to be copied to /usr/info +FILES=doc/*.info diff --git a/barcode-0.98/debian/rules b/barcode-0.98/debian/rules new file mode 100755 index 00000000..c48c5a1c --- /dev/null +++ b/barcode-0.98/debian/rules @@ -0,0 +1,50 @@ +#!/usr/bin/make -f +# Made with the aid of debmake, by Christoph Lameter, +# based on the sample debian/rules file for GNU hello by Ian Jackson. + +package=barcode + +build: + $(checkdir) + ./configure --prefix=/usr + $(MAKE) CFLAGS="-O2 -g -Wall" + touch build + +clean: + $(checkdir) + -rm -f build + -$(MAKE) distclean + -rm -f `find . -name "*~"` + -rm -rf debian/tmp debian/files* core debian/substvars + +binary-indep: checkroot build + $(checkdir) +# There are no architecture-independent files to be uploaded +# generated by this package. If there were any they would be +# made here. + +binary-arch: checkroot build + $(checkdir) + -rm -rf debian/tmp + install -d debian/tmp + cd debian/tmp && install -d `cat ../dirs` + $(MAKE) install prefix=`pwd`/debian/tmp/usr +# Must have debmake installed for this to work. Otherwise please copy +# /usr/bin/debstd into the debian directory and change debstd to debian/debstd + debstd ChangeLog README TODO INSTALL + dpkg-gencontrol + chown -R root.root debian/tmp + chmod -R go=rX debian/tmp + dpkg --build debian/tmp .. + +define checkdir + test -f debian/rules +endef + +binary: binary-indep binary-arch + +checkroot: + $(checkdir) + test root = "`whoami`" + +.PHONY: binary binary-arch binary-indep clean checkroot diff --git a/barcode-0.98/doc/Makefile.in b/barcode-0.98/doc/Makefile.in new file mode 100644 index 00000000..dae8f6b6 --- /dev/null +++ b/barcode-0.98/doc/Makefile.in @@ -0,0 +1,135 @@ +# +# Makefile (now .in) for the documentation directory +# +# Copyright 1994,2000 rubini@gnu.org (Alessandro Rubini) +# +################# +# +# BE CAREFUL in editing: +# due to the large number of index files, and my use of a non standard +# info input file, any file $(TARGET).* is removed by "make clean" +# +# I chose to use a prefix for the input file ("doc.$(TARGET)"), to ease +# makeing clean and applying my own rules. +# +################################################################### +# +# First of all, retrieve features of makeinfo, to know if we can do images +# and --html. Also, allow MAKEINFO to be specified on the commandline to +# allow me testing with various versions. + +# NOTE: it looks like semi-old versions can do images too, so CANDOIMAGES +# is not (yet?) used + + +MAKEINFO = @MAKEINFO@ +# According to whether this makeinfo can output html, autoconf define these +REMOVEHTMLTAGS = @REMOVEHTMLTAGS@ +INFOTOHTML = @INFOTOHTML@ + +############################################## + + +TARGET = barcode +ALL = $(TARGET).ps $(TARGET).info $(TARGET)doc.txt $(TARGET).html \ + $(TARGET).pdf + +all: $(ALL) terse + +info: $(TARGET).info + +$(TARGET)doc.txt: mktxt + +mpage: all + mv $(TARGET).ps $(TARGET)1.ps + mpage -2A $(TARGET)1.ps > $(TARGET)2.ps && rm $(TARGET)1.ps + +terse: + # preserve the pdf copy + -mv -f $(TARGET).pdf PDF 2> /dev/null && \ + rm -f *~ *.dvi *.log *.aux \ + $(TARGET).*.bak $(TARGET).??? $(TARGET).texinfo && \ + mv PDF $(TARGET).pdf; + + # preserve the ps copy + -mv $(TARGET).ps PS; + -rm -f $(TARGET).??; + -mv PS $(TARGET).ps; + +clean: terse + rm -f $(ALL) $(TARGET)_toc.html + + +#################################################### + +# These rules used to be expressed as "%.texinfo: doc.%" etc. However, this +# is gmake-specific, so I turned every % to $(TARGET), thus loosing generality +# but gaining portability. I also had to drop "$^": it worked with gmake +# and not pmake, while "$<" worked with pmake and not gmake. +# with gmake and not pmake. +# ARub 2000-04-21 + +$(TARGET).texinfo: doc.$(TARGET) + @rm -f $@ 2> /dev/null + sed -f ./infofilter doc.$(TARGET) | $(REMOVEHTMLTAGS) > $@ + chmod 400 $@ + + +# This rule is somewhat a rewrite of texi2dvi. I like make more than sh :-) +# This had to be rewritten too, as "$*" is different in gmake and pmake + +$(TARGET).dvi: $(TARGET).texinfo + +# create a spurious index file to please silly sh (bash will work anyway) + touch $(TARGET).oo + +# get the index list + if test "x`ls $(TARGET).?? $(TARGET).aux`" != "x"; then \ + for i in `ls $(TARGET).?? $(TARGET).aux`; do \ + cp $$i $$i~; \ + done; \ + fi + tex $(TARGET).texinfo + +#check the file list, the file and if needed run TeX again + old="`ls $(TARGET).??~ $(TARGET).aux~ | sed 's/~//g'`"; \ + new="`ls $(TARGET).?? $(TARGET).aux`"; \ + need="n"; \ + if test "$$old" != "$$new"; then need="y"; \ + else \ + for i in `ls $(TARGET).?? $(TARGET).aux`; do \ + cmp -s $$i $$i~; if test $$? -ne 0; then need="y" break; fi; \ + done; \ + fi; \ + if test "$$need" = "y"; then \ + texindex $(TARGET).?? && tex $(TARGET).texinfo; \ + fi + + +$(TARGET).ps: $(TARGET).dvi + dvips -f $(TARGET).dvi > $@ + +$(TARGET).pdf: $(TARGET).ps + ps2pdf $(TARGET).ps > $@ + +$(TARGET).lj: $(TARGET).dvi + dvilj -e- $(TARGET).dvi > $@ + +$(TARGET).info: $(TARGET).texinfo + makeinfo $(TARGET).texinfo -o $@ + +$(TARGET).html: $(TARGET).texinfo + $(INFOTOHTML) -o $@ $< + +#$(TARGET).man: doc.$(TARGET) +# manpages are created by the toplevel Makefile + +$(TARGET)doc.txt: $(TARGET).info + awk -f ./mktxt $(TARGET).info > $@ + + + + + + + diff --git a/barcode-0.98/doc/README b/barcode-0.98/doc/README new file mode 100644 index 00000000..5af5490f --- /dev/null +++ b/barcode-0.98/doc/README @@ -0,0 +1,5 @@ + +The input file is "doc.barcode". I preprocess this file to +build both a "barcode.texinfo" file and manual pages. + +The intermediat diff --git a/barcode-0.98/doc/barcode.info b/barcode-0.98/doc/barcode.info new file mode 100644 index 00000000..66b59d06 --- /dev/null +++ b/barcode-0.98/doc/barcode.info @@ -0,0 +1,747 @@ +This is barcode.info, produced by makeinfo version 4.0b from +barcode.texinfo. + + This file is the User's Manual for the barcode library (version +0.98). + + +File: barcode.info, Node: Top, Next: Overview, Prev: (dir), Up: (dir) + +Barcode tools +************* + + This file documents version 0.98 of the barcode library and sample +programs (March 2002). + +* Menu: + +* Overview:: +* The Barcode Object:: +* Supported Flags:: +* The API:: +* The barcode Executable:: +* Supported Encodings:: +* PCL Output:: +* Bugs and Pending Issues:: + + +File: barcode.info, Node: Overview, Next: The Barcode Object, Prev: Top, Up: Top + +Overview +******** + + The "barcode" package is mainly a C library for creating bar-code +output files. It also includes a command line front-end and (in a +foreseeable future) a graphic frontend. + + The package is designed as a library because we think the main use +for barcode-generation tools is inside more featured applications. The +library addresses bar code printing as two distinct problems: creation +of bar information and actual conversion to an output format. To this +aim we use an intermediate representation for bar codes, which is +currently documented in the `ps.c' source file (not in this document). + + Note that the library and the accompanying material is released +according to the GPL license, not the LGPL one. A copy of the GPL is +included in the distribution tarball. + + +File: barcode.info, Node: The Barcode Object, Next: Supported Flags, Prev: Overview, Up: Top + +The Underlying Data Structure +***************************** + + Every barcode-related function acts on a data structure defined in +the `barcode.h' header, which must be included by any C source file +that uses the library. The header is installed by make install. + + The definition of the data structure is included here for reference: + + struct Barcode_Item { + int flags; /* type of encoding and other flags */ + char *ascii; /* malloced */ + char *partial; /* malloced too */ + char *textinfo; /* information about text placement */ + char *encoding; /* code name, filled by encoding engine */ + int width, height; /* output units */ + int xoff, yoff; /* output units */ + int margin; /* output units */ + double scalef; /* requested scaling for barcode */ + int error; /* an errno-like value, in case of failure */ + }; + + The exact meaning of each field and the various flags implemented are +described in the following sections. + + Even though you won't usually need to act on the contents of this +structure, some of the functions in the library receive arguments that +are directly related to one or more of these fields. + +* Menu: + +* The Field List:: +* The Intermediate Representation:: + + +File: barcode.info, Node: The Field List, Next: The Intermediate Representation, Prev: The Barcode Object, Up: The Barcode Object + +The Fields +========== + +`int flags;' + The flags are, as you may suspect, meant to specify the exact + behaviour of the library. They are often passed as an argument to + barcode functions and are discussed in the next section. + +`char *ascii;' +`char *partial;' +`char *textinfo;' +`char *encoding;' + These fields are internally managed by the library, and you are + not expected to touch them if you use the provided API. All of + them are allocated with malloc. + +`int width;' +`int height;' + They specify the width and height of the active barcode region + (i.e., excluding the white margin), in the units used to create + output data (for postscript they are points, 1/72th of an inch, + 0.352 mm). The fields can be either assigned to in the structure + or via Barcode_Position(), at your choice. If either value or + both are left to their default value of zero, the output engine + will assign default values according to the specified scaling + factor. If the specified width is bigger than needed (according to + the scaling factor), the output barcode will be centered in its + requested region. If either the width of the height are too small + for the specified scale factor, the output bar code will expand + symmetrically around the requested region. + +`int xoff;' +`int yoff;' + The fields specify offset from the coordinate origin of the output + engine (for postscript, position 0,0 is the lower left corner of + the page). The fields can be either assigned to in the structure + or via Barcode_Position(), at your choice. The offset specifies + where the white margin begins, not where the first bar will be + printed. To print real ink to the specified position you should + set margin to 0. + +`int margin;' + The white margin that will be left around the printed area of the + bar code. The same margin is applied to all sides of the printed + area. The default value for the margin is defined in `barcode.h' + as BARCODE_DEFAULT_MARGIN (10). + +`double scalef;' + The enlarge or shrink value for the bar code over its default + dimension. The width and scalef fields interact deeply in the + creation of the output, and a complete description of the issues + appears later in this section. + +`int error;' + The field is used when a barcode function fails to host an + errno-like integer value. + +Use of the width and scalef fields. +----------------------------------- + + A width unit is the width of the thinnest bar and/or space in the +chosen code; it defaults to 1 point if the output is postscript or +encapsulated postscript. + + Either or both the code width and the scale factor can be left +unspecified (i.e., zero). The library deals with defaults in the +following way: + +Both unspecified + If both the width and the scale factor are unspecified, the scale + factor will default to 1.0 and the width is calculated according + to the actual width of the bar code being printed. + +Width unspecified + If the width is not specified, it is calculated according to the + values of scalef. + +Scale factor unspecified + If the scale factor is not specified, it will be chosen so that + the generated bar code exactly fits the specified width. + +Both specified + The code will be printed inside the specified region according to + the specified scale factor. It will be aligned to the left. If, + however, the chosen width is too small for the specific bar code + and scaling factor, then the code will extend symmetrically to the + left and to the right of the chosen region. + + +File: barcode.info, Node: The Intermediate Representation, Prev: The Field List, Up: The Barcode Object + +The Intermediate Representation +=============================== + + The encoding functions print their output into the partial and +texinfo fields of the barcode data structure. Those fields, together +with position information, are then used to generate actual output. +This is an informal description of the intermediate format. + + The first char in partial tells how much extra space to add to the +left of the bars. For EAN-13, it is used to leave space to print the +first digit, other codes may have '0' for no-extra-space-needed. + + The next characters are alternating bars and spaces, as multiples of +the base dimension which is 1 unless the code is rescaled. Rescaling is +calculated as the ratio from the requested width and the calculated +width. Digits represent bar/space dimensions. Lower-case letters +represent those bars that should extend lower than the others: 'a' is +equivalent to '1', 'b' is '2' and so on up to 'i' which is equivalent to +'9'. Other letters will be used for encoding-specific meanings, as soon +as I implement them. + + The textinfo string is made up of fields %lf:%lf:%c separated by +blank space. The first integer is the x position of the character, the +second is the font size (before rescaling) and the char item is the +character to be printed. + + Both the partial and textinfo strings may include "-" or "+" as +special characters (in textinfo the char should be a stand-alone word). +They state where the text should be printed: below the bars ("-", +default) or above the bars. This is used, for example, to print the +add-5 and add-2 codes to the right of UPC or EAN codes (the add-5 +extension is mostly used in ISBN codes). + + +File: barcode.info, Node: Supported Flags, Next: The API, Prev: The Barcode Object, Up: Top + +The Flags +********* + + The following flags are supported by version 0.98 of the library: + +`BARCODE_ENCODING_MASK' + The mask is used to extract the encoding-type identifier from the + flags field. + +`BARCODE_EAN' +`BARCODE_UPC' +`BARCODE_ISBN' +`BARCODE_128B' +`BARCODE_128C' +`BARCODE_128' +`BARCODE_128RAW' +`BARCODE_39' +`BARCODE_I25' +`BARCODE_CBR' +`BARCODE_MSI' +`BARCODE_PLS' +`BARCODE_93' + The currently supported encoding types: EAN (13 digits, 8 digits, + 13 + 2 add-on and 13 + 5 add-on), UPC (UPC-A, UPC-E, UPC-A with 2 + or 5 digit add-on), ISBN (with or without the 5-digit add-on), + CODE128-B (the whole set of printable ASCII characters), CODE128-C + (two digits encoded by each barcode symbol), CODE128 (all ASCII + values), a "raw-input" pseudo-code that generates CODE128 output, + CODE39 (alphanumeric), "interleaved 2 of 5" (numeric), Codabar + (numeric plus a few symbols), MSI (numeric) and Plessey (hex + digits). *Note Supported Encodings::. + +`BARCODE_ANY' + This special encoding type (represented by a value of zero, so it + will be the default) tells the encoding procedure to look for the + first encoding type that can deal with a textual string. + Therefore, a 11-digit code will be printed as UPC (as well as + 6-digit, 11+2 and 11+5), a 12-digit (or 7-digit, or 12+2 or 12+5) + as EAN13, an ISBN code (with or without hyphens, with or without + add-5) will be encoded in its EAN13 representation, an even number + of digits is encoded using CODE128C and a generic string is + encoded using CODE128B. Since code-39 offers a much larger + representation for the same text string, code128-b is preferred + over code39 for alphanumeric strings. + +`BARCODE_NO_ASCII' + Instructs the engine not to print the ascii string on output. By + default the bar code is accompanied with an ascii version of the + text it encodes. + +`BARCODE_NO_CHECKSUM' + Instructs the engine not to add the checksum character to the + output. Not all the encoding types can drop the checksum; those + where the checksum is mandatory (like EAN and UPC) just ignore the + flag. + +`BARCODE_OUTPUT_MASK' + The mask is used to extract the output-type identifier from the + flags field. + +`BARCODE_OUT_PS' +`BARCODE_OUT_EPS' +`BARCODE_OUT_PCL' +`BARCODE_OUT_PCL_III' + The currently supported encoding types: full-page postscript and + encapsulated postscript; PCL (print command language, for HP + printers) and PCL-III (same as PCL, but uses a font not available + on older printers). + +`BARCODE_OUT_NOHEADERS' + The flag instructs the printing engine not to print the header and + footer part of the file. This makes sense for the postscript + engine but might not make sense for other engines; such other + engines will silently ignore the flag just like the PCL back-end + does. + + +File: barcode.info, Node: The API, Next: The barcode Executable, Prev: Supported Flags, Up: Top + +Functions Exported by the Library +********************************* + + The functions included in the barcode library are declared in the +header file barcode.h. They perform the following tasks: + +`struct Barcode_Item *Barcode_Create(char *text);' + The function creates a new barcode object to deal with a specified + text string. It returns NULL in case of failure and a pointer to + a barcode data structure in case of success. + +`int Barcode_Delete(struct Barcode_Item *bc);' + Destroy a barcode object. Always returns 0 (success) + +`int Barcode_Encode(struct Barcode_Item *bc, int flags);' + Encode the text included in the bc object. Valid flags are the + encoding type (other flags are ignored) and BARCODE_NO_CHECKSUM + (other flags are silently ignored); if the flag argument is zero, + bc->flags will apply. The function returns 0 on success and -1 in + case of error. After successful termination the data structure + will host the description of the bar code and its textual + representation, after a failure the error field will include the + reason of the failure. + +`int Barcode_Print(struct Barcode_Item *bc, FILE *f, int flags);' + Print the bar code described by bc to the specified file. Valid + flags are the output type, BARCODE_NO_ASCII and + BARCODE_OUT_NOHEADERS, other flags are ignored. If any of these + flags is zero, it will be inherited from bc->flags which therefore + takes precedence. The function returns 0 on success and -1 in case + of error (with bc->error set accordingly). In case of success, the + bar code is printed to the specified file, which won't be closed + after use. + +`int Barcode_Position(struct Barcode_Item *bc, int wid, int hei, int xoff, int yoff, double scalef);' + The function is a shortcut to assign values to the data structure. + +`int Barcode_Encode_and_Print(char *text, FILE *f, int wid, int hei, int xoff, int yoff, int flags);' + The function deals with the whole life of the barcode object by + calling the other functions; it uses all the specified flags. + +`int Barcode_Version(char *versionname);' + Returns the current version as an integer number of the form major + * 10000 + minor * 100 + release. Therefore, version 1.03.5 will be + returned as 10305 and version 0.53 as 5300. If the argument is + non-null, it will be used to return the version number as a + string. Note that the same information is available from two + preprocessor macros: BARCODE_VERSION (the string) and + BARCODE_VERSION_INT (the integer number). + + +File: barcode.info, Node: The barcode Executable, Next: Supported Encodings, Prev: The API, Up: Top + +The barcode frontend program +**************************** + + The barcode program is a front-end to access some features of the +library from the command line. It is able to read user supplied +strings from the command line or a data file (standard input by default) +and encode all of them. + +* Menu: + +* The Command Line:: + + +File: barcode.info, Node: The Command Line, Prev: The barcode Executable, Up: The barcode Executable + +The Command Line +================ + + barcode accepts the following options: + +`--help or -h' + Print a usage summary and exit. + +`-i filename' + Identify a file where strings to be encoded are read from. If + missing (and if -b is not used) it defaults to standard input. + Each data line of the input file will be used to create one + barcode output. + +`-o filename' + Output file. It defaults to standard output. + +`-b string' + Specify a single "barcode" string to be encoded. The option can + be used multiple times in order to encode multiple strings (this + will result in multi-page postscript output or a table of barcodes + if -t is specified). The strings must match the encoding chosen; + if it doesn't match the program will print a warning to stderr and + generate "blank" output (although not zero-length). Please note + that a string including spaces or other special characters must be + properly quoted. + +`-e encoding' + encoding is the name of the chosen encoding format being used. It + defaults to the value of the environment variable BARCODE_ENCODING + or to auto detection if the environment is also unset. + +`-g geometry' + The geometry argument is of the form "[ x ] [+ + + ]" (with no intervening spaces). Unspecified + margin values will result in no margin; unspecified size results + in default size. The specified values represent print points by + default, and can be inches, millimeters or other units according + to the -u option or the BARCODE_UNIT environment variable. The + argument is used to place the printout code on the page. Note that + an additional white margin of 10 points is added to the printout. + If the option is unspecified, BARCODE_GEOMETRY is looked up in the + environment, if missing a default size and no margin (but the + default 10 points) are used. + +`-t table-geometry' + Used to print several barcodes to a single page, this option is + meant to be used to print stickers. The argument is of the form + " x [+ + [- + [- ]]]" (with no intervening spaces); if + missing, the top and right margin will default to be the same as + the bottom and left margin. The margins are specified in print + points or in the chosen unit (see -u below). If the option is not + specified, BARCODE_TABLE is looked up in the environment, + otherwise no table is printed and each barcode will get its own + page. The size (but not the position) of a barcode item within a + table can also be selected using -g (see "geometry" above), + without struggling with external and internal margins. I still + think management of geometries in a table is suboptimal, but I + can't make it better without introducing incompatibilities. + +`-m margin(s)' + Specifies an internal margin for each sticker in the table. The + argument is of the form "," and the margin is + applied symmetrically to the sticker. If unspecified, the + environment variable BARCODE_MARGIN is used or a default internal + margin of 10 points is used. + +`-n' + "Numeric" output: don't print the ASCII form of the code, only the + bars. + +`-c' + No checksum character (for encodings that allow it, like code 39, + other codes, like UPC or EAN, ignore this option). + +`-E' + Encapsulated postscript (default is normal postscript). When the + output is generated as EPS only one barcode is encoded. + +`-P' + PCL output. Please note that the Y direction goes from top to + bottom for PCL, and the origin for an image is the top-left corner + instead of the bottom-left + +`-p pagesize' + Specify a non-default page size. The page size can be specified in + millimeters, inches or plain numbers (for example: "210x297mm", + "8.5x11in", "595x842"). A page specification as numbers will be + interpreted according to the current unit specification (see -u + below). If libpaper is available, you can also specify the page + size with its name, like "A3" or "letter" (libpaper is a standard + component of Debian GNU/Linux, but may be missing elsewhere). The + default page size is your system-wide default if libpaper is + there, A4 otherwise. + +`-u unit' + Choose the unit used in size specifications. Accepted values are + "mm", "cm", "in" and "pt". By default, the program will check + BARCODE_UNIT in the environment, and assume points otherwise (this + behaviour is compatible with 0.92 and previous versions. If -u + appears more than once, each instance will modified the behaviour + for the arguments at its right, as the command line is processes + left to right. The program internally works with points, and any + size is approximated to the nearest multiple of one point. The -u + option affect -g (geometry), -t (table) and -p (page size). + + +File: barcode.info, Node: Supported Encodings, Next: PCL Output, Prev: The barcode Executable, Up: Top + +Supported Encodings +******************* + + The program encodes text strings passed either on the command line +(with -b) or retrieved from standard input. The text representation is +interpreted according to the following rules. When auto-detection of +the encoding is enabled (i.e, no explicit encoding type is specified), +the encoding types are scanned to find one that can digest the text +string. The following list of supported types is sorted in the same +order the library uses when auto-detecting a suitable encoding for a +string. + +EAN + The EAN frontend is similar to UPC; it accepts strings of digits, + 12 or 7 characters long. Strings of 13 or 8 characters are + accepted if the provided checksum digit is correct. I expect most + users to feed input without a checksum, though. The add-2 and + add-5 extension are accepted for both the EAN-13 and the EAN-8 + encodings. The following are example of valid input strings: + "123456789012" (EAN-13), "1234567890128" (EAN-13 wih checksum), + "1234567" (EAN-8), "12345670 12345" (EAN-8 with checksum and + add-5), "123456789012 12" (EAN-13 with add-2), "123456789012 + 12345" (EAN-13 with add-5). + +UPC + The UPC frontend accepts only strings made up of digits (and, if a + supplemental encoding is used, a blank to separate it). It + accepts strings of 11 or 12 digits (UPC-A) and 6 or 7 or 8 digits + (UPC-E). + + The 12th digit of UPC-A is the checksum and is added by the + library if not specified in the input; if it is specified, it must + be the right checksum or the code is rejected as invalid. For + UPC-E, 6 digit are considered to be the middle part of the code, a + leading 0 is assumed and the checksum is added; 7 digits are + either considered the initial part (leading digit 0 or 1, checksum + missing) or the final part (checksum specified, leading 0 + assumed); 8 digits are considered to be the complete code, with + leading 0 or 1 and checksum. For both UPC-A and UPC-E, a trailing + string of 2 digits or 5 digits is accepted as well. Therefore, the + following are examples of valid strings that can be encoded as UPC: + "01234567890" (UPC-A) "012345678905" (UPC-A with checksum), + "012345" (UPC-E), "01234567890 12" (UPC-A, add-2) and "01234567890 + 12345" (UPC-A, add-5), "0123456 12" (UPC-E, add-2). Please note + that when setting BARCODE_ANY to auto-detect the encoding to be + used, 12-digit strings and 7-digit strings will always be + identified as EAN. This because I expect most user to provide + input without a checksum. If you need to specify UPC-with-checksum + as input you must explicitly set BARCODE_UPC as a flag or use -e + upc on the command line. + +ISBN + ISBN numbers are encoded as EAN-13 symbols, with an optional add-5 + trailer. The ISBN frontend of the library accepts real ISBN + numbers and deals with any hyphen and, if present, the ISBN + checksum character before encoding data. Valid representations for + ISBN strings are for example: "1-56592-292-1", "3-89721-122-X" and + "3-89721-122-X 06900". + +CODE 128-B + This encoding can represent all of the printing ASCII characters, + from the space (32) to DEL (127). The checksum digit is mandatory + in this encoding. + +CODE 128-C + The "C" variation of Code-128 uses Code-128 symbols to represent + two digits at a time (Code-128 is made up of 104 symbols whose + interpretation is controlled by the start symbol being used). Code + 128-C is thus the most compact way to represent any even number of + digits. The encoder refuses to deal with an odd number of digits + because the caller is expected to provide proper padding to an + even number of digits. (Since Code-128 includes control symbols to + switch charset, it is theoretically possible to represent the odd + digit as a Code 128-A or 128-B symbol, but this tool doesn't + currently implement this option). + +CODE 128 RAW + Code-128 output represented symbol-by-symbol in the input string. + To override part of the problems outlined below in specifying + code128 symbols, this pseudo-encoding allows the used to specify a + list of code128 symbols separated by spaces. Each symbol is + represented by a number in the range 0-105. The list should + include the leading character.The checksum and the stop character + are automatically added by the library. Most likely this + pseudo-encoding will be used with BARCODE_NO_ASCII and some + external program to supply the printed text. + +CODE 39 + The code-39 standard can encode uppercase letters, digits, the + blank space, plus, minus, dot, star, dollar, slash, percent. Any + string that is only composed of such characters is accepted by the + code-39 encoder. To avoid loosing information, the encoder refuses + to encode mixed-case strings (a lowercase string is nonetheless + accepted as a shortcut, but is encoded as uppercase). + +INTERLEAVED 2 OF 5 + This encoding can only represent an even number of digits (odd + digits are represented by bars, and even digits by the + interleaving spaces). The name stresses the fact that two of the + five items (bars or spaces) allocated to each symbol are wide, + while the rest are narrow. The checksum digit is optional (can be + disabled via BARCODE_NO_CHECKSUM). Since the number of digits, + including the checksum, must be even, a leading zero is inserted + in the string being encoded if needed (this is specifically stated + in the specs I have access to). + +CODE 128 + Automatic selection between alphabet A, B and C of the Code-128 + standard. This encoding can represent all ASCII symbols, from 0 + (NUL) to 127 (DEL), as well as four special symbols, named F1, F2, + F3, F4. The set of symbols available in this encoding is not + easily represented as input to the barcode library, so the + following convention is used. In the input string, which is a + C-language null-terminated string, the NUL char is represented by + the value 128 (0x80, 0200) and the F1-F4 characters are + represented by the values 193-196 (0xc1-0xc4, 0301-0304). The + values have been chosen to ease their representation as escape + sequences. + + Since the shell doesn't seem to interpret escape sequences on the + command line, the "-b" option cannot be easily used to designate + the strings to be encoded. As a workaround you can resort to the + command echo, either within back-ticks or used separately to + create a file that is then fed to the standard-input of barcode - + assuming your echo command processes escape sequences. The + newline character is especially though to encode (but not + impossible unless you use a csh variant. + + These problems only apply to the command-line tool; the use of + library functions doesn't give any problem. In needed, you can use + the "code 128 raw" pseudo-encoding to represent code128 symbols by + their numerical value. This encoding is used late in the + auto-selection mechanism because (almost) any input string can be + represented using code128. + +CODABAR + Codabar can encode the ten digits and a few special symbols + (minus, plus, dollar, colon, bar, dot). The characters "A", "B", + "C" and "D" are used to represent four different start/stop + characters. The input string to the barcode library can include + the start and stop characters or not include them (in which case + "A" is used as start and "B" as stop). Start and stop characters + in the input string can be either all lowercase or all uppercase + and are always printed as uppercase. + +PLESSEY + Plessey barcodes can encode all the hexadecimal digits. Alphabetic + digits in the input string must either be all lowercase or all + uppercase. The output text is always uppercase. + +MSI + MSI can only encode the decimal digits. While the standard + specifies either one or two check digits, the current + implementation in this library only generates one check digit. + +CODE 93 + The code-93 standard can natively encode 48 different characters, + including uppercase letters, digits, the blank space, plus, minus, + dot, star, dollar, slash, percent, as well as five special + characters: a start/stop delimiter and four "shift characters" + used for extended encoding. Using this "extended encoding" + method, any standard 7-bit ASCII character can be encoded, but it + takes up two symbol lengths in barcode if the character is not + natively supported (one of the 48). The encoder here fully + implements the code 93 encoding standard. Any characters natively + supported (A-Z, 0-9, ".+-/$&%") will be encoded as such - for any + other characters (such as lower case letters, brackets, + parentheses, etc.), the encoder will revert to extended encoding. + As a note, the option to exclude the checksum will eliminate the + two modulo-47 checksums (called C and K) from the barcode, but this + probably will make it unreadable by 99% of all scanning systems. + These checksums are specified to be used at the firmware level, + and their absence will be interpreted as an invalid barcode. + + +File: barcode.info, Node: PCL Output, Next: Bugs and Pending Issues, Prev: Supported Encodings, Up: Top + +PCL Output +********** + + While the default output is Postscript (possibly EPS), and Postscript +can be post-processed to almost anything, it is sometimes desirable to +create output directly usable by the specific printer at hand. PCL is +currently supported as an output format for this reason. Please note +that the Y coordinate for PCL goes from top to bottom, while for +Postscript it goes from bottom to top. Consistently, while in +Postscript you specify the bottom-left corner as origin, for PCL you +specify the top-left corner. + + Barcode output for PCL Printers (HP LaserJet and compatibles), was +developed using PCL5 Reference manuals from HP. that really refers to +these printers: + * LaserJet III, III P, III D, III Si, + + * LaserJet 4 family + + * LaserJet 5 family + + * LaserJet 6 family + + * Color LaserJet + + * DeskJet 1200 and 1600. + + + However, barcode printing uses a very small subset of PCL, probably +also LaserJet II should print it without problem, but the resulting +text may be horrible. + + The only real difference from one printer to another really depends +on which font are available in the printer, used in printing the label +associated to the bars (if requested). + + Earlier LaserJet supports only bitmaps fonts, so these are not +"scalable". (Ljet II ?), Also these fonts, when available, have a +specified direction, and not all of them are available in both Portrait +and Landscape mode. + + From LaserJet 4 series, (except 4L/5L that are entry-level printers), +Arial scalable font should be available, so it's the "default font" +used by this program. + + LaserJet III series printers (and 4L, 5L), don't feature "Arial" as a +resident font, so you should use BARCODE_OUT_PCL_III instead of +BARCODE_OUT_PCL., and font the font used will be "Univers" instead of +"Arial". + + Results on compatible printers, may depend on consistency of PCL5 +compatibility, in doubt, try BARCODE_OUT_PCL_III + + PJL commands are not used here, as it's not very compatible. + + Tested Printers: + * Hp LaserJet 4050 + + * Hp LaserJet 2100 + + * Epson N-1200 emul PCL + + * Toshiba DP2570 (copier) + PCL option + + * Epson EPL-7100 emul. HP LaserJet II: bars print fine but text is + bad. + + +File: barcode.info, Node: Bugs and Pending Issues, Prev: PCL Output, Up: Top + +Bugs and Pending Issues. +************************ + + The current management of borders/margins is far from optimal. The +"default" margin applied by the library interferes with the external +representation, but I feel it is mandatory to avoid creating barcode +output with no surrounding white space (the problem is especially +relevant for EPS output). + + EAN-128 is not (yet) supported. I plan to implement it pretty soon +and then bless the package as version 1.0. + + + +Tag Table: +Node: Top154 +Node: Overview526 +Node: The Barcode Object1404 +Node: The Field List2821 +Node: The Intermediate Representation6586 +Node: Supported Flags8359 +Node: The API11343 +Node: The barcode Executable14029 +Node: The Command Line14458 +Node: Supported Encodings19557 +Node: PCL Output28997 +Node: Bugs and Pending Issues31316 + +End Tag Table diff --git a/barcode-0.98/doc/barcode.pdf b/barcode-0.98/doc/barcode.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b2268f4d88df746dbb6c3602aa7d3ed82e327410 GIT binary patch literal 192464 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%0AsEDtDucP|JSd#jS#anV^@KuE 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

    ImD7Dy2pKZ~hpnmDvEW{zBbsi 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 literal 0 HcmV?d00001 diff --git a/barcode-0.98/doc/barcode.ps b/barcode-0.98/doc/barcode.ps new file mode 100644 index 00000000..cc6cc2c4 --- /dev/null +++ b/barcode-0.98/doc/barcode.ps @@ -0,0 +1,2378 @@ +%!PS-Adobe-2.0 +%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software +%%Title: barcode.dvi +%%Pages: 12 +%%PageOrder: Ascend +%%BoundingBox: 0 0 596 842 +%%EndComments +%DVIPSWebPage: (www.radicaleye.com) +%DVIPSCommandLine: dvips -f barcode.dvi +%DVIPSParameters: dpi=600, compressed +%DVIPSSource: TeX output 2002.08.21:2135 +%%BeginProcSet: texc.pro +%! +/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S +N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 +mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 +0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ +landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize +mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ +matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round +exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ +statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] +N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin +/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array +/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 +array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N +df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A +definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get +}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} +B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr +1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3 +1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx +0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx +sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ +rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp +gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B +/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ +/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ +A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy +get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} +ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp +fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 +{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add +chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ +1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} +forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn +/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put +}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ +bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A +mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ +SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ +userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X +1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 +index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N +/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ +/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) +(LaserWriter 16/600)]{A length product length le{A length product exch 0 +exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse +end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask +grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} +imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round +exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto +fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p +delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} +B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ +p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S +rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end + +%%EndProcSet +TeXDict begin 39158280 55380996 1000 600 600 (barcode.dvi) +@start +%DVIPSBitmapFont: Fa cmbxti10 14.4 8 +/Fa 8 115 df<13FCEA03FF000F13804813C05AA25AA2B5FCA31480A214006C5A6C5A6C +5AEA0FE0121271912B>46 D97 DI<923807FF80037F13F00203B512FC02 +0F80023F8091B500031380499038F8007F010701E0EBFFC049EB800149495A49485B495A +49485B5A485BA248491580180048496D5A486F5A93C8FC485BA35A91CAFCA3B5FC5BA45B +A65B17036C6CED0780170FEF3FC0003F167F6DEC01FF001F4B13806C6C021F13006C6DEB +7FFC6C9039F00FFFF86C90B612E06C5E013F4AC7FC010F14F0010049C8FC323773B540> +II<923807FF8092B512E0020714F8021F80027F80903A01FFFE03FF49D9F000 +13804901C0EB7FC0495B013F90C7123F495A495A5C5A485B4849147F18804816FF4A4913 +00485DEE0FFE4849EB7FFC923807FFF891B612E0485E94C7FC16F04BC8FCB5CAFC5BA45B +A7007F1603EF0780170F003FEE3FC0177F6C6CEC01FF4C13806C6C021F13006C01C0EB7F +FC6C9039F00FFFF86C90B612E06C6C5D6D4AC7FC010714F09026007FFEC8FC323773B540 +>I<923807FFC0037F13FC0203B6FC020F15C0023F8191B5000313F8499039F8007FFC01 +0701E0133F4901806D7E4990C76C7E49481680495A4948804818C0485BA2485BA248494A +13E05AA2485BA24D13C05A91C8FCA25FB517805BA25F19005B6017FF605E60495E5E6C6C +4A5B604C5B003F4B90C7FC6D4A5A001F4B5A6C6C4A5A6CD980035B6CD9F01F13C06C90B6 +5A6C4BC8FC013F14F0010F14C0010001F8C9FC3B3773B547>111 +D114 +D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fb cmsy10 10.95 1 +/Fb 1 16 df15 +D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fc cmb10 10.95 10 +/Fc 10 115 df97 D<13FFB5FCA512077EAFEC03FE91381FFF +C0027F13F091B57E9138FE0FFE9138F003FF4A7E02C014804A6C13C017E0A3EE7FF0A317 +F8AC17F0A3EEFFE0A217C05D02C014806E4813006E485A9138FC1FFC01FCB55A496C13E0 +D9F01F1380C7D807FCC7FC2D407EBE33>III<49B47E010F13F0013F7F90B512FE48EBC3FF480100 +13804848EB7FC04848133F001F15E05B003FEC1FF0A2485A150F16F8A212FFA290B6FCA4 +01F0C8FCA5127FA37F003F15F8A26C6C1301000F15F06D13036C6CEB07E06C9038800FC0 +6C9038F07F806C6CB512006D5B010F13F8010013C0252B7EA92A>I103 +D105 D<01FFEB7FE0B53801FFF802077F4A7F91381FC3FFDA3E03 +13800007137C6CEB780102F014C014E0A214C0A31480B3A4B5D8FE1F13FFA530297EA833 +>110 D<49B47E010F13F0013F13FC90B6FC48018113803A03FE007FC04848EB3FE0000F +15F049131F001F15F8A24848EB0FFCA2007F15FEA400FF15FFAB007F15FEA3003F15FC6D +131F001F15F8A26C6CEB3FF0000715E06C6CEB7FC03A01FF81FF806C90B51200013F13FC +010F13F001011380282B7EA92D>I<3901FE07F800FFEB0FFE91383FFF804A13C0EC7C7F +9138F8FFE03807FFF06C5B5CA2ED7FC09138803F80ED1F0092C7FCA291C8FCB3A3B6FCA5 +23297FA827>114 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fd cmbxti10 17.28 7 +/Fd 7 115 df97 +DII<963803FFC0061FB512E06060A47214C0F000 +1F61A21B80A261A21B00A296B5FCA262A260A262A260A262A260A262A260A2DCFFE05C03 +0F13FC037FEBFF1F4AB6129F020792B55A4AEBE07F023FEB000F4A487F4948486D5C4913 +F04981495B49496D91C7FC495B5B92C8FC90B55E485B5F485B4860A248495CA248605C5F +5A4A5EA2485EA24A5EA2B55DA24A5EA25FA291C85CA24DEC3F801A7F19005B94B513FFA2 +4E1400A24C5C007F614C13FC4C1403003F4B5D6D4A14076C4B5D6C6D49140F4BB55C6CD9 +C007013F495A6C9026F03FFEEBFE3FC690B5D8F81FB55A6DDAF0075C011FDAC00349C7FC +010749C75B9026007FF0EC1FF04B6571E355>II<93381FFF804BB512F8031F14 +FF037F15C04AB77E0207D9FC0313F8021FD9E0007F4A0180EB3FFEDAFFFEC76C7E494916 +8049496E13C0495B49496E13E0495B494916F05B90B5C87E1AF8485B485F5C5A5C5AA248 +5B605A5CA2485FA24A17F0A2B55EA24A17E0A2601AC091C9FC95B51280A21A005F615F49 +5F4D5B127F6D4B5B616C4C5B4D5B6C6D4A90C7FC4D5A6C6D495B6C4B5B6C6D010F13E06C +01F8013F5B6CD9FE01B5C8FC013FB612FC6D15F0010715C0010002FCC9FC020F13C04542 +71C055>111 D114 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fe cmbxti10 13.15 11 +/Fe 11 120 df97 D99 D<943801FF800403B512C05E1980A282EE000F1900A25FA260A2173FA260 +A2177FA260A217FFA260A25EEDFFC1020701F15B023F13FD91B7FC4913E00107D9003F5B +49487F49487F495A49486D5B495A485D5C4894C7FC5A4A5B5A91C75B5A163FA248485DA2 +167F127F495DA216FF12FF495DA25D181E49EDE03FA24B5C187E17C0A2007F5F5D4B1380 +003F4AEB81F85D6C6C49EB83F06C6C48B55B2707FE0FFC13CF6CB539F07FFFC06C4A6C5B +6C6CD9800F90C7FC903A0FFC0003FC3A4D75CB41>III104 D<15F8EC03FC4A7E4A7EA25CA35DA2 +5D6E5AEC03E091C8FCAEEB07F8EB1FFEEB7FFF90B57E3901FC7FC0D803F07FEA07E0D80F +C07FA2381F80FFA2485A5B007E5CA25B00FE5C485A007C5C12005B92C7FCA25B5C133F5C +A2137F5CA213FFECF00F48EC1F8014E0153F48150014C05D48147E14805D14816CEB01F8 +4A5A4A5A6CEB1FC06CEBFF806D90C7FC6D5AEB07F0214E78CC27>I108 D<913801FFC0021F13F8027F13FE91B6FC4901001380D903FC +EB3FC0D907F0130F010FEC3FE04948137F4A13FF133FA2017F4913C0A26F138017006E13 +7E02FC90C7FCECFFC015FE6F7E16E06D80826D807F6D80010180EB003F1403EC003FD803 +C0130FD80FE01303EA3FF0486C7FA200FF5DA34B5A5B49495A495C49130F6CC7485AD83F +C0EB7FC03A1FF803FF806CB548C7FC6C14F8000114E026001FFEC8FC2B3377B135>115 +DI119 +D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Ff cmbx12 13.14 13 +/Ff 13 117 df<923803FFE092B512FC020714FF021F81027F9038007FC0DAFFF0EB0FE0 +010301C0804990C7EA3FF84948147F4A81494814FF495AA2137F5CA2715A715A715AEF07 +8094C8FCA8EF07FCB9FCA526007FF0C7123F171FB3B3003FB5D8E00FB512F8A53D4D7ECC +44>12 D46 D85 D97 D100 DII< +EB7FC0B5FCA512037EB3A2923801FFC0030F13F8033F13FE4B7F9126C1FE077F9126C3F0 +037F9138C7C001DACF8080150002DE7F02FC81A25CA25CA35CB3A9B6D8C07FEBFFE0A53B +4C7BCB44>104 D108 +D<903A7FC001FFC0B5010F13F8033F13FE4B7F9126C1FE077F9126C3F0037F00039038C7 +C0016CD9CF8080150002DE7F02FC81A25CA25CA35CB3A9B6D8C07FEBFFE0A53B317BB044 +>110 D<913807FF80027F13F80103B6FC010F15C090261FFE017F903A7FF0003FF8D9FF +C0EB0FFC48496D7E4890C76C7E4817804980000F17C048486E13E0A2003F17F049157FA2 +007F17F8A400FF17FCAB007F17F8A36C6CEDFFF0A3001F17E06D5C000F17C06C6C4A1380 +6C17006C6D495A6C01E0EB1FFC6D6C495A903A3FFE01FFF0010FB612C0010392C7FCD900 +7F13F80207138036337DB13D>I<90390FFF8070017FEBF1F048B6FC1207380FFC01391F +E0003F4848130F491307127F90C712035A1501A27FA213E06D90C7FC13FE387FFFF0ECFF +C015F06C14FC6C14FF6C15806C15C06C15E0C615F0013F14F8010714FCEB007F14019138 +003FFE150F0078140700F81403A26C1401A37E16FC6C14036D14F87F6DEB07F001F8EB1F +E001FFEBFFC091B51280D8FC7F1400D8F81F13FCD8E00313C027337CB130>115 +D<14F8A61301A41303A21307A2130FA2131F133F137F13FF1203000F90B512F0B7FCA426 +007FF8C7FCB3A6167CAA013F14F880A290391FFE01F0010F1303903907FF87E06DEBFFC0 +6D14806D6C1300EC0FFC26467EC430>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fg cmti10 10.95 35 +/Fg 35 122 df<933807FF80043F13E09338FE00F8DB01F0133EDB07E0130E4B48131F4C +137F031F14FF4BC7FCA218FE157E1878180015FE5DA31401A25DA414030103B712F0A218 +E0903A0003F000070207140F4B14C0A3171F020F15805DA2173F1800141F5D5F177EA214 +3F92C712FE5FA34A1301027EECF81CA3160302FEECF03C4A1538A21878187013014A0101 +13F018E0933800F1C0EF7F804948EC1F0094C7FCA35C1307A2001E5B127F130F00FF5BA2 +49CAFC12FEEAF81EEA703CEA7878EA1FF0EA07C0385383BF33>12 +DI40 +D<14031580A2EC01C0EC00E0A21570A215781538153CA3151EA4151FA2150FA7151FA915 +3FA2153EA3157EA2157CA215FCA215F8A21401A215F0A2140315E0A2140715C0A2EC0F80 +A2141F15005C143EA25CA25CA2495A5C1303495A5C130F49C7FC131E5B137C5B5B485A48 +5A485A48C8FC121E5A12705A5A205A7FC325>I<387FFFFCA3B5FCA21605799521>45 +D<120FEA3FC0127FA212FFA31380EA7F00123C0A0A77891C>I<15031507150F151F151E +153E157EEC01FEEC03FC1407141FEB01FF90380FFBF8EB1FC3EB0E07130015F0A2140FA2 +15E0A2141FA215C0A2143FA21580A2147FA21500A25CA25CA21301A25CA21303A25CA213 +07A25CA2130FA25CA2131FA25CEB7FE0B612F0A215E0203D77BC2E>49 +D<15FE913803FFC091380F01F091383C00F84A137C4A7F4948133F49487F4A148049C7FC +5BEB0E0C011E15C0EB1C0EEB3C06133813781370020E133FD9F00C148013E0141C021813 +7F00011600EBC0384A13FEEC600102E05B3A00E3C003F89039FF0007F0013C495A90C748 +5A5E037FC7FC15FC4A5A4A5AEC0FC04AC8FC147E14F8EB03E0495A011FC9FC133E491418 +01F0143C48481438485A1678485A48C85A120E001E4A5AD83FE0130301FF495A397C3FF0 +1FD8780FB55AD8700391C7FCD8F0015B486C6C5A6E5AEC07C02A3F79BC2E>I<157F9138 +01FFE0913807C0F091381F007C023C133C4A133E4A131F1301495A5C1307A2495AA2163F +011F143EA2167E6E137C16F8ECE00102F013F09138F803E09138FC07C090390FFE0F00EC +FFBE6D13F86D5B7F6D7F8101037F90380F9FFFD91F0F1380D97C0713C0497E48486C13E0 +3903E0007F4848133F4848131F001F140F90C7FC003E1407A2127E127CA200FC15C05AA2 +ED0F80A2ED1F00153E007C143C157C007E5C6CEB03F0391F8007C0390FE03F802607FFFE +C7FC000113F838003FC0283F78BC2E>56 D<49B712C018F818FE903B0003FC0001FF9438 +007F804BEC3FC0A2F01FE014074B15F0180FA2140F5D181FA2021F16E05D183F19C0023F +ED7F804B14FF19004D5A027F4A5A92C7EA07F0EF1FE0EF7F804AD903FEC7FC92B512F017 +FE4AC7EA3F800101ED1FE04A6E7E17078401036F7E5CA30107825CA3010F5E4A1407A260 +011F150F5C4D5A60013F153F4A4A5A4D5A017F4A90C7FC4C5A91C7EA0FF849EC3FF0B812 +C094C8FC16F83C3E7BBD40>66 D<49B77E18F018FC903B0003FE0003FEEF00FF4BEC7F80 +F03FC00207151F19E05DA2020F16F0A25DA2141FF03FE05DA2023F16C0187F4B1580A202 +7FEDFF00604B495A4D5A02FF4A5A4D5A92C7EA3FC04CB4C7FC4990B512FC17E04ACAFCA2 +1303A25CA21307A25CA2130FA25CA2131FA25CA2133FA25CA2137FA25C497EB67EA33C3E +7BBD3E>80 D<92391FE00380ED7FFC913A01FFFE0700913907F01F8F91390FC007DF4AC6 +6CB4FC023E6D5A4A130014FC495A4948147CA2495AA2010F15785CA3011F1570A46E91C7 +FCA2808014FE90380FFFE015FC6DEBFF8016E06D806D806D6C7F141F02037FEC003FED07 +FF1501A281A282A212075A167E120EA2001E15FE5EA25E003E14015E003F14034B5A486C +5C150F6D495A6D49C8FCD8F9F0137C39F8FE01F839F03FFFF0D8E00F13C026C001FEC9FC +314279BF33>83 D<277FFFFE01B500FC90B512E0B5FCA20003902680000790C7380FFC00 +6C90C701FCEC07F049725A04035EA26350C7FCA20407150EA2040F5D1A3C041F15386216 +3B6216734F5A6D14E303014B5A6C15C303034BC8FC1683DB0703140E191E030E151C6103 +1C7F61ED380161157003F04A5A15E002014B5A15C0DA03804AC9FC60DA0700140E60140E +605C029C5D14B8D97FF85D5C715A5C4A5DA24A92CAFC5F91C7FC705A137E5F137C5F1378 +01705D53406EBD5B>87 D<147E49B47E903907C1C38090391F80EFC090383F00FF017E13 +7F4914804848133F485AA248481400120F5B001F5C157E485AA215FE007F5C90C7FCA214 +01485C5AA21403EDF0385AA21407EDE078020F1370127C021F13F0007E013F13E0003E13 +7FECF3E1261F01E313C03A0F8781E3803A03FF00FF00D800FC133E252977A72E>97 +DIIII<167C4BB4FC923807C78092380F83C0ED1F87161FED3F3FA2157EA21780EE0E004B +C7FCA414015DA414035DA30103B512F8A390260007E0C7FCA3140F5DA5141F5DA4143F92 +C8FCA45C147EA414FE5CA413015CA4495AA4495AA4495A121E127F5C12FF49C9FCA2EAFE +1EEAF83C1270EA7878EA3FE0EA0F802A5383BF1C>III<1478EB01FCA21303A314F8EB00E01400AD137C48 +B4FC38038F80EA0707000E13C0121E121CEA3C0F1238A2EA781F00701380A2EAF03F1400 +12005B137E13FE5BA212015BA212035B1438120713E0000F1378EBC070A214F0EB80E0A2 +EB81C01383148038078700EA03FEEA00F8163E79BC1C>I108 +DIII<903903E001F890390FF807FE903A1E7C1E0F80903A1C3E3C07C001 +3C137801389038E003E0EB783F017001C013F0ED80019038F07F0001E015F8147E160300 +0113FEA2C75AA20101140717F05CA20103140F17E05CA20107EC1FC0A24A1480163F010F +15005E167E5E131F4B5A6E485A4B5A90393FB80F80DA9C1FC7FCEC0FFCEC03E049C9FCA2 +137EA213FEA25BA21201A25BA21203A2387FFFE0B5FCA22D3A80A72E>I114 DII<137C48B4141C26038F80137EEA0707000E7F001E15FE +121CD83C0F5C12381501EA781F007001805BA2D8F03F1303140000005D5B017E1307A201 +FE5C5B150F1201495CA2151F0003EDC1C0491481A2153F1683EE0380A2ED7F07000102FF +13005C01F8EBDF0F00009038079F0E90397C0F0F1C90391FFC07F8903907F001F02A2979 +A731>I<017CEB01C048B4EB07F038038F80EA0707000E01C013F8121E001C1403EA3C0F +0038EC01F0A2D8781F130000705BA2EAF03F91C712E012005B017E130116C013FE5B1503 +000115805BA2ED07001203495B150EA25DA25D1578000114706D5B0000495A6D485AD97E +0FC7FCEB1FFEEB03F0252979A72A>I<017C167048B491387001FC3A038F8001F8EA0707 +000E01C015FE001E1403001CEDF000EA3C0F0038177C1507D8781F4A133C00701380A2D8 +F03F130F020049133812005B017E011F14784C137013FE5B033F14F0000192C712E05BA2 +170100034A14C049137E17031880A2EF070015FE170E00010101141E01F86D131C0000D9 +039F5BD9FC076D5A903A3E0F07C1E0903A1FFC03FFC0902703F0007FC7FC372979A73C> +I<903903F001F890390FFC07FE90393C1E0E0F9026780F1C138001F0EBB83FD801E013F8 +9039C007F07FEA0380000714E0D9000F140048151C000E4AC7FCA2001E131FA2C75BA214 +3F92C8FCA35C147EA314FE4A131CA30101143C001E1538003F491378D87F811470018314 +F000FF5D9039077801C039FE0F7C033A7C0E3C078027783C1E1EC7FC391FF80FFC3907E0 +03F029297CA72A>I<137C48B4143826038F8013FCEA0707000E7F001E1401001C15F8EA +3C0F12381503D8781F14F000701380A2D8F03F1307020013E012005B017E130F16C013FE +5B151F1201491480A2153F000315005BA25D157EA315FE5D00011301EBF8030000130790 +387C1FF8EB3FF9EB07E1EB00035DA21407000E5CEA3F80007F495AA24A5AD8FF0090C7FC +143E007C137E00705B387801F0383803E0381E0FC06CB4C8FCEA03F8263B79A72C>I +E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fh cmsl10 10.95 33 +/Fh 33 122 df<007FB5FCA2B512FEA418067C961E>45 D<157015F014011407143F9038 +03FFE0137FEBFFCFEBF80F1300141F15C0A5143F1580A5147F1500A55C5CA513015CA513 +035CA513075CA5130F5CA3131F497EB612F8A31D3D78BC2D>49 DII<01061403D90780131F90390FF801FE91B512FC16F816F016E0168049EB +FE0015F890381C7FC091C8FCA3133C1338A513781370A2EC1FE0ECFFF8903873E03E9038 +FF001F01FCEB0F804914C049EB07E04914F049130390C7FC16F8A61507A21206EA3F8048 +7EA2150F00FF15F0A24914E090C7121F00FC15C000F0143F00701580ED7F0012786C14FE +4A5A6C495A390F800FE03907E03FC06CB5C7FCC613FCEB1FE0283F7ABC2D>53 +D56 DI<17E016011603831607A2160FA2161F83163FA2167F167716F7EEE7FCED +01E316C3150316831507EE03FEED0F01150E151E151C153C03387FED7800157015F05D4A +4880177F4A5AA24AC7FCA2020E81173F5C021FB6FC5CA20270C7EA3FE0171F5CA2495AA2 +494881170F49C8FCA2130EA24982013C1507A2137CD801FE4B7E2607FF80EC3FFEB500F0 +0107B512FC19F85E3E417DC044>65 D<013FB7FC18E018FC903B007FE00007FE6E489038 +01FF809438007FC05DF03FE0F01FF0A3027F16F892C8FCA54A16F04A153F19E0187F19C0 +F0FF8001014B13004A4A5A4D5AEF1FF04D5ADC03FFC7FC49B612F8EFFF8002F8C7EA3FE0 +EF0FF0EF07FC717E010715014A81711380A319C0130F5CA5011F4B13805C19005F601707 +013F4B5A4A4A5A4D5A4D5A017F913801FF8001FF020F90C7FCB812FC17F094C8FC3D3E7D +BD40>II<013FB812F8A39026007F +F0C7127F6E48140F18034B14011800A31978147F4B1570A502FF147092C7FCA3190017F0 +495D4A1301A21607161F91B6FC495DA29138FC003F160F1607160301075D5CA219E01801 +19C0010FEC07004A90C712031980A218071900011F5E5C181EA2183E183C013F167C4A15 +FC4D5A1707017F151F01FF4AB45AB9FCA2603D3E7DBD3E>69 D<011FB512FC5BA2903900 +3FF8006E5AA25DA5143F5DA5147F5DA514FF92C7FCA55B5CA513035CA513075CA5130F5C +A5131F5CA3133F497E007FB512F0A2B6FC263E7EBD21>73 D<90263FFFF093381FFFF850 +13F0629026007FF8EFF000023F4D5AA2023B933801DFC0A2DA39FCED039FA2F1073F1479 +0271040E5BEC70FE191C19381A7F02F01670DAE07F94C7FC19E0A2F001C06201016D6C49 +5A02C05FF00700A2180E6F6C14010103161C028003385BA218706F7EF0E00313070200DA +01C05BA2923907F00380A294380700075B010E902603F80E5C5FA25F190F011E6D6C5A01 +1C605FA2EEFDC0DB00FF141F013C5D013860013C92C7FC017C5C01FE027E143F2607FF80 +017C4A7EB500FC037FB512E004785E4A1338553E7CBD53>77 D<90263FFFE0023FB5FC6F +16FEA29026003FF8020313C0021F030013004A6C157C023B163C6F153814398102381678 +02787FDA707F157082153F82031F15F002F07FDAE00F5D8215078203031401010180DAC0 +015D82811780047F1303010315C04A013F5C17E0161F17F0040F1307010715F891C70007 +91C7FC17FC160317FE04015B4915FF010E6E130E188E177F18CEEF3FDE011E16FE011C6F +5AA2170FA21707133C01386F5A133C017C150113FE2607FF801400B512FC18705C483E7D +BD44>I<013FB612FEEFFFE018F8903B007FF0000FFC6E48EB01FF7113804BEC7FC0183F +19E0F01FF0A2147F5D19F8A402FFED3FF092C8FCA219E0A2F07FC05B4AEDFF8019004D5A +4D5AEF0FF80103ED3FE04A903801FF8091B648C7FC17F002FCCAFCA213075CA5130F5CA5 +131F5CA5133F5CA3137F497EB612E0A25D3D3E7DBD3E>80 D<9238FF80070207EBE00F02 +1FEBF81E91387F00FE02FCEB1F3ED903F0EB0FFE49481307494813034AEB01FC49C7FC49 +1400133E137E177C491578A57F1770A26D1500808080EB7FFEECFFE06D13FEEDFFC06D14 +F06D14FC010380010080143F02031480DA003F13C015031500EE7FE0163F161FA2160F12 +1CA31607160F003C16C0A31780003E151F1700007E5D007F153E6D5C16FC01E0495AD87D +F0495AD8FCFCEB0FC03AF87F803F8027F01FFFFEC7FCD8E00713F839C0007FC030427BBF +33>83 D85 D97 DIIIII<1478EB01FE130314FFA25B14FE130314FCEB00F0 +1400ACEB03F8EA01FF14F0A2EA001F130FA314E0A5131F14C0A5133F1480A5137F1400A5 +5B5BA4EA03FF007F13F0A2B5FC183E7DBD1A>105 D<143FEB1FFF5BA213017FA214FEA5 +130114FCA5130314F8A5130714F0A5130F14E0A5131F14C0A5133F1480A5137F1400A55B +5BA4EA03FF007F13F8A2B5FC183F7DBE1A>108 D<903907F007F8D803FFEB1FFF9139E0 +781FC09138E1E00F3B001FE38007E090380FE70002EE14F014FC14D814F85CA24A130F13 +1F4A14E0A4161F133F4A14C0A4163F137F91C71380A4167F5B491500A300015D486C4913 +80B5D8F87F13FCA32E287DA733>110 DI<903907F01F80D803 +FFEB7FE09138E1E1F09138E387F839001FE707EB0FE614EE02FC13F002D813E09138F801 +804AC7FCA25C131FA25CA4133F5CA5137F91C8FCA55B5BA31201487EB512FEA325287EA7 +24>114 D<9138FF81C0010713E390381F807F90397C003F8049131F4848130F5B000314 +07A248481400A27FA27F6D90C7FCEBFF8014FC6C13FF6C14C015F06C6C7F011F7F130790 +38007FFE1403140100381300157EA2123C153E157E007C147CA2007E147815F8007F495A +4A5A486C485A26F9E01FC7FC38E0FFFC38C01FE0222A7DA824>II118 +DI<90B539E007 +FFF05E18E0902707FE000313006D48EB01FC705A5F01014A5A5F16036E5C0100140794C7 +FC160E805E805E1678ED8070023F13F05EED81C015C191381FC38015C793C8FC15EF15EE +EC0FFCA25DA26E5AA25DA26E5A5DA24AC9FC5C140E141E141C5C121C003F5B5A485B495A +130300FE5B4848CAFCEA701EEA783CEA3FF0EA0FC0343A80A630>121 +D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fi cmbx12 17.28 43 +/Fi 43 122 df46 D<16F04B7E1507151F153FEC01FF1407 +147F010FB5FCB7FCA41487EBF007C7FCB3B3B3B3007FB91280A6395E74DD51>49 +D<913801FFF8021FEBFFC091B612F8010315FF010F16C0013F8290267FFC0114F89027FF +E0003F7F4890C7000F7F48486E7FD807F86E148048486E14C048486E14E048486F13F001 +FC17F8486C816D17FC6E80B56C16FE8380A219FFA283A36C5BA26C5B6C90C8FCD807FC5D +EA01F0CA14FEA34D13FCA219F85F19F04D13E0A294B512C019804C14004C5B604C5B4C5B +604C13804C90C7FC4C5A4C5A4B13F05F4B13804B90C8FC4B5AED1FF84B5A4B5A4B48143F +4A5B4A48C8FC4A5A4A48157E4A5A4A5AEC7F8092C9FC02FE16FE495A495A4948ED01FCD9 +0FC0150749B8FC5B5B90B9FC5A4818F85A5A5A5A5ABAFCA219F0A4405E78DD51>I<92B5 +FC020F14F8023F14FF49B712C04916F0010FD9C01F13FC90271FFC00077FD93FE001017F +49486D8049C86C7F484883486C6F7F14C0486D826E806E82487FA4805CA36C5E4A5E6C5B +6C5B6C495E011FC85A90C95CA294B55A614C91C7FC604C5B4C5B4C5B4C5B047F13809226 +0FFFFEC8FC020FB512F817E094C9FC17F817FF91C7003F13E0040713F8040113FE707F71 +7F7113E085717FA2717F85A285831A80A31AC0EA03FCEA0FFF487F487F487FA2B57EA31A +80A34D14005C7E4A5E5F6C495E49C8485BD81FF85F000F5ED807FE92B55A6C6C6C491480 +6C01F0010791C7FC6C9026FF803F5B6D90B65A011F16F0010716C001014BC8FCD9001F14 +F0020149C9FC426079DD51>II<01C0EE01C0D801F8160F01FF167F02F0EC07FFDAFF8090B5FC92B712 +8019006060606060606095C7FC17FC5F17E0178004FCC8FC16E09026FC3FFCC9FC91CBFC +ADED3FFE0203B512F0020F14FE023F6E7E91B712E001FDD9E00F7F9027FFFE00037F02F8 +01007F02E06EB4FC02806E138091C8FC496F13C04917E07113F0EA00F090C914F8A219FC +83A219FEA419FFA3EA03F0EA0FFC487E487E487FA2B57EA319FEA35C4D13FC6C90C8FC5B +4917F8EA3FF001804B13F06D17E0001F5E6C6C17C06D4B1380D807FC92B512006C6C4A5B +6C6C6C01075B6C01E0011F5BD97FFE90B55A6DB712C0010F93C7FC6D15FC010115F0D900 +3F1480020301F0C8FC406078DD51>III<92383FFF800203B512FC021FECFF80027F +15E049B712F849D9F0077F010F90C76C7ED91FFCEC1FFFD93FF06E7F494802037F494882 +717F484980854890C9127FA24884183FA25A80A380806E157F6E5E14FE6E7E6F4A5A6C14 +F003FC495B03FF495B6C1580DCE0075B6CDBF80F90C7FC9338FE1FFE6C9238FF7FF84D5A +6D16C06D5E6D4BC8FC6D6F7E6D16E00101826D16FC023F814A8149B87E01078349839026 +3FFE3F8190267FFC0F819026FFF003814849C6FC48496D804849131F4890C70007801601 +48486E1580003F163F49150F007F7014C0491501717E8400FF835B8484A384A21A80A27F +007F1900607F003F606D160F001F606D4C5A6C6D153F6C6D4B5A6C01F04B5A6C01FC0203 +5B6C01FF021F5B6D9027F001FFFEC7FC6D90B65A010F16F001035E010093C8FC020F14F8 +DA007F90C9FC426079DD51>I66 D<4DB5ED03C0057F02F01407 +0407B600FE140F047FDBFFC0131F4BB800F0133F030F05FC137F033F9127F8007FFE13FF +92B6C73807FF814A02F0020113C3020702C09138007FE74A91C9001FB5FC023F01FC1607 +4A01F08291B54882490280824991CB7E49498449498449498449865D49498490B5FC484A +84A2484A84A24891CD127FA25A4A1A3F5AA348491A1FA44899C7FCA25CA3B5FCB07EA380 +A27EA2F50FC0A26C7FA37E6E1A1F6C1D80A26C801D3F6C6E1A00A26C6E616D1BFE6D7F6F +4E5A7F6D6D4E5A6D6D4E5A6D6D4E5A6D6E171F6D02E04D5A6E6DEFFF806E01FC4C90C7FC +020F01FFEE07FE6E02C0ED1FF8020102F8ED7FF06E02FF913803FFE0033F02F8013F1380 +030F91B648C8FC030117F86F6C16E004071680DC007F02F8C9FC050191CAFC626677E375 +>IIII73 D76 D<94381FFFE00407B67E043F15F04BB712FE030F +EEFFC0033FD9FC0014F092B500C0010F13FC020349C7000113FF4A01F86E6C7F021F496F +13E04A01C0030F7F4A496F7F91B5C96C7F0103497013FF494970804B834949717F498749 +49717F49874B8390B586484A717FA24891CB6C7FA2481D804A84481DC0A348497214E0A3 +481DF0A34A85481DF8A5B51CFCB06C1DF8A36E96B5FCA36C1DF0A46C6D4E14E0A36C1DC0 +6E606C1D80A26C6E4D1400A26C6E4D5BA26C6E4D5BA26D6D4D5B6D636D6D4D5B6F94B5FC +6D636D6D4C5C6D6D4C91C7FC6D6E4B5B6D02E0031F5B023F6D4B13F06E01FC92B55A6E01 +FF02035C020302C0010F91C8FC020002FC90B512FC033F90B712F0030F17C0030394C9FC +DB007F15F804071580DC001F01E0CAFC666677E379>79 DI83 D<001FBEFCA64849C79126E0000F +148002E0180091C8171F498601F81A0349864986A2491B7FA2491B3F007F1DC090C9181F +A4007E1C0FA600FE1DE0481C07A5CA95C7FCB3B3B3A3021FBAFCA663617AE070>II<913803FFFE027FEBFF +F00103B612FE010F6F7E4916E090273FFE001F7FD97FE001077FD9FFF801017F486D6D7F +717E486D6E7F85717FA2717FA36C496E7FA26C5B6D5AEB1FC090C9FCA74BB6FC157F0207 +B7FC147F49B61207010F14C0013FEBFE004913F048B512C04891C7FC485B4813F85A5C48 +5B5A5CA2B55AA45FA25F806C5E806C047D7F6EEB01F96C6DD903F1EBFF806C01FED90FE1 +14FF6C9027FFC07FC01580000191B5487E6C6C4B7E011F02FC130F010302F001011400D9 +001F90CBFC49437CC14E>97 D<903807FF80B6FCA6C6FC7F7FB3A8EFFFF8040FEBFF8004 +7F14F00381B612FC038715FF038F010014C0DBBFF0011F7FDBFFC001077F93C76C7F4B02 +007F03F8824B6F7E4B6F13804B17C0851BE0A27313F0A21BF8A37313FCA41BFEAE1BFCA4 +4F13F8A31BF0A24F13E0A24F13C06F17804F1300816F4B5A6F4A5B4AB402075B4A6C6C49 +5B9126F83FE0013F13C09127F00FFC03B55A4A6CB648C7FCDAC00115F84A6C15E091C700 +1F91C8FC90C8000313E04F657BE35A>I<92380FFFF04AB67E020F15F0023F15FC91B77E +01039039FE001FFF4901F8010113804901E0010713C04901804913E0017F90C7FC49484A +13F0A2485B485B5A5C5A7113E0485B7113C048701380943800FE0095C7FC485BA4B5FCAE +7EA280A27EA2806C18FCA26C6D150119F87E6C6D15036EED07F06C18E06C6D150F6D6DEC +1FC06D01E0EC7F806D6DECFF00010701FCEB03FE6D9039FFC03FFC010091B512F0023F5D +020F1580020102FCC7FCDA000F13C03E437BC148>II<92380FFFC04AB512FC020FECFF8002 +3F15E091B712F80103D9FE037F499039F0007FFF011F01C0011F7F49496D7F4990C76C7F +49486E7F48498048844A804884485B727E5A5C48717EA35A5C721380A2B5FCA391B9FCA4 +1A0002C0CBFCA67EA380A27EA27E6E160FF11F806C183F6C7FF17F006C7F6C6D16FE6C17 +016D6C4B5A6D6D4A5A6D01E04A5A6D6DEC3FE0010301FC49B45A6D9026FFC01F90C7FC6D +6C90B55A021F15F8020715E0020092C8FC030713F041437CC14A>III<903807FF80B6FCA6C6FC7F7FB3A8EF1FFF94B512F0040714FC041F14FF4C8193267F +E07F7F922781FE001F7FDB83F86D7FDB87F07FDB8FC0814C7F039FC78015BE03BC8003FC +825DA25DA25DA45DB3B2B7D8F007B71280A651647BE35A>II<903807FF80B6FCA6C6FC7F7FB3B3B3B3 +ADB712E0A623647BE32C>108 D<902607FF80D91FFFEEFFF8B691B500F00207EBFF8004 +0702FC023F14E0041F02FF91B612F84C6F488193267FE07F6D4801037F922781FE001F90 +27E00FF0007FC6DA83F86D9026F01FC06D7F6DD987F06D4A487F6DD98FC0DBF87EC7804C +6D027C80039FC76E488203BEEEFDF003BC6E4A8003FC04FF834B5FA24B5FA24B94C8FCA4 +4B5EB3B2B7D8F007B7D8803FB612FCA67E417BC087>I<902607FF80EB1FFFB691B512F0 +040714FC041F14FF4C8193267FE07F7F922781FE001F7FC6DA83F86D7F6DD987F07F6DD9 +8FC0814C7F039FC78015BE03BC8003FC825DA25DA25DA45DB3B2B7D8F007B71280A65141 +7BC05A>I<923807FFE092B6FC020715E0021F15F8027F15FE494848C66C6C7E010701F0 +010F13E04901C001037F49496D7F4990C87F49486F7E49486F7E48496F13804819C04A81 +4819E048496F13F0A24819F8A348496F13FCA34819FEA4B518FFAD6C19FEA46C6D4B13FC +A36C19F8A26C6D4B13F0A26C19E06C6D4B13C0A26C6D4B13806C6D4B13006D6C4B5A6D6D +495B6D6D495B010701F0010F13E06D01FE017F5B010090B7C7FC023F15FC020715E00200 +92C8FC030713E048437CC151>I<902607FF80EBFFF8B6010FEBFF80047F14F00381B612 +FC038715FF038F010114C09227BFF0003F7FC6DAFFC0010F7F6D91C76C7F6D496E7F03F8 +6E7F4B6E7F4B17804B6F13C0A27313E0A27313F0A21BF885A21BFCA3851BFEAE4F13FCA4 +1BF861A21BF0611BE0611BC06F92B512801B006F5C6F4A5B6F4A5B03FF4A5B70495B04E0 +017F13C09226CFFC03B55A03C7B648C7FC03C115F803C015E0041F91C8FC040313E093CB +FCB3A3B712F0A64F5D7BC05A>I114 +D<913A3FFF8007800107B5EAF81F011FECFE7F017F91B5FC48B8FC48EBE0014890C7121F +D80FFC1407D81FF0801600485A007F167F49153FA212FF171FA27F7F7F6D92C7FC13FF14 +E014FF6C14F8EDFFC06C15FC16FF6C16C06C16F06C826C826C826C82013F1680010F16C0 +1303D9007F15E0020315F0EC001F1500041F13F81607007C150100FC81177F6C163FA217 +1F7EA26D16F0A27F173F6D16E06D157F6D16C001FEEDFF806D0203130002C0EB0FFE02FC +EB7FFC01DFB65A010F5DD8FE0315C026F8007F49C7FC48010F13E035437BC140>II<902607FFC0ED3F +FEB60207B5FCA6C6EE00076D826D82B3B3A260A360A2607F60183E6D6D147E4E7F6D6D49 +48806D6DD907F0ECFF806D01FFEB3FE06D91B55A6E1500021F5C020314F8DA003F018002 +F0C7FC51427BC05A>III<007FB600C0017FB512F8A6 +D8001F01F8C70007EBF0006D040190C7FC6D6D5D6D6D4A5A6D6D4A5A70495A6D4C5A6E7F +6E6D495A6E6D495A7049C8FC6E4A5A6E6D485A6E6D485A6E13FFEF8FF06EEC9FE06FEBFF +C06F5C6F91C9FC5F6F5B816F7F6F7F8481707F8493B57E4B805D4B80DB0FF37FDB1FE17F +04C080153F4B486C7F4B486C7F4A486D7F4A486D7F4A5A4B6D7F020F6E7F4A486D7F4A48 +6D804A5A4AC86C7F49486F7F4A6F7F0107707FEB3FFFB600F049B7FCA650407EBF55>I< +B700C00103B512FCA6D8003F01C0C8381FFE006FED07F0A26D6D5E190F6D6D5E191F6D6D +5E193F6D95C7FC6F5D6D177E6F15FEA26D6E495AA26E6D5C18036E6D5C18076E5E70130F +6E5E70131FA26E6D495AA26E6D91C8FC606E6D137E18FE6E5D17816F5C17C3A26FEBE7F0 +A26FEBF7E017FF6F5CA26F5CA26F91C9FCA36F5BA26F5BA2705AA2705AA2705AA35FA25F +163F94CAFC5E167E16FED807E05CD81FF81301487E486C495AA2B5495AA24B5A5E151F4B +5A6C4849CBFC15FEEBFC01393FF807FC391FF03FF06CB55A6C5C6C91CCFCC613FCEB1FE0 +4E5D7DBF55>I E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fj cmtt10 10.95 76 +/Fj 76 126 df<00101304007C131F00FEEB3F80A26C137FA248133FB2007E1400007C7F +003C131E00101304191C75B830>34 D37 D<141E147F14FF5BEB03FEEB07FCEB0FF0EB1FE0EB3FC0 +EB7F80EBFF00485A5B12035B485A120F5BA2485AA2123F5BA2127F90C7FCA412FEAD127F +A47F123FA27F121FA26C7EA27F12076C7E7F12017F6C7EEB7F80EB3FC0EB1FE0EB0FF0EB +07FCEB03FEEB01FF7F147F141E184771BE30>40 D<127812FE7E7F6C7E6C7EEA0FF06C7E +6C7E6C7E6C7EEB7F80133F14C0131FEB0FE014F01307A2EB03F8A214FC1301A214FE1300 +A4147FAD14FEA4130114FCA2130314F8A2EB07F0A2130F14E0EB1FC0133F1480137FEBFF +00485A485A485A485AEA3FE0485A485A90C7FC5A1278184778BE30>I<14E0497E497EA6 +0038EC0380007EEC0FC0D8FF83EB3FE001C3137F9038F3F9FF267FFBFB13C06CB6128000 +0FECFE00000314F86C5C6C6C13C0011F90C7FC017F13C048B512F04880000F14FE003FEC +FF80267FFBFB13C026FFF3F913E09038C3F87F0183133FD87E03EB0FC00038EC03800000 +91C7FCA66D5A6D5A23277AAE30>I<143EA2147FAF007FB7FCA2B81280A36C1600A2C76C +C8FCAF143EA229297DAF30>II<007FB612F0A2B712F8A36C15F0A225077B9E30>I<120FEA3FC0EA7FE0A2EAFFF0A4EA +7FE0A2EA3FC0EA0F000C0C6E8B30>I<16F01501ED03F8A21507A2ED0FF0A2ED1FE0A2ED +3FC0A2ED7F80A2EDFF00A24A5AA25D1403A24A5AA24A5AA24A5AA24A5AA24A5AA24AC7FC +A2495AA25C1303A2495AA2495AA2495AA2495AA2495AA249C8FCA2485AA25B1203A2485A +A2485AA2485AA2485AA2485AA248C9FCA25AA2127CA225477BBE30>I<14FE903807FFC0 +497F013F13F8497F90B57E48EB83FF4848C6138049137F4848EB3FC04848EB1FE049130F +001F15F0491307A24848EB03F8A290C712014815FCA400FEEC00FEAD6C14016C15FCA36D +1303003F15F8A26D1307001F15F0A26D130F6C6CEB1FE0A26C6CEB3FC06C6CEB7F806D13 +FF2601FF8313006CEBFFFE6D5B6D5B010F13E06D5BD900FEC7FC273A7CB830>IIIII<000FB612804815C05AA316800180C8FCAEEB +83FF019F13C090B512F015FC8181D9FE0313809039F0007FC049133F0180EB1FE06CC712 +0F000E15F0C81207A216F81503A31218127EA2B4FC150716F048140F6C15E06C141F6DEB +3FC06D137F3A3FE001FF80261FFC0F13006CB55A6C5C6C5C6C14E06C6C1380D90FFCC7FC +25397BB730>II<127CB712FC16FEA416FC48C7EA0FF816F0ED1FE0007CEC3FC0 +C8EA7F80EDFF00A24A5A4A5A5D14075D140F5D4A5AA24A5AA24AC7FCA25C5C13015CA213 +035CA213075CA4495AA6131F5CA96D5A6DC8FC273A7CB830>I<49B4FC011F13F0017F13 +FC90B57E0003ECFF804815C048010113E03A1FF8003FF049131FD83FC0EB07F8A24848EB +03FC90C71201A56D1303003F15F86D13076C6CEB0FF06C6CEB1FE0D807FCEB7FC03A03FF +83FF806C90B512006C6C13FC011F13F0497F90B512FE48802607FE0013C0D80FF8EB3FE0 +D81FE0EB0FF04848EB07F8491303007F15FC90C712014815FE481400A66C14016C15FC6D +1303003F15F86D1307D81FF0EB1FF06D133F3A0FFF01FFE06C90B512C06C1580C6ECFE00 +6D5B011F13F0010190C7FC273A7CB830>I<49B4FC010F13E0013F13F890B57E48804880 +48010113803A0FFC007FC0D81FF0EB3FE04848131F49EB0FF048481307A290C7EA03F85A +4815FC1501A416FEA37E7E6D1303A26C6C13076C6C130F6D133FD80FFC13FF6CB6FC7E6C +14FE6C14F9013FEBE1FC010F138190380060011400ED03F8A2150716F0150F000F15E048 +6C131F486CEB3FC0157FEDFF804A1300EC07FE391FF01FFC90B55A6C5C6C5C6C1480C649 +C7FCEB3FF0273A7CB830>I<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F00C7 +FCAF120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C276EA630>II<16F01503ED07F8151F157FEDFFF014034A13C0021F138091383F +FE00ECFFF8495B010713C0495BD93FFEC7FC495A3801FFF0485B000F13804890C8FCEA7F +FC5BEAFFE05B7FEA7FF87FEA1FFF6C7F000313E06C7F38007FFC6D7E90380FFF806D7F01 +0113F06D7FEC3FFE91381FFF80020713C06E13F01400ED7FF8151F1507ED03F01500252F +7BB230>I<1278127EB4FC13C07FEA7FF813FEEA1FFF6C13C000037F6C13F86C6C7EEB1F +FF6D7F010313E06D7F9038007FFC6E7E91380FFF806E13C0020113F080ED3FF8151F153F +EDFFF05C020713C04A138091383FFE004A5A903801FFF0495B010F13804990C7FCEB7FFC +48485A4813E0000F5B4890C8FCEA7FFE13F8EAFFE05B90C9FC127E1278252F7BB230>62 +D64 +D<147F4A7EA2497FA4497F14F7A401077F14E3A3010F7FA314C1A2011F7FA490383F80FE +A590387F007FA4498049133F90B6FCA34881A39038FC001F00038149130FA40007814913 +07A2D87FFFEB7FFFB56CB51280A46C496C130029397DB830>I<007FB512F0B612FE6F7E +82826C813A03F8001FF815076F7E1501A26F7EA615015EA24B5A1507ED1FF0ED7FE090B6 +5A5E4BC7FC6F7E16E0829039F8000FF8ED03FC6F7E1500167FA3EE3F80A6167F1700A25E +4B5A1503ED1FFC007FB6FCB75A5E16C05E6C02FCC7FC29387EB730>I<91387F803C9039 +03FFF03E49EBFC7E011F13FE49EBFFFE5B9038FFE07F48EB801F3903FE000F484813075B +48481303A2484813015B123F491300A2127F90C8FC167C16005A5AAC7E7EA2167C6D14FE +123FA27F121F6D13016C6C14FCA26C6CEB03F86D13076C6CEB0FF03901FF801F6C9038E0 +7FE06DB512C06D14806D1400010713FC6D13F09038007FC0273A7CB830>I<003FB512E0 +4814FCB67E6F7E6C816C813A03F8007FF0ED1FF8150F6F7E6F7E15016F7EA2EE7F80A216 +3F17C0161FA4EE0FE0AC161F17C0A3163F1780A2167F17005E4B5A15034B5A150F4B5AED +7FF0003FB65A485DB75A93C7FC6C14FC6C14E02B387FB730>I<007FB7FCB81280A47ED8 +03F8C7123FA8EE1F0093C7FCA4157C15FEA490B5FCA6EBF800A4157C92C8FCA5EE07C0EE +0FE0A9007FB7FCB8FCA46C16C02B387EB730>I<003FB712804816C0B8FCA27E7ED801FC +C7121FA8EE0F8093C7FCA5153E157FA490B6FCA69038FC007FA4153E92C8FCAE383FFFF8 +487FB5FCA27E6C5B2A387EB730>I<02FF13F00103EBC0F8010F13F1013F13FD4913FF90 +B6FC4813C1EC007F4848133F4848131F49130F485A491307121F5B123F491303A2127F90 +C7FC6F5A92C8FC5A5AA892B5FC4A14805CA26C7F6C6D1400ED03F8A27F003F1407A27F12 +1F6D130F120F7F6C6C131FA2D803FE133F6C6C137FECC1FF6C90B5FC7F6D13FB010F13F3 +0103EBC1F0010090C8FC293A7DB830>I<3B3FFF800FFFE0486D4813F0B56C4813F8A26C +496C13F06C496C13E0D803F8C7EAFE00B290B6FCA601F8C7FCB3A23B3FFF800FFFE0486D +4813F0B56C4813F8A26C496C13F06C496C13E02D387FB730>I<007FB6FCB71280A46C15 +00260007F0C7FCB3B3A8007FB6FCB71280A46C1500213879B730>I75 +D<383FFFF8487FB57EA26C5B6C5BD801FCC9FCB3B0EE0F80EE1FC0A9003FB7FC5AB8FCA2 +7E6C16802A387EB730>III<90383FFFE048B512FC000714FF4815804815C04815E0EB +F80001E0133FD87F80EB0FF0A290C71207A44815F8481403B3A96C1407A26C15F0A36D13 +0FA26D131F6C6CEB3FE001F813FF90B6FC6C15C06C15806C1500000114FCD8003F13E025 +3A7BB830>I<007FB512F0B612FE6F7E16E0826C813903F8003FED0FFCED03FE15016F7E +A2821780163FA6167F17005EA24B5A1503ED0FFCED3FF890B6FC5E5E16804BC7FC15F001 +F8C9FCB0387FFFC0B57EA46C5B29387EB730>I<003FB57E4814F0B612FC15FF6C816C81 +2603F8017F9138003FF0151F6F7E15071503821501A515035E1507150F4B5A153F4AB45A +90B65A5E93C7FC5D8182D9F8007FED3FE0151F150F821507A817F8EEF1FCA53A3FFF8003 +FB4801C0EBFFF8B56C7E17F06C496C13E06C49EB7FC0C9EA1F002E397FB730>82 +D<90390FF803C0D97FFF13E048B512C74814F74814FF5A381FF80F383FE001497E484813 +7F90C7123F5A48141FA2150FA37EED07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C +14E0000114F86C80011F13FF01031480D9003F13C014019138007FE0151FED0FF0A2ED07 +F8A2007C140312FEA56C140716F07F6DEB0FE06D131F01F8EB3FC001FF13FF91B5128016 +0000FD5CD8FC7F13F8D8F81F5BD878011380253A7BB830>I<003FB712C04816E0B8FCA4 +3AFE003F800FA8007CED07C0C791C7FCB3B1011FB5FC4980A46D91C7FC2B387EB730>I< +3B7FFFC007FFFCB56C4813FEA46C496C13FCD803F8C7EA3F80B3B16D147F00011600A36C +6C14FE6D13016D5CEC800390393FE00FF890391FF83FF06DB55A6D5C6D5C6D91C7FC9038 +007FFCEC1FF02F3980B730>III<3A3FFF01FFF84801837F02C77FA202835B6C01015B3A01FC007F806D91C7FC00 +005C6D5BEB7F01EC81FCEB3F8314C3011F5B14E7010F5B14FF6D5BA26D5BA26D5BA26D90 +C8FCA4497FA2497FA2815B81EB0FE781EB1FC381EB3F8181EB7F0081497F49800001143F +49800003141F49800007140FD87FFEEB7FFFB590B5128080A25C6C486D130029387DB730 +>II<007FB612F0A2B712F8A36C15F0A225077B7D30>95 D97 DII<913801FFE04A +7F5CA28080EC0007AAEB03FE90381FFF874913E790B6FC5A5A481303380FFC00D81FF013 +3F49131F485A150F4848130790C7FCA25AA25AA87E6C140FA27F003F141F6D133F6C7E6D +137F390FF801FF2607FE07EBFFC06CB712E06C16F06C14F76D01C713E0011F010313C0D9 +07FCC8FC2C397DB730>I<49B4FC010713E0011F13F8017F7F90B57E488048018113803A +07FC007FC04848133FD81FE0EB1FE0150F484814F0491307127F90C7FCED03F85A5AB7FC +A516F048C9FC7E7EA27F003FEC01F06DEB03F86C7E6C7E6D1307D807FEEB1FF03A03FFC0 +7FE06C90B5FC6C15C0013F14806DEBFE00010713F8010013C0252A7CA830>IIII<14E0EB03F8A2497EA36D5AA2EB00E091C8FCA9381FFFF8487F5AA27E7EEA0001B3A9 +003FB612C04815E0B7FCA27E6C15C023397AB830>I107 +D<387FFFF8B57EA47EEA0001B3B3A8007FB612F0B712F8A46C15F025387BB730>I<02FC +137E3B7FC3FF01FF80D8FFEF01877F90B500CF7F15DF92B57E6C010F13872607FE07EB03 +F801FC13FE9039F803FC01A201F013F8A301E013F0B3A23C7FFE0FFF07FF80B548018F13 +C0A46C486C01071380322881A730>II<49B4FC010F +13E0013F13F8497F90B57E0003ECFF8014013A07FC007FC04848EB3FE0D81FE0EB0FF0A2 +4848EB07F8491303007F15FC90C71201A300FEEC00FEA86C14016C15FCA26D1303003F15 +F86D13076D130F6C6CEB1FF06C6CEB3FE06D137F3A07FF01FFC06C90B512806C15006C6C +13FC6D5B010F13E0010190C7FC272A7CA830>II<49B413F8010FEBC1FC013F13F14913FD48B6FC5A481381390FFC00 +7F49131F4848130F491307485A491303127F90C7FC15015A5AA77E7E15037FA26C6C1307 +150F6C6C131F6C6C133F01FC137F3907FF01FF6C90B5FC6C14FD6C14F9013F13F1010F13 +C1903803FE0190C7FCAD92B512F84A14FCA46E14F82E3C7DA730>II<9038 +1FFC1E48B5129F000714FF5A5A5A387FF007EB800100FEC7FC4880A46C143E007F91C7FC +13E06CB4FC6C13FC6CEBFF806C14E0000114F86C6C7F01037F9038000FFF02001380007C +147F00FEEC1FC0A2150F7EA27F151F6DEB3F806D137F9039FC03FF0090B6FC5D5D00FC14 +F0D8F83F13C026780FFEC7FC222A79A830>III<3B3FFFC07FFF80 +486DB512C0B515E0A26C16C06C496C13803B01F80003F000A26D130700005DA26D130F01 +7E5CA2017F131F6D5CA2EC803F011F91C7FCA26E5A010F137EA2ECE0FE01075BA214F101 +035BA3903801FBF0A314FF6D5BA36E5A6E5A2B277EA630>I<3B3FFFC01FFFE0486D4813 +F0B515F8A26C16F06C496C13E0D807E0C7EA3F00A26D5C0003157EA56D14FE00015DEC0F +80EC1FC0EC3FE0A33A00FC7FF1F8A2147DA2ECFDF9017C5C14F8A3017E13FBA290393FF0 +7FE0A3ECE03FA2011F5C90390F800F802D277FA630>I<3A3FFF81FFFC4801C37FB580A2 +6C5D6C01815BC648C66CC7FC137FEC80FE90383F81FC90381FC3F8EB0FE3ECE7F06DB45A +6D5B7F6D5B92C8FC147E147F5C497F81903803F7E0EB07E790380FE3F0ECC1F890381F81 +FC90383F80FE90387F007E017E137F01FE6D7E48486D7E267FFF80B5FCB500C1148014E3 +A214C16C0180140029277DA630>I<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C49 +6C13803B01FC0003F000A2000014076D5C137E150F017F5C7F151FD91F805BA214C0010F +49C7FCA214E00107137EA2EB03F0157C15FCEB01F85DA2EB00F9ECFDF0147D147FA26E5A +A36E5AA35DA2143F92C8FCA25C147EA2000F13FE486C5AEA3FC1EBC3F81387EB8FF0EBFF +E06C5B5C6C90C9FC6C5AEA01F02B3C7EA630>I<001FB612FC4815FE5AA316FC90C7EA0F +F8ED1FF0ED3FE0ED7FC0EDFF80003E491300C7485A4A5A4A5A4A5A4A5A4A5A4A5A4990C7 +FC495A495A495A495A495A495A4948133E4890C7127F485A485A485A485A485A48B7FCB8 +FCA46C15FE28277DA630>II125 D E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fk cmbx12 14.4 49 +/Fk 49 122 df<151E153E157E15FCEC01F8EC07F0EC0FE0EC1FC01580143FEC7F0014FE +1301495A5C1307495AA2495A133F5C137FA2495AA24890C7FCA25A5BA21207A2485AA312 +1F5BA3123FA25BA3127FA55B12FFB3A3127F7FA5123FA37FA2121FA37F120FA36C7EA212 +03A27F7EA26C7FA26D7EA2133F80131F6D7EA26D7E1303806D7E1300147FEC3F80141F15 +C0EC0FE0EC07F0EC01F8EC00FC157E153E151E1F7973D934>40 D<127012F8127C127E7E +EA1FC06C7E6C7E12037F6C7E6C7E7F6D7E133F806D7EA26D7E80130780A26D7EA26D7EA2 +15807FA215C0A2EC7FE0A315F0143FA315F8A2141FA315FCA5140F15FEB3A315FC141FA5 +15F8A3143FA215F0A3147F15E0A3ECFFC0A21580A25B1500A2495AA2495AA25C130F5C49 +5AA2495A5C137F49C7FC5B485A485A5B1207485A485A48C8FC127E127C5A12701F7979D9 +34>I46 +D<913803FFC0023F13FC91B6FC010315C0010F018113F0903A1FFC003FF849486D7E4948 +6D7E49486D7E48496D138048496D13C0A24817E04890C813F0A34817F8A24817FC49157F +A3007F17FEA600FF17FFB3A5007F17FEA6003F17FCA26D15FFA26C17F8A36C17F0A26C6D +4913E0A26C6D4913C06C17806E5B6C6D4913006D6C495AD91FFCEB3FF8903A0FFF81FFF0 +6D90B55A01011580D9003F01FCC7FC020313C0384F7BCD43>48 D<157815FC1403140714 +1F14FF130F0007B5FCB6FCA2147F13F0EAF800C7FCB3B3B3A6007FB712FEA52F4E76CD43 +>II<91380FFFC091B512FC0107ECFF80011F15E090 +263FF8077F9026FF800113FC4848C76C7ED803F86E7E491680D807FC8048B416C080486D +15E0A4805CA36C17C06C5B6C90C75AD801FC1680C9FC4C13005FA24C5A4B5B4B5B4B13C0 +4B5BDBFFFEC7FC91B512F816E016FCEEFF80DA000713E0030113F89238007FFE707E7013 +807013C018E07013F0A218F8A27013FCA218FEA2EA03E0EA0FF8487E487E487EB57EA318 +FCA25E18F891C7FC6C17F0495C6C4816E001F04A13C06C484A1380D80FF84A13006CB44A +5A6CD9F0075BC690B612F06D5D011F1580010302FCC7FCD9001F1380374F7ACD43>I<17 +7C17FEA2160116031607160FA2161F163F167FA216FF5D5DA25D5DED1FBFED3F3F153E15 +7C15FCEC01F815F0EC03E01407EC0FC01580EC1F005C147E147C5C1301495A495A5C495A +131F49C7FC133E5B13FC485A5B485A1207485A485A90C8FC123E127E5ABA12C0A5C96C48 +C7FCAF020FB712C0A53A4F7CCE43>III<121F7F7F +EBFF8091B81280A45A1900606060A2606060485F0180C86CC7FC007EC95A4C5A007C4B5A +5F4C5A160F4C5A484B5A4C5A94C8FC16FEC812014B5A5E4B5A150F4B5AA24B5AA24B5A15 +FFA24A90C9FCA25C5D1407A2140FA25D141FA2143FA4147F5DA314FFA55BAC6D5BA2EC3F +C06E5A395279D043>I<913807FFC0027F13FC0103B67E010F15E090261FFC0113F8903A +3FE0003FFCD97F80EB0FFE49C76C7E48488048486E1380000717C04980120F18E0177FA2 +121F7FA27F7F6E14FF02E015C014F802FE4913806C7FDBC00313009238F007FE6C02F85B +9238FE1FF86C9138FFBFF06CEDFFE017806C4BC7FC6D806D81010F15E06D81010115FC01 +0781011F81491680EBFFE748018115C048D9007F14E04848011F14F048487F4848130303 +0014F8484880161F4848020713FC1601824848157F173FA2171FA2170FA218F8A27F007F +17F06D151FA26C6CED3FE0001F17C06D157F6C6CEDFF806C6C6C010313006C01E0EB0FFE +6C01FCEBFFFC6C6CB612F06D5D010F1580010102FCC7FCD9000F13C0364F7ACD43>I<91 +380FFF8091B512F8010314FE010F6E7E4901037F90267FF8007F4948EB3FF048496D7E48 +4980486F7E484980824817805A91C714C05A7013E0A218F0B5FCA318F8A618FCA46C5DA3 +7EA25E6C7F6C5DA26C5D6C7F6C6D137B6C6D13F390387FF803011FB512E36D14C3010302 +8313F89039007FFE03EC00401500A218F05EA3D801F816E0487E486C16C0487E486D4913 +80A218005E5F4C5A91C7FC6C484A5A494A5A49495B6C48495BD803FC010F5B9027FF807F +FEC7FC6C90B55A6C6C14F06D14C0010F49C8FC010013F0364F7ACD43>I<171F4D7E4D7E +A24D7EA34C7FA24C7FA34C7FA34C7FA24C7FA34C8083047F80167E8304FE804C7E030181 +16F8830303814C7E03078116E083030F814C7E031F81168083033F8293C77E4B82157E84 +03FE824B800201835D840203834B800207835D844AB87EA24A83A3DA3F80C88092C97E4A +84A2027E8202FE844A82010185A24A820103854A82010785A24A82010F855C011F717FEB +FFFCB600F8020FB712E0A55B547BD366>65 DI<932601FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F +92B8EA803F0203DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC +494848C9FC4901F8824949824949824949824949824990CA7E494883A2484983485B1B7F +485B481A3FA24849181FA3485B1B0FA25AA298C7FC5CA2B5FCAE7EA280A2F307C07EA36C +7FA21B0F6C6D1980A26C1A1F6C7F1C006C6D606C6D187EA26D6C606D6D4C5A6D6D16036D +6D4C5A6D6D4C5A6D01FC4C5A6D6DEE7F806D6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1F +F80203903AFFE001FFF0020091B612C0033F93C8FC030715FCDB007F14E0040101FCC9FC +525479D261>I +III73 D76 +D<93380FFFC00303B6FC031F15E092B712FC0203D9FC0013FF020F01C0010F13C0023F90 +C7000313F0DA7FFC02007F494848ED7FFE4901E0ED1FFF49496F7F49496F7F4990C96C7F +49854948707F4948707FA24849717E48864A83481B804A83481BC0A2481BE04A83A2481B +F0A348497113F8A5B51AFCAF6C1BF86E5FA46C1BF0A26E5F6C1BE0A36C6D4D13C0A26C6D +4D1380A26C1B006C6D4D5A6E5E6C626D6C4C5B6D6D4B5B6D6D4B5B6D6D4B5B6D6D4B5B6D +6D4B90C7FC6D6D4B5A6D01FF02035B023F01E0011F13F0020F01FC90B512C0020390B7C8 +FC020016FC031F15E0030392C9FCDB001F13E0565479D265>79 DI82 D<91260FFF80130791B500F85B010702FF5B011FEDC0 +3F49EDF07F9026FFFC006D5A4801E0EB0FFD4801800101B5FC4848C87E48488149150F00 +1F824981123F4981007F82A28412FF84A27FA26D82A27F7F6D93C7FC14C06C13F014FF15 +F86CECFF8016FC6CEDFFC017F06C16FC6C16FF6C17C06C836C836D826D82010F82130301 +0082021F16801400030F15C0ED007F040714E01600173F050F13F08383A200788200F882 +A3187FA27EA219E07EA26CEFFFC0A27F6D4B13806D17006D5D01FC4B5A01FF4B5A02C04A +5A02F8EC7FF0903B1FFFC003FFE0486C90B65AD8FC0393C7FC48C66C14FC48010F14F048 +D9007F90C8FC3C5479D24B>I<003FBC1280A59126C0003F9038C0007F49C71607D87FF8 +060113C001E08449197F49193F90C8171FA2007E1A0FA3007C1A07A500FC1BE0481A03A6 +C994C7FCB3B3AC91B912F0A553517BD05E>II97 DI<913801FFF8021FEB +FF8091B612F0010315FC010F9038C00FFE903A1FFE0001FFD97FFC491380D9FFF05B4817 +C048495B5C5A485BA2486F138091C7FC486F1300705A4892C8FC5BA312FFAD127F7FA27E +A2EF03E06C7F17076C6D15C07E6E140F6CEE1F806C6DEC3F006C6D147ED97FFE5C6D6CEB +03F8010F9038E01FF0010390B55A01001580023F49C7FC020113E033387CB63C>I<4DB4 +7E0407B5FCA5EE001F1707B3A4913801FFE0021F13FC91B6FC010315C7010F9038E03FE7 +4990380007F7D97FFC0101B5FC49487F4849143F484980485B83485B5A91C8FC5AA3485A +A412FFAC127FA36C7EA37EA26C7F5F6C6D5C7E6C6D5C6C6D49B5FC6D6C4914E0D93FFED9 +0FEFEBFF80903A0FFFC07FCF6D90B5128F0101ECFE0FD9003F13F8020301C049C7FC4154 +7CD24B>I<913803FFC0023F13FC49B6FC010715C04901817F903A3FFC007FF849486D7E +49486D7E4849130F48496D7E48178048497F18C0488191C7FC4817E0A248815B18F0A212 +FFA490B8FCA318E049CAFCA6127FA27F7EA218E06CEE01F06E14037E6C6DEC07E0A26C6D +EC0FC06C6D141F6C6DEC3F806D6CECFF00D91FFEEB03FE903A0FFFC03FF8010390B55A01 +0015C0021F49C7FC020113F034387CB63D>IIII<137F497E000313E0487FA2487FA76C5BA2 +6C5BC613806DC7FC90C8FCADEB3FF0B5FCA512017EB3B3A6B612E0A51B547BD325>I108 DII<913801FFE0021F13FE91B612C0010315F0010F9038807F +FC903A1FFC000FFED97FF86D6C7E49486D7F48496D7F48496D7F4A147F48834890C86C7E +A24883A248486F7EA3007F1880A400FF18C0AC007F1880A3003F18006D5DA26C5FA26C5F +6E147F6C5F6C6D4A5A6C6D495B6C6D495B6D6C495BD93FFE011F90C7FC903A0FFF807FFC +6D90B55A010015C0023F91C8FC020113E03A387CB643>I<903A3FF001FFE0B5010F13FE +033FEBFFC092B612F002F301017F913AF7F8007FFE0003D9FFE0EB1FFFC602806D7F92C7 +6C7F4A824A6E7F4A6E7FA2717FA285187F85A4721380AC1A0060A36118FFA2615F616E4A +5BA26E4A5B6E4A5B6F495B6F4990C7FC03F0EBFFFC9126FBFE075B02F8B612E06F148003 +1F01FCC8FC030313C092CBFCB1B612F8A5414D7BB54B>I<90397FE003FEB590380FFF80 +033F13E04B13F09238FE1FF89139E1F83FFC0003D9E3E013FEC6ECC07FECE78014EF1500 +14EE02FEEB3FFC5CEE1FF8EE0FF04A90C7FCA55CB3AAB612FCA52F367CB537>114 +D<903903FFF00F013FEBFE1F90B7FC120348EB003FD80FF81307D81FE0130148487F4980 +127F90C87EA24881A27FA27F01F091C7FC13FCEBFFC06C13FF15F86C14FF16C06C15F06C +816C816C81C681013F1580010F15C01300020714E0EC003F030713F015010078EC007F00 +F8153F161F7E160FA27E17E07E6D141F17C07F6DEC3F8001F8EC7F0001FEEB01FE9039FF +C00FFC6DB55AD8FC1F14E0D8F807148048C601F8C7FC2C387CB635>I<143EA6147EA414 +FEA21301A313031307A2130F131F133F13FF5A000F90B6FCB8FCA426003FFEC8FCB3A9EE +07C0AB011FEC0F8080A26DEC1F0015806DEBC03E6DEBF0FC6DEBFFF86D6C5B021F5B0203 +13802A4D7ECB34>IIII<007FB500 +F090387FFFFEA5C66C48C7000F90C7FC6D6CEC07F86D6D5C6D6D495A6D4B5A6F495A6D6D +91C8FC6D6D137E6D6D5B91387FFE014C5A6E6C485A6EEB8FE06EEBCFC06EEBFF806E91C9 +FCA26E5B6E5B6F7E6F7EA26F7F834B7F4B7F92B5FCDA01FD7F03F87F4A486C7E4A486C7E +020F7FDA1FC0804A486C7F4A486C7F02FE6D7F4A6D7F495A49486D7F01076F7E49486E7E +49486E7FEBFFF0B500FE49B612C0A542357EB447>II +E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fl cmr10 10.95 83 +/Fl 83 124 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF03FD907 +F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE6D91C7 +FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>11 +DII<001E130F397F803FC000FF137F01C013E0A201E013F0A3007F13 +3F391E600F3000001300A401E01370491360A3000114E04913C000031301010013804813 +03000EEB070048130E0018130C0038131C003013181C1C7DBE2D>34 +D<14E0A4EB07FC90383FFF8090B512E03901F8E3F03903E0E0FCD807C0133CD80F807FD8 +1F007F003E80003C1580007C140316C00078141F00F8143F157FA47EED3F806CEC0E0092 +C7FC127F138013C0EA3FF013FEEA1FFF6C13FC6C13FF6C14C06C806C6C13F8011F7F1303 +01007FECE7FF14E102E01380157F153FED1FC0A2003E140F127FD8FF801307A5130000FC +158000F0140F1270007815005D6C141E153E6C5C6C5C3907C0E1F03903F8EFE0C6B51280 +D93FFEC7FCEB0FF8EB00E0A422497BC32D>36 D<013F1603D9FFC04B7E2601E0E0150F26 +07C070151F48486C4BC7FC023E157E48486C15FE48D90FC0EB03FC003ED90EF0EB0FF8DA +0F3F13FD007E903A070FFFF1F0007C0200EB03E0160000FC6D6C495A170F604DC8FC5F17 +3E5F17FC5F4C5A1603007CD907005B4C5A007E150F003E495C020E49C9FC003F5D6C4913 +3E260F803C5B023813FC6C6C485B3A01E0E001F03800FFC090273F0003E0133F90C70007 +ECFFC09339C001E0E0923A0F8007C070031F49487E0400143C033E90381F001C037E497F +037C133E4B150F0201027E7F4B137C4A5A020702FCEB03805D4A5A141F92C7FC143E147E +147C5CA2495A0103037CEB07005C4948147E010F033E5B4A160E49C8123F496F5B013E92 +380F803C49173801FC6F6C5A49923801E0E0496FB45A0160043FC7FC41497BC34C>II<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A3 +12011380120313005A120E5A1218123812300B1C79BE19>I<1430147014E0EB01C0EB03 +801307EB0F00131E133E133C5B13F85B12015B1203A2485AA2120F5BA2121F90C7FCA25A +A3123E127EA6127C12FCB2127C127EA6123E123FA37EA27F120FA27F1207A26C7EA21201 +7F12007F13787F133E131E7FEB07801303EB01C0EB00E014701430145A77C323>I<12C0 +7E12707E7E121E7E6C7E7F12036C7E7F12007F1378137CA27FA2133F7FA21480130FA214 +C0A3130714E0A6130314F0B214E01307A614C0130FA31480A2131F1400A25B133EA25BA2 +137813F85B12015B485A12075B48C7FC121E121C5A5A5A5A145A7BC323>II<121EEA7F80 +12FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313005A120E5A121812 +3812300B1C798919>44 DI<121EEA7F80A2EAFFC0A4EA7F80A2 +EA1E000A0A798919>IIIIII<150E151E153EA2157EA215FE +1401A21403EC077E1406140E141CA214381470A214E0EB01C0A2EB0380EB0700A2130E5B +A25B5BA25B5B1201485A90C7FC5A120E120C121C5AA25A5AB8FCA3C8EAFE00AC4A7E49B6 +FCA3283E7EBD2D>I<00061403D80780131F01F813FE90B5FC5D5D5D15C092C7FC14FCEB +3FE090C9FCACEB01FE90380FFF8090383E03E090387001F8496C7E49137E497F90C71380 +0006141FC813C0A216E0150FA316F0A3120C127F7F12FFA416E090C7121F12FC007015C0 +12780038EC3F80123C6CEC7F00001F14FE6C6C485A6C6C485A3903F80FE0C6B55A013F90 +C7FCEB07F8243F7CBC2D>II<1238 +123C123F90B612FCA316F85A16F016E00078C712010070EC03C0ED078016005D48141E15 +1C153C5DC8127015F04A5A5D14034A5A92C7FC5C141EA25CA2147C147814F8A213015C13 +03A31307A3130F5CA2131FA6133FAA6D5A0107C8FC26407BBD2D>III<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121EEA7F80A2EAFFC0A4EA +7F80A2EA1E000A2779A619>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121E12 +7FEAFF80A213C0A4127F121E1200A412011380A3120313005A1206120E120C121C5A1230 +A20A3979A619>I63 D<15074B7EA34B7EA34B7EA34B7EA34B7E15E7A2913801C7FC +15C3A291380381FEA34AC67EA3020E6D7EA34A6D7EA34A6D7EA34A6D7EA34A6D7EA34948 +6D7E91B6FCA249819138800001A249C87EA24982010E157FA2011E82011C153FA2013C82 +0138151FA2017882170F13FC00034C7ED80FFF4B7EB500F0010FB512F8A33D417DC044> +65 DIIIII +III<011FB512FCA3D9000713006E5A1401B3B3A6123F +EA7F80EAFFC0A44A5A1380D87F005B007C130700385C003C495A6C495A6C495A2603E07E +C7FC3800FFF8EB3FC026407CBD2F>IIIIIII82 DI<003FB91280A3903AF0007FE001018090393FC0003F48C7ED1FC0007E17 +07127C00781703A300701701A548EF00E0A5C81600B3B14B7E4B7E0107B612FEA33B3D7D +BC42>IIII89 +D<003FB712F8A391C7EA1FF013F801E0EC3FE00180EC7FC090C8FC003EEDFF80A2003C4A +1300007C4A5A12784B5A4B5AA200704A5AA24B5A4B5AA2C8485A4A90C7FCA24A5A4A5AA2 +4A5AA24A5A4A5AA24A5A4A5AA24990C8FCA2495A4948141CA2495A495AA2495A495A173C +495AA24890C8FC485A1778485A484815F8A24848140116034848140F4848143FED01FFB8 +FCA32E3E7BBD38>II<486C13C000 +03130101001380481303000EEB070048130E0018130C0038131C00301318007013380060 +1330A300E01370481360A400CFEB678039FFC07FE001E013F0A3007F133FA2003F131F01 +C013E0390F0007801C1C73BE2D>I +I96 D +II<49B4FC010F13E090383F00F8017C131E4848131F +4848137F0007ECFF80485A5B121FA24848EB7F00151C007F91C7FCA290C9FC5AAB6C7EA3 +003FEC01C07F001F140316806C6C13076C6C14000003140E6C6C131E6C6C137890383F01 +F090380FFFC0D901FEC7FC222A7DA828>II +II<167C903903F801 +FF903A1FFF078F8090397E0FDE1F9038F803F83803F001A23B07E000FC0600000F6EC7FC +49137E001F147FA8000F147E6D13FE00075C6C6C485AA23901F803E03903FE0FC026071F +FFC8FCEB03F80006CAFC120EA3120FA27F7F6CB512E015FE6C6E7E6C15E06C810003813A +0FC0001FFC48C7EA01FE003E140048157E825A82A46C5D007C153E007E157E6C5D6C6C49 +5A6C6C495AD803F0EB0FC0D800FE017FC7FC90383FFFFC010313C0293D7EA82D>III<1478EB01FEA2EB03FFA4EB01FEA2EB00781400AC147FEB7FFFA313 +017F147FB3B3A5123E127F38FF807E14FEA214FCEB81F8EA7F01387C03F0381E07C0380F +FF803801FC00185185BD1C>II +I<2701F801FE14FF00FF902707FFC00313E0913B1E07E00F03F0913B7803F03C01F80007 +903BE001F87000FC2603F9C06D487F000101805C01FBD900FF147F91C75B13FF4992C7FC +A2495CB3A6486C496CECFF80B5D8F87FD9FC3F13FEA347287DA74C>I<3901F801FE00FF +903807FFC091381E07E091387803F000079038E001F82603F9C07F0001138001FB6D7E91 +C7FC13FF5BA25BB3A6486C497EB5D8F87F13FCA32E287DA733>I<14FF010713E090381F +81F890387E007E01F8131F4848EB0F804848EB07C04848EB03E0000F15F04848EB01F8A2 +003F15FCA248C812FEA44815FFA96C15FEA36C6CEB01FCA3001F15F86C6CEB03F0A26C6C +EB07E06C6CEB0FC06C6CEB1F80D8007EEB7E0090383F81FC90380FFFF0010090C7FC282A +7EA82D>I<3901FC03FC00FF90381FFF8091387C0FE09039FDE003F03A07FFC001FC6C49 +6C7E6C90C7127F49EC3F805BEE1FC017E0A2EE0FF0A3EE07F8AAEE0FF0A4EE1FE0A2EE3F +C06D1580EE7F007F6E13FE9138C001F89039FDE007F09039FC780FC0DA3FFFC7FCEC07F8 +91C9FCAD487EB512F8A32D3A7EA733>I<02FF131C0107EBC03C90381F80F090397F0038 +7C01FC131CD803F8130E4848EB0FFC150748481303121F485A1501485AA448C7FCAA6C7E +A36C7EA2001F14036C7E15076C6C130F6C7E6C6C133DD8007E137990383F81F190380FFF +C1903801FE0190C7FCAD4B7E92B512F8A32D3A7DA730>I<3901F807E000FFEB1FF8EC78 +7CECE1FE3807F9C100031381EA01FB1401EC00FC01FF1330491300A35BB3A5487EB512FE +A31F287EA724>I<90383FC0603901FFF8E03807C03F381F000F003E1307003C1303127C +0078130112F81400A27E7E7E6D1300EA7FF8EBFFC06C13F86C13FE6C7F6C1480000114C0 +D8003F13E0010313F0EB001FEC0FF800E01303A214017E1400A27E15F07E14016C14E06C +EB03C0903880078039F3E01F0038E0FFFC38C01FE01D2A7DA824>I<131CA6133CA4137C +A213FCA2120112031207001FB512C0B6FCA2D801FCC7FCB3A215E0A912009038FE01C0A2 +EB7F03013F138090381F8700EB07FEEB01F81B397EB723>IIIIII<001FB61280A2EBE0000180140049485A001E495A121C4A5A003C +495A141F00385C4A5A147F5D4AC7FCC6485AA2495A495A130F5C495A90393FC00380A2EB +7F80EBFF005A5B484813071207491400485A48485BA248485B4848137F00FF495A90B6FC +A221277EA628>II E +%EndDVIPSBitmapFont +%DVIPSBitmapFont: Fm cmbx12 20.736 11 +/Fm 11 115 df<137F3801FFC0000713F0487F487F487F487FA2B61280A96C1400A26C5B +6C5B6C5B6C5B000113C06C6CC7FC1919729836>46 D48 D<93B57E031F14FC92B7 +7E020316F0020F16FC023F16FF4A8349B5D8800314E04901F8C7003F7F4901C0020F7F49 +90C800037FD91FFC6F7F49486F6C7E137F4A7013804948827313C05A4A821BE05AA28548 +7FA38080806E5E8003C017C08103F85D03FE17806F6C5C6C6F160004F05C04FC4A5A6C6F +5D706C13FFDDE0015B6CDCF8035BDDFC0F13C06DDBFF1F5B6D93B5C7FC19FC6D17F06D5F +6D17806D17E06D836D6C16FC6E16FF020F836E17E06E83020F83023F8391B97E49840107 +01F0178049D9C07F16C0013FD9801F16E049EB00074948010116F048497F4849023F15F8 +4849140F4A6E15FC48160148496E6C14FE4A151F488391C9120348050014FF193F498385 +00FF84854983A28586A3861BFEA27FA2007F1AFC7F1A7F1BF86C7FF2FFF06C7F6E4C13E0 +6C6D4C13C06C6D5E6E4C13806C6D4C13006C6D6CED7FFE6C02E04A485A013F01FC020F13 +F06D9026FFC001B55A010791B712806D95C7FC010017FC021F16F002071680DA007F02FC +C8FC030191C9FC507378F061>56 D<93B5FC031F14F092B612FE02076F7E021F16E04A16 +F891B87E49DAF00713FF0107DA0001804901FC6D6C7F49496E7F49496E7F49496E7F90B5 +486E7F484A8048854891C86C7FA2487114805C481AC0A2487213E0A2484918F0A31BF8A2 +B5FCA27313FCA51BFEA71BFF61A27EA396B6FC7EA2806C5FA27E606C7F607E6C6E5C6CEF +1FBF6D6DEC3F3F6D6D147F6D6D14FE6D6DEB01FC6D01FE130701019039FFC01FF86D91B5 +00F014FE023F15C06E15800203ECFE00DA007F13F8030713C092C9FC4F13FCA41BF8A31B +F0D91FF093B5FCEB7FFC496C18E0487F486E17C06048801B804E1400A26260624E5B4B5C +626C91C8485B4A4B5B4A92B55A6C01F04A91C7FC02804A5B6C01E0020F5B6D6C023F13F0 +02FE91B55A90273FFFE00F5C6D90B7C8FC010716FC6D16F0010016C0023F92C9FC020714 +F09126007FFECAFC507378F061>I<92383FFFF80207B612E0027F15FC49B87E010717E0 +011F83499026F0007F13FC4948C7000F7F90B502036D7E486E6D806F6D80727F486E6E7F +8486727FA28684A26C5C72806C5C6D90C8FC6D5AEB0FF8EB03E090CAFCA70507B6FC041F +B7FC0303B8FC157F0203B9FC021FECFE0391B612800103ECF800010F14C04991C7FC017F +13FC90B512F04814C0485C4891C8FC485B5A485B5C5A5CA2B5FC5CA360A36E5DA26C5F6E +5D187E6C6D846E4A48806C6D4A4814FC6C6ED90FF0ECFFFC6C02E090263FE07F14FE0001 +9139FC03FFC06C91B6487E013F4B487E010F4B1307010303F01301D9003F0280D9003F13 +FC020101F8CBFC57507ACE5E>97 D<903801FFFCB6FCA8C67E131F7FB3ADF0FFFC050FEB +FFE0057F14FE0403B77E040F16E0043F16F84CD9007F13FE9226FDFFF001077F92B500C0 +01018094C86C13E004FC6F7F4C6F7F04E06F7F4C6F7F5E747F93C915804B7014C0A27414 +E0A21DF087A21DF8A31DFC87A41DFEAF1DFCA4631DF8A31DF098B5FC1DE0A25014C0A26F +1980501400705D705F704B5B505B704B5B04FC4B5BDBE7FE92B55A9226C3FF8001035C03 +8101E0011F49C7FC9226807FFC90B55A4B6CB712F04A010F16C04A010393C8FC4A010015 +F84A023F14C090C9000301F0C9FC5F797AF76C>I<93383FFFF00307B612C0033F15F84A +B712FE0207707E021F17E0027F8391B526FC001F7F010302C001037F4991C7487F49495C +495B4901F04A7F5B90B55A485CA2485C4891C8FCA248715B5C48715B725B4A6F5B489438 +007FC0071FC7FC96C8FC5AA25CA3B5FCAF7E80A47E80A27E806CF11F80F23FC06C6E167F +A26C6EEEFF80816C606C6E17006D6D4B5A6D6D15076D6D4B5A6D6D6C4A5A6D02E0EC7FF0 +6D02F849485A01009126FF801F5B6E91B6C7FC021F5E020716F8020116E06E6C15800307 +02FCC8FCDB003F13804A507ACE56>I<97380FFFE00607B6FCA8F00003190086B3AD9338 +3FFF800307B512F8033F14FF4AB712C0020716F0021F16FC027F9039FE007FFE91B500F0 +EB0FFF01030280010190B5FC4949C87E49498149498149498149498190B548814884484A +8192CAFC5AA2485BA25A5C5AA35A5CA4B5FCAF7EA4807EA37EA2807EA26C7F616C6E5D6C +606C80616D6D5D6D6D5D6D6D92B67E6D6D4A15FC010301FF0207EDFFFE6D02C0EB3FFE6D +6C9039FC01FFF86E90B65A020F16C002031600DA007F14FC030F14E09226007FFEC749C7 +FC5F797AF76C>I<93387FFF80030FB512FC037FECFF804AB712E0020716F8021F16FE02 +7FD9F8077F49B5D8C000804991C7003F13E04901FC020F7F49496E7F49498049496E7F49 +496E7F90B55A48727E92C914804884485B1BC048841BE0485BA27313F05AA25C5AA21BF8 +85A2B5FCA391BAFCA41BF002F8CCFCA67EA3807EA47E806CF103F0F207F86C7F1A0F6C6E +17F06C191F6F17E06C6E163F6D6DEE7FC06D6D16FF6D6D4B13806D6D4B13006D6D6CEC0F +FE6D02E0EC3FFC6D02F8ECFFF86D9126FFC00F5B023F91B65A020F178002034CC7FC0200 +16F8031F15E0030392C8FCDB000F13E04D507BCE58>I<93381FFFE00303B6FC031F15E0 +92B712FC020316FF020F17C0023FD9FC0014F091B500C0010F13FC4991C700037F4901FC +02007F010F496F13C049496F7F49496F7F4B8149496F7F90B5C96C7F4886A24849707F48 +1B80A248497014C0A2481BE0A348497113F0A3481BF8A5B51AFCAE6C1BF8A46C1BF06E94 +B5FCA36C1BE0A26C6D4C14C0A26C1B806E5E6C1B006C6E4B5BA26C6E4B5B6D6D4B5B6D6D +4B5B6D6D4B5B6D6D92B55A6D01FF02035C6D02C0010F91C7FC010002FC90B512FC6E90B7 +5A021F17E00207178002014CC8FCDA003F15F0030392C9FCDB001F13E056507BCE61> +111 D<902601FFF8EB07FEB691383FFFC094B512F00403804C14FE4C8093261FFC3F1380 +93263FE07F13C0DC7F80B5FCC66C5D011FDAFE0114E06DEBF9FC16F815FB16F016E015FF +16C07114C05E72138095381FFE0093C76C5AF001E095C8FCA25DA65DB3B3A2B812F8A843 +4E7ACD4F>114 D E +%EndDVIPSBitmapFont +end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 600dpi +TeXDict begin +%%PaperSize: A4 + +%%EndSetup +%%Page: 1 1 +1 0 bop 94 1385 a Fm(barco)5 b(de)65 b(0.98)p 94 1451 +3780 34 v 2617 1548 a Fl(A)31 b(library)d(for)i(dra)m(wing)f(bar)h(co)s +(des)3409 1656 y(Marc)m(h)h(2002)94 5367 y Fk(b)l(y)45 +b(Alessandro)h(Rubini)f(\()p Fj(rubini@gnu.org)p Fk(\))p +94 5446 3780 17 v eop +%%Page: 1 2 +1 1 bop 94 -116 a Fl(Chapter)30 b(2:)41 b(The)30 b(Underlying)e(Data)k +(Structure)2012 b(1)94 365 y Fi(Barco)t(de)54 b(to)t(ols)219 +549 y Fl(This)29 b(\014le)g(do)s(cumen)m(ts)h(v)m(ersion)g(0.98)i(of)e +(the)h(barco)s(de)f(library)e(and)i(sample)f(programs)h(\(Marc)m(h)i +(2002\).)94 815 y Fi(1)81 b(Ov)l(erview)219 999 y Fl(The)26 +b Fh(barco)s(de)32 b Fl(pac)m(k)-5 b(age)29 b(is)d(mainly)f(a)i(C)f +(library)f(for)h(creating)i(bar-co)s(de)f(output)f(\014les.)39 +b(It)27 b(also)f(includes)94 1099 y(a)31 b(command)f(line)f(fron)m +(t-end)h(and)g(\(in)f(a)i(foreseeable)g(future\))f(a)h(graphic)e(fron)m +(tend.)219 1215 y(The)k(pac)m(k)-5 b(age)35 b(is)d(designed)g(as)i(a)f +(library)e(b)s(ecause)i(w)m(e)h(think)e(the)h(main)g(use)f(for)h(barco) +s(de-generation)94 1315 y(to)s(ols)23 b(is)f(inside)f(more)i(featured)g +(applications.)37 b(The)22 b(library)f(addresses)h(bar)h(co)s(de)g +(prin)m(ting)e(as)i(t)m(w)m(o)i(distinct)94 1415 y(problems:)43 +b(creation)33 b(of)f(bar)g(information)e(and)i(actual)h(con)m(v)m +(ersion)f(to)h(an)f(output)g(format.)47 b(T)-8 b(o)32 +b(this)g(aim)94 1514 y(w)m(e)25 b(use)f(an)g(in)m(termediate)g +(represen)m(tation)g(for)g(bar)f(co)s(des,)j(whic)m(h)d(is)g(curren)m +(tly)g(do)s(cumen)m(ted)h(in)e(the)j(`)p Fj(ps.c)p Fl(')94 +1614 y(source)31 b(\014le)e(\(not)i(in)f(this)f(do)s(cumen)m(t\).)219 +1730 y(Note)24 b(that)e(the)h(library)d(and)h(the)i(accompan)m(ying)g +(material)e(is)h(released)g(according)g(to)h(the)f(GPL)h(license,)94 +1830 y(not)31 b(the)g(LGPL)f(one.)41 b(A)30 b(cop)m(y)h(of)g(the)g(GPL) +f(is)f(included)f(in)h(the)i(distribution)26 b(tarball.)94 +2096 y Fi(2)81 b(The)53 b(Underlying)h(Data)g(Structure)219 +2280 y Fl(Ev)m(ery)33 b(barco)s(de-related)g(function)f(acts)i(on)f(a)h +(data)f(structure)g(de\014ned)f(in)g(the)h(`)p Fj(barcode.h)p +Fl(')e(header,)94 2380 y(whic)m(h)j(m)m(ust)h(b)s(e)f(included)e(b)m(y) +j(an)m(y)g(C)g(source)g(\014le)f(that)h(uses)g(the)g(library)-8 +b(.)52 b(The)35 b(header)f(is)g(installed)f(b)m(y)94 +2480 y Fj(make)47 b(install)p Fl(.)219 2596 y(The)30 +b(de\014nition)e(of)i(the)h(data)g(structure)f(is)f(included)f(here)i +(for)g(reference:)334 2717 y Fj(struct)47 b(Barcode_Item)d({)525 +2820 y(int)j(flags;)428 b(/*)47 b(type)g(of)g(encoding)f(and)h(other)f +(flags)g(*/)525 2924 y(char)h(*ascii;)332 b(/*)47 b(malloced)f(*/)525 +3028 y(char)h(*partial;)236 b(/*)47 b(malloced)f(too)h(*/)525 +3132 y(char)g(*textinfo;)188 b(/*)47 b(information)e(about)h(text)h +(placement)e(*/)525 3236 y(char)i(*encoding;)188 b(/*)47 +b(code)g(name,)f(filled)g(by)i(encoding)d(engine)h(*/)525 +3339 y(int)h(width,)f(height;)g(/*)h(output)f(units)h(*/)525 +3443 y(int)g(xoff,)g(yoff;)189 b(/*)47 b(output)f(units)h(*/)525 +3547 y(int)g(margin;)380 b(/*)47 b(output)f(units)h(*/)525 +3651 y(double)f(scalef;)237 b(/*)47 b(requested)f(scaling)f(for)i +(barcode)f(*/)525 3754 y(int)h(error;)428 b(/*)47 b(an)h(errno-like)d +(value,)h(in)h(case)f(of)i(failure)d(*/)334 3858 y(};)219 +3975 y Fl(The)e(exact)i(meaning)e(of)g(eac)m(h)i(\014eld)d(and)h(the)g +(v)-5 b(arious)43 b(\015ags)g(implemen)m(ted)f(are)i(describ)s(ed)e(in) +g(the)94 4074 y(follo)m(wing)29 b(sections.)219 4191 +y(Ev)m(en)38 b(though)f(y)m(ou)h(w)m(on't)g(usually)d(need)i(to)h(act)h +(on)e(the)h(con)m(ten)m(ts)h(of)f(this)e(structure,)j(some)f(of)g(the) +94 4290 y(functions)25 b(in)f(the)i(library)d(receiv)m(e)k(argumen)m +(ts)e(that)i(are)f(directly)e(related)i(to)g(one)g(or)g(more)f(of)h +(these)g(\014elds.)94 4524 y Fk(2.1)69 b(The)44 b(Fields)94 +4715 y Fj(int)30 b(flags;)574 4815 y Fl(The)42 b(\015ags)g(are,)j(as)d +(y)m(ou)g(ma)m(y)g(susp)s(ect,)j(mean)m(t)d(to)h(sp)s(ecify)d(the)i +(exact)h(b)s(eha)m(viour)e(of)h(the)574 4914 y(library)-8 +b(.)37 b(They)22 b(are)h(often)h(passed)e(as)h(an)g(argumen)m(t)g(to)h +Fg(b)-5 b(ar)g(c)g(o)g(de)32 b Fl(functions)21 b(and)i(are)g(discussed) +574 5014 y(in)30 b(the)g(next)h(section.)94 5147 y Fj(char)f(*ascii;)94 +5247 y(char)g(*partial;)94 5347 y(char)g(*textinfo;)94 +5446 y(char)g(*encoding;)574 5546 y Fl(These)41 b(\014elds)f(are)h(in)m +(ternally)e(managed)i(b)m(y)g(the)h(library)-8 b(,)41 +b(and)g(y)m(ou)g(are)h(not)f(exp)s(ected)g(to)574 5645 +y(touc)m(h)31 b(them)g(if)e(y)m(ou)i(use)f(the)h(pro)m(vided)d(API.)j +(All)e(of)h(them)h(are)g(allo)s(cated)f(with)f Fg(mal)5 +b(lo)-5 b(c)p Fl(.)p eop +%%Page: 2 3 +2 2 bop 94 -116 a Fl(Chapter)30 b(2:)41 b(The)30 b(Underlying)e(Data)k +(Structure)2012 b(2)94 365 y Fj(int)30 b(width;)94 465 +y(int)g(height;)574 565 y Fl(They)i(sp)s(ecify)e(the)i(width)d(and)i +(heigh)m(t)h(of)g(the)f Fg(active)39 b Fl(barco)s(de)31 +b(region)g(\(i.e.,)i(excluding)d(the)574 664 y(white)21 +b(margin\),)i(in)d(the)i(units)e(used)h(to)h(create)i(output)d(data)h +(\(for)g(p)s(ostscript)e(they)i(are)g(p)s(oin)m(ts,)574 +764 y(1/72th)33 b(of)d(an)g(inc)m(h,)g(0.352)j(mm\).)40 +b(The)30 b(\014elds)f(can)i(b)s(e)f(either)g(assigned)f(to)j(in)d(the)h +(structure)574 863 y(or)37 b(via)e Fg(Bar)-5 b(c)g(o)g(de)p +1161 863 28 4 v 36 w(Position\(\))p Fl(,)39 b(at)e(y)m(our)f(c)m +(hoice.)59 b(If)35 b(either)h(v)-5 b(alue)35 b(or)h(b)s(oth)g(are)g +(left)g(to)h(their)574 963 y(default)c(v)-5 b(alue)33 +b(of)g(zero,)i(the)e(output)g(engine)g(will)d(assign)j(default)f(v)-5 +b(alues)33 b(according)g(to)h(the)574 1063 y(sp)s(eci\014ed)g(scaling)f +(factor.)55 b(If)35 b(the)g(sp)s(eci\014ed)e(width)g(is)h(bigger)g +(than)h(needed)f(\(according)h(to)574 1162 y(the)g(scaling)f(factor\),) +j(the)d(output)g(barco)s(de)h(will)c(b)s(e)j(cen)m(tered)i(in)d(its)h +(requested)g(region.)52 b(If)574 1262 y(either)27 b(the)h(width)d(of)i +(the)h(heigh)m(t)f(are)h(to)s(o)g(small)d(for)i(the)h(sp)s(eci\014ed)d +(scale)j(factor,)h(the)e(output)574 1362 y(bar)j(co)s(de)h(will)d +(expand)h(symmetrically)g(around)g(the)i(requested)f(region.)94 +1513 y Fj(int)g(xoff;)94 1612 y(int)g(yoff;)574 1738 +y Fl(The)53 b(\014elds)f(sp)s(ecify)g(o\013set)j(from)e(the)g(co)s +(ordinate)h(origin)e(of)h(the)h(output)f(engine)g(\(for)574 +1838 y(p)s(ostscript,)46 b(p)s(osition)c(0,0)i(is)f(the)g(lo)m(w)m(er)h +(left)f(corner)h(of)f(the)h(page\).)81 b(The)43 b(\014elds)f(can)i(b)s +(e)574 1937 y(either)36 b(assigned)e(to)j(in)d(the)i(structure)f(or)g +(via)g Fg(Bar)-5 b(c)g(o)g(de)p 2572 1937 V 36 w(Position\(\))p +Fl(,)39 b(at)d(y)m(our)f(c)m(hoice.)57 b(The)574 2037 +y(o\013set)24 b(sp)s(eci\014es)d(where)h(the)g(white)g(margin)f(b)s +(egins,)h(not)h(where)f(the)g(\014rst)g(bar)g(will)d(b)s(e)j(prin)m +(ted.)574 2136 y(T)-8 b(o)31 b(prin)m(t)e(real)h(ink)f(to)j(the)e(sp)s +(eci\014ed)f(p)s(osition)f(y)m(ou)j(should)d(set)j Fg(mar)-5 +b(gin)39 b Fl(to)31 b(0.)94 2288 y Fj(int)f(margin;)574 +2387 y Fl(The)36 b(white)g(margin)f(that)j(will)33 b(b)s(e)j(left)g +(around)g(the)h(prin)m(ted)e(area)i(of)g(the)f(bar)g(co)s(de.)59 +b(The)574 2487 y(same)37 b(margin)e(is)g(applied)f(to)j(all)e(sides)g +(of)h(the)g(prin)m(ted)f(area.)59 b(The)35 b(default)g(v)-5 +b(alue)36 b(for)g(the)574 2587 y(margin)30 b(is)f(de\014ned)g(in)g(`)p +Fj(barcode.h)p Fl(')g(as)h Fj(BARCODE_DEFAULT_MARGIN)25 +b Fl(\(10\).)94 2738 y Fj(double)k(scalef;)574 2837 y +Fl(The)j(enlarge)f(or)h(shrink)d(v)-5 b(alue)31 b(for)g(the)h(bar)f(co) +s(de)h(o)m(v)m(er)h(its)e(default)g(dimension.)42 b(The)31 +b Fg(width)574 2937 y Fl(and)j Fg(sc)-5 b(alef)54 b Fl(\014elds)33 +b(in)m(teract)h(deeply)f(in)g(the)h(creation)h(of)f(the)g(output,)h +(and)f(a)g(complete)h(de-)574 3037 y(scription)29 b(of)i(the)f(issues)f +(app)s(ears)h(later)g(in)f(this)g(section.)94 3188 y +Fj(int)h(error;)574 3288 y Fl(The)g(\014eld)f(is)h(used)f(when)h(a)g +Fg(b)-5 b(ar)g(c)g(o)g(de)40 b Fl(function)29 b(fails)g(to)i(host)g(an) +f Fj(errno)p Fl(-lik)m(e)f(in)m(teger)h(v)-5 b(alue.)94 +3515 y Ff(Use)42 b(of)f(the)g Fe(width)50 b Ff(and)41 +b Fe(sc)-6 b(alef)64 b Ff(\014elds.)219 3700 y Fl(A)29 +b(width)f(unit)f(is)h(the)i(width)d(of)i(the)h(thinnest)d(bar)i(and/or) +g(space)h(in)d(the)j(c)m(hosen)f(co)s(de;)h(it)f(defaults)f(to)94 +3800 y(1)j(p)s(oin)m(t)f(if)f(the)i(output)e(is)h(p)s(ostscript)f(or)h +(encapsulated)g(p)s(ostscript.)219 3926 y(Either)j(or)h(b)s(oth)g(the)g +(co)s(de)h(width)d(and)i(the)g(scale)h(factor)g(can)g(b)s(e)e(left)h +(unsp)s(eci\014ed)e(\(i.e.,)k(zero\).)53 b(The)94 4026 +y(library)28 b(deals)i(with)f(defaults)h(in)f(the)h(follo)m(wing)f(w)m +(a)m(y:)94 4178 y Fg(Both)34 b(unsp)-5 b(e)g(ci\014e)g(d)574 +4277 y Fl(If)26 b(b)s(oth)f(the)h(width)e(and)h(the)h(scale)g(factor)g +(are)g(unsp)s(eci\014ed,)f(the)h(scale)g(factor)g(will)d(default)i(to) +574 4377 y(1.0)31 b(and)e(the)h(width)e(is)g(calculated)i(according)f +(to)i(the)e(actual)h(width)e(of)i(the)g(bar)f(co)s(de)g(b)s(eing)574 +4477 y(prin)m(ted.)94 4628 y Fg(Width)34 b(unsp)-5 b(e)g(ci\014e)g(d) +574 4728 y Fl(If)30 b(the)h(width)e(is)g(not)i(sp)s(eci\014ed,)d(it)i +(is)g(calculated)g(according)g(to)i(the)e(v)-5 b(alues)30 +b(of)g Fg(sc)-5 b(alef)p Fl(.)94 4879 y Fg(Sc)g(ale)34 +b(factor)f(unsp)-5 b(e)g(ci\014e)g(d)574 4978 y Fl(If)32 +b(the)h(scale)f(factor)i(is)d(not)i(sp)s(eci\014ed,)e(it)h(will)d(b)s +(e)j(c)m(hosen)h(so)f(that)h(the)g(generated)g(bar)f(co)s(de)574 +5078 y(exactly)g(\014ts)e(the)g(sp)s(eci\014ed)f(width.)94 +5229 y Fg(Both)34 b(sp)-5 b(e)g(ci\014e)g(d)574 5329 +y Fl(The)31 b(co)s(de)g(will)d(b)s(e)i(prin)m(ted)g(inside)e(the)j(sp)s +(eci\014ed)f(region)g(according)h(to)g(the)g(sp)s(eci\014ed)f(scale)574 +5429 y(factor.)48 b(It)33 b(will)d(b)s(e)h(aligned)h(to)h(the)f(left.) +47 b(If,)33 b(ho)m(w)m(ev)m(er,)h(the)f(c)m(hosen)g(width)e(is)g(to)s +(o)i(small)e(for)574 5528 y(the)f(sp)s(eci\014c)e(bar)h(co)s(de)h(and)e +(scaling)h(factor,)h(then)f(the)h(co)s(de)g(will)c(extend)k +(symmetrically)d(to)574 5628 y(the)k(left)f(and)g(to)h(the)g(righ)m(t)f +(of)g(the)h(c)m(hosen)g(region.)p eop +%%Page: 3 4 +3 3 bop 94 -116 a Fl(Chapter)30 b(3:)41 b(The)30 b(Flags)2872 +b(3)94 365 y Fk(2.2)69 b(The)44 b(In)l(termediate)j(Represen)l(tation) +219 565 y Fl(The)23 b(enco)s(ding)g(functions)f(prin)m(t)g(their)g +(output)h(in)m(to)h(the)g Fj(partial)d Fl(and)i Fj(texinfo)f +Fl(\014elds)g(of)h(the)h(barco)s(de)94 664 y(data)g(structure.)37 +b(Those)23 b(\014elds,)g(together)h(with)d(p)s(osition)g(information,)h +(are)h(then)f(used)g(to)i(generate)g(actual)94 764 y(output.)41 +b(This)28 b(is)i(an)g(informal)e(description)h(of)h(the)h(in)m +(termediate)f(format.)219 905 y(The)38 b(\014rst)g(c)m(har)h(in)f +Fj(partial)f Fl(tells)g(ho)m(w)i(m)m(uc)m(h)g(extra)g(space)h(to)f(add) +f(to)i(the)f(left)f(of)h(the)g(bars.)65 b(F)-8 b(or)94 +1005 y(EAN-13,)33 b(it)d(is)f(used)h(to)h(lea)m(v)m(e)h(space)f(to)g +(prin)m(t)e(the)i(\014rst)f(digit,)f(other)i(co)s(des)f(ma)m(y)h(ha)m +(v)m(e)h('0')f(for)g(no-extra-)94 1104 y(space-needed.)219 +1245 y(The)23 b(next)h(c)m(haracters)i(are)e(alternating)f(bars)g(and)h +(spaces,)h(as)g(m)m(ultiples)c(of)j(the)g(base)g(dimension)d(whic)m(h) +94 1345 y(is)35 b(1)g(unless)f(the)i(co)s(de)f(is)f(rescaled.)56 +b(Rescaling)34 b(is)h(calculated)g(as)g(the)h(ratio)f(from)g(the)h +(requested)f(width)94 1445 y(and)e(the)h(calculated)f(width.)48 +b(Digits)33 b(represen)m(t)g(bar/space)h(dimensions.)47 +b(Lo)m(w)m(er-case)35 b(letters)f(represen)m(t)94 1544 +y(those)d(bars)f(that)h(should)e(extend)i(lo)m(w)m(er)f(than)h(the)f +(others:)41 b('a')32 b(is)d(equiv)-5 b(alen)m(t)30 b(to)h('1',)h('b')f +(is)e('2')i(and)f(so)h(on)94 1644 y(up)e(to)h('i')g(whic)m(h)e(is)g +(equiv)-5 b(alen)m(t)29 b(to)i('9'.)41 b(Other)29 b(letters)h(will)d(b) +s(e)i(used)g(for)g(enco)s(ding-sp)s(eci\014c)f(meanings,)h(as)94 +1743 y(so)s(on)i(as)f(I)g(implemen)m(t)f(them.)219 1885 +y(The)35 b Fj(textinfo)e Fl(string)h(is)h(made)g(up)f(of)i(\014elds)e +Fj(\045lf:\045lf:\045c)e Fl(separated)k(b)m(y)g(blank)e(space.)56 +b(The)35 b(\014rst)94 1984 y(in)m(teger)f(is)e(the)h(x)g(p)s(osition)e +(of)i(the)h(c)m(haracter,)h(the)e(second)g(is)f(the)i(fon)m(t)f(size)g +(\(b)s(efore)g(rescaling\))f(and)h(the)94 2084 y(c)m(har)e(item)f(is)g +(the)g(c)m(haracter)i(to)f(b)s(e)f(prin)m(ted.)219 2225 +y(Both)39 b(the)g Fj(partial)d Fl(and)i Fj(textinfo)f +Fl(strings)g(ma)m(y)i(include)d(\\)p Fj(-)p Fl(")j(or)g(\\)p +Fj(+)p Fl(")g(as)g(sp)s(ecial)e(c)m(haracters)j(\(in)94 +2325 y Fj(textinfo)25 b Fl(the)j(c)m(har)f(should)e(b)s(e)i(a)g +(stand-alone)g(w)m(ord\).)40 b(They)26 b(state)j(where)d(the)i(text)g +(should)d(b)s(e)h(prin)m(ted:)94 2424 y(b)s(elo)m(w)34 +b(the)g(bars)f(\(\\)p Fj(-)p Fl(",)j(default\))e(or)g(ab)s(o)m(v)m(e)h +(the)f(bars.)51 b(This)32 b(is)h(used,)i(for)e(example,)i(to)g(prin)m +(t)e(the)h(add-5)94 2524 y(and)27 b(add-2)g(co)s(des)g(to)h(the)f(righ) +m(t)f(of)i(UPC)e(or)h(EAN)g(co)s(des)g(\(the)h(add-5)f(extension)g(is)f +(mostly)g(used)g(in)g(ISBN)94 2623 y(co)s(des\).)94 2939 +y Fi(3)81 b(The)53 b(Flags)219 3213 y Fl(The)30 b(follo)m(wing)f +(\015ags)h(are)h(supp)s(orted)e(b)m(y)h(v)m(ersion)g(0.98)i(of)e(the)h +(library:)94 3387 y Fj(BARCODE_ENCODING_MASK)574 3487 +y Fl(The)f(mask)h(is)e(used)h(to)h(extract)h(the)e(enco)s(ding-t)m(yp)s +(e)g(iden)m(ti\014er)f(from)h(the)g Fg(\015ags)39 b Fl(\014eld.)94 +3653 y Fj(BARCODE_EAN)94 3753 y(BARCODE_UPC)94 3852 y(BARCODE_ISBN)94 +3952 y(BARCODE_128B)94 4051 y(BARCODE_128C)94 4151 y(BARCODE_128)94 +4251 y(BARCODE_128RAW)94 4350 y(BARCODE_39)94 4450 y(BARCODE_I25)94 +4550 y(BARCODE_CBR)94 4649 y(BARCODE_MSI)94 4749 y(BARCODE_PLS)94 +4848 y(BARCODE_93)574 4948 y Fl(The)d(curren)m(tly)f(supp)s(orted)g +(enco)s(ding)g(t)m(yp)s(es:)52 b(EAN)36 b(\(13)i(digits,)e(8)h(digits,) +f(13)h Fj(+)f Fl(2)g(add-on)574 5048 y(and)26 b(13)i +Fj(+)e Fl(5)h(add-on\),)g(UPC)f(\(UPC-A,)i(UPC-E,)e(UPC-A)h(with)e(2)i +(or)f(5)h(digit)f(add-on\),)h(ISBN)574 5147 y(\(with)e(or)f(without)g +(the)i(5-digit)e(add-on\),)i(CODE128-B)h(\(the)e(whole)g(set)g(of)g +(prin)m(table)e(ASCI)s(I)574 5247 y(c)m(haracters\),)36 +b(CODE128-C)d(\(t)m(w)m(o)i(digits)c(enco)s(ded)h(b)m(y)h(eac)m(h)h +(barco)s(de)e(sym)m(b)s(ol\),)h(CODE128)574 5347 y(\(all)41 +b(ASCI)s(I)f(v)-5 b(alues\),)44 b(a)e(\\ra)m(w-input")f(pseudo-co)s(de) +h(that)g(generates)h(CODE128)f(output,)574 5446 y(CODE39)32 +b(\(alphan)m(umeric\),)e Fj(")p Fl(in)m(terlea)m(v)m(ed)i(2)f(of)h(5)p +Fj(")f Fl(\(n)m(umeric\),)g(Co)s(dabar)f(\(n)m(umeric)g(plus)g(a)574 +5546 y(few)36 b(sym)m(b)s(ols\),)g(MSI)f(\(n)m(umeric\))g(and)g +(Plessey)g(\(hex)g(digits\).)55 b(See)36 b(Chapter)f(6)h([Supp)s(orted) +574 5645 y(Enco)s(dings],)30 b(page)h(7.)p eop +%%Page: 4 5 +4 4 bop 94 -116 a Fl(Chapter)30 b(4:)41 b(F)-8 b(unctions)30 +b(Exp)s(orted)g(b)m(y)g(the)h(Library)1871 b(4)94 365 +y Fj(BARCODE_ANY)574 465 y Fl(This)27 b(sp)s(ecial)g(enco)s(ding)g(t)m +(yp)s(e)h(\(represen)m(ted)h(b)m(y)f(a)h(v)-5 b(alue)27 +b(of)i(zero,)h(so)e(it)g(will)d(b)s(e)j(the)g(default\))574 +565 y(tells)33 b(the)g(enco)s(ding)f(pro)s(cedure)g(to)h(lo)s(ok)g(for) +g(the)g(\014rst)f(enco)s(ding)g(t)m(yp)s(e)i(that)f(can)h(deal)e(with) +574 664 y(a)44 b(textual)f(string.)77 b(Therefore,)46 +b(a)d(11-digit)f(co)s(de)h(will)e(b)s(e)h(prin)m(ted)f(as)i(UPC)g(\(as) +g(w)m(ell)f(as)574 764 y(6-digit,)48 b(11)p Fj(+)p Fl(2)e(and)e(11)p +Fj(+)p Fl(5\),)49 b(a)c(12-digit)g(\(or)g(7-digit,)i(or)e(12)p +Fj(+)p Fl(2)h(or)e(12)p Fj(+)p Fl(5\))i(as)f(EAN13,)k(an)574 +863 y(ISBN)39 b(co)s(de)f(\(with)g(or)g(without)f(h)m(yphens,)i(with)e +(or)i(without)e(add-5\))i(will)d(b)s(e)h(enco)s(ded)h(in)574 +963 y(its)e(EAN13)i(represen)m(tation,)g(an)e(ev)m(en)h(n)m(um)m(b)s +(er)e(of)i(digits)e(is)g(enco)s(ded)h(using)f(CODE128C)574 +1063 y(and)45 b(a)h(generic)f(string)f(is)h(enco)s(ded)g(using)f +(CODE128B.)j(Since)d(co)s(de-39)j(o\013ers)e(a)h(m)m(uc)m(h)574 +1162 y(larger)38 b(represen)m(tation)f(for)h(the)f(same)h(text)h +(string,)f(co)s(de128-b)h(is)e(preferred)f(o)m(v)m(er)j(co)s(de39)574 +1262 y(for)31 b(alphan)m(umeric)d(strings.)94 1411 y +Fj(BARCODE_NO_ASCII)574 1510 y Fl(Instructs)f(the)h(engine)e(not)i(to)g +(prin)m(t)e(the)i(ascii)e(string)h(on)g(output.)39 b(By)28 +b(default)e(the)i(bar)f(co)s(de)574 1610 y(is)j(accompanied)g(with)f +(an)i(ascii)e(v)m(ersion)h(of)h(the)f(text)i(it)d(enco)s(des.)94 +1759 y Fj(BARCODE_NO_CHECKSUM)574 1858 y Fl(Instructs)j(the)h(engine)f +(not)h(to)g(add)f(the)h(c)m(hec)m(ksum)g(c)m(haracter)h(to)f(the)g +(output.)47 b(Not)33 b(all)f(the)574 1958 y(enco)s(ding)23 +b(t)m(yp)s(es)g(can)h(drop)f(the)h(c)m(hec)m(ksum;)i(those)e(where)f +(the)h(c)m(hec)m(ksum)g(is)f(mandatory)g(\(lik)m(e)574 +2058 y(EAN)31 b(and)f(UPC\))g(just)g(ignore)g(the)h(\015ag.)94 +2206 y Fj(BARCODE_OUTPUT_MASK)574 2306 y Fl(The)f(mask)h(is)e(used)h +(to)h(extract)h(the)e(output-t)m(yp)s(e)h(iden)m(ti\014er)d(from)i(the) +h Fg(\015ags)38 b Fl(\014eld.)94 2455 y Fj(BARCODE_OUT_PS)94 +2554 y(BARCODE_OUT_EPS)94 2654 y(BARCODE_OUT_PCL)94 2753 +y(BARCODE_OUT_PCL_III)574 2853 y Fl(The)48 b(curren)m(tly)f(supp)s +(orted)f(enco)s(ding)g(t)m(yp)s(es:)76 b(full-page)47 +b(p)s(ostscript)f(and)h(encapsulated)574 2953 y(p)s(ostscript;)h(PCL)41 +b(\(prin)m(t)g(command)i(language,)j(for)c(HP)g(prin)m(ters\))f(and)h +(PCL-I)s(I)s(I)e(\(same)574 3052 y(as)31 b(PCL,)f(but)g(uses)g(a)g(fon) +m(t)h(not)g(a)m(v)-5 b(ailable)30 b(on)g(older)f(prin)m(ters\).)94 +3201 y Fj(BARCODE_OUT_NOHEADERS)574 3301 y Fl(The)f(\015ag)h(instructs) +d(the)j(prin)m(ting)d(engine)h(not)i(to)f(prin)m(t)f(the)h(header)g +(and)g(fo)s(oter)h(part)e(of)i(the)574 3400 y(\014le.)40 +b(This)29 b(mak)m(es)i(sense)f(for)f(the)i(p)s(ostscript)d(engine)i +(but)f(migh)m(t)h(not)h(mak)m(e)g(sense)f(for)g(other)574 +3500 y(engines;)k(suc)m(h)f(other)h(engines)e(will)e(silen)m(tly)i +(ignore)g(the)i(\015ag)f(just)g(lik)m(e)f(the)h(PCL)f(bac)m(k-end)574 +3600 y(do)s(es.)94 3881 y Fi(4)81 b(F)-13 b(unctions)52 +b(Exp)t(orted)h(b)l(y)g(the)g(Library)219 4103 y Fl(The)41 +b(functions)f(included)f(in)h(the)i(barco)s(de)f(library)e(are)j +(declared)f(in)g(the)g(header)h(\014le)e Fj(barcode.h)p +Fl(.)94 4203 y(They)30 b(p)s(erform)f(the)i(follo)m(wing)e(tasks:)94 +4352 y Fj(struct)g(Barcode_Item)e(*Barcode_Create\(char)e(*text\);)574 +4451 y Fl(The)35 b(function)e(creates)j(a)f(new)g(barco)s(de)f(ob)5 +b(ject)36 b(to)f(deal)g(with)e(a)i(sp)s(eci\014ed)e(text)j(string.)53 +b(It)574 4551 y(returns)27 b(NULL)h(in)e(case)j(of)f(failure)e(and)i(a) +g(p)s(oin)m(ter)f(to)h(a)h(barco)s(de)e(data)i(structure)e(in)g(case)i +(of)574 4651 y(success.)94 4799 y Fj(int)h(Barcode_Delete\(struct)25 +b(Barcode_Item)i(*bc\);)574 4899 y Fl(Destro)m(y)32 b(a)f(barco)s(de)f +(ob)5 b(ject.)42 b(Alw)m(a)m(ys)31 b(returns)e(0)h(\(success\))94 +5048 y Fj(int)g(Barcode_Encode\(struct)25 b(Barcode_Item)i(*bc,)i(int)g +(flags\);)574 5147 y Fl(Enco)s(de)h(the)h(text)g(included)d(in)h(the)h +Fg(b)-5 b(c)35 b Fl(ob)5 b(ject.)42 b(V)-8 b(alid)29 +b(\015ags)i(are)f(the)h(enco)s(ding)e(t)m(yp)s(e)h(\(other)574 +5247 y(\015ags)45 b(are)f(ignored\))g(and)g(BAR)m(CODE)p +1994 5247 28 4 v 33 w(NO)p 2166 5247 V 33 w(CHECKSUM)f(\(other)i +(\015ags)f(are)h(silen)m(tly)d(ig-)574 5347 y(nored\);)35 +b(if)e(the)g(\015ag)h(argumen)m(t)g(is)e(zero,)j Fj(bc->flags)c +Fl(will)g(apply)-8 b(.)49 b(The)32 b(function)g(returns)h(0)574 +5446 y(on)h(success)g(and)f(-1)i(in)d(case)j(of)f(error.)51 +b(After)34 b(successful)e(termination)h(the)h(data)g(structure)574 +5546 y(will)21 b(host)i(the)h(description)d(of)j(the)f(bar)g(co)s(de)g +(and)g(its)g(textual)g(represen)m(tation,)i(after)f(a)g(failure)574 +5645 y(the)31 b Fj(error)e Fl(\014eld)g(will)f(include)g(the)i(reason)h +(of)f(the)h(failure.)p eop +%%Page: 5 6 +5 5 bop 94 -116 a Fl(Chapter)30 b(5:)41 b(The)30 b Fg(b)-5 +b(ar)g(c)g(o)g(de)40 b Fl(fron)m(tend)30 b(program)2063 +b(5)94 365 y Fj(int)30 b(Barcode_Print\(struct)25 b(Barcode_Item)i +(*bc,)i(FILE)g(*f,)h(int)f(flags\);)574 465 y Fl(Prin)m(t)39 +b(the)g(bar)g(co)s(de)g(describ)s(ed)e(b)m(y)i Fj(bc)g +Fl(to)h(the)f(sp)s(eci\014ed)f(\014le.)66 b(V)-8 b(alid)38 +b(\015ags)h(are)h(the)f(out-)574 565 y(put)25 b(t)m(yp)s(e,)h +Fj(BARCODE_NO_ASCII)21 b Fl(and)j Fj(BARCODE_OUT_NOHEADERS)p +Fl(,)d(other)k(\015ags)g(are)h(ignored.)574 664 y(If)39 +b(an)m(y)h(of)f(these)h(\015ags)g(is)e(zero,)43 b(it)c(will)d(b)s(e)j +(inherited)e(from)i Fj(bc->flags)d Fl(whic)m(h)i(therefore)574 +764 y(tak)m(es)f(precedence.)57 b(The)35 b(function)g(returns)f(0)i(on) +f(success)h(and)f(-1)h(in)e(case)j(of)f(error)f(\(with)574 +863 y Fj(bc->error)28 b Fl(set)j(accordingly\).)40 b(In)29 +b(case)j(of)e(success,)h(the)f(bar)g(co)s(de)g(is)f(prin)m(ted)g(to)i +(the)f(sp)s(ec-)574 963 y(i\014ed)f(\014le,)h(whic)m(h)f(w)m(on't)i(b)s +(e)f(closed)g(after)h(use.)94 1115 y Fj(int)f(Barcode_Position\(struct) +24 b(Barcode_Item)j(*bc,)i(int)h(wid,)f(int)g(hei,)h(int)f(xoff,)g(int) +h(yoff,)94 1215 y(double)f(scalef\);)574 1315 y Fl(The)h(function)f(is) +h(a)h(shortcut)f(to)h(assign)f(v)-5 b(alues)29 b(to)j(the)e(data)h +(structure.)94 1467 y Fj(int)f(Barcode_Encode_and_Print)o(\(cha)o(r)24 +b(*text,)29 b(FILE)g(*f,)h(int)f(wid,)g(int)h(hei,)f(int)h(xoff,)f(int) +94 1567 y(yoff,)g(int)h(flags\);)574 1666 y Fl(The)38 +b(function)e(deals)h(with)g(the)h(whole)f(life)f(of)i(the)g(barco)s(de) +g(ob)5 b(ject)39 b(b)m(y)e(calling)g(the)h(other)574 +1766 y(functions;)30 b(it)g(uses)g(all)f(the)h(sp)s(eci\014ed)f +(\015ags.)94 1918 y Fj(int)h(Barcode_Version\(char)25 +b(*versionname\);)574 2018 y Fl(Returns)g(the)g(curren)m(t)f(v)m +(ersion)h(as)g(an)g(in)m(teger)g(n)m(um)m(b)s(er)f(of)h(the)g(form)f +(ma)5 b(jor)25 b(*)h(10000)h Fj(+)d Fl(minor)574 2118 +y(*)k(100)h Fj(+)e Fl(release.)40 b(Therefore,)28 b(v)m(ersion)f +(1.03.5)i(will)c(b)s(e)i(returned)f(as)h(10305)j(and)d(v)m(ersion)f +(0.53)574 2217 y(as)i(5300.)41 b(If)27 b(the)h(argumen)m(t)f(is)f +(non-n)m(ull,)g(it)h(will)e(b)s(e)h(used)h(to)h(return)e(the)h(v)m +(ersion)g(n)m(um)m(b)s(er)f(as)574 2317 y(a)h(string.)39 +b(Note)28 b(that)f(the)f(same)h(information)e(is)h(a)m(v)-5 +b(ailable)26 b(from)g(t)m(w)m(o)i(prepro)s(cessor)d(macros:)574 +2416 y Fj(BARCODE_VERSION)i Fl(\(the)k(string\))e(and)h +Fj(BARCODE_VERSION_INT)25 b Fl(\(the)31 b(in)m(teger)g(n)m(um)m(b)s +(er\).)94 2705 y Fi(5)81 b(The)53 b Fd(b)-8 b(ar)g(c)g(o)g(de)65 +b Fi(fron)l(tend)51 b(program)219 2938 y Fl(The)26 b +Fc(barco)s(de)g Fl(program)g(is)f(a)h(fron)m(t-end)g(to)h(access)h +(some)e(features)h(of)f(the)g(library)e(from)i(the)g(command)94 +3037 y(line.)63 b(It)38 b(is)g(able)f(to)i(read)f(user)g(supplied)d +(strings)i(from)h(the)g(command)g(line)e(or)j(a)f(data)h(\014le)e +(\(standard)94 3137 y(input)29 b(b)m(y)h(default\))g(and)g(enco)s(de)g +(all)g(of)g(them.)94 3401 y Fk(5.1)69 b(The)44 b(Command)h(Line)219 +3587 y Fc(barco)s(de)30 b Fl(accepts)i(the)e(follo)m(wing)f(options:)94 +3741 y Fj(--help)g(or)h(-h)574 3840 y Fl(Prin)m(t)g(a)h(usage)g +(summary)e(and)h(exit.)94 3993 y Fj(-i)g(filename)574 +4092 y Fl(Iden)m(tify)35 b(a)h(\014le)f(where)g(strings)f(to)j(b)s(e)e +(enco)s(ded)g(are)h(read)f(from.)56 b(If)36 b(missing)d(\(and)i(if)g +Fj(-b)g Fl(is)574 4192 y(not)29 b(used\))f(it)g(defaults)f(to)i +(standard)e(input.)38 b(Eac)m(h)29 b(data)g(line)e(of)h(the)h(input)d +(\014le)i(will)d(b)s(e)j(used)574 4292 y(to)k(create)g(one)e(barco)s +(de)g(output.)94 4444 y Fj(-o)g(filename)574 4544 y Fl(Output)g +(\014le.)40 b(It)30 b(defaults)f(to)j(standard)d(output.)94 +4696 y Fj(-b)h(string)66 b Fl(Sp)s(ecify)32 b(a)j(single)d(\\barco)s +(de")i(string)f(to)h(b)s(e)g(enco)s(ded.)50 b(The)33 +b(option)g(can)h(b)s(e)f(used)g(m)m(ultiple)574 4796 +y(times)j(in)e(order)h(to)h(enco)s(de)g(m)m(ultiple)d(strings)i(\(this) +f(will)f(result)i(in)f(m)m(ulti-page)h(p)s(ostscript)574 +4895 y(output)22 b(or)g(a)g(table)g(of)g(barco)s(des)g(if)f +Fj(-t)g Fl(is)g(sp)s(eci\014ed\).)37 b(The)21 b(strings)g(m)m(ust)h +(matc)m(h)h(the)f(enco)s(ding)574 4995 y(c)m(hosen;)29 +b(if)c(it)g(do)s(esn't)h(matc)m(h)h(the)f(program)g(will)d(prin)m(t)i +(a)h(w)m(arning)f(to)i Fj(stderr)d Fl(and)h(generate)574 +5095 y(\\blank")44 b(output)g(\(although)h(not)f(zero-length\).)84 +b(Please)44 b(note)h(that)g(a)g(string)e(including)574 +5194 y(spaces)31 b(or)g(other)f(sp)s(ecial)f(c)m(haracters)j(m)m(ust)e +(b)s(e)g(prop)s(erly)e(quoted.)94 5347 y Fj(-e)i(encoding)574 +5446 y Fc(enco)s(ding)j Fl(is)e(the)i(name)f(of)h(the)g(c)m(hosen)g +(enco)s(ding)e(format)i(b)s(eing)e(used.)46 b(It)32 b(defaults)g(to)h +(the)574 5546 y(v)-5 b(alue)41 b(of)f(the)h(en)m(vironmen)m(t)g(v)-5 +b(ariable)39 b Fj(BARCODE_ENCODING)d Fl(or)41 b(to)g(auto)h(detection)f +(if)f(the)574 5645 y(en)m(vironmen)m(t)30 b(is)g(also)g(unset.)p +eop +%%Page: 6 7 +6 6 bop 94 -116 a Fl(Chapter)30 b(6:)41 b(Supp)s(orted)29 +b(Enco)s(dings)2417 b(6)94 365 y Fj(-g)30 b(geometry)574 +465 y Fl(The)e(geometry)g(argumen)m(t)g(is)f(of)h(the)f(form)g(\\[)p +Fj(<)p Fg(width)p Fj(>)i(x)f(<)p Fg(height)p Fj(>)p Fl(])f([)p +Fj(+)h(<)p Fg(xmar)-5 b(gin)p Fj(>)28 b(+)f(<)p Fg(ymar-)574 +565 y(gin)p Fj(>)p Fl(]")42 b(\(with)f(no)h(in)m(terv)m(ening)f +(spaces\).)75 b(Unsp)s(eci\014ed)40 b(margin)h(v)-5 b(alues)41 +b(will)e(result)i(in)f(no)574 664 y(margin;)31 b(unsp)s(eci\014ed)d +(size)j(results)e(in)h(default)g(size.)42 b(The)30 b(sp)s(eci\014ed)f +(v)-5 b(alues)30 b(represen)m(t)h(prin)m(t)574 764 y(p)s(oin)m(ts)e(b)m +(y)g(default,)g(and)g(can)g(b)s(e)g(inc)m(hes,)g(millimeters)e(or)i +(other)h(units)e(according)h(to)h(the)g Fj(-u)574 863 +y Fl(option)j(or)h(the)g Fj(BARCODE_UNIT)c Fl(en)m(vironmen)m(t)j(v)-5 +b(ariable.)49 b(The)33 b(argumen)m(t)h(is)e(used)h(to)h(place)574 +963 y(the)g(prin)m(tout)f(co)s(de)h(on)f(the)h(page.)51 +b(Note)35 b(that)f(an)f(additional)f(white)g(margin)h(of)h(10)g(p)s +(oin)m(ts)574 1063 y(is)e(added)f(to)i(the)g(prin)m(tout.)45 +b(If)31 b(the)i(option)f(is)f(unsp)s(eci\014ed,)f Fj(BARCODE_GEOMETRY)e +Fl(is)j(lo)s(ok)m(ed)574 1162 y(up)h(in)f(the)h(en)m(vironmen)m(t,)h +(if)e(missing)f(a)j(default)f(size)g(and)g(no)g(margin)f(\(but)h(the)h +(default)e(10)574 1262 y(p)s(oin)m(ts\))f(are)h(used.)94 +1409 y Fj(-t)f(table-geometry)574 1508 y Fl(Used)j(to)g(prin)m(t)e(sev) +m(eral)i(barco)s(des)f(to)i(a)f(single)e(page,)j(this)d(option)h(is)g +(mean)m(t)h(to)h(b)s(e)d(used)h(to)574 1608 y(prin)m(t)e(stic)m(k)m +(ers.)43 b(The)30 b(argumen)m(t)h(is)f(of)h(the)g(form)g(\\)p +Fj(<)p Fg(c)-5 b(olumns)p Fj(>)32 b(x)e(<)p Fg(lines)p +Fj(>)h Fl([)p Fj(+)g(<)p Fg(leftmar)-5 b(gin)p Fj(>)31 +b(+)574 1707 y(<)p Fg(b)-5 b(ottommar)g(gin)p Fj(>)39 +b Fl([)p Fj(-)d(<)p Fg(rightmar)-5 b(gin)p Fj(>)38 b +Fl([)p Fj(-)e(<)p Fg(topmar)-5 b(gin)p Fj(>)p Fl(]]]")39 +b(\(with)c(no)h(in)m(terv)m(ening)f(spaces\);)574 1807 +y(if)42 b(missing,)i(the)f(top)g(and)f(righ)m(t)g(margin)g(will)e +(default)i(to)i(b)s(e)e(the)h(same)g(as)g(the)g(b)s(ottom)574 +1907 y(and)c(left)g(margin.)66 b(The)38 b(margins)g(are)i(sp)s +(eci\014ed)d(in)h(prin)m(t)g(p)s(oin)m(ts)g(or)h(in)e(the)j(c)m(hosen)f +(unit)574 2006 y(\(see)f Fj(-u)d Fl(b)s(elo)m(w\).)59 +b(If)35 b(the)i(option)f(is)f(not)i(sp)s(eci\014ed,)f +Fj(BARCODE_TABLE)d Fl(is)i(lo)s(ok)m(ed)h(up)g(in)f(the)574 +2106 y(en)m(vironmen)m(t,)d(otherwise)f(no)h(table)f(is)g(prin)m(ted)f +(and)h(eac)m(h)i(barco)s(de)f(will)c(get)33 b(its)e(o)m(wn)h(page.)574 +2206 y(The)27 b(size)g(\(but)f(not)h(the)g(p)s(osition\))e(of)j(a)f +(barco)s(de)f(item)h(within)d(a)k(table)e(can)h(also)g(b)s(e)f +(selected)574 2305 y(using)43 b Fj(-g)g Fl(\(see)i Fj(")p +Fl(geometry)p Fj(")g Fl(ab)s(o)m(v)m(e\),)k(without)43 +b(struggling)f(with)h(external)h(and)f(in)m(ternal)574 +2405 y(margins.)71 b(I)40 b(still)e(think)h(managemen)m(t)j(of)f +(geometries)g(in)f(a)h(table)f(is)g(sub)s(optimal,)g(but)g(I)574 +2504 y(can't)32 b(mak)m(e)f(it)f(b)s(etter)h(without)e(in)m(tro)s +(ducing)f(incompatibilities.)94 2651 y Fj(-m)i(margin\(s\))574 +2751 y Fl(Sp)s(eci\014es)21 b(an)g(in)m(ternal)g(margin)g(for)g(eac)m +(h)i(stic)m(k)m(er)g(in)d(the)i(table.)38 b(The)21 b(argumen)m(t)i(is)d +(of)i(the)g(form)574 2850 y(\\)p Fj(<)p Fg(xmar)-5 b(gin)p +Fj(>,<)p Fg(ymar)g(gin)p Fj(>)p Fl(")35 b(and)c(the)g(margin)g(is)g +(applied)e(symmetrically)h(to)i(the)g(stic)m(k)m(er.)45 +b(If)574 2950 y(unsp)s(eci\014ed,)28 b(the)h(en)m(vironmen)m(t)g(v)-5 +b(ariable)28 b Fj(BARCODE_MARGIN)e Fl(is)i(used)h(or)g(a)h(default)e +(in)m(ternal)574 3050 y(margin)i(of)g(10)i(p)s(oin)m(ts)d(is)g(used.)94 +3196 y Fj(-n)384 b Fl(\\Numeric")31 b(output:)40 b(don't)31 +b(prin)m(t)e(the)h(ASCI)s(I)f(form)h(of)g(the)h(co)s(de,)g(only)e(the)i +(bars.)94 3343 y Fj(-c)384 b Fl(No)35 b(c)m(hec)m(ksum)f(c)m(haracter)h +(\(for)f(enco)s(dings)e(that)j(allo)m(w)e(it,)h(lik)m(e)f(co)s(de)h +(39,)h(other)f(co)s(des,)h(lik)m(e)574 3442 y(UPC)c(or)f(EAN,)h(ignore) +f(this)f(option\).)94 3589 y Fj(-E)384 b Fl(Encapsulated)32 +b(p)s(ostscript)f(\(default)h(is)g(normal)f(p)s(ostscript\).)47 +b(When)32 b(the)h(output)f(is)f(gener-)574 3689 y(ated)h(as)e(EPS)g +(only)f(one)i(barco)s(de)f(is)f(enco)s(ded.)94 3835 y +Fj(-P)384 b Fl(PCL)35 b(output.)56 b(Please)36 b(note)g(that)g(the)f(Y) +h(direction)e(go)s(es)i(from)f(top)h(to)g(b)s(ottom)g(for)f(PCL,)574 +3935 y(and)30 b(the)h(origin)e(for)h(an)g(image)h(is)e(the)i(top-left)f +(corner)h(instead)e(of)i(the)f(b)s(ottom-left)94 4081 +y Fj(-p)g(pagesize)574 4181 y Fl(Sp)s(ecify)44 b(a)h(non-default)f +(page)i(size.)85 b(The)45 b(page)h(size)f(can)g(b)s(e)f(sp)s(eci\014ed) +g(in)g(millimeters,)574 4281 y(inc)m(hes)34 b(or)g(plain)e(n)m(um)m(b)s +(ers)g(\(for)i(example:)48 b Fj("210x297mm")p Fl(,)32 +b Fj("8.5x11in")p Fl(,)g Fj("595x842")p Fl(\).)50 b(A)574 +4380 y(page)27 b(sp)s(eci\014cation)d(as)i(n)m(um)m(b)s(ers)e(will)f(b) +s(e)i(in)m(terpreted)g(according)g(to)i(the)f(curren)m(t)f(unit)f(sp)s +(ec-)574 4480 y(i\014cation)33 b(\(see)h Fj(-u)e Fl(b)s(elo)m(w\).)49 +b(If)33 b(libpap)s(er)d(is)i(a)m(v)-5 b(ailable,)33 b(y)m(ou)h(can)f +(also)g(sp)s(ecify)f(the)h(page)h(size)574 4580 y(with)40 +b(its)g(name,)k(lik)m(e)d Fj("A3")e Fl(or)i Fj("letter")e +Fl(\(libpap)s(er)f(is)i(a)h(standard)g(comp)s(onen)m(t)g(of)g(De-)574 +4679 y(bian)d(GNU/Lin)m(ux,)k(but)d(ma)m(y)h(b)s(e)e(missing)f +(elsewhere\).)68 b(The)39 b(default)f(page)i(size)g(is)e(y)m(our)574 +4779 y(system-wide)30 b(default)g(if)f(libpap)s(er)e(is)j(there,)h(A4)g +(otherwise.)94 4925 y Fj(-u)f(unit)162 b Fl(Cho)s(ose)32 +b(the)f(unit)f(used)g(in)g(size)i(sp)s(eci\014cations.)42 +b(Accepted)32 b(v)-5 b(alues)31 b(are)g(\\mm",)i(\\cm",)f(\\in")574 +5025 y(and)37 b(\\pt".)61 b(By)37 b(default,)h(the)f(program)f(will)f +(c)m(hec)m(k)j Fj(BARCODE_UNIT)33 b Fl(in)j(the)h(en)m(vironmen)m(t,) +574 5125 y(and)c(assume)g(p)s(oin)m(ts)g(otherwise)f(\(this)h(b)s(eha)m +(viour)f(is)g(compatible)h(with)f(0.92)j(and)d(previous)574 +5224 y(v)m(ersions.)50 b(If)33 b Fj(-u)g Fl(app)s(ears)g(more)g(than)g +(once,)j(eac)m(h)e(instance)f(will)e(mo)s(di\014ed)h(the)h(b)s(eha)m +(viour)574 5324 y(for)h(the)g(argumen)m(ts)g(at)g(its)f(righ)m(t,)i(as) +f(the)g(command)f(line)f(is)h(pro)s(cesses)g(left)h(to)g(righ)m(t.)50 +b(The)574 5424 y(program)32 b(in)m(ternally)f(w)m(orks)h(with)f(p)s +(oin)m(ts,)h(and)f(an)m(y)i(size)f(is)f(appro)m(ximated)h(to)h(the)f +(nearest)574 5523 y(m)m(ultiple)c(of)j(one)f(p)s(oin)m(t.)40 +b(The)30 b Fj(-u)f Fl(option)h(a\013ect)i Fj(-g)e Fl(\(geometry\),)i +Fj(-t)e Fl(\(table\))h(and)e Fj(-p)h Fl(\(page)574 5623 +y(size\).)p eop +%%Page: 7 8 +7 7 bop 94 -116 a Fl(Chapter)30 b(6:)41 b(Supp)s(orted)29 +b(Enco)s(dings)2417 b(7)94 365 y Fi(6)81 b(Supp)t(orted)51 +b(Enco)t(dings)219 558 y Fl(The)31 b(program)h(enco)s(des)g(text)g +(strings)f(passed)g(either)g(on)h(the)g(command)g(line)e(\(with)g(-b\)) +i(or)g(retriev)m(ed)94 658 y(from)38 b(standard)f(input.)61 +b(The)37 b(text)i(represen)m(tation)f(is)f(in)m(terpreted)g(according)g +(to)i(the)f(follo)m(wing)e(rules.)94 758 y(When)42 b(auto-detection)g +(of)g(the)f(enco)s(ding)f(is)h(enabled)f(\(i.e,)k(no)e(explicit)d(enco) +s(ding)h(t)m(yp)s(e)i(is)e(sp)s(eci\014ed\),)94 857 y(the)c(enco)s +(ding)e(t)m(yp)s(es)h(are)h(scanned)f(to)h(\014nd)d(one)j(that)g(can)f +(digest)g(the)g(text)i(string.)54 b(The)35 b(follo)m(wing)e(list)94 +957 y(of)h(supp)s(orted)e(t)m(yp)s(es)h(is)g(sorted)g(in)g(the)g(same)h +(order)f(the)h(library)d(uses)i(when)f(auto-detecting)k(a)d(suitable)94 +1056 y(enco)s(ding)d(for)g(a)h(string.)94 1193 y Fh(EAN)282 +b Fl(The)36 b(EAN)h(fron)m(tend)f(is)g(similar)d(to)38 +b(UPC;)e(it)g(accepts)i(strings)d(of)i(digits,)g(12)g(or)g(7)f(c)m +(harac-)574 1293 y(ters)c(long.)41 b(Strings)30 b(of)h(13)g(or)g(8)g(c) +m(haracters)i(are)e(accepted)h(if)e(the)h(pro)m(vided)f(c)m(hec)m(ksum) +h(digit)574 1393 y(is)40 b(correct.)73 b(I)40 b(exp)s(ect)i(most)f +(users)e(to)j(feed)e(input)f(without)h(a)h(c)m(hec)m(ksum,)j(though.)71 +b(The)574 1492 y(add-2)36 b(and)g(add-5)g(extension)f(are)h(accepted)i +(for)d(b)s(oth)g(the)i(EAN-13)g(and)e(the)h(EAN-8)h(en-)574 +1592 y(co)s(dings.)42 b(The)30 b(follo)m(wing)f(are)j(example)e(of)h(v) +-5 b(alid)29 b(input)g(strings:)41 b(\\)p Fj(123456789012)p +Fl(")28 b(\(EAN-)574 1692 y(13\),)43 b(\\)p Fj(1234567890128)p +Fl(")37 b(\(EAN-13)k(wih)c(c)m(hec)m(ksum\),)43 b(\\)p +Fj(1234567)p Fl(")38 b(\(EAN-8\),)44 b(\\)p Fj(12345670)574 +1791 y(12345)p Fl(")23 b(\(EAN-8)h(with)e(c)m(hec)m(ksum)h(and)g +(add-5\),)i(\\)p Fj(123456789012)45 b(12)p Fl(")23 b(\(EAN-13)i(with)c +(add-)574 1891 y(2\),)32 b(\\)p Fj(123456789012)45 b(12345)p +Fl(")29 b(\(EAN-13)j(with)d(add-5\).)94 2028 y Fh(UPC)284 +b Fl(The)35 b(UPC)g(fron)m(tend)g(accepts)i(only)d(strings)g(made)i(up) +e(of)h(digits)f(\(and,)j(if)d(a)i(supplemen)m(tal)574 +2127 y(enco)s(ding)27 b(is)g(used,)g(a)h(blank)f(to)h(separate)g(it\).) +40 b(It)28 b(accepts)h(strings)d(of)i(11)g(or)g(12)g(digits)f(\(UPC-) +574 2227 y(A\))k(and)f(6)h(or)f(7)h(or)f(8)h(digits)e(\(UPC-E\).)574 +2345 y(The)c(12th)h(digit)e(of)h(UPC-A)g(is)f(the)h(c)m(hec)m(ksum)h +(and)e(is)g(added)h(b)m(y)g(the)g(library)d(if)i(not)i(sp)s(eci\014ed) +574 2445 y(in)k(the)h(input;)e(if)h(it)h(is)f(sp)s(eci\014ed,)f(it)h(m) +m(ust)h(b)s(e)f(the)h(righ)m(t)g(c)m(hec)m(ksum)g(or)g(the)g(co)s(de)g +(is)f(rejected)574 2545 y(as)38 b(in)m(v)-5 b(alid.)59 +b(F)-8 b(or)38 b(UPC-E,)f(6)h(digit)e(are)i(considered)e(to)i(b)s(e)e +(the)i(middle)d(part)i(of)g(the)g(co)s(de,)574 2644 y(a)i(leading)d(0)i +(is)f(assumed)g(and)g(the)h(c)m(hec)m(ksum)g(is)f(added;)k(7)d(digits)e +(are)i(either)f(considered)574 2744 y(the)30 b(initial)d(part)i +(\(leading)g(digit)f(0)i(or)g(1,)g(c)m(hec)m(ksum)g(missing\))e(or)i +(the)f(\014nal)g(part)g(\(c)m(hec)m(ksum)574 2844 y(sp)s(eci\014ed,)f +(leading)g(0)i(assumed\);)g(8)f(digits)f(are)i(considered)e(to)i(b)s(e) +e(the)i(complete)f(co)s(de,)h(with)574 2943 y(leading)k(0)i(or)f(1)g +(and)g(c)m(hec)m(ksum.)55 b(F)-8 b(or)36 b(b)s(oth)f(UPC-A)g(and)f +(UPC-E,)i(a)f(trailing)e(string)h(of)i(2)574 3043 y(digits)30 +b(or)h(5)g(digits)e(is)h(accepted)i(as)f(w)m(ell.)40 +b(Therefore,)31 b(the)g(follo)m(wing)e(are)i(examples)g(of)g(v)-5 +b(alid)574 3142 y(strings)41 b(that)h(can)f(b)s(e)g(enco)s(ded)g(as)h +(UPC:)f(\\)p Fj(01234567890)p Fl(")e(\(UPC-A\))j(\\)p +Fj(012345678905)p Fl(")574 3242 y(\(UPC-A)33 b(with)d(c)m(hec)m +(ksum\),)k(\\)p Fj(012345)p Fl(")d(\(UPC-E\),)i(\\)p +Fj(01234567890)45 b(12)p Fl(")32 b(\(UPC-A,)g(add-2\))574 +3342 y(and)21 b(\\)p Fj(01234567890)45 b(12345)p Fl(")20 +b(\(UPC-A,)i(add-5\),)h(\\)p Fj(0123456)47 b(12)p Fl(")20 +b(\(UPC-E,)i(add-2\).)38 b(Please)574 3441 y(note)24 +b(that)f(when)f(setting)h Fj(BARCODE_ANY)c Fl(to)24 b(auto-detect)h +(the)e(enco)s(ding)f(to)h(b)s(e)f(used,)i(12-digit)574 +3541 y(strings)32 b(and)h(7-digit)f(strings)g(will)e(alw)m(a)m(ys)k(b)s +(e)e(iden)m(ti\014ed)f(as)i(EAN.)h(This)d(b)s(ecause)i(I)f(exp)s(ect) +574 3641 y(most)h(user)f(to)h(pro)m(vide)f(input)e(without)i(a)g(c)m +(hec)m(ksum.)48 b(If)32 b(y)m(ou)h(need)f(to)h(sp)s(ecify)e(UPC-with-) +574 3740 y(c)m(hec)m(ksum)h(as)g(input)d(y)m(ou)i(m)m(ust)g(explicitly) +e(set)j Fj(BARCODE_UPC)c Fl(as)j(a)g(\015ag)h(or)f(use)g +Fj(-e)47 b(upc)30 b Fl(on)574 3840 y(the)h(command)f(line.)94 +3977 y Fh(ISBN)264 b Fl(ISBN)26 b(n)m(um)m(b)s(ers)e(are)i(enco)s(ded)f +(as)h(EAN-13)g(sym)m(b)s(ols,)g(with)e(an)h(optional)g(add-5)g +(trailer.)38 b(The)574 4076 y(ISBN)27 b(fron)m(tend)f(of)h(the)g +(library)e(accepts)j(real)e(ISBN)h(n)m(um)m(b)s(ers)e(and)h(deals)h +(with)e(an)m(y)i(h)m(yphen)574 4176 y(and,)h(if)f(presen)m(t,)h(the)g +(ISBN)f(c)m(hec)m(ksum)i(c)m(haracter)g(b)s(efore)e(enco)s(ding)f +(data.)41 b(V)-8 b(alid)26 b(represen-)574 4276 y(tations)j(for)e(ISBN) +h(strings)e(are)j(for)e(example:)40 b(\\)p Fj(1-56592-292-1)p +Fl(",)25 b(\\)p Fj(3-89721-122-X)p Fl(")h(and)574 4375 +y(\\)p Fj(3-89721-122-X)45 b(06900)p Fl(".)94 4512 y +Fh(co)s(de)31 b(128-B)574 4612 y Fl(This)37 b(enco)s(ding)g(can)h +(represen)m(t)g(all)f(of)h(the)h(prin)m(ting)c(ASCI)s(I)i(c)m +(haracters,)42 b(from)37 b(the)h(space)574 4711 y(\(32\))32 +b(to)g(DEL)e(\(127\).)43 b(The)30 b(c)m(hec)m(ksum)h(digit)e(is)g +(mandatory)i(in)e(this)g(enco)s(ding.)94 4848 y Fh(co)s(de)i(128-C)574 +4948 y Fl(The)h(\\C")g(v)-5 b(ariation)31 b(of)h(Co)s(de-128)h(uses)e +(Co)s(de-128)i(sym)m(b)s(ols)d(to)j(represen)m(t)f(t)m(w)m(o)h(digits)d +(at)j(a)574 5048 y(time)28 b(\(Co)s(de-128)g(is)f(made)g(up)f(of)i(104) +g(sym)m(b)s(ols)e(whose)i(in)m(terpretation)e(is)h(con)m(trolled)g(b)m +(y)g(the)574 5147 y(start)35 b(sym)m(b)s(ol)e(b)s(eing)g(used\).)52 +b(Co)s(de)34 b(128-C)h(is)e(th)m(us)h(the)h(most)f(compact)i(w)m(a)m(y) +f(to)g(represen)m(t)574 5247 y(an)m(y)41 b(ev)m(en)h(n)m(um)m(b)s(er)d +(of)i(digits.)70 b(The)40 b(enco)s(der)g(refuses)g(to)h(deal)f(with)g +(an)g(o)s(dd)g(n)m(um)m(b)s(er)f(of)574 5347 y(digits)24 +b(b)s(ecause)h(the)g(caller)f(is)g(exp)s(ected)h(to)h(pro)m(vide)e +(prop)s(er)f(padding)g(to)j(an)f(ev)m(en)g(n)m(um)m(b)s(er)f(of)574 +5446 y(digits.)38 b(\(Since)23 b(Co)s(de-128)i(includes)d(con)m(trol)j +(sym)m(b)s(ols)d(to)j(switc)m(h)f(c)m(harset,)j(it)c(is)g +(theoretically)574 5546 y(p)s(ossible)29 b(to)j(represen)m(t)f(the)h(o) +s(dd)e(digit)g(as)h(a)g(Co)s(de)g(128-A)i(or)e(128-B)i(sym)m(b)s(ol,)e +(but)f(this)g(to)s(ol)574 5645 y(do)s(esn't)h(curren)m(tly)e(implemen)m +(t)g(this)g(option\).)p eop +%%Page: 8 9 +8 8 bop 94 -116 a Fl(Chapter)30 b(6:)41 b(Supp)s(orted)29 +b(Enco)s(dings)2417 b(8)94 365 y Fh(co)s(de)31 b(128)h(ra)m(w)574 +465 y Fl(Co)s(de-128)24 b(output)d(represen)m(ted)h(sym)m(b)s(ol-b)m +(y-sym)m(b)s(ol)e(in)h(the)h(input)f(string.)36 b(T)-8 +b(o)23 b(o)m(v)m(erride)f(part)574 565 y(of)27 b(the)g(problems)d +(outlined)h(b)s(elo)m(w)g(in)g(sp)s(ecifying)f(co)s(de128)k(sym)m(b)s +(ols,)e(this)f(pseudo-enco)s(ding)574 664 y(allo)m(ws)42 +b(the)h(used)f(to)h(sp)s(ecify)e(a)i(list)e(of)i(co)s(de128)h(sym)m(b)s +(ols)d(separated)i(b)m(y)g(spaces.)77 b(Eac)m(h)574 764 +y(sym)m(b)s(ol)31 b(is)g(represen)m(ted)h(b)m(y)g(a)g(n)m(um)m(b)s(er)f +(in)g(the)h(range)g(0-105.)48 b(The)31 b(list)g(should)f(include)g(the) +574 863 y(leading)e(c)m(haracter.The)i(c)m(hec)m(ksum)g(and)e(the)h +(stop)g(c)m(haracter)h(are)f(automatically)g(added)f(b)m(y)574 +963 y(the)k(library)-8 b(.)42 b(Most)33 b(lik)m(ely)d(this)g +(pseudo-enco)s(ding)g(will)f(b)s(e)i(used)f(with)g Fj(BARCODE_NO_ASCII) +574 1063 y Fl(and)g(some)h(external)f(program)g(to)i(supply)27 +b(the)k(prin)m(ted)e(text.)94 1245 y Fh(co)s(de)37 b(39)180 +b Fl(The)36 b(co)s(de-39)h(standard)f(can)g(enco)s(de)g(upp)s(ercase)g +(letters,)i(digits,)e(the)g(blank)f(space,)k(plus,)574 +1345 y(min)m(us,)d(dot,)i(star,)f(dollar,)f(slash,)g(p)s(ercen)m(t.)57 +b(An)m(y)36 b(string)f(that)h(is)f(only)g(comp)s(osed)g(of)h(suc)m(h) +574 1445 y(c)m(haracters)j(is)e(accepted)h(b)m(y)g(the)f(co)s(de-39)i +(enco)s(der.)61 b(T)-8 b(o)38 b(a)m(v)m(oid)g(lo)s(osing)e +(information,)i(the)574 1544 y(enco)s(der)c(refuses)g(to)h(enco)s(de)f +(mixed-case)g(strings)f(\(a)i(lo)m(w)m(ercase)g(string)e(is)g +(nonetheless)h(ac-)574 1644 y(cepted)d(as)g(a)g(shortcut,)f(but)g(is)f +(enco)s(ded)h(as)h(upp)s(ercase\).)94 1826 y Fh(in)m(terlea)m(v)m(ed)g +(2)g(of)g(5)574 1926 y Fl(This)36 b(enco)s(ding)g(can)i(only)e +(represen)m(t)h(an)g(ev)m(en)h(n)m(um)m(b)s(er)e(of)h(digits)f(\(o)s +(dd)h(digits)f(are)h(repre-)574 2026 y(sen)m(ted)c(b)m(y)g(bars,)f(and) +g(ev)m(en)h(digits)e(b)m(y)i(the)f(in)m(terlea)m(ving)g(spaces\).)48 +b(The)32 b(name)g(stresses)h(the)574 2125 y(fact)i(that)g(t)m(w)m(o)g +(of)f(the)g(\014v)m(e)g(items)f(\(bars)h(or)f(spaces\))i(allo)s(cated)f +(to)g(eac)m(h)h(sym)m(b)s(ol)e(are)h(wide,)574 2225 y(while)41 +b(the)i(rest)g(are)g(narro)m(w.)78 b(The)42 b(c)m(hec)m(ksum)h(digit)f +(is)g(optional)f(\(can)j(b)s(e)e(disabled)e(via)574 2325 +y Fj(BARCODE_NO_CHECKSUM)p Fl(\).)f(Since)31 b(the)h(n)m(um)m(b)s(er)e +(of)h(digits,)g(including)d(the)j(c)m(hec)m(ksum,)i(m)m(ust)574 +2424 y(b)s(e)40 b(ev)m(en,)k(a)c(leading)f(zero)i(is)e(inserted)g(in)g +(the)i(string)e(b)s(eing)g(enco)s(ded)g(if)h(needed)f(\(this)h(is)574 +2524 y(sp)s(eci\014cally)29 b(stated)i(in)e(the)h(sp)s(ecs)g(I)g(ha)m +(v)m(e)i(access)g(to\).)94 2707 y Fh(co)s(de)f(128)136 +b Fl(Automatic)31 b(selection)g(b)s(et)m(w)m(een)g(alphab)s(et)f(A,)h +(B)g(and)f(C)h(of)g(the)g(Co)s(de-128)h(standard.)41 +b(This)574 2806 y(enco)s(ding)31 b(can)i(represen)m(t)f(all)f(ASCI)s(I) +f(sym)m(b)s(ols,)i(from)f(0)h(\(NUL\))h(to)g(127)g(\(DEL\),)g(as)g(w)m +(ell)e(as)574 2906 y(four)36 b(sp)s(ecial)e(sym)m(b)s(ols,)i(named)f +(F1,)j(F2,)g(F3,)g(F4.)58 b(The)35 b(set)h(of)g(sym)m(b)s(ols)f(a)m(v) +-5 b(ailable)35 b(in)f(this)574 3005 y(enco)s(ding)g(is)f(not)i(easily) +e(represen)m(ted)i(as)f(input)e(to)k(the)e Fg(b)-5 b(ar)g(c)g(o)g(de)44 +b Fl(library)-8 b(,)33 b(so)i(the)f(follo)m(wing)574 +3105 y(con)m(v)m(en)m(tion)24 b(is)e(used.)38 b(In)22 +b(the)g(input)f(string,)j(whic)m(h)d(is)h(a)h(C-language)g(n)m +(ull-terminated)e(string,)574 3205 y(the)26 b(NUL)g(c)m(har)f(is)g +(represen)m(ted)g(b)m(y)h(the)f(v)-5 b(alue)25 b(128)i(\(0x80,)h +(0200\))g(and)d(the)g(F1-F4)i(c)m(haracters)574 3304 +y(are)f(represen)m(ted)g(b)m(y)f(the)h(v)-5 b(alues)25 +b(193-196)k(\(0xc1-0xc4,)h(0301-0304\).)43 b(The)25 b(v)-5 +b(alues)25 b(ha)m(v)m(e)i(b)s(een)574 3404 y(c)m(hosen)k(to)h(ease)f +(their)e(represen)m(tation)i(as)f(escap)s(e)h(sequences.)574 +3545 y(Since)39 b(the)h(shell)d(do)s(esn't)j(seem)f(to)i(in)m(terpret)d +(escap)s(e)i(sequences)g(on)f(the)h(command)f(line,)574 +3645 y(the)e Fj(")p Fl(-b)p Fj(")e Fl(option)g(cannot)h(b)s(e)f(easily) +g(used)g(to)i(designate)f(the)g(strings)f(to)h(b)s(e)f(enco)s(ded.)57 +b(As)574 3744 y(a)44 b(w)m(ork)-5 b(around)42 b(y)m(ou)i(can)f(resort)h +(to)f(the)h(command)f Fj(echo)p Fl(,)i(either)e(within)d(bac)m(k-tic)m +(ks)45 b(or)574 3844 y(used)34 b(separately)g(to)g(create)i(a)e(\014le) +f(that)i(is)e(then)g(fed)h(to)h(the)f(standard-input)d(of)j +Fg(b)-5 b(ar)g(c)g(o)g(de)44 b Fl({)574 3944 y(assuming)34 +b(y)m(our)h Fj(echo)f Fl(command)h(pro)s(cesses)g(escap)s(e)h +(sequences.)56 b(The)34 b(newline)f(c)m(haracter)574 +4043 y(is)d(esp)s(ecially)f(though)h(to)h(enco)s(de)f(\(but)g(not)h +(imp)s(ossible)c(unless)h(y)m(ou)j(use)f(a)h Fj(csh)e +Fl(v)-5 b(arian)m(t.)574 4184 y(These)35 b(problems)f(only)g(apply)g +(to)i(the)f(command-line)f(to)s(ol;)j(the)f(use)e(of)i(library)c +(functions)574 4284 y(do)s(esn't)44 b(giv)m(e)f(an)m(y)h(problem.)78 +b(In)42 b(needed,)47 b(y)m(ou)c(can)h(use)f(the)h(\\)p +Fg(c)-5 b(o)g(de)46 b(128)f(r)-5 b(aw)10 b Fl(")45 b(pseudo-)574 +4384 y(enco)s(ding)33 b(to)h(represen)m(t)g(co)s(de128)h(sym)m(b)s(ols) +d(b)m(y)h(their)g(n)m(umerical)f(v)-5 b(alue.)50 b(This)31 +b(enco)s(ding)i(is)574 4483 y(used)28 b(late)h(in)e(the)h +(auto-selection)i(mec)m(hanism)d(b)s(ecause)h(\(almost\))i(an)m(y)e +(input)f(string)g(can)i(b)s(e)574 4583 y(represen)m(ted)i(using)e(co)s +(de128.)94 4765 y Fh(Co)s(dabar)138 b Fl(Co)s(dabar)33 +b(can)h(enco)s(de)g(the)g(ten)f(digits)g(and)g(a)h(few)f(sp)s(ecial)f +(sym)m(b)s(ols)g(\(min)m(us,)i(plus,)e(dollar,)574 4865 +y(colon,)k(bar,)g(dot\).)54 b(The)34 b(c)m(haracters)i(\\)p +Fj(A)p Fl(",)h(\\)p Fj(B)p Fl(",)f(\\)p Fj(C)p Fl(")f(and)g(\\)p +Fj(D)p Fl(")g(are)g(used)f(to)h(represen)m(t)g(four)574 +4965 y(di\013eren)m(t)30 b(start/stop)i(c)m(haracters.)42 +b(The)30 b(input)e(string)i(to)h(the)f(barco)s(de)h(library)d(can)i +(include)574 5064 y(the)d(start)g(and)f(stop)h(c)m(haracters)h(or)e +(not)h(include)d(them)j(\(in)e(whic)m(h)h(case)h(\\)p +Fj(A)p Fl(")g(is)f(used)g(as)g(start)574 5164 y(and)38 +b(\\)p Fj(B)p Fl(")g(as)g(stop\).)64 b(Start)38 b(and)f(stop)h(c)m +(haracters)h(in)e(the)h(input)e(string)g(can)j(b)s(e)e(either)g(all)574 +5264 y(lo)m(w)m(ercase)32 b(or)f(all)e(upp)s(ercase)g(and)h(are)h(alw)m +(a)m(ys)g(prin)m(ted)e(as)h(upp)s(ercase.)94 5446 y Fh(Plessey)192 +b Fl(Plessey)39 b(barco)s(des)f(can)h(enco)s(de)g(all)f(the)h +(hexadecimal)f(digits.)64 b(Alphab)s(etic)37 b(digits)g(in)h(the)574 +5546 y(input)25 b(string)g(m)m(ust)h(either)g(b)s(e)f(all)g(lo)m(w)m +(ercase)j(or)e(all)f(upp)s(ercase.)38 b(The)26 b(output)g(text)h(is)e +(alw)m(a)m(ys)574 5645 y(upp)s(ercase.)p eop +%%Page: 9 10 +9 9 bop 94 -116 a Fl(Chapter)30 b(7:)41 b(PCL)30 b(Output)2761 +b(9)94 365 y Fh(MSI)313 b Fl(MSI)39 b(can)g(only)e(enco)s(de)i(the)g +(decimal)e(digits.)64 b(While)38 b(the)h(standard)e(sp)s(eci\014es)h +(either)g(one)574 465 y(or)e(t)m(w)m(o)h(c)m(hec)m(k)g(digits,)e(the)h +(curren)m(t)f(implemen)m(tation)f(in)g(this)g(library)f(only)i +(generates)i(one)574 565 y(c)m(hec)m(k)32 b(digit.)94 +701 y Fh(co)s(de)f(93)180 b Fl(The)30 b(co)s(de-93)h(standard)f(can)g +(nativ)m(ely)g(enco)s(de)g(48)h(di\013eren)m(t)e(c)m(haracters,)j +(including)27 b(upp)s(er-)574 801 y(case)39 b(letters,)h(digits,)e(the) +g(blank)e(space,)k(plus,)e(min)m(us,)g(dot,)h(star,)h(dollar,)e(slash,) +h(p)s(ercen)m(t,)574 901 y(as)31 b(w)m(ell)f(as)g(\014v)m(e)h(sp)s +(ecial)e(c)m(haracters:)43 b(a)30 b(start/stop)i(delimiter)c(and)i +(four)g Fj(")p Fl(shift)f(c)m(haracters)p Fj(")574 1000 +y Fl(used)f(for)f(extended)h(enco)s(ding.)39 b(Using)27 +b(this)g Fj(")p Fl(extended)g(enco)s(ding)p Fj(")g Fl(metho)s(d,)h(an)m +(y)g(standard)574 1100 y(7-bit)34 b(ASCI)s(I)e(c)m(haracter)k(can)e(b)s +(e)f(enco)s(ded,)i(but)e(it)h(tak)m(es)h(up)e(t)m(w)m(o)i(sym)m(b)s(ol) +d(lengths)i(in)e(bar-)574 1200 y(co)s(de)k(if)f(the)g(c)m(haracter)j +(is)c(not)i(nativ)m(ely)f(supp)s(orted)f(\(one)i(of)g(the)f(48\).)58 +b(The)35 b(enco)s(der)g(here)574 1299 y(fully)24 b(implemen)m(ts)g(the) +i(co)s(de)g(93)g(enco)s(ding)f(standard.)38 b(An)m(y)26 +b(c)m(haracters)h(nativ)m(ely)e(supp)s(orted)574 1399 +y(\(A-Z,)35 b(0-9,)h Fj(")p Fl(.)p Fj(+)p Fl(-/$&\045)p +Fj(")p Fl(\))e(will)d(b)s(e)j(enco)s(ded)f(as)h(suc)m(h)g(-)g(for)f(an) +m(y)h(other)h(c)m(haracters)g(\(suc)m(h)f(as)574 1498 +y(lo)m(w)m(er)h(case)g(letters,)g(brac)m(k)m(ets,)h(paren)m(theses,)g +(etc.\),)h(the)d(enco)s(der)f(will)f(rev)m(ert)i(to)h(extended)574 +1598 y(enco)s(ding.)68 b(As)40 b(a)g(note,)j(the)d(option)f(to)h +(exclude)f(the)h(c)m(hec)m(ksum)g(will)d(eliminate)i(the)h(t)m(w)m(o) +574 1698 y(mo)s(dulo-47)f(c)m(hec)m(ksums)g(\(called)g(C)f(and)g(K\))h +(from)f(the)h(barco)s(de,)i(but)d(this)g(probably)f(will)574 +1797 y(mak)m(e)c(it)e(unreadable)e(b)m(y)i(99\045)h(of)g(all)e +(scanning)g(systems.)43 b(These)31 b(c)m(hec)m(ksums)h(are)g(sp)s +(eci\014ed)574 1897 y(to)f(b)s(e)e(used)g(at)i(the)f(\014rm)m(w)m(are)f +(lev)m(el,)h(and)f(their)g(absence)h(will)d(b)s(e)j(in)m(terpreted)f +(as)h(an)f(in)m(v)-5 b(alid)574 1997 y(barco)s(de.)94 +2266 y Fi(7)81 b(PCL)53 b(Output)219 2459 y Fl(While)28 +b(the)h(default)g(output)f(is)g(P)m(ostscript)i(\(p)s(ossibly)c(EPS\),) +j(and)g(P)m(ostscript)g(can)g(b)s(e)f(p)s(ost-pro)s(cessed)94 +2558 y(to)40 b(almost)e(an)m(ything,)i(it)e(is)f(sometimes)i(desirable) +d(to)j(create)h(output)e(directly)f(usable)g(b)m(y)i(the)f(sp)s +(eci\014c)94 2658 y(prin)m(ter)33 b(at)h(hand.)50 b(PCL)33 +b(is)g(curren)m(tly)f(supp)s(orted)g(as)i(an)g(output)f(format)h(for)g +(this)e(reason.)51 b(Please)34 b(note)94 2758 y(that)25 +b(the)f(Y)g(co)s(ordinate)g(for)f(PCL)h(go)s(es)g(from)f(top)i(to)f(b)s +(ottom,)i(while)c(for)h(P)m(ostscript)h(it)g(go)s(es)g(from)g(b)s +(ottom)94 2857 y(to)35 b(top.)51 b(Consisten)m(tly)-8 +b(,)34 b(while)d(in)i(P)m(ostscript)g(y)m(ou)h(sp)s(ecify)f(the)g(b)s +(ottom-left)i(corner)e(as)h(origin,)f(for)h(PCL)94 2957 +y(y)m(ou)d(sp)s(ecify)e(the)i(top-left)f(corner.)219 +3075 y(Barco)s(de)c(output)e(for)h(PCL)f(Prin)m(ters)g(\(HP)h(LaserJet) +g(and)g(compatibles\),)g(w)m(as)h(dev)m(elop)s(ed)e(using)f(PCL5)94 +3175 y(Reference)32 b(man)m(uals)d(from)h(HP)-8 b(.)31 +b(that)g(really)e(refers)h(to)h(these)g(prin)m(ters:)169 +3293 y Fb(\017)60 b Fl(LaserJet)31 b(I)s(I)s(I,)f(I)s(I)s(I)e(P)-8 +b(,)31 b(I)s(I)s(I)e(D,)i(I)s(I)s(I)e(Si,)169 3411 y +Fb(\017)60 b Fl(LaserJet)31 b(4)g(family)169 3529 y Fb(\017)60 +b Fl(LaserJet)31 b(5)g(family)169 3648 y Fb(\017)60 b +Fl(LaserJet)31 b(6)g(family)169 3766 y Fb(\017)60 b Fl(Color)30 +b(LaserJet)169 3884 y Fb(\017)60 b Fl(DeskJet)32 b(1200)g(and)e(1600.) +219 4021 y(Ho)m(w)m(ev)m(er,)g(barco)s(de)e(prin)m(ting)d(uses)i(a)h(v) +m(ery)g(small)e(subset)h(of)g(PCL,)g(probably)f(also)h(LaserJet)h(I)s +(I)f(should)94 4121 y(prin)m(t)i(it)h(without)g(problem,)f(but)g(the)i +(resulting)e(text)i(ma)m(y)g(b)s(e)f(horrible.)219 4239 +y(The)22 b(only)g(real)h(di\013erence)f(from)h(one)g(prin)m(ter)e(to)j +(another)f(really)f(dep)s(ends)f(on)h(whic)m(h)g(fon)m(t)h(are)h(a)m(v) +-5 b(ailable)94 4338 y(in)30 b(the)g(prin)m(ter,)f(used)h(in)f(prin)m +(ting)f(the)j(lab)s(el)d(asso)s(ciated)j(to)g(the)g(bars)f(\(if)f +(requested\).)219 4457 y(Earlier)j(LaserJet)j(supp)s(orts)d(only)h +(bitmaps)f(fon)m(ts,)k(so)e(these)g(are)h(not)f Fj(")p +Fl(scalable)p Fj(")p Fl(.)50 b(\(Ljet)35 b(I)s(I)e(?\),)i(Also)94 +4556 y(these)c(fon)m(ts,)f(when)f(a)m(v)-5 b(ailable,)29 +b(ha)m(v)m(e)i(a)f(sp)s(eci\014ed)e(direction,)h(and)g(not)h(all)f(of)g +(them)h(are)g(a)m(v)-5 b(ailable)29 b(in)g(b)s(oth)94 +4656 y(P)m(ortrait)i(and)f(Landscap)s(e)g(mo)s(de.)219 +4774 y(F)-8 b(rom)23 b(LaserJet)g(4)f(series,)i(\(except)g(4L/5L)f +(that)g(are)g(en)m(try-lev)m(el)f(prin)m(ters\),)h(Arial)e(scalable)h +(fon)m(t)h(should)94 4874 y(b)s(e)30 b(a)m(v)-5 b(ailable,)30 +b(so)h(it's)f(the)g Fj(")p Fl(default)g(fon)m(t)p Fj(")g +Fl(used)g(b)m(y)g(this)f(program.)219 4992 y(LaserJet)41 +b(I)s(I)s(I)d(series)i(prin)m(ters)e(\(and)i(4L,)g(5L\),)h(don't)f +(feature)h Fj(")p Fl(Arial)p Fj(")d Fl(as)i(a)h(residen)m(t)e(fon)m(t,) +k(so)e(y)m(ou)94 5092 y(should)27 b(use)i Fj(BARCODE_OUT_PCL_III)23 +b Fl(instead)28 b(of)h Fj(BARCODE_OUT_PCL.)p Fl(,)c(and)j(fon)m(t)h +(the)g(fon)m(t)h(used)d(will)g(b)s(e)94 5191 y Fj(")p +Fl(Univ)m(ers)p Fj(")j Fl(instead)f(of)i Fj(")p Fl(Arial)p +Fj(")p Fl(.)219 5309 y(Results)26 b(on)i(compatible)e(prin)m(ters,)h +(ma)m(y)h(dep)s(end)d(on)i(consistency)g(of)h(PCL5)f(compatibilit)m(y) +-8 b(,)26 b(in)g(doubt,)94 5409 y(try)31 b(BAR)m(CODE)p +713 5409 28 4 v 33 w(OUT)p 951 5409 V 32 w(PCL)p 1168 +5409 V 32 w(I)s(I)s(I)219 5527 y(PJL)f(commands)g(are)g(not)h(used)f +(here,)g(as)h(it's)f(not)g(v)m(ery)h(compatible.)219 +5645 y(T)-8 b(ested)31 b(Prin)m(ters:)p eop +%%Page: 10 11 +10 10 bop 94 -116 a Fl(Chapter)30 b(8:)41 b(Bugs)31 b(and)f(P)m(ending) +f(Issues.)2211 b(10)169 365 y Fb(\017)60 b Fl(Hp)30 b(LaserJet)h(4050) +169 490 y Fb(\017)60 b Fl(Hp)30 b(LaserJet)h(2100)169 +614 y Fb(\017)60 b Fl(Epson)30 b(N-1200)j(em)m(ul)c(PCL)169 +739 y Fb(\017)60 b Fl(T)-8 b(oshiba)30 b(DP2570)i(\(copier\))f +Fj(+)f Fl(PCL)g(option)169 863 y Fb(\017)60 b Fl(Epson)30 +b(EPL-7100)i(em)m(ul.)40 b(HP)30 b(LaserJet)h(I)s(I:)f(bars)g(prin)m(t) +f(\014ne)g(but)h(text)i(is)d(bad.)94 1146 y Fi(8)81 b(Bugs)52 +b(and)i(P)l(ending)f(Issues.)219 1370 y Fl(The)42 b(curren)m(t)g +(managemen)m(t)h(of)g(b)s(orders/margins)d(is)h(far)h(from)g(optimal.) +75 b(The)42 b(\\default")g(margin)94 1469 y(applied)d(b)m(y)h(the)h +(library)d(in)m(terferes)i(with)f(the)i(external)g(represen)m(tation,)i +(but)d(I)g(feel)g(it)g(is)g(mandatory)94 1569 y(to)f(a)m(v)m(oid)f +(creating)g(barco)s(de)f(output)h(with)e(no)i(surrounding)c(white)j +(space)h(\(the)g(problem)e(is)h(esp)s(ecially)94 1669 +y(relev)-5 b(an)m(t)31 b(for)f(EPS)g(output\).)219 1793 +y(EAN-128)44 b(is)d(not)h(\(y)m(et\))i(supp)s(orted.)73 +b(I)42 b(plan)e(to)j(implemen)m(t)e(it)g(prett)m(y)h(so)s(on)g(and)f +(then)h(bless)f(the)94 1893 y(pac)m(k)-5 b(age)33 b(as)d(v)m(ersion)g +(1.0.)p eop +%%Page: -1 12 +-1 11 bop 3849 -116 a Fl(i)94 365 y Fi(T)-13 b(able)55 +b(of)e(Con)l(ten)l(ts)94 697 y Fk(Barco)t(de)45 b(to)t(ols)16 +b Fa(.)k(.)g(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.) +f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g +(.)h(.)60 b Fk(1)94 955 y(1)135 b(Ov)l(erview)12 b Fa(.)21 +b(.)f(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h +(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.) +f(.)57 b Fk(1)94 1212 y(2)135 b(The)45 b(Underlying)g(Data)h(Structure) +41 b Fa(.)20 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)86 +b Fk(1)393 1337 y Fl(2.1)92 b(The)30 b(Fields)19 b Fg(.)14 +b(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 +b Fl(1)692 1436 y(Use)31 b(of)g(the)f Fg(width)39 b Fl(and)30 +b Fg(sc)-5 b(alef)50 b Fl(\014elds.)25 b Fg(.)15 b(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)56 b Fl(2)393 1536 y(2.2)92 b(The)30 b(In)m(termediate)h +(Represen)m(tation)24 b Fg(.)15 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)54 b Fl(3)94 1768 y Fk(3)135 b(The)45 b(Flags)28 +b Fa(.)20 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f +(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.) +f(.)g(.)73 b Fk(3)94 2026 y(4)135 b(F)-11 b(unctions)44 +b(Exp)t(orted)h(b)l(y)g(the)g(Library)37 b Fa(.)19 b(.)h(.)f(.)g(.)h(.) +f(.)h(.)f(.)h(.)f(.)g(.)81 b Fk(4)94 2283 y(5)135 b(The)45 +b Fa(b)-7 b(ar)g(c)g(o)g(de)52 b Fk(fron)l(tend)46 b(program)11 +b Fa(.)19 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h +(.)55 b Fk(5)393 2408 y Fl(5.1)92 b(The)30 b(Command)g(Line)24 +b Fg(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b Fl(5)94 2640 y Fk(6)135 +b(Supp)t(orted)44 b(Enco)t(dings)33 b Fa(.)20 b(.)f(.)g(.)h(.)f(.)h(.)f +(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.) +78 b Fk(7)94 2897 y(7)135 b(PCL)45 b(Output)40 b Fa(.)20 +b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)85 +b Fk(9)94 3155 y(8)135 b(Bugs)45 b(and)f(P)l(ending)h(Issues.)36 +b Fa(.)19 b(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)g(.)h(.)79 b Fk(10)p eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF diff --git a/barcode-0.98/doc/barcodedoc.txt b/barcode-0.98/doc/barcodedoc.txt new file mode 100644 index 00000000..2d242f99 --- /dev/null +++ b/barcode-0.98/doc/barcodedoc.txt @@ -0,0 +1,734 @@ + + +This is barcode.info, produced by makeinfo version 4.0b from +barcode.texinfo. + + This file is the User's Manual for the barcode library (version +0.98). + + + + +*Node: Overview + Overview + ******** + + The "barcode" package is mainly a C library for creating bar-code +output files. It also includes a command line front-end and (in a +foreseeable future) a graphic frontend. + + The package is designed as a library because we think the main use +for barcode-generation tools is inside more featured applications. The +library addresses bar code printing as two distinct problems: creation +of bar information and actual conversion to an output format. To this +aim we use an intermediate representation for bar codes, which is +currently documented in the `ps.c' source file (not in this document). + + Note that the library and the accompanying material is released +according to the GPL license, not the LGPL one. A copy of the GPL is +included in the distribution tarball. + + + + +*Node: The Barcode Object + The Underlying Data Structure + ***************************** + + Every barcode-related function acts on a data structure defined in +the `barcode.h' header, which must be included by any C source file +that uses the library. The header is installed by make install. + + The definition of the data structure is included here for reference: + + struct Barcode_Item { + int flags; /* type of encoding and other flags */ + char *ascii; /* malloced */ + char *partial; /* malloced too */ + char *textinfo; /* information about text placement */ + char *encoding; /* code name, filled by encoding engine */ + int width, height; /* output units */ + int xoff, yoff; /* output units */ + int margin; /* output units */ + double scalef; /* requested scaling for barcode */ + int error; /* an errno-like value, in case of failure */ + }; + + The exact meaning of each field and the various flags implemented are +described in the following sections. + + Even though you won't usually need to act on the contents of this +structure, some of the functions in the library receive arguments that +are directly related to one or more of these fields. + + + + +*Node: The Field List + The Fields + ========== + +`int flags;' + The flags are, as you may suspect, meant to specify the exact + behaviour of the library. They are often passed as an argument to + barcode functions and are discussed in the next section. + +`char *ascii;' +`char *partial;' +`char *textinfo;' +`char *encoding;' + These fields are internally managed by the library, and you are + not expected to touch them if you use the provided API. All of + them are allocated with malloc. + +`int width;' +`int height;' + They specify the width and height of the active barcode region + (i.e., excluding the white margin), in the units used to create + output data (for postscript they are points, 1/72th of an inch, + 0.352 mm). The fields can be either assigned to in the structure + or via Barcode_Position(), at your choice. If either value or + both are left to their default value of zero, the output engine + will assign default values according to the specified scaling + factor. If the specified width is bigger than needed (according to + the scaling factor), the output barcode will be centered in its + requested region. If either the width of the height are too small + for the specified scale factor, the output bar code will expand + symmetrically around the requested region. + +`int xoff;' +`int yoff;' + The fields specify offset from the coordinate origin of the output + engine (for postscript, position 0,0 is the lower left corner of + the page). The fields can be either assigned to in the structure + or via Barcode_Position(), at your choice. The offset specifies + where the white margin begins, not where the first bar will be + printed. To print real ink to the specified position you should + set margin to 0. + +`int margin;' + The white margin that will be left around the printed area of the + bar code. The same margin is applied to all sides of the printed + area. The default value for the margin is defined in `barcode.h' + as BARCODE_DEFAULT_MARGIN (10). + +`double scalef;' + The enlarge or shrink value for the bar code over its default + dimension. The width and scalef fields interact deeply in the + creation of the output, and a complete description of the issues + appears later in this section. + +`int error;' + The field is used when a barcode function fails to host an + errno-like integer value. + +Use of the width and scalef fields. +----------------------------------- + + A width unit is the width of the thinnest bar and/or space in the +chosen code; it defaults to 1 point if the output is postscript or +encapsulated postscript. + + Either or both the code width and the scale factor can be left +unspecified (i.e., zero). The library deals with defaults in the +following way: + +Both unspecified + If both the width and the scale factor are unspecified, the scale + factor will default to 1.0 and the width is calculated according + to the actual width of the bar code being printed. + +Width unspecified + If the width is not specified, it is calculated according to the + values of scalef. + +Scale factor unspecified + If the scale factor is not specified, it will be chosen so that + the generated bar code exactly fits the specified width. + +Both specified + The code will be printed inside the specified region according to + the specified scale factor. It will be aligned to the left. If, + however, the chosen width is too small for the specific bar code + and scaling factor, then the code will extend symmetrically to the + left and to the right of the chosen region. + + + + +*Node: The Intermediate Representation + The Intermediate Representation + =============================== + + The encoding functions print their output into the partial and +texinfo fields of the barcode data structure. Those fields, together +with position information, are then used to generate actual output. +This is an informal description of the intermediate format. + + The first char in partial tells how much extra space to add to the +left of the bars. For EAN-13, it is used to leave space to print the +first digit, other codes may have '0' for no-extra-space-needed. + + The next characters are alternating bars and spaces, as multiples of +the base dimension which is 1 unless the code is rescaled. Rescaling is +calculated as the ratio from the requested width and the calculated +width. Digits represent bar/space dimensions. Lower-case letters +represent those bars that should extend lower than the others: 'a' is +equivalent to '1', 'b' is '2' and so on up to 'i' which is equivalent to +'9'. Other letters will be used for encoding-specific meanings, as soon +as I implement them. + + The textinfo string is made up of fields %lf:%lf:%c separated by +blank space. The first integer is the x position of the character, the +second is the font size (before rescaling) and the char item is the +character to be printed. + + Both the partial and textinfo strings may include "-" or "+" as +special characters (in textinfo the char should be a stand-alone word). +They state where the text should be printed: below the bars ("-", +default) or above the bars. This is used, for example, to print the +add-5 and add-2 codes to the right of UPC or EAN codes (the add-5 +extension is mostly used in ISBN codes). + + + + +*Node: Supported Flags + The Flags + ********* + + The following flags are supported by version 0.98 of the library: + +`BARCODE_ENCODING_MASK' + The mask is used to extract the encoding-type identifier from the + flags field. + +`BARCODE_EAN' +`BARCODE_UPC' +`BARCODE_ISBN' +`BARCODE_128B' +`BARCODE_128C' +`BARCODE_128' +`BARCODE_128RAW' +`BARCODE_39' +`BARCODE_I25' +`BARCODE_CBR' +`BARCODE_MSI' +`BARCODE_PLS' +`BARCODE_93' + The currently supported encoding types: EAN (13 digits, 8 digits, + 13 + 2 add-on and 13 + 5 add-on), UPC (UPC-A, UPC-E, UPC-A with 2 + or 5 digit add-on), ISBN (with or without the 5-digit add-on), + CODE128-B (the whole set of printable ASCII characters), CODE128-C + (two digits encoded by each barcode symbol), CODE128 (all ASCII + values), a "raw-input" pseudo-code that generates CODE128 output, + CODE39 (alphanumeric), "interleaved 2 of 5" (numeric), Codabar + (numeric plus a few symbols), MSI (numeric) and Plessey (hex + digits). *Note Supported Encodings::. + +`BARCODE_ANY' + This special encoding type (represented by a value of zero, so it + will be the default) tells the encoding procedure to look for the + first encoding type that can deal with a textual string. + Therefore, a 11-digit code will be printed as UPC (as well as + 6-digit, 11+2 and 11+5), a 12-digit (or 7-digit, or 12+2 or 12+5) + as EAN13, an ISBN code (with or without hyphens, with or without + add-5) will be encoded in its EAN13 representation, an even number + of digits is encoded using CODE128C and a generic string is + encoded using CODE128B. Since code-39 offers a much larger + representation for the same text string, code128-b is preferred + over code39 for alphanumeric strings. + +`BARCODE_NO_ASCII' + Instructs the engine not to print the ascii string on output. By + default the bar code is accompanied with an ascii version of the + text it encodes. + +`BARCODE_NO_CHECKSUM' + Instructs the engine not to add the checksum character to the + output. Not all the encoding types can drop the checksum; those + where the checksum is mandatory (like EAN and UPC) just ignore the + flag. + +`BARCODE_OUTPUT_MASK' + The mask is used to extract the output-type identifier from the + flags field. + +`BARCODE_OUT_PS' +`BARCODE_OUT_EPS' +`BARCODE_OUT_PCL' +`BARCODE_OUT_PCL_III' + The currently supported encoding types: full-page postscript and + encapsulated postscript; PCL (print command language, for HP + printers) and PCL-III (same as PCL, but uses a font not available + on older printers). + +`BARCODE_OUT_NOHEADERS' + The flag instructs the printing engine not to print the header and + footer part of the file. This makes sense for the postscript + engine but might not make sense for other engines; such other + engines will silently ignore the flag just like the PCL back-end + does. + + + + +*Node: The API + Functions Exported by the Library + ********************************* + + The functions included in the barcode library are declared in the +header file barcode.h. They perform the following tasks: + +`struct Barcode_Item *Barcode_Create(char *text);' + The function creates a new barcode object to deal with a specified + text string. It returns NULL in case of failure and a pointer to + a barcode data structure in case of success. + +`int Barcode_Delete(struct Barcode_Item *bc);' + Destroy a barcode object. Always returns 0 (success) + +`int Barcode_Encode(struct Barcode_Item *bc, int flags);' + Encode the text included in the bc object. Valid flags are the + encoding type (other flags are ignored) and BARCODE_NO_CHECKSUM + (other flags are silently ignored); if the flag argument is zero, + bc->flags will apply. The function returns 0 on success and -1 in + case of error. After successful termination the data structure + will host the description of the bar code and its textual + representation, after a failure the error field will include the + reason of the failure. + +`int Barcode_Print(struct Barcode_Item *bc, FILE *f, int flags);' + Print the bar code described by bc to the specified file. Valid + flags are the output type, BARCODE_NO_ASCII and + BARCODE_OUT_NOHEADERS, other flags are ignored. If any of these + flags is zero, it will be inherited from bc->flags which therefore + takes precedence. The function returns 0 on success and -1 in case + of error (with bc->error set accordingly). In case of success, the + bar code is printed to the specified file, which won't be closed + after use. + +`int Barcode_Position(struct Barcode_Item *bc, int wid, int hei, int xoff, int yoff, double scalef);' + The function is a shortcut to assign values to the data structure. + +`int Barcode_Encode_and_Print(char *text, FILE *f, int wid, int hei, int xoff, int yoff, int flags);' + The function deals with the whole life of the barcode object by + calling the other functions; it uses all the specified flags. + +`int Barcode_Version(char *versionname);' + Returns the current version as an integer number of the form major + * 10000 + minor * 100 + release. Therefore, version 1.03.5 will be + returned as 10305 and version 0.53 as 5300. If the argument is + non-null, it will be used to return the version number as a + string. Note that the same information is available from two + preprocessor macros: BARCODE_VERSION (the string) and + BARCODE_VERSION_INT (the integer number). + + + + +*Node: The barcode Executable + The barcode frontend program + **************************** + + The barcode program is a front-end to access some features of the +library from the command line. It is able to read user supplied +strings from the command line or a data file (standard input by default) +and encode all of them. + + + + +*Node: The Command Line + The Command Line + ================ + + barcode accepts the following options: + +`--help or -h' + Print a usage summary and exit. + +`-i filename' + Identify a file where strings to be encoded are read from. If + missing (and if -b is not used) it defaults to standard input. + Each data line of the input file will be used to create one + barcode output. + +`-o filename' + Output file. It defaults to standard output. + +`-b string' + Specify a single "barcode" string to be encoded. The option can + be used multiple times in order to encode multiple strings (this + will result in multi-page postscript output or a table of barcodes + if -t is specified). The strings must match the encoding chosen; + if it doesn't match the program will print a warning to stderr and + generate "blank" output (although not zero-length). Please note + that a string including spaces or other special characters must be + properly quoted. + +`-e encoding' + encoding is the name of the chosen encoding format being used. It + defaults to the value of the environment variable BARCODE_ENCODING + or to auto detection if the environment is also unset. + +`-g geometry' + The geometry argument is of the form "[ x ] [+ + + ]" (with no intervening spaces). Unspecified + margin values will result in no margin; unspecified size results + in default size. The specified values represent print points by + default, and can be inches, millimeters or other units according + to the -u option or the BARCODE_UNIT environment variable. The + argument is used to place the printout code on the page. Note that + an additional white margin of 10 points is added to the printout. + If the option is unspecified, BARCODE_GEOMETRY is looked up in the + environment, if missing a default size and no margin (but the + default 10 points) are used. + +`-t table-geometry' + Used to print several barcodes to a single page, this option is + meant to be used to print stickers. The argument is of the form + " x [+ + [- + [- ]]]" (with no intervening spaces); if + missing, the top and right margin will default to be the same as + the bottom and left margin. The margins are specified in print + points or in the chosen unit (see -u below). If the option is not + specified, BARCODE_TABLE is looked up in the environment, + otherwise no table is printed and each barcode will get its own + page. The size (but not the position) of a barcode item within a + table can also be selected using -g (see "geometry" above), + without struggling with external and internal margins. I still + think management of geometries in a table is suboptimal, but I + can't make it better without introducing incompatibilities. + +`-m margin(s)' + Specifies an internal margin for each sticker in the table. The + argument is of the form "," and the margin is + applied symmetrically to the sticker. If unspecified, the + environment variable BARCODE_MARGIN is used or a default internal + margin of 10 points is used. + +`-n' + "Numeric" output: don't print the ASCII form of the code, only the + bars. + +`-c' + No checksum character (for encodings that allow it, like code 39, + other codes, like UPC or EAN, ignore this option). + +`-E' + Encapsulated postscript (default is normal postscript). When the + output is generated as EPS only one barcode is encoded. + +`-P' + PCL output. Please note that the Y direction goes from top to + bottom for PCL, and the origin for an image is the top-left corner + instead of the bottom-left + +`-p pagesize' + Specify a non-default page size. The page size can be specified in + millimeters, inches or plain numbers (for example: "210x297mm", + "8.5x11in", "595x842"). A page specification as numbers will be + interpreted according to the current unit specification (see -u + below). If libpaper is available, you can also specify the page + size with its name, like "A3" or "letter" (libpaper is a standard + component of Debian GNU/Linux, but may be missing elsewhere). The + default page size is your system-wide default if libpaper is + there, A4 otherwise. + +`-u unit' + Choose the unit used in size specifications. Accepted values are + "mm", "cm", "in" and "pt". By default, the program will check + BARCODE_UNIT in the environment, and assume points otherwise (this + behaviour is compatible with 0.92 and previous versions. If -u + appears more than once, each instance will modified the behaviour + for the arguments at its right, as the command line is processes + left to right. The program internally works with points, and any + size is approximated to the nearest multiple of one point. The -u + option affect -g (geometry), -t (table) and -p (page size). + + + + +*Node: Supported Encodings + Supported Encodings + ******************* + + The program encodes text strings passed either on the command line +(with -b) or retrieved from standard input. The text representation is +interpreted according to the following rules. When auto-detection of +the encoding is enabled (i.e, no explicit encoding type is specified), +the encoding types are scanned to find one that can digest the text +string. The following list of supported types is sorted in the same +order the library uses when auto-detecting a suitable encoding for a +string. + +EAN + The EAN frontend is similar to UPC; it accepts strings of digits, + 12 or 7 characters long. Strings of 13 or 8 characters are + accepted if the provided checksum digit is correct. I expect most + users to feed input without a checksum, though. The add-2 and + add-5 extension are accepted for both the EAN-13 and the EAN-8 + encodings. The following are example of valid input strings: + "123456789012" (EAN-13), "1234567890128" (EAN-13 wih checksum), + "1234567" (EAN-8), "12345670 12345" (EAN-8 with checksum and + add-5), "123456789012 12" (EAN-13 with add-2), "123456789012 + 12345" (EAN-13 with add-5). + +UPC + The UPC frontend accepts only strings made up of digits (and, if a + supplemental encoding is used, a blank to separate it). It + accepts strings of 11 or 12 digits (UPC-A) and 6 or 7 or 8 digits + (UPC-E). + + The 12th digit of UPC-A is the checksum and is added by the + library if not specified in the input; if it is specified, it must + be the right checksum or the code is rejected as invalid. For + UPC-E, 6 digit are considered to be the middle part of the code, a + leading 0 is assumed and the checksum is added; 7 digits are + either considered the initial part (leading digit 0 or 1, checksum + missing) or the final part (checksum specified, leading 0 + assumed); 8 digits are considered to be the complete code, with + leading 0 or 1 and checksum. For both UPC-A and UPC-E, a trailing + string of 2 digits or 5 digits is accepted as well. Therefore, the + following are examples of valid strings that can be encoded as UPC: + "01234567890" (UPC-A) "012345678905" (UPC-A with checksum), + "012345" (UPC-E), "01234567890 12" (UPC-A, add-2) and "01234567890 + 12345" (UPC-A, add-5), "0123456 12" (UPC-E, add-2). Please note + that when setting BARCODE_ANY to auto-detect the encoding to be + used, 12-digit strings and 7-digit strings will always be + identified as EAN. This because I expect most user to provide + input without a checksum. If you need to specify UPC-with-checksum + as input you must explicitly set BARCODE_UPC as a flag or use -e + upc on the command line. + +ISBN + ISBN numbers are encoded as EAN-13 symbols, with an optional add-5 + trailer. The ISBN frontend of the library accepts real ISBN + numbers and deals with any hyphen and, if present, the ISBN + checksum character before encoding data. Valid representations for + ISBN strings are for example: "1-56592-292-1", "3-89721-122-X" and + "3-89721-122-X 06900". + +CODE 128-B + This encoding can represent all of the printing ASCII characters, + from the space (32) to DEL (127). The checksum digit is mandatory + in this encoding. + +CODE 128-C + The "C" variation of Code-128 uses Code-128 symbols to represent + two digits at a time (Code-128 is made up of 104 symbols whose + interpretation is controlled by the start symbol being used). Code + 128-C is thus the most compact way to represent any even number of + digits. The encoder refuses to deal with an odd number of digits + because the caller is expected to provide proper padding to an + even number of digits. (Since Code-128 includes control symbols to + switch charset, it is theoretically possible to represent the odd + digit as a Code 128-A or 128-B symbol, but this tool doesn't + currently implement this option). + +CODE 128 RAW + Code-128 output represented symbol-by-symbol in the input string. + To override part of the problems outlined below in specifying + code128 symbols, this pseudo-encoding allows the used to specify a + list of code128 symbols separated by spaces. Each symbol is + represented by a number in the range 0-105. The list should + include the leading character.The checksum and the stop character + are automatically added by the library. Most likely this + pseudo-encoding will be used with BARCODE_NO_ASCII and some + external program to supply the printed text. + +CODE 39 + The code-39 standard can encode uppercase letters, digits, the + blank space, plus, minus, dot, star, dollar, slash, percent. Any + string that is only composed of such characters is accepted by the + code-39 encoder. To avoid loosing information, the encoder refuses + to encode mixed-case strings (a lowercase string is nonetheless + accepted as a shortcut, but is encoded as uppercase). + +INTERLEAVED 2 OF 5 + This encoding can only represent an even number of digits (odd + digits are represented by bars, and even digits by the + interleaving spaces). The name stresses the fact that two of the + five items (bars or spaces) allocated to each symbol are wide, + while the rest are narrow. The checksum digit is optional (can be + disabled via BARCODE_NO_CHECKSUM). Since the number of digits, + including the checksum, must be even, a leading zero is inserted + in the string being encoded if needed (this is specifically stated + in the specs I have access to). + +CODE 128 + Automatic selection between alphabet A, B and C of the Code-128 + standard. This encoding can represent all ASCII symbols, from 0 + (NUL) to 127 (DEL), as well as four special symbols, named F1, F2, + F3, F4. The set of symbols available in this encoding is not + easily represented as input to the barcode library, so the + following convention is used. In the input string, which is a + C-language null-terminated string, the NUL char is represented by + the value 128 (0x80, 0200) and the F1-F4 characters are + represented by the values 193-196 (0xc1-0xc4, 0301-0304). The + values have been chosen to ease their representation as escape + sequences. + + Since the shell doesn't seem to interpret escape sequences on the + command line, the "-b" option cannot be easily used to designate + the strings to be encoded. As a workaround you can resort to the + command echo, either within back-ticks or used separately to + create a file that is then fed to the standard-input of barcode - + assuming your echo command processes escape sequences. The + newline character is especially though to encode (but not + impossible unless you use a csh variant. + + These problems only apply to the command-line tool; the use of + library functions doesn't give any problem. In needed, you can use + the "code 128 raw" pseudo-encoding to represent code128 symbols by + their numerical value. This encoding is used late in the + auto-selection mechanism because (almost) any input string can be + represented using code128. + +CODABAR + Codabar can encode the ten digits and a few special symbols + (minus, plus, dollar, colon, bar, dot). The characters "A", "B", + "C" and "D" are used to represent four different start/stop + characters. The input string to the barcode library can include + the start and stop characters or not include them (in which case + "A" is used as start and "B" as stop). Start and stop characters + in the input string can be either all lowercase or all uppercase + and are always printed as uppercase. + +PLESSEY + Plessey barcodes can encode all the hexadecimal digits. Alphabetic + digits in the input string must either be all lowercase or all + uppercase. The output text is always uppercase. + +MSI + MSI can only encode the decimal digits. While the standard + specifies either one or two check digits, the current + implementation in this library only generates one check digit. + +CODE 93 + The code-93 standard can natively encode 48 different characters, + including uppercase letters, digits, the blank space, plus, minus, + dot, star, dollar, slash, percent, as well as five special + characters: a start/stop delimiter and four "shift characters" + used for extended encoding. Using this "extended encoding" + method, any standard 7-bit ASCII character can be encoded, but it + takes up two symbol lengths in barcode if the character is not + natively supported (one of the 48). The encoder here fully + implements the code 93 encoding standard. Any characters natively + supported (A-Z, 0-9, ".+-/$&%") will be encoded as such - for any + other characters (such as lower case letters, brackets, + parentheses, etc.), the encoder will revert to extended encoding. + As a note, the option to exclude the checksum will eliminate the + two modulo-47 checksums (called C and K) from the barcode, but this + probably will make it unreadable by 99% of all scanning systems. + These checksums are specified to be used at the firmware level, + and their absence will be interpreted as an invalid barcode. + + + + +*Node: PCL Output + PCL Output + ********** + + While the default output is Postscript (possibly EPS), and Postscript +can be post-processed to almost anything, it is sometimes desirable to +create output directly usable by the specific printer at hand. PCL is +currently supported as an output format for this reason. Please note +that the Y coordinate for PCL goes from top to bottom, while for +Postscript it goes from bottom to top. Consistently, while in +Postscript you specify the bottom-left corner as origin, for PCL you +specify the top-left corner. + + Barcode output for PCL Printers (HP LaserJet and compatibles), was +developed using PCL5 Reference manuals from HP. that really refers to +these printers: + * LaserJet III, III P, III D, III Si, + + * LaserJet 4 family + + * LaserJet 5 family + + * LaserJet 6 family + + * Color LaserJet + + * DeskJet 1200 and 1600. + + + However, barcode printing uses a very small subset of PCL, probably +also LaserJet II should print it without problem, but the resulting +text may be horrible. + + The only real difference from one printer to another really depends +on which font are available in the printer, used in printing the label +associated to the bars (if requested). + + Earlier LaserJet supports only bitmaps fonts, so these are not +"scalable". (Ljet II ?), Also these fonts, when available, have a +specified direction, and not all of them are available in both Portrait +and Landscape mode. + + From LaserJet 4 series, (except 4L/5L that are entry-level printers), +Arial scalable font should be available, so it's the "default font" +used by this program. + + LaserJet III series printers (and 4L, 5L), don't feature "Arial" as a +resident font, so you should use BARCODE_OUT_PCL_III instead of +BARCODE_OUT_PCL., and font the font used will be "Univers" instead of +"Arial". + + Results on compatible printers, may depend on consistency of PCL5 +compatibility, in doubt, try BARCODE_OUT_PCL_III + + PJL commands are not used here, as it's not very compatible. + + Tested Printers: + * Hp LaserJet 4050 + + * Hp LaserJet 2100 + + * Epson N-1200 emul PCL + + * Toshiba DP2570 (copier) + PCL option + + * Epson EPL-7100 emul. HP LaserJet II: bars print fine but text is + bad. + + + + +*Node: Bugs and Pending Issues + Bugs and Pending Issues. + ************************ + + The current management of borders/margins is far from optimal. The +"default" margin applied by the library interferes with the external +representation, but I feel it is mandatory to avoid creating barcode +output with no surrounding white space (the problem is especially +relevant for EPS output). + + EAN-128 is not (yet) supported. I plan to implement it pretty soon +and then bless the package as version 1.0. + + + + + +Tag Table:Node: Top154 + Node: Overview526 + Node: The Barcode Object1404 +Node: The Field List2821 +Node: The Intermediate Representation6586 +Node: Supported Flags8359 +Node: The API11343 +Node: The barcode Executable14029 +Node: The Command Line14458 +Node: Supported Encodings19557 +Node: PCL Output28997 +Node: Bugs and Pending Issues31316 + + + +End Tag Table \ No newline at end of file diff --git a/barcode-0.98/doc/doc.barcode b/barcode-0.98/doc/doc.barcode new file mode 100644 index 00000000..7b460558 --- /dev/null +++ b/barcode-0.98/doc/doc.barcode @@ -0,0 +1,939 @@ +\input texinfo @c -*-texinfo-*- +% +% doc.barcode - main file for the documentation +% +%%%% + +%------------------------------------------------------------------------------ +% +% NOTE FOR THE UNAWARE USER +% ========================= +% +% This file is a texinfo source. It isn't the binary file of some strange +% editor of mine. If you want ascii, you should "make barcodedoc.txt". +% +%------------------------------------------------------------------------------ + +% +% This is not a conventional info file... +% I use two extra features: +% - The '%' as a comment marker, if at beg. of line ("\%" -> "%") +% - leading blanks are allowed +% + +@comment %**start of header +@setfilename barcode.info +@settitle Barcode @value{version} +@iftex +@afourpaper +@end iftex +@comment %**end of header + +@setchapternewpage off + +@set version 0.98 +@set update-month March 2002 + +@finalout + +@ifinfo + +This file is the User's Manual for the barcode library (version +@value{version}). + +@end ifinfo + +@setchapternewpage odd +@titlepage +@c use the new format for titles +@title barcode @value{version} +@subtitle A library for drawing bar codes +@subtitle @value{update-month} + +@author by Alessandro Rubini (@code{rubini@@gnu.org}) + +@end titlepage +@setchapternewpage off +@headings single + + +@node Top, Overview, (dir), (dir) +@top Barcode tools + +This file documents version @value{version} of the barcode +library and sample programs (@value{update-month}). + +@menu +* Overview:: +* The Barcode Object:: +* Supported Flags:: +* The API:: +* The barcode Executable:: +* Supported Encodings:: +* PCL Output:: +* Bugs and Pending Issues:: +@end menu + + +%########################################################################## +%########################################################################## + +@node Overview, The Barcode Object, Top, Top +@chapter Overview + +The @dfn{barcode} package is mainly a C library for creating bar-code +output files. It also includes a command line front-end and (in a +foreseeable future) a graphic frontend. + +The package is designed as a library because we think the main use for +barcode-generation tools is inside more featured applications. The +library addresses bar code printing as two distinct problems: creation +of bar information and actual conversion to an output format. To this +aim we use an intermediate representation for bar codes, which is +currently documented in the @file{ps.c} source file (not in this +document). + +Note that the library and the accompanying material is released +according to the GPL license, not the LGPL one. A copy of the GPL is +included in the distribution tarball. + +%########################################################################## + +@node The Barcode Object, Supported Flags, Overview, Top +@chapter The Underlying Data Structure + +Every barcode-related function acts on a data structure defined in the +@file{barcode.h} header, which must be included by any C source file +that uses the library. The header is installed by @t{make install}. + +The definition of the data structure is included here for reference: + +@lisp +struct Barcode_Item @{ + int flags; /* type of encoding and other flags */ + char *ascii; /* malloced */ + char *partial; /* malloced too */ + char *textinfo; /* information about text placement */ + char *encoding; /* code name, filled by encoding engine */ + int width, height; /* output units */ + int xoff, yoff; /* output units */ + int margin; /* output units */ + double scalef; /* requested scaling for barcode */ + int error; /* an errno-like value, in case of failure */ +@}; +@end lisp + +The exact meaning of each field and the various flags implemented are +described in the following sections. + +Even though you won't usually need to act on the contents of this +structure, some of the functions in the library receive arguments that +are directly related to one or more of these fields. + +%========================================================================== + +@menu +* The Field List:: +* The Intermediate Representation:: +@end menu + +%-------------------------------------------------------------------------- +@node The Field List, The Intermediate Representation, The Barcode Object, The Barcode Object +@section The Fields + +@table @code + +@item int flags; + + The flags are, as you may suspect, meant to specify the exact + behaviour of the library. They are often passed as an argument + to @i{barcode} functions and are discussed in the next section. + +@item char *ascii; +@itemx char *partial; +@itemx char *textinfo; +@itemx char *encoding; + + These fields are internally managed by the library, and you are + not expected to touch them if you use the provided API. All + of them are allocated with @i{malloc}. + +@item int width; +@itemx int height; + + They specify the width and height of the @i{active} barcode + region (i.e., excluding the white margin), in the units used + to create output data (for postscript they are points, 1/72th + of an inch, 0.352 mm). The fields can be either assigned to + in the structure or via @i{Barcode_Position()}, at your + choice. If either value or both are left to their default + value of zero, the output engine will assign default values + according to the specified scaling factor. If the specified + width is bigger than needed (according to the scaling factor), + the output barcode will be centered in its requested + region. If either the width of the height are too small for + the specified scale factor, the output bar code will expand + symmetrically around the requested region. + +@item int xoff; +@itemx int yoff; + + The fields specify offset from the coordinate origin of the + output engine (for postscript, position 0,0 is the lower left + corner of the page). The fields can be either assigned to in + the structure or via @i{Barcode_Position()}, at your choice. + The offset specifies where the white margin begins, not where + the first bar will be printed. To print real ink to the + specified position you should set @i{margin} to 0. + +@item int margin; + + The white margin that will be left around the printed area of + the bar code. The same margin is applied to all sides of the + printed area. The default value for the margin is defined in + @file{barcode.h} as @t{BARCODE_DEFAULT_MARGIN} (10). + +@item double scalef; + + The enlarge or shrink value for the bar code over its default + dimension. The @i{width} and @i{scalef} fields interact deeply + in the creation of the output, and a complete description of + the issues appears later in this section. + +@item int error; + + The field is used when a @i{barcode} function fails to host + an @t{errno}-like integer value. + +@end table + + +@unnumberedsubsec Use of the @i{width} and @i{scalef} fields. + +A width unit is the width of the thinnest bar and/or space in the +chosen code; it defaults to 1 point if the output is postscript or +encapsulated postscript. + +Either or both the code width and the scale factor can be left +unspecified (i.e., zero). The library deals with defaults in the +following way: + +@table @i + +@item Both unspecified + + If both the width and the scale factor are unspecified, the + scale factor will default to 1.0 and the width is calculated + according to the actual width of the bar code being printed. + +@item Width unspecified + + If the width is not specified, it is calculated according to + the values of @i{scalef}. + +@item Scale factor unspecified + + If the scale factor is not specified, it will be chosen so + that the generated bar code exactly fits the specified width. + +@item Both specified + + The code will be printed inside the specified region according + to the specified scale factor. It will be aligned to the left. + If, however, the chosen width is too small for the specific + bar code and scaling factor, then the code will extend + symmetrically to the left and to the right of the chosen + region. + +@end table + +%-------------------------------------------------------------------------- +@node The Intermediate Representation, , The Field List, The Barcode Object +@section The Intermediate Representation + +The encoding functions print their output into the @t{partial} and +@t{texinfo} fields of the barcode data structure. Those fields, together +with position information, are then used to generate actual output. +This is an informal description of the intermediate format. + +The first char in @t{partial} tells how much extra space to add to the +left of the bars. For EAN-13, it is used to leave space to print the +first digit, other codes may have '0' for no-extra-space-needed. + +The next characters are alternating bars and spaces, as multiples of the +base dimension which is 1 unless the code is rescaled. Rescaling is +calculated as the ratio from the requested width and the calculated +width. Digits represent bar/space dimensions. Lower-case letters +represent those bars that should extend lower than the others: 'a' is +equivalent to '1', 'b' is '2' and so on up to 'i' which is equivalent to +'9'. Other letters will be used for encoding-specific meanings, as soon +as I implement them. + +The @t{textinfo} string is made up of fields @t{%lf:%lf:%c} separated by +blank space. The first integer is the x position of the character, +the second is the font size (before rescaling) and the char item is +the character to be printed. + +Both the @t{partial} and @t{textinfo} strings may include ``@t{-}'' or +``@t{+}'' as special characters (in @t{textinfo} the char should be a +stand-alone word). They state where the text should be printed: below +the bars (``@t{-}'', default) or above the bars. This is used, for +example, to print the add-5 and add-2 codes to the right of UPC or EAN +codes (the add-5 extension is mostly used in ISBN codes). + + + + +%========================================================================== + +@node Supported Flags, The API, The Barcode Object, Top +@chapter The Flags + +The following flags are supported by version @value{version} of the +library: + +@table @code + +@item BARCODE_ENCODING_MASK + + The mask is used to extract the encoding-type identifier from + the @i{flags} field. + +@item BARCODE_EAN +@itemx BARCODE_UPC +@itemx BARCODE_ISBN +@itemx BARCODE_128B +@itemx BARCODE_128C +@itemx BARCODE_128 +@itemx BARCODE_128RAW +@itemx BARCODE_39 +@itemx BARCODE_I25 +@itemx BARCODE_CBR +@itemx BARCODE_MSI +@itemx BARCODE_PLS +@itemx BARCODE_93 + + The currently supported encoding types: EAN (13 digits, 8 + digits, 13 + 2 add-on and 13 + 5 add-on), UPC (UPC-A, UPC-E, + UPC-A with 2 or 5 digit add-on), ISBN (with or without the + 5-digit add-on), CODE128-B (the whole set of printable + ASCII characters), CODE128-C (two digits encoded by each barcode + symbol), CODE128 (all ASCII values), a ``raw-input'' pseudo-code + that generates CODE128 output, CODE39 (alphanumeric), + "interleaved 2 of 5" (numeric), Codabar (numeric plus a few + symbols), MSI (numeric) and Plessey (hex digits). + @xref{Supported Encodings}. + +@item BARCODE_ANY + + This special encoding type (represented by a value of zero, so + it will be the default) tells the encoding procedure to look + for the first encoding type that can deal with a textual + string. Therefore, a 11-digit code will be printed as UPC (as + well as 6-digit, 11+2 and 11+5), a 12-digit (or 7-digit, or + 12+2 or 12+5) as EAN13, an ISBN code (with or without hyphens, + with or without add-5) will be encoded in its EAN13 + representation, an even number of digits is encoded using + CODE128C and a generic string is encoded using CODE128B. Since + code-39 offers a much larger representation for the same + text string, code128-b is preferred over code39 for + alphanumeric strings. + +@item BARCODE_NO_ASCII + + Instructs the engine not to print the ascii string on + output. By default the bar code is accompanied with an ascii + version of the text it encodes. + +@item BARCODE_NO_CHECKSUM + + Instructs the engine not to add the checksum character to the + output. Not all the encoding types can drop the checksum; + those where the checksum is mandatory (like EAN and UPC) + just ignore the flag. + +@item BARCODE_OUTPUT_MASK + + The mask is used to extract the output-type identifier from + the @i{flags} field. + +@item BARCODE_OUT_PS +@itemx BARCODE_OUT_EPS +@itemx BARCODE_OUT_PCL +@itemx BARCODE_OUT_PCL_III + + The currently supported encoding types: full-page postscript + and encapsulated postscript; PCL (print command language, for + HP printers) and PCL-III (same as PCL, but uses a font not + available on older printers). + +@item BARCODE_OUT_NOHEADERS + + The flag instructs the printing engine not to print the header + and footer part of the file. This makes sense for the + postscript engine but might not make sense for other engines; + such other engines will silently ignore the flag just like + the PCL back-end does. + +@end table + +%########################################################################## + +@node The API, The barcode Executable, Supported Flags, Top +@chapter Functions Exported by the Library + +%MANPAGE barcode.3 +%M .TH BARCODE 3 "October 1999" "GNU" "GNU barcode" +%M .UC 4 +%M .SH NAME +%M barcode \- a library to create and print bar codes +%M .SH SYNOPSIS +%M .B #include +%M .sp +%M .BI "struct Barcode_Item *Barcode_Create(char *" text ");" +%M .br +%M .BI "int Barcode_Delete(struct Barcode_Item *" bc ");" +%M .br +%M .BI "int Barcode_Encode(struct Barcode_Item *" bc ", int " flags ");" +%M .br +%M .BI "int Barcode_Print(struct Barcode_Item *" bc ", FILE *" f ", int " flags ");" +%M .br +%M .BI "int Barcode_Position(struct Barcode_Item *" bc ", int " wid ", int " hei ", int " xoff ", int " yoff " , double " scalef ");" +%M .br +%M .BI "int Barcode_Encode_and_Print(char *" text ", FILE *" f ", int " wid ", int " hei ", int " xoff ", int " yoff ", int " flags ");" +%M .br +%M .BI "int Barcode_Version(char *" versionname ");" +%M +%M .SH DESCRIPTION +%M +%M The barcode family of library functions is meant to ease +%M creation of bar-code printouts. +%M +%M The information below is extracted from the texinfo file, which is the +%M preferred source of information. + +The functions included in the barcode library are declared in the +header file @t{barcode.h}. They perform the following tasks: + +@table @code + +@item struct Barcode_Item *Barcode_Create(char *text); + The function creates a new barcode object to deal with a + specified text string. It returns NULL in case of failure and + a pointer to a barcode data structure in case of success. + +@item int Barcode_Delete(struct Barcode_Item *bc); + Destroy a barcode object. Always returns 0 (success) + +@item int Barcode_Encode(struct Barcode_Item *bc, int flags); + Encode the text included in the @i{bc} object. Valid flags are + the encoding type (other flags are ignored) and + BARCODE_NO_CHECKSUM (other flags are silently ignored); if the + flag argument is zero, @t{bc->flags} will apply. The function + returns 0 on success and -1 in case of error. After + successful termination the data structure will host the + description of the bar code and its textual representation, + after a failure the @t{error} field will include the reason of + the failure. + +@item int Barcode_Print(struct Barcode_Item *bc, FILE *f, int flags); + Print the bar code described by @t{bc} to the specified file. + Valid flags are the output type, @t{BARCODE_NO_ASCII} and + @t{BARCODE_OUT_NOHEADERS}, other flags are ignored. If any of + these flags is zero, it will be inherited from @t{bc->flags} + which therefore takes precedence. The function returns 0 on + success and -1 in case of error (with @t{bc->error} set + accordingly). In case of success, the bar code is printed to + the specified file, which won't be closed after use. + +@item int Barcode_Position(struct Barcode_Item *bc, int wid, int hei, int xoff, int yoff, double scalef); + The function is a shortcut to assign values to the data + structure. + +@item int Barcode_Encode_and_Print(char *text, FILE *f, int wid, int hei, int xoff, int yoff, int flags); + The function deals with the whole life of the barcode + object by calling the other functions; it uses all the specified + flags. + +@item int Barcode_Version(char *versionname); + Returns the current version as an integer number of the form + major * 10000 + minor * 100 + release. Therefore, version + 1.03.5 will be returned as 10305 and version 0.53 as 5300. If + the argument is non-null, it will be used to return the version + number as a string. Note that the same information is available from + two preprocessor macros: @t{BARCODE_VERSION} (the string) and + @t{BARCODE_VERSION_INT} (the integer number). + +@end table + +%MANPAGE END + +%########################################################################## + +@node The barcode Executable, Supported Encodings, The API, Top +@chapter The @i{barcode} frontend program + +%MANPAGE barcode.1 +%M .TH BARCODE 1 "October 2001" "GNU" "GNU barcode" +%M .UC 4 +%M .SH NAME +%M barcode \- a stand alone program to run the barcode library +%M .SH SYNOPSIS +%M .B barcode +%M [\-b - | string] [\-e encoding] [\-o - | outfile] [ +%M .I other-flags +%M ] +%M .SH DESCRIPTION +%M +%M The information below is extracted from the texinfo file, which is the +%M preferred source of information. +%M .PP +The @b{barcode} program is a front-end to access some features of the +library from the command line. It is able to read user supplied +strings from the command line or a data file (standard input by default) +and encode all of them. + +%M .SH OPTIONS +%M .PP + +@menu +* The Command Line:: +@end menu + +%-------------------------------------------------------------------------- +@node The Command Line, , The barcode Executable, The barcode Executable +@section The Command Line + + +@b{barcode} accepts the following options: + +@table @code + +@item --help or -h + Print a usage summary and exit. + +@item -i filename + Identify a file where strings to be encoded are read from. If + missing (and if @t{-b} is not used) it defaults to standard + input. Each data line of the input file will be used to create + one barcode output. + +@item -o filename + Output file. It defaults to standard output. + +@item -b string + Specify a single ``barcode'' string to be encoded. + The option can be used multiple times in order to encode + multiple strings (this will result in multi-page postscript + output or a table of barcodes if @t{-t} is specified). The + strings must match the encoding chosen; if it doesn't + match the program will print a warning to @t{stderr} and + generate ``blank'' output (although not zero-length). + Please note that a string including spaces or + other special characters must be properly quoted. + +@item -e encoding + @b{encoding} is the name of the chosen encoding format being + used. It defaults to the value of the environment variable + @t{BARCODE_ENCODING} or to auto detection if the environment is + also unset. + +@item -g geometry + The geometry argument is of the form ``[@i{} @t{x} + @i{}] [@t{+} @i{} @t{+} @i{}]'' (with + no intervening spaces). Unspecified margin values will result in + no margin; unspecified size results in default size. + The specified values represent print points by + default, and can be inches, millimeters or other units + according to the @t{-u} option or the @t{BARCODE_UNIT} + environment variable. The argument is used to place the + printout code on the page. Note that an additional white + margin of 10 points is added to the printout. If the option is + unspecified, @t{BARCODE_GEOMETRY} is looked up in the + environment, if missing a default size and no margin (but the + default 10 points) are used. + +@item -t table-geometry + Used to print several barcodes to a single page, this option + is meant to be used to print stickers. The argument is of the + form ``@i{} @t{x} @i{} [@t{+} @i{} + @t{+} @i{} [@t{-} @i{} [@t{-} + @i{}]]]'' (with no intervening spaces); if missing, + the top and right margin will default to be the same as the + bottom and left margin. The margins are specified in print + points or in the chosen unit (see @t{-u} below). If the + option is not specified, @t{BARCODE_TABLE} is looked up in the + environment, otherwise no table is printed and each barcode + will get its own page. The size (but not the position) + of a barcode item within a table can also be selected using + @t{-g} (see "geometry" above), without struggling with + external and internal margins. I still think management of + geometries in a table is suboptimal, but I can't make it + better without introducing incompatibilities. + + +@item -m margin(s) + Specifies an internal margin for each sticker in the + table. The argument is of the form + ``@i{}@t{,}@i{}'' and the margin is applied + symmetrically to the sticker. If unspecified, the environment + variable @t{BARCODE_MARGIN} is used or a default internal + margin of 10 points is used. + +@item -n + ``Numeric'' output: don't print the ASCII form of the code, + only the bars. + +@item -c + No checksum character (for encodings that allow it, like code 39, + other codes, like UPC or EAN, ignore this option). + +@item -E + Encapsulated postscript (default is normal postscript). When + the output is generated as EPS only one barcode is encoded. + +@item -P + PCL output. Please note that the Y direction goes from top + to bottom for PCL, and the origin for an image is the top-left + corner instead of the bottom-left + +@item -p pagesize + Specify a non-default page size. The page size can be specified + in millimeters, inches or plain numbers (for example: "@t{210x297mm}", + "@t{8.5x11in}", "@t{595x842}"). A page specification as numbers + will be interpreted according to the current unit specification + (see @t{-u} below). If libpaper is available, + you can also specify the page size with its name, like "@t{A3}" + or "@t{letter}" (libpaper is a standard component of Debian + GNU/Linux, but may be missing elsewhere). The default page + size is your system-wide default if libpaper is there, A4 otherwise. + +@item -u unit + Choose the unit used in size specifications. Accepted values + are ``mm'', ``cm'', ``in'' and ``pt''. By default, the program + will check @t{BARCODE_UNIT} in the environment, and assume + points otherwise (this behaviour is compatible with 0.92 and + previous versions. If @t{-u} appears more than once, each + instance will modified the behaviour for the arguments at its + right, as the command line is processes left to right. The + program internally works with points, and any size is + approximated to the nearest multiple of one point. The @t{-u} + option affect @t{-g} (geometry), @t{-t} (table) and @t{-p} + (page size). + +@end table + +%M .SH ENCODING TYPES +%M .PP + +%########################################################################## +@node Supported Encodings, PCL Output, The barcode Executable, Top +@chapter Supported Encodings + +The program encodes text strings passed either on the command line +(with -b) or retrieved from standard input. The text representation is +interpreted according to the following rules. When auto-detection +of the encoding is enabled (i.e, no explicit encoding type is specified), +the encoding types are scanned to find one that can digest the text string. +The following list of supported types is sorted in the same order +the library uses when auto-detecting a suitable encoding for a string. + +@table @var + +@item EAN + The EAN frontend is similar to UPC; it accepts strings of + digits, 12 or 7 characters long. Strings of 13 or 8 characters + are accepted if the provided checksum digit is correct. + I expect most users to feed input without a + checksum, though. The add-2 and add-5 extension are accepted for both + the EAN-13 and the EAN-8 encodings. + The following are example of valid input strings: + ``@t{123456789012}'' (EAN-13), ``@t{1234567890128}'' (EAN-13 wih + checksum), ``@t{1234567}'' (EAN-8), ``@t{12345670 12345}'' (EAN-8 + with checksum and add-5), + ``@t{123456789012 12}'' (EAN-13 with add-2), + ``@t{123456789012 12345}'' (EAN-13 with add-5). + +@item UPC + The UPC frontend accepts only strings made up of digits (and, + if a supplemental encoding is used, a blank to separate it). + It accepts strings of 11 or 12 digits (UPC-A) and 6 or 7 or 8 + digits (UPC-E). + + The 12th digit of UPC-A is the checksum and is added by the + library if not specified in the input; if it is specified, it + must be the right checksum or the code is rejected as invalid. + For UPC-E, 6 digit are considered to be the middle part of the + code, a leading 0 is assumed and the checksum is added; + 7 digits are either considered the initial part (leading digit + 0 or 1, checksum missing) or the final part (checksum specified, + leading 0 assumed); 8 digits are considered to be the complete code, + with leading 0 or 1 and checksum. + For both UPC-A and UPC-E, a trailing string of 2 digits or 5 digits + is accepted as well. Therefore, the following are examples + of valid strings that can be encoded as UPC: + ``@t{01234567890}'' (UPC-A) + ``@t{012345678905}'' (UPC-A with checksum), ``@t{012345}'' + (UPC-E), ``@t{01234567890 12}'' (UPC-A, add-2) and + ``@t{01234567890 12345}'' (UPC-A, add-5), ``@t{0123456 12}'' + (UPC-E, add-2). + Please note that when setting @t{BARCODE_ANY} to auto-detect + the encoding to be used, 12-digit strings and 7-digit strings + will always be identified as EAN. This because I expect most + user to provide input without a checksum. If you need to + specify UPC-with-checksum as input you must explicitly set + @t{BARCODE_UPC} as a flag or use @t{-e upc} on the command line. + +@item ISBN + ISBN numbers are encoded as EAN-13 symbols, with an optional + add-5 trailer. The ISBN frontend of the library accepts real + ISBN numbers and deals with any hyphen and, if present, the + ISBN checksum character before encoding data. Valid + representations for ISBN strings are for example: + ``@t{1-56592-292-1}'', ``@t{3-89721-122-X}'' and ``@t{3-89721-122-X + 06900}''. + +@item code 128-B + This encoding can represent all of the printing ASCII + characters, from the space (32) to DEL (127). The checksum + digit is mandatory in this encoding. + +@item code 128-C + The ``C'' variation of Code-128 uses Code-128 symbols to + represent two digits at a time (Code-128 is made up of 104 + symbols whose interpretation is controlled by the start symbol + being used). Code 128-C is thus the most compact way to + represent any even number of digits. The encoder refuses to + deal with an odd number of digits because the caller is + expected to provide proper padding to an even number of + digits. (Since Code-128 includes control symbols to switch + charset, it is theoretically possible to represent the odd + digit as a Code 128-A or 128-B symbol, but this tool doesn't + currently implement this option). + +@item code 128 raw + Code-128 output represented symbol-by-symbol in the input + string. To override part of the problems outlined below in + specifying code128 symbols, this pseudo-encoding allows the + used to specify a list of code128 symbols separated by + spaces. Each symbol is represented by a number in the range + 0-105. The list should include the leading character.The + checksum and the stop character are automatically added by the + library. Most likely this pseudo-encoding will be used with + @t{BARCODE_NO_ASCII} and some external program to supply the + printed text. + +@item code 39 + The code-39 standard can encode uppercase letters, digits, the + blank space, plus, minus, dot, star, dollar, slash, percent. + Any string that is only composed of such characters is + accepted by the code-39 encoder. To avoid loosing information, + the encoder refuses to encode mixed-case strings (a lowercase + string is nonetheless accepted as a shortcut, but is encoded + as uppercase). + +@item interleaved 2 of 5 + This encoding can only represent an even number of digits + (odd digits are represented by bars, and even digits by the + interleaving spaces). The name stresses the fact that two + of the five items (bars or spaces) allocated to each symbol + are wide, while the rest are narrow. The checksum digit is + optional (can be disabled via @t{BARCODE_NO_CHECKSUM}). + Since the number of digits, including the checksum, must be even, + a leading zero is inserted in the string being encoded if needed + (this is specifically stated in the specs I have access to). + +@item code 128 + Automatic selection between alphabet A, B and C of the Code-128 + standard. This encoding can represent all ASCII symbols, from + 0 (NUL) to 127 (DEL), as well as four special symbols, named + F1, F2, F3, F4. The set of symbols available in this encoding + is not easily represented as input to the @i{barcode} library, + so the following convention is used. In the input string, + which is a C-language null-terminated string, the NUL char + is represented by the value 128 (0x80, 0200) and the F1-F4 characters + are represented by the values 193-196 (0xc1-0xc4, 0301-0304). + The values have been chosen to ease their representation as + escape sequences. + + Since the shell doesn't seem to interpret escape sequences on the + command line, the "-b" option cannot be easily used to designate + the strings to be encoded. As a workaround you can resort + to the command @t{echo}, either within back-ticks or used + separately to create a file that is then fed to the standard-input + of @i{barcode} -- assuming your @t{echo} command processes escape + sequences. The newline character is especially though to encode + (but not impossible unless you use a @t{csh} variant. + + These problems only apply to the command-line tool; the use of + library functions doesn't give any problem. In needed, you can + use the ``@i{code 128 raw}'' pseudo-encoding to represent + code128 symbols by their numerical value. This encoding is + used late in the auto-selection mechanism because (almost) any + input string can be represented using code128. + +@item Codabar + Codabar can encode the ten digits and a few special symbols + (minus, plus, dollar, colon, bar, dot). The characters + ``@t{A}'', ``@t{B}'', ``@t{C}'' and ``@t{D}'' are used to + represent four different start/stop characters. The input + string to the barcode library can include the start and stop + characters or not include them (in which case ``@t{A}'' is + used as start and ``@t{B}'' as stop). Start and stop + characters in the input string can be either all lowercase or + all uppercase and are always printed as uppercase. + +@item Plessey + Plessey barcodes can encode all the hexadecimal + digits. Alphabetic digits in the input string must either be + all lowercase or all uppercase. The output text is always + uppercase. + +@item MSI + MSI can only encode the decimal digits. While the standard + specifies either one or two check digits, the current + implementation in this library only generates one check digit. + +@item code 93 + The code-93 standard can natively encode 48 different characters, + including uppercase letters, digits, the blank space, plus, minus, + dot, star, dollar, slash, percent, as well as five special + characters: a start/stop delimiter and four "shift characters" used + for extended encoding. Using this "extended encoding" method, any + standard 7-bit ASCII character can be encoded, but it takes up two + symbol lengths in barcode if the character is not natively supported + (one of the 48). + The encoder here fully implements the code 93 encoding standard. + Any characters natively supported (A-Z, 0-9, ".+-/$&%") will be + encoded as such - for any other characters (such as lower case + letters, brackets, parentheses, etc.), the encoder will revert + to extended encoding. + As a note, the option to exclude the checksum will eliminate the + two modulo-47 checksums (called C and K) from the barcode, but this + probably will make it unreadable by 99% of all scanning systems. + These checksums are specified to be used at the firmware level, + and their absence will be interpreted as an invalid barcode. + + +@end table + +%M .SH PCL OUTPUT + +%########################################################################## +@node PCL Output, Bugs and Pending Issues, Supported Encodings, Top +@chapter PCL Output + +While the default output is Postscript (possibly EPS), and Postscript +can be post-processed to almost anything, it is sometimes desirable to +create output directly usable by the specific printer at hand. +PCL is currently supported as an output format for this reason. +Please note that the Y coordinate for PCL goes from top to bottom, while +for Postscript it goes from bottom to top. Consistently, while in +Postscript you specify the bottom-left corner as origin, for PCL +you specify the top-left corner. + +Barcode output for PCL Printers (HP LaserJet and compatibles), +was developed using PCL5 Reference manuals from HP. +that really refers to these printers: +@itemize @bullet + +@item +LaserJet III, III P, III D, III Si, + +@item +LaserJet 4 family + +@item +LaserJet 5 family + +@item +LaserJet 6 family + +@item +Color LaserJet + +@item +DeskJet 1200 and 1600. + +@end itemize + +However, barcode printing uses a very small subset of PCL, probably also +LaserJet II should print it without problem, but the resulting text may +be horrible. + +The only real difference from one printer to another really depends on +which font are available in the printer, used in printing the label +associated to the bars (if requested). + +Earlier LaserJet supports only bitmaps fonts, so these are not +"scalable". (Ljet II ?), Also these fonts, when available, have a +specified direction, and not all of them are available in +both Portrait and Landscape mode. + +From LaserJet 4 series, (except 4L/5L that are entry-level printers), +Arial scalable font should be available, so it's the "default font" +used by this program. + +LaserJet III series printers (and 4L, 5L), don't feature "Arial" as a +resident font, so you should use @t{BARCODE_OUT_PCL_III} instead of +@t{BARCODE_OUT_PCL.}, and font the font used will be "Univers" instead +of "Arial". + +Results on compatible printers, may depend on consistency of +PCL5 compatibility, in doubt, try BARCODE_OUT_PCL_III + +PJL commands are not used here, as it's not very compatible. + + +Tested Printers: +@itemize @bullet +@item +Hp LaserJet 4050 +@item +Hp LaserJet 2100 +@item +Epson N-1200 emul PCL +@item +Toshiba DP2570 (copier) + PCL option +@item +Epson EPL-7100 emul. HP LaserJet II: bars print fine but text is bad. +@end itemize + + +%M .SH BUGS + +%########################################################################## +@node Bugs and Pending Issues, , PCL Output, Top +@chapter Bugs and Pending Issues. + +The current management of borders/margins is far from optimal. The +``default'' margin applied by the library interferes with the external +representation, but I feel it is mandatory to avoid creating barcode +output with no surrounding white space (the problem is especially +relevant for EPS output). + +EAN-128 is not (yet) supported. I plan to implement it pretty soon and +then bless the package as version 1.0. + +%M .SH "SEE ALSO" +%M \fBbarcode(3)\fP +%M +%M .SH AUTHORS +%M Alessandro Rubini (maintainer) +%M .PP +%M Leonid A. Broukhis (several encodings) +%M .PP +%M Andrea Scopece (PCL output) +%MANPAGE END + +@iftex +@contents +@end iftex + +@bye +@c LocalWords: barcode ifinfo titlepage iftex texinfo ascii frontend LGPL +@c LocalWords: tarball malloced textinfo scalef isbn Plessey codabar GPL Ljet +@c LocalWords: LocalWords LaserJet Univers Arial Debian libpaper pagesize +@c LocalWords: Epson MANPAGE stderr barcodes emul DeskJet xmargin ymargin +@c LocalWords: leftmargin rightmargin topmargin bottommargin unset struct +@c LocalWords: NOHEADERS yoff xoff versionname errno malloc behaviour charset diff --git a/barcode-0.98/doc/infofilter b/barcode-0.98/doc/infofilter new file mode 100755 index 00000000..92bc8b7d --- /dev/null +++ b/barcode-0.98/doc/infofilter @@ -0,0 +1,16 @@ +#! /usr/bin/sed -f + + +# allow "%" as a comment char, but only at the beginning of the line +s/^%/@c / +#s/[^\\]%.*$// +s/^\\%/%/ + +#preserve blanks in @lisp blocks +/@lisp/,/@end lisp/ p +/@lisp/,/@end lisp/ d + +# remove leading blanks +s/^[ ]*// + +#s/\\t/@code/g diff --git a/barcode-0.98/doc/manpager b/barcode-0.98/doc/manpager new file mode 100755 index 00000000..46de5be2 --- /dev/null +++ b/barcode-0.98/doc/manpager @@ -0,0 +1,120 @@ +#! /usr/bin/awk -f +# Copyright (c) 1998-2001 Alessandro Rubini + +BEGIN {IN=0} + +/^%MANPAGE END/ {IN=0; next} +/^%MANPAGE/ {IN=1; USELP=NEEDLP=INTABLE=0; NAME=$2; next} +IN==0 {next} + +/^%MSKIP/ {SKIP=1;next} +/^%M/ {SKIP=0} + +/^@menu/ {SKIP=1;next} +/^@end menu/ {SKIP=0;next} + +SKIP==1 {next} +/^%M$/ {next} +/^@ignore/ {next} +/^@end ign/ {next} + +#now perform all the substitutions needed + + { gsub("^%M ?",""); } + +# Use gensub for converting tags: itz Sep 30 1998 +# +# However, the gensub function is gawk-specific, and we want things +# to work with original-awk too (for portability). +# Therefore, use a normal gsub, even though it's a subobptimal solution +# as it may step in extra braces. The good solution will be piping to sed, +# or match, extract subesxpression, replace, reinsert -- bleah... +# (ARub, Oct 10 2000) +/@b\{/ { + #$0 = gensub(/@b\{([^}]+)\}/, "\\\\fB\\1\\\\fP","g"); + gsub("@b\{","\\fB"); + gsub("\}","\\fP"); +} + +/@var\{/ { + #$0 = gensub(/@var\{([^}]+)\}/, "\\\\fI\\1\\\\fP","g"); + gsub("@var\{","\\fB"); + gsub("\}","\\fP"); +} + +/@(samp|code|file)\{/ { + #$0 = gensub(/@(samp|code|file)\{([^}]+)\}/, "`\\2'","g"); + gsub("@(samp|code|file)\{",""); + gsub("\}",""); +} + + +/@xref\{.*\}\./ { + gsub(/@xref\{.*\}\./,""); +} + +/@ref\{.*\}/ { + gsub("@ref\{",""); + gsub("\}",""); +} + +/@\*/ { + gsub(/@\* */,"\n.br\n"); +} + +/@[a-z]+\{/ { + gsub("@[a-z]+\\{",""); + gsub("}",""); + } + +/^@table/ { TABLE=1; } +/^@itemize/ { TABLE=1; next} + +/^@item/ { + gsub("^@item *",""); + printf ".TP\n%s\n",$0 > NAME; + NEEDLP=0; next; + } + +/^@end table/ {TABLE=0} +/^@end itemize/ {TABLE=0} + +# discard other texinfo commands + +/^@/ {next} + +# manage comments and '%' + +/^%/ {next} + + + { + gsub("[^\\\\]%.*$",""); + gsub("\\%","%"); + } + +# remove leading blanks + +/^[ \t]/ {gsub("^[ \t]*","");} + +# put a .LP at blank lines + +/^.nf/ {USELP=0} +/^.fi/ {USELP=1} + +/^$/ {if (USELP) {NEEDLP++; next;} } + + +/./ { if (NEEDLP) { printf "\n.LP\n" > NAME; NEEDLP=0; } } + +/^.TH/ {USELP=1} + +# Escape single slashes (e.g. in documentation for `-l' command line option) + + {gsub("\\\\ ", "\\\\ ");} + + {gsub("~", "~~");} + + {print > NAME} + + diff --git a/barcode-0.98/doc/mktxt b/barcode-0.98/doc/mktxt new file mode 100755 index 00000000..bd3f88ba --- /dev/null +++ b/barcode-0.98/doc/mktxt @@ -0,0 +1,38 @@ +#! /usr/bin/awk -f + +# Warning: this may use gnu-awk features + +# Program to create ascii from info; +# Missing: table of contents + +# skip + +BEGIN {NODELINE=0; NODE=0; KEEP=1; printf "\n\n"} + + +/^\037$/ { NODELINE=1; NODE=NODE+1; KEEP=1; next} + +NODE==1 { next } + +NODELINE==1 { + NODELINE=2; + sub("^.*Node: ","*Node: "); + sub(",.*$",""); + printf "\n\n\n%s",$0; +#print + next; + } + +NODELINE { NODELINE=NODELINE+1 } + +NODELINE==4 { printf "\t\t\t\t"; } +NODELINE==5 { printf "\t\t\t\t"; NODELINE=0} + + +/^\* Menu:$/ { KEEP=0 } + + + +KEEP==0 { next } + +{ print } diff --git a/barcode-0.98/doc/texi2html b/barcode-0.98/doc/texi2html new file mode 100755 index 00000000..2c61aa93 --- /dev/null +++ b/barcode-0.98/doc/texi2html @@ -0,0 +1,2021 @@ +#!/usr/local/bin/perl +'di '; +'ig 00 '; +#+############################################################################## +# # +# File: texi2html # +# # +# Description: Program to transform most Texinfo documents to HTML # +# # +#-############################################################################## + +# @(#)texi2html 1.51 09/10/96 Written (mainly) by Lionel Cons, Lionel.Cons@cern.ch + +# The man page for this program is included at the end of this file and can be +# viewed using the command 'nroff -man texi2html'. +# Please read the copyright at the end of the man page. + +#+++############################################################################ +# # +# Constants # +# # +#---############################################################################ + +$DEBUG_TOC = 1; +$DEBUG_INDEX = 2; +$DEBUG_BIB = 4; +$DEBUG_GLOSS = 8; +$DEBUG_DEF = 16; +$DEBUG_HTML = 32; +$DEBUG_USER = 64; + +$BIBRE = '\[[\w\/]+\]'; # RE for a bibliography reference +$FILERE = '[\/\w.+-]+'; # RE for a file name +$VARRE = '[^\s\{\}]+'; # RE for a variable name +$NODERE = '[^@{}:\'`",]+'; # RE for a node name +$NODESRE = '[^@{}:\'`"]+'; # RE for a list of node names +$XREFRE = '[^@{}]+'; # RE for a xref (should use NODERE) + +$ERROR = "***"; # prefix for errors and warnings +$THISPROG = "texi2html 1.51"; # program name and version +$HOMEPAGE = "http://wwwcn.cern.ch/dci/texi2html/"; # program home page +$TODAY = &pretty_date; # like "20 September 1993" +$SPLITTAG = "\n"; # tag to know where to split +$PROTECTTAG = "_ThisIsProtected_"; # tag to recognize protected sections +$html2_doctype = ''; + +# +# language dependent constants +# +#$LDC_SEE = 'see'; +#$LDC_SECTION = 'section'; +#$LDC_IN = 'in'; +#$LDC_TOC = 'Table of Contents'; +#$LDC_GOTO = 'Go to the'; +#$LDC_FOOT = 'Footnotes'; +# TODO: @def* shortcuts + +# +# pre-defined indices +# +%predefined_index = ( + 'cp', 'c', + 'fn', 'f', + 'vr', 'v', + 'ky', 'k', + 'pg', 'p', + 'tp', 't', + ); + +# +# valid indices +# +%valid_index = ( + 'c', 1, + 'f', 1, + 'v', 1, + 'k', 1, + 'p', 1, + 't', 1, + ); + +# +# texinfo section names to level +# +%sec2level = ( + 'top', 0, + 'chapter', 1, + 'unnumbered', 1, + 'majorheading', 1, + 'chapheading', 1, + 'appendix', 1, + 'section', 2, + 'unnumberedsec', 2, + 'heading', 2, + 'appendixsec', 2, + 'appendixsection', 2, + 'subsection', 3, + 'unnumberedsubsec', 3, + 'subheading', 3, + 'appendixsubsec', 3, + 'subsubsection', 4, + 'unnumberedsubsubsec', 4, + 'subsubheading', 4, + 'appendixsubsubsec', 4, + ); + +# +# accent map, TeX command to ISO name +# +%accent_map = ( + '"', 'uml', + '~', 'tilde', + '^', 'circ', + '`', 'grave', + '\'', 'acute', + ); + +# +# texinfo "simple things" (@foo) to HTML ones +# +%simple_map = ( + # cf. makeinfo.c + "*", "
    ", # HTML+ + " ", " ", + "\n", "\n", + "|", "", + # spacing commands + ":", "", + "!", "!", + "?", "?", + ".", ".", + ); + +# +# texinfo "things" (@foo{}) to HTML ones +# +%things_map = ( + 'TeX', 'TeX', + 'br', '

    ', # paragraph break + 'bullet', '*', + 'copyright', '(C)', + 'dots', '...', + 'equiv', '==', + 'error', 'error-->', + 'expansion', '==>', + 'minus', '-', + 'point', '-!-', + 'print', '-|', + 'result', '=>', + 'today', $TODAY, + ); + +# +# texinfo styles (@foo{bar}) to HTML ones +# +%style_map = ( + 'asis', '', + 'b', 'B', + 'cite', 'CITE', + 'code', 'CODE', + 'ctrl', '&do_ctrl', # special case + 'dfn', 'STRONG', # DFN tag is illegal in the standard + 'dmn', '', # useless + 'emph', 'EM', + 'file', '"TT', # will put quotes, cf. &apply_style + 'i', 'I', + 'kbd', 'KBD', + 'key', 'KBD', + 'r', '', # unsupported + 'samp', '"SAMP', # will put quotes, cf. &apply_style + 'sc', '&do_sc', # special case + 'strong', 'STRONG', + 't', 'TT', + 'titlefont', '', # useless + 'var', 'VAR', + 'w', '', # unsupported + ); + +# +# texinfo format (@foo/@end foo) to HTML ones +# +%format_map = ( + 'display', 'PRE', + 'example', 'PRE', + 'format', 'PRE', + 'lisp', 'PRE', + 'quotation', 'BLOCKQUOTE', + 'smallexample', 'PRE', + 'smalllisp', 'PRE', + # lists + 'itemize', 'UL', + 'enumerate', 'OL', + # poorly supported + 'flushleft', 'PRE', + 'flushright', 'PRE', + ); + +# +# texinfo definition shortcuts to real ones +# +%def_map = ( + # basic commands + 'deffn', 0, + 'defvr', 0, + 'deftypefn', 0, + 'deftypevr', 0, + 'defcv', 0, + 'defop', 0, + 'deftp', 0, + # basic x commands + 'deffnx', 0, + 'defvrx', 0, + 'deftypefnx', 0, + 'deftypevrx', 0, + 'defcvx', 0, + 'defopx', 0, + 'deftpx', 0, + # shortcuts + 'defun', 'deffn Function', + 'defmac', 'deffn Macro', + 'defspec', 'deffn {Special Form}', + 'defvar', 'defvr Variable', + 'defopt', 'defvr {User Option}', + 'deftypefun', 'deftypefn Function', + 'deftypevar', 'deftypevr Variable', + 'defivar', 'defcv {Instance Variable}', + 'defmethod', 'defop Method', + # x shortcuts + 'defunx', 'deffnx Function', + 'defmacx', 'deffnx Macro', + 'defspecx', 'deffnx {Special Form}', + 'defvarx', 'defvrx Variable', + 'defoptx', 'defvrx {User Option}', + 'deftypefunx', 'deftypefnx Function', + 'deftypevarx', 'deftypevrx Variable', + 'defivarx', 'defcvx {Instance Variable}', + 'defmethodx', 'defopx Method', + ); + +# +# things to skip +# +%to_skip = ( + # comments + 'c', 1, + 'comment', 1, + # useless + 'contents', 1, + 'shortcontents', 1, + 'summarycontents', 1, + 'footnotestyle', 1, + 'end ifclear', 1, + 'end ifset', 1, + 'titlepage', 1, + 'end titlepage', 1, + # unsupported commands (formatting) + 'afourpaper', 1, + 'cropmarks', 1, + 'finalout', 1, + 'headings', 1, + 'need', 1, + 'page', 1, + 'setchapternewpage', 1, + 'everyheading', 1, + 'everyfooting', 1, + 'evenheading', 1, + 'evenfooting', 1, + 'oddheading', 1, + 'oddfooting', 1, + 'smallbook', 1, + 'vskip', 1, + 'filbreak', 1, + # unsupported formats + 'cartouche', 1, + 'end cartouche', 1, + 'group', 1, + 'end group', 1, + ); + +#+++############################################################################ +# # +# Argument parsing, initialisation # +# # +#---############################################################################ + +$use_bibliography = 1; +$use_acc = 0; +$debug = 0; +$doctype = ''; +$check = 0; +$expandinfo = 0; +$use_glossary = 0; +$invisible_mark = ''; +$use_iso = 0; +@include_dirs = (); +$show_menu = 0; +$number_sections = 0; +$split_node = 0; +$split_chapter = 0; +$monolithic = 0; +$verbose = 0; +$usage = <= 0 && $ARGV[0] =~ /^-/) { + $_ = shift(@ARGV); + if (/^-acc$/) { $use_acc = 1; next; } + if (/^-d(ebug)?(\d+)?$/) { $debug = $2 || shift(@ARGV); next; } + if (/^-doctype$/) { $doctype = shift(@ARGV); next; } + if (/^-c(heck)?$/) { $check = 1; next; } + if (/^-e(xpandinfo)?$/) { $expandinfo = 1; next; } + if (/^-g(lossary)?$/) { $use_glossary = 1; next; } + if (/^-i(nvisible)?$/) { $invisible_mark = shift(@ARGV); next; } + if (/^-iso$/) { $use_iso = 1; next; } + if (/^-I(.+)?$/) { push(@include_dirs, $1 || shift(@ARGV)); next; } + if (/^-m(enu)?$/) { $show_menu = 1; next; } + if (/^-mono(lithic)?$/) { $monolithic = 1; next; } + if (/^-n(umber)?$/) { $number_sections = 1; next; } + if (/^-s(plit)?_?(n(ode)?|c(hapter)?)?$/) { + if ($2 =~ /^n/) { + $split_node = 1; + } else { + $split_chapter = 1; + } + next; + } + if (/^-v(erbose)?$/) { $verbose = 1; next; } + die $usage; +} +if ($check) { + die $usage unless @ARGV > 0; + ✓ + exit; +} + +if (($split_node || $split_chapter) && $monolithic) { + warn "Can't use -monolithic with -split, -monolithic ignored.\n"; + $monolithic = 0; +} +if ($expandinfo) { + $to_skip{'ifinfo'}++; + $to_skip{'end ifinfo'}++; +} else { + $to_skip{'iftex'}++; + $to_skip{'end iftex'}++; +} +$invisible_mark = '' if $invisible_mark eq 'xbm'; +die $usage unless @ARGV == 1; +$docu = shift(@ARGV); +if ($docu =~ /.*\//) { + chop($docu_dir = $&); + $docu_name = $'; +} else { + $docu_dir = '.'; + $docu_name = $docu; +} +unshift(@include_dirs, $docu_dir); +$docu_name =~ s/\.te?x(i|info)?$//; # basename of the document + +$docu_doc = "$docu_name.html"; # document's contents +if ($monolithic) { + $docu_toc = $docu_foot = $docu_doc; +} else { + $docu_toc = "${docu_name}_toc.html"; # document's table of contents + $docu_foot = "${docu_name}_foot.html"; # document's footnotes +} + +# +# variables +# +%value = (); # hold texinfo variables +$value{'html'} = 1; # predefine html (the output format) +$value{'texi2html'} = '1.51'; # predefine texi2html (the translator) +# _foo: internal to track @foo +foreach ('_author', '_title', '_subtitle', + '_settitle', '_setfilename') { + $value{$_} = ''; # prevent -w warnings +} +%node2sec = (); # node to section name +%node2href = (); # node to HREF +%bib2href = (); # bibliography reference to HREF +%gloss2href = (); # glossary term to HREF +@sections = (); # list of sections +%tag2pro = (); # protected sections + +# +# initial indexes +# +$bib_num = 0; +$foot_num = 0; +$gloss_num = 0; +$idx_num = 0; +$sec_num = 0; +$doc_num = 0; +$html_num = 0; + +# +# can I use ISO8879 characters? (HTML+) +# +if ($use_iso) { + $things_map{'bullet'} = "•"; + $things_map{'copyright'} = "©"; + $things_map{'dots'} = "…"; + $things_map{'equiv'} = "≡"; + $things_map{'expansion'} = "→"; + $things_map{'point'} = "∗"; + $things_map{'result'} = "⇒"; +} + +# +# read texi2html extensions (if any) +# +$extensions = 'texi2html.ext'; # extensions in working directory +if (-f $extensions) { + print "# reading extensions from $extensions\n" if $verbose; + require($extensions); +} +($progdir = $0) =~ s/[^\/]+$//; +if ($progdir && ($progdir ne './')) { + $extensions = "${progdir}texi2html.ext"; # extensions in texi2html directory + if (-f $extensions) { + print "# reading extensions from $extensions\n" if $verbose; + require($extensions); + } +} + +print "# reading from $docu\n" if $verbose; + +#+++############################################################################ +# # +# Pass 1: read source, handle command, variable, simple substitution # +# # +#---############################################################################ + +@lines = (); # whole document +@toc_lines = (); # table of contents +$toplevel = 0; # top level seen in hierarchy +$curlevel = 0; # current level in TOC +$node = ''; # current node name +$in_table = 0; # am I inside a table +$table_type = ''; # type of table ('', 'f', 'v') +@tables = (); # nested table support +$in_bibliography = 0; # am I inside a bibliography +$in_glossary = 0; # am I inside a glossary +$in_top = 0; # am I inside the top node +$in_pre = 0; # am I inside a preformatted section +$in_list = 0; # am I inside a list +$in_html = 0; # am I inside an HTML section +$first_line = 1; # is it the first line +$dont_html = 0; # don't protect HTML on this line +$split_num = 0; # split index +$deferred_ref = ''; # deferred reference for indexes +@html_stack = (); # HTML elements stack +$html_element = ''; # current HTML element +&html_reset; + +# build code for simple substitutions +# the maps used (%simple_map and %things_map) MUST be aware of this +# watch out for regexps, / and escaped characters! +$subst_code = ''; +foreach (keys(%simple_map)) { + ($re = $_) =~ s/(\W)/\\$1/g; # protect regexp chars + $subst_code .= "s/\\\@$re/$simple_map{$_}/g;\n"; +} +foreach (keys(%things_map)) { + $subst_code .= "s/\\\@$_\\{\\}/$things_map{$_}/g;\n"; +} +if ($use_acc) { + # accentuated characters + foreach (keys(%accent_map)) { + if ($_ eq "`") { + $subst_code .= "s/$;3"; + } elsif ($_ eq "'") { + $subst_code .= "s/$;4"; + } else { + $subst_code .= "s/\\\@\\$_"; + } + $subst_code .= "([aeiou])/&\${1}$accent_map{$_};/gi;\n"; + } +} +eval("sub simple_substitutions { $subst_code }"); + +&init_input; +while ($_ = &next_line) { + # + # remove \input on the first lines only + # + if ($first_line) { + next if /^\\input/; + $first_line = 0; + } + # + # parse texinfo tags + # + $tag = ''; + $end_tag = ''; + if (/^\@end\s+(\w+)\b/) { + $end_tag = $1; + } elsif (/^\@(\w+)\b/) { + $tag = $1; + } + # + # handle @ifhtml / @end ifhtml + # + if ($in_html) { + if ($end_tag eq 'ifhtml') { + $in_html = 0; + } else { + $tag2pro{$in_html} .= $_; + } + next; + } elsif ($tag eq 'ifhtml') { + $in_html = $PROTECTTAG . ++$html_num; + push(@lines, $in_html); + next; + } + # + # try to skip the line + # + if ($end_tag) { + next if $to_skip{"end $end_tag"}; + } elsif ($tag) { + next if $to_skip{$tag}; + last if $tag eq 'bye'; + } + if ($in_top) { + # parsing the top node + if ($tag eq 'node' || $tag eq 'include' || $sec2level{$tag}) { + # no more in top + $in_top = 0; + } else { + # skip it + next; + } + } + # + # try to remove inlined comments + # syntax from tex-mode.el comment-start-skip + # + s/((^|[^\@])(\@\@)*)\@c(omment)? .*/$1/; + # non-@ substitutions cf. texinfmt.el + s/``/\"/g; + s/''/\"/g; + s/([\w ])---([\w ])/$1--$2/g; + # + # analyze the tag + # + if ($tag) { + # skip lines + &skip_until($tag), next if $tag eq 'ignore'; + if ($expandinfo) { + &skip_until($tag), next if $tag eq 'iftex'; + } else { + &skip_until($tag), next if $tag eq 'ifinfo'; + } + &skip_until($tag), next if $tag eq 'tex'; + # handle special tables + if ($tag eq 'table') { + $table_type = ''; + } elsif ($tag eq 'ftable') { + $tag = 'table'; + $table_type = 'f'; + } elsif ($tag eq 'vtable') { + $tag = 'table'; + $table_type = 'v'; + } + # special cases + if ($tag eq 'top' || ($tag eq 'node' && /^\@node\s+top\s*,/i)) { + $in_top = 1; + @lines = (); # ignore all lines before top (title page garbage) + next; + } elsif ($tag eq 'node') { + $in_top = 0; + warn "$ERROR Bad node line: $_" unless $_ =~ /^\@node\s$NODESRE$/o; + $_ = &protect_html($_); # if node contains '&' for instance + s/^\@node\s+//; + ($node) = split(/,/); + &normalise_node($node); + if ($split_node) { + &next_doc; + push(@lines, $SPLITTAG) if $split_num++; + push(@sections, $node); + } + next; + } elsif ($tag eq 'include') { + if (/^\@include\s+($FILERE)\s*$/o) { + $file = $1; + unless (-e $file) { + foreach $dir (@include_dirs) { + $file = "$dir/$1"; + last if -e $file; + } + } + if (-e $file) { + &open($file); + print "# including $file\n" if $verbose; + } else { + warn "$ERROR Can't find $file, skipping"; + } + } else { + warn "$ERROR Bad include line: $_"; + } + next; + } elsif ($tag eq 'ifclear') { + if (/^\@ifclear\s+($VARRE)\s*$/o) { + next unless defined($value{$1}); + &skip_until($tag); + } else { + warn "$ERROR Bad ifclear line: $_"; + } + next; + } elsif ($tag eq 'ifset') { + if (/^\@ifset\s+($VARRE)\s*$/o) { + next if defined($value{$1}); + &skip_until($tag); + } else { + warn "$ERROR Bad ifset line: $_"; + } + next; + } elsif ($tag eq 'menu') { + unless ($show_menu) { + &skip_until($tag); + next; + } + &html_push_if($tag); + push(@lines, &html_debug("\n", __LINE__)); + } elsif ($format_map{$tag}) { + $in_pre = 1 if $format_map{$tag} eq 'PRE'; + &html_push_if($format_map{$tag}); + push(@lines, &html_debug("\n", __LINE__)); + $in_list++ if $format_map{$tag} eq 'UL' || $format_map{$tag} eq 'OL' ; + push(@lines, &debug("<$format_map{$tag}>\n", __LINE__)); + next; + } elsif ($tag eq 'table') { + if (/^\@[fv]?table\s+\@(\w+)\s*$/) { + $in_table = $1; + unshift(@tables, join($;, $table_type, $in_table)); + push(@lines, &debug("

    \n", __LINE__)); + &html_push_if('DL'); + push(@lines, &html_debug("\n", __LINE__)); + } else { + warn "$ERROR Bad table line: $_"; + } + next; + } elsif ($tag eq 'synindex' || $tag eq 'syncodeindex') { + if (/^\@$tag\s+(\w)\w\s+(\w)\w\s*$/) { + eval("*${1}index = *${2}index"); + } else { + warn "$ERROR Bad syn*index line: $_"; + } + next; + } elsif ($tag eq 'sp') { + push(@lines, &debug("

    \n", __LINE__)); + next; + } elsif ($tag eq 'setref') { + &protect_html; # if setref contains '&' for instance + if (/^\@$tag\s*{($NODERE)}\s*$/) { + $setref = $1; + $setref =~ s/\s+/ /g; # normalize + $setref =~ s/ $//; + $node2sec{$setref} = $name; + $node2href{$setref} = "$docu_doc#$docid"; + } else { + warn "$ERROR Bad setref line: $_"; + } + next; + } elsif ($tag eq 'defindex' || $tag eq 'defcodeindex') { + if (/^\@$tag\s+(\w\w)\s*$/) { + $valid_index{$1} = 1; + } else { + warn "$ERROR Bad defindex line: $_"; + } + next; + } elsif (defined($def_map{$tag})) { + if ($def_map{$tag}) { + s/^\@$tag\s+//; + $tag = $def_map{$tag}; + $_ = "\@$tag $_"; + $tag =~ s/\s.*//; + } + } elsif (defined($user_sub{$tag})) { + s/^\@$tag\s+//; + $sub = $user_sub{$tag}; + print "# user $tag = $sub, arg: $_" if $debug & $DEBUG_USER; + if (defined(&$sub)) { + chop($_); + &$sub($_); + } else { + warn "$ERROR Bad user sub for $tag: $sub\n"; + } + next; + } + if (defined($def_map{$tag})) { + s/^\@$tag\s+//; + if ($tag =~ /x$/) { + # extra definition line + $tag = $`; + $is_extra = 1; + } else { + $is_extra = 0; + } + while (/\{([^\{\}]*)\}/) { + # this is a {} construct + ($before, $contents, $after) = ($`, $1, $'); + # protect spaces + $contents =~ s/\s+/$;9/g; + # restore $_ protecting {} + $_ = "$before$;7$contents$;8$after"; + } + @args = split(/\s+/, &protect_html($_)); + foreach (@args) { + s/$;9/ /g; # unprotect spaces + s/$;7/\{/g; # ... { + s/$;8/\}/g; # ... } + } + $type = shift(@args); + $type =~ s/^\{(.*)\}$/$1/; + print "# def ($tag): {$type} ", join(', ', @args), "\n" + if $debug & $DEBUG_DEF; + $type .= ':'; # it's nicer like this + $name = shift(@args); + $name =~ s/^\{(.*)\}$/$1/; + if ($is_extra) { + $_ = &debug("

    ", __LINE__); + } else { + $_ = &debug("
    \n
    ", __LINE__); + } + if ($tag eq 'deffn' || $tag eq 'defvr' || $tag eq 'deftp') { + $_ .= "$type $name"; + $_ .= " @args" if @args; + } elsif ($tag eq 'deftypefn' || $tag eq 'deftypevr' + || $tag eq 'defcv' || $tag eq 'defop') { + $ftype = $name; + $name = shift(@args); + $name =~ s/^\{(.*)\}$/$1/; + $_ .= "$type $ftype $name"; + $_ .= " @args" if @args; + } else { + warn "$ERROR Unknown definition type: $tag\n"; + $_ .= "$type $name"; + $_ .= " @args" if @args; + } + $_ .= &debug("\n
    ", __LINE__); + $name = &unprotect_html($name); + if ($tag eq 'deffn' || $tag eq 'deftypefn') { + unshift(@input_spool, "\@findex $name\n"); + } elsif ($tag eq 'defop') { + unshift(@input_spool, "\@findex $name on $ftype\n"); + } elsif ($tag eq 'defvr' || $tag eq 'deftypevr' || $tag eq 'defcv') { + unshift(@input_spool, "\@vindex $name\n"); + } else { + unshift(@input_spool, "\@tindex $name\n"); + } + $dont_html = 1; + } + } elsif ($end_tag) { + if ($format_map{$end_tag}) { + $in_pre = 0 if $format_map{$end_tag} eq 'PRE'; + $in_list-- if $format_map{$end_tag} eq 'UL' || $format_map{$end_tag} eq 'OL' ; + &html_pop_if('LI', 'P'); + &html_pop_if(); + push(@lines, &debug("\n", __LINE__)); + push(@lines, &html_debug("\n", __LINE__)); + } elsif ($end_tag eq 'table' || + $end_tag eq 'ftable' || + $end_tag eq 'vtable') { + shift(@tables); + if (@tables) { + ($table_type, $in_table) = split($;, $tables[0]); + } else { + $in_table = 0; + } + push(@lines, "
    \n"); + &html_pop_if('DD'); + &html_pop_if(); + } elsif (defined($def_map{$end_tag})) { + push(@lines, &debug("
    \n", __LINE__)); + } elsif ($end_tag eq 'menu') { + &html_pop_if(); + push(@lines, $_); # must keep it for pass 2 + } + next; + } + # + # misc things + # + # protect texi and HTML things + &protect_texi; + $_ = &protect_html($_) unless $dont_html; + $dont_html = 0; + # substitution (unsupported things) + s/^\@center\s+//g; + s/^\@exdent\s+//g; + s/\@noindent\s+//g; + s/\@refill\s+//g; + # other substitutions + &simple_substitutions; + s/\@value{($VARRE)}/$value{$1}/eg; + s/\@footnote\{/\@footnote$docu_doc\{/g; # mark footnotes, cf. pass 4 + # + # analyze the tag again + # + if ($tag) { + if (defined($sec2level{$tag}) && $sec2level{$tag} > 0) { + if (/^\@$tag\s+(.+)$/) { + $name = $1; + $name =~ s/\s+$//; + $level = $sec2level{$tag}; + $name = &update_sec_num($tag, $level) . " $name" + if $number_sections && $tag !~ /^unnumbered/; + if ($tag =~ /heading$/) { + push(@lines, &html_debug("\n", __LINE__)); + if ($html_element ne 'body') { + # We are in a nice pickle here. We are trying to get a H? heading + # even though we are not in the body level. So, we convert it to a + # nice, bold, line by itself. + $_ = &debug("\n\n

    $name

    \n\n", __LINE__); + } else { + $_ = &debug("$name\n", __LINE__); + &html_push_if('body'); + } + print "# heading, section $name, level $level\n" + if $debug & $DEBUG_TOC; + } else { + if ($split_chapter) { + unless ($toplevel) { + # first time we see a "section" + unless ($level == 1) { + warn "$ERROR The first section found is not of level 1: $_"; + warn "$ERROR I'll split on sections of level $level...\n"; + } + $toplevel = $level; + } + if ($level == $toplevel) { + &next_doc; + push(@lines, $SPLITTAG) if $split_num++; + push(@sections, $name); + } + } + $sec_num++; + $docid = "SEC$sec_num"; + $tocid = "TOC$sec_num"; + # check biblio and glossary + $in_bibliography = ($name =~ /^([A-Z]|\d+)?(\.\d+)*\s*bibliography$/i); + $in_glossary = ($name =~ /^([A-Z]|\d+)?(\.\d+)*\s*glossary$/i); + # check node + if ($node) { + if ($node2sec{$node}) { + warn "$ERROR Duplicate node found: $node\n"; + } else { + $node2sec{$node} = $name; + $node2href{$node} = "$docu_doc#$docid"; + print "# node $node, section $name, level $level\n" + if $debug & $DEBUG_TOC; + } + $node = ''; + } else { + print "# no node, section $name, level $level\n" + if $debug & $DEBUG_TOC; + } + # update TOC + while ($level > $curlevel) { + $curlevel++; + push(@toc_lines, "
      \n"); + } + while ($level < $curlevel) { + $curlevel--; + push(@toc_lines, "
    \n"); + } + $_ = "
  • " . &anchor($tocid, "$docu_doc#$docid", $name, 1); + push(@toc_lines, &substitute_style($_)); + # update DOC + push(@lines, &html_debug("\n", __LINE__)); + &html_reset; + $_ = "".&anchor($docid, "$docu_toc#$tocid", $name)."\n"; + $_ = &debug($_, __LINE__); + push(@lines, &html_debug("\n", __LINE__)); + } + # update DOC + foreach $line (split(/\n+/, $_)) { + push(@lines, "$line\n"); + } + next; + } else { + warn "$ERROR Bad section line: $_"; + } + } else { + # track variables + $value{$1} = $2, next if /^\@set\s+($VARRE)\s+(.*)$/o; + delete $value{$1}, next if /^\@clear\s+($VARRE)\s*$/o; + # store things + $value{'_setfilename'} = $1, next if /^\@setfilename\s+(.*)$/; + $value{'_settitle'} = $1, next if /^\@settitle\s+(.*)$/; + $value{'_author'} .= "$1\n", next if /^\@author\s+(.*)$/; + $value{'_subtitle'} .= "$1\n", next if /^\@subtitle\s+(.*)$/; + $value{'_title'} .= "$1\n", next if /^\@title\s+(.*)$/; + # index + if (/^\@(..?)index\s+/) { + unless ($valid_index{$1}) { + warn "$ERROR Undefined index command: $_"; + next; + } + $id = 'IDX' . ++$idx_num; + $index = $1 . 'index'; + $what = &substitute_style($'); + $what =~ s/\s+$//; + print "# found $index for '$what' id $id\n" + if $debug & $DEBUG_INDEX; + eval(<\n", __LINE__)); + push(@lines, &anchor($id, '', $invisible_mark, !$in_pre)); + &html_push('P'); + } elsif ($html_element eq 'DL' || + $html_element eq 'UL' || + $html_element eq 'OL' ) { + $deferred_ref .= &anchor($id, '', $invisible_mark, !$in_pre) . " "; + } + next; + } + # list item + if (/^\@itemx?\s+/) { + $what = $'; + $what =~ s/\s+$//; + if ($in_bibliography && $use_bibliography) { + if ($what =~ /^$BIBRE$/o) { + $id = 'BIB' . ++$bib_num; + $bib2href{$what} = "$docu_doc#$id"; + print "# found bibliography for '$what' id $id\n" + if $debug & $DEBUG_BIB; + $what = &anchor($id, '', $what); + } + } elsif ($in_glossary && $use_glossary) { + $id = 'GLOSS' . ++$gloss_num; + $entry = $what; + $entry =~ tr/A-Z/a-z/ unless $entry =~ /^[A-Z\s]+$/; + $gloss2href{$entry} = "$docu_doc#$id"; + print "# found glossary for '$entry' id $id\n" + if $debug & $DEBUG_GLOSS; + $what = &anchor($id, '', $what); + } + &html_pop_if('P'); + if ($html_element eq 'DL' || $html_element eq 'DD') { + if ($things_map{$in_table} && !$what) { + # special case to allow @table @bullet for instance + push(@lines, &debug("
    $things_map{$in_table}\n", __LINE__)); + } else { + push(@lines, &debug("
    \@$in_table\{$what\}\n", __LINE__)); + } + push(@lines, "
    "); + &html_push('DD') unless $html_element eq 'DD'; + if ($table_type) { # add also an index + unshift(@input_spool, "\@${table_type}index $what\n"); + } + } else { + push(@lines, &debug("
  • $what\n", __LINE__)); + &html_push('LI') unless $html_element eq 'LI'; + } + push(@lines, &html_debug("\n", __LINE__)); + if ($deferred_ref) { + push(@lines, &debug("$deferred_ref\n", __LINE__)); + $deferred_ref = ''; + } + next; + } + } + } + # paragraph separator + if ($_ eq "\n") { + next if $#lines >= 0 && $lines[$#lines] eq "\n"; + if ($html_element eq 'P') { + push(@lines, "\n"); + $_ = &debug("

    \n", __LINE__); + &html_pop; + } + } elsif ($html_element eq 'body' || $html_element eq 'BLOCKQUOTE') { + push(@lines, "

    \n"); + &html_push('P'); + $_ = &debug($_, __LINE__); + } + # otherwise + push(@lines, $_); +} + +# finish TOC +$level = 0; +while ($level < $curlevel) { + $curlevel--; + push(@toc_lines, "

\n"); +} + +print "# end of pass 1\n" if $verbose; + +#+++############################################################################ +# # +# Pass 2/3: handle style, menu, index, cross-reference # +# # +#---############################################################################ + +@lines2 = (); # whole document (2nd pass) +@lines3 = (); # whole document (3rd pass) +$in_menu = 0; # am I inside a menu + +while (@lines) { + $_ = shift(@lines); + # + # special case (protected sections) + # + if (/^$PROTECTTAG/o) { + push(@lines2, $_); + next; + } + # + # menu + # + $in_menu = 1, push(@lines2, &debug("
    \n", __LINE__)), next if /^\@menu\b/; + $in_menu = 0, push(@lines2, &debug("
\n", __LINE__)), next if /^\@end\s+menu\b/; + if ($in_menu) { + if (/^\*\s+($NODERE)::/o) { + $descr = $'; + chop($descr); + &menu_entry($1, $1, $descr); + } elsif (/^\*\s+(.+):\s+([^\t,\.\n]+)[\t,\.\n]/) { + $descr = $'; + chop($descr); + &menu_entry($1, $2, $descr); + } elsif (/^\*/) { + warn "$ERROR Bad menu line: $_"; + } else { # description continued? + push(@lines2, $_); + } + next; + } + # + # printindex + # + if (/^\@printindex\s+(\w\w)\b/) { + local($index, *ary, @keys, $key, $letter, $last_letter, @refs); + if ($predefined_index{$1}) { + $index = $predefined_index{$1} . 'index'; + } else { + $index = $1 . 'index'; + } + eval("*ary = *$index"); + @keys = keys(%ary); + foreach $key (@keys) { + $_ = $key; + 1 while s/<(\w+)>\`(.*)\'<\/\1>/$2/; # remove HTML tags with quotes + 1 while s/<(\w+)>(.*)<\/\1>/$2/; # remove HTML tags + $_ = &unprotect_html($_); + &unprotect_texi; + tr/A-Z/a-z/; # lowercase + $key2alpha{$key} = $_; + print "# index $key sorted as $_\n" + if $key ne $_ && $debug & $DEBUG_INDEX; + } + $last_letter = undef; + foreach $key (sort byalpha @keys) { + $letter = substr($key2alpha{$key}, 0, 1); + $letter = substr($key2alpha{$key}, 0, 2) if $letter eq $;; + if (!defined($last_letter) || $letter ne $last_letter) { + push(@lines2, "\n") if defined($last_letter); + push(@lines2, "

" . &protect_html($letter) . "

\n"); + push(@lines2, "\n"); + $last_letter = $letter; + } + @refs = (); + foreach (split(/$;/, $ary{$key})) { + push(@refs, &anchor('', $_, $key, 0)); + } + push(@lines2, "
  • " . join(", ", @refs) . "\n"); + } + push(@lines2, "
  • \n") if defined($last_letter); + next; + } + # + # simple style substitutions + # + $_ = &substitute_style($_); + # + # xref + # + while (/\@(x|px|info|)ref{($XREFRE)(}?)/o) { + # note: Texinfo may accept other characters + ($type, $nodes, $full) = ($1, $2, $3); + ($before, $after) = ($`, $'); + if (! $full && $after) { + warn "$ERROR Bad xref (no ending } on line): $_"; + $_ = "$before$;0${type}ref\{$nodes$after"; + next; # while xref + } + if ($type eq 'x') { + $type = 'See '; + } elsif ($type eq 'px') { + $type = 'see '; + } elsif ($type eq 'info') { + $type = 'See Info'; + } else { + $type = ''; + } + unless ($full) { + $next = shift(@lines); + $next = &substitute_style($next); + chop($nodes); # remove final newline + if ($next =~ /\}/) { # split on 2 lines + $nodes .= " $`"; + $after = $'; + } else { + $nodes .= " $next"; + $next = shift(@lines); + $next = &substitute_style($next); + chop($nodes); + if ($next =~ /\}/) { # split on 3 lines + $nodes .= " $`"; + $after = $'; + } else { + warn "$ERROR Bad xref (no ending }): $_"; + $_ = "$before$;0xref\{$nodes$after"; + unshift(@lines, $next); + next; # while xref + } + } + } + $nodes =~ s/\s+/ /g; # remove useless spaces + @args = split(/\s*,\s*/, $nodes); + $node = $args[0]; # the node is always the first arg + &normalise_node($node); + $sec = $node2sec{$node}; + if (@args == 5) { # reference to another manual + $sec = $args[2] || $node; + $man = $args[4] || $args[3]; + $_ = "${before}${type}section `$sec' in \@cite{$man}$after"; + } elsif ($type =~ /Info/) { # inforef + warn "$ERROR Wrong number of arguments: $_" unless @args == 3; + ($nn, $_, $in) = @args; + $_ = "${before}${type} file `$in', node `$nn'$after"; + } elsif ($sec) { + $href = $node2href{$node}; + $_ = "${before}${type}section " . &anchor('', $href, $sec) . $after; + } else { + warn "$ERROR Undefined node ($node): $_"; + $_ = "$before$;0xref{$nodes}$after"; + } + } + # + # try to guess bibliography references or glossary terms + # + unless (/^/) { + $done .= $pre . &anchor('', $href, $what); + } else { + $done .= "$pre$what"; + } + $_ = $post; + } + $_ = $done . $_; + } + if ($use_glossary) { + $done = ''; + while (/\b\w+\b/) { + ($pre, $what, $post) = ($`, $&, $'); + $entry = $what; + $entry =~ tr/A-Z/a-z/ unless $entry =~ /^[A-Z\s]+$/; + $href = $gloss2href{$entry}; + if (defined($href) && $post !~ /^[^<]*<\/A>/) { + $done .= $pre . &anchor('', $href, $what); + } else { + $done .= "$pre$what"; + } + $_ = $post; + } + $_ = $done . $_; + } + } + # otherwise + push(@lines2, $_); +} +print "# end of pass 2\n" if $verbose; + +# +# split style substitutions +# +while (@lines2) { + $_ = shift(@lines2); + # + # special case (protected sections) + # + if (/^$PROTECTTAG/o) { + push(@lines3, $_); + next; + } + # + # split style substitutions + # + $old = ''; + while ($old ne $_) { + $old = $_; + if (/\@(\w+)\{/) { + ($before, $style, $after) = ($`, $1, $'); + if (defined($style_map{$style})) { + $_ = $after; + $text = ''; + $after = ''; + $failed = 1; + while (@lines2) { + if (/\}/) { + $text .= $`; + $after = $'; + $failed = 0; + last; + } else { + $text .= $_; + $_ = shift(@lines2); + } + } + if ($failed) { + die "* Bad syntax (\@$style) after: $before\n"; + } else { + $text = &apply_style($style, $text); + $_ = "$before$text$after"; + } + } + } + } + # otherwise + push(@lines3, $_); +} +print "# end of pass 3\n" if $verbose; + +#+++############################################################################ +# # +# Pass 4: foot notes, final cleanup # +# # +#---############################################################################ + +@foot_lines = (); # footnotes +@doc_lines = (); # final document +$end_of_para = 0; # true if last line is

    + +while (@lines3) { + $_ = shift(@lines3); + # + # special case (protected sections) + # + if (/^$PROTECTTAG/o) { + push(@doc_lines, $_); + $end_of_para = 0; + next; + } + # + # footnotes + # + while (/\@footnote([^\{\s]+)\{/) { + ($before, $d, $after) = ($`, $1, $'); + $_ = $after; + $text = ''; + $after = ''; + $failed = 1; + while (@lines3) { + if (/\}/) { + $text .= $`; + $after = $'; + $failed = 0; + last; + } else { + $text .= $_; + $_ = shift(@lines3); + } + } + if ($failed) { + die "* Bad syntax (\@footnote) after: $before\n"; + } else { + $foot_num++; + $docid = "DOCF$foot_num"; + $footid = "FOOT$foot_num"; + $foot = "($foot_num)"; + push(@foot_lines, "

    " . &anchor($footid, "$d#$docid", $foot) . "

    \n"); + $text = "

    $text" unless $text =~ /^\s*

    /; + push(@foot_lines, "$text\n"); + $_ = $before . &anchor($docid, "$docu_foot#$footid", $foot) . $after; + } + } + # + # remove unnecessary

    + # + if (/^\s*

    \s*$/) { + next if $end_of_para++; + } else { + $end_of_para = 0; + } + # otherwise + push(@doc_lines, $_); +} +print "# end of pass 4\n" if $verbose; + +#+++############################################################################ +# # +# Pass 5: print things # +# # +#---############################################################################ + +$header = < +EOT + +$full_title = $value{'_title'} || $value{'_settitle'} || "Untitled Document"; +$title = $value{'_settitle'} || $full_title; +$_ = &substitute_style($full_title); +&unprotect_texi; +s/\n$//; # rmv last \n (if any) +$full_title = "

    " . join("

    \n

    ", split(/\n/, $_)) . "

    \n"; + +# +# print ToC +# +if (!$monolithic && @toc_lines) { + if (open(FILE, "> $docu_toc")) { + print "# creating $docu_toc...\n" if $verbose; + &print_toplevel_header("$title - Table of Contents"); + &print_ruler; + &print(*toc_lines, FILE); + &print_toplevel_footer; + close(FILE); + } else { + warn "$ERROR Can't write to $docu_toc: $!\n"; + } +} + +# +# print footnotes +# +if (!$monolithic && @foot_lines) { + if (open(FILE, "> $docu_foot")) { + print "# creating $docu_foot...\n" if $verbose; + &print_toplevel_header("$title - Footnotes"); + &print_ruler; + &print(*foot_lines, FILE); + &print_toplevel_footer; + close(FILE); + } else { + warn "$ERROR Can't write to $docu_foot: $!\n"; + } +} + +# +# print document +# +if ($split_chapter || $split_node) { # split + $doc_num = 0; + $last_num = scalar(@sections); + $first_doc = &doc_name(1); + $last_doc = &doc_name($last_num); + while (@sections) { + $section = shift(@sections); + &next_doc; + if (open(FILE, "> $docu_doc")) { + print "# creating $docu_doc...\n" if $verbose; + &print_header("$title - $section"); + $prev_doc = ($doc_num == 1 ? undef : &doc_name($doc_num - 1)); + $next_doc = ($doc_num == $last_num ? undef : &doc_name($doc_num + 1)); + $navigation = "Go to the "; + $navigation .= ($prev_doc ? &anchor('', $first_doc, "first") : "first"); + $navigation .= ", "; + $navigation .= ($prev_doc ? &anchor('', $prev_doc, "previous") : "previous"); + $navigation .= ", "; + $navigation .= ($next_doc ? &anchor('', $next_doc, "next") : "next"); + $navigation .= ", "; + $navigation .= ($next_doc ? &anchor('', $last_doc, "last") : "last"); + $navigation .= " section, " . &anchor('', $docu_toc, "table of contents") . ".\n"; + print FILE $navigation; + &print_ruler; + # find corresponding lines + @tmp_lines = (); + while (@doc_lines) { + $_ = shift(@doc_lines); + last if ($_ eq $SPLITTAG); + push(@tmp_lines, $_); + } + &print(*tmp_lines, FILE); + &print_ruler; + print FILE $navigation; + &print_footer; + close(FILE); + } else { + warn "$ERROR Can't write to $docu_doc: $!\n"; + } + } +} else { # not split + if (open(FILE, "> $docu_doc")) { + print "# creating $docu_doc...\n" if $verbose; + if ($monolithic || !@toc_lines) { + &print_toplevel_header($title); + } else { + &print_header($title); + print FILE $full_title; + } + if ($monolithic && @toc_lines) { + &print_ruler; + print FILE "

    Table of Contents

    \n"; + &print(*toc_lines, FILE); + } + &print_ruler; + &print(*doc_lines, FILE); + if ($monolithic && @foot_lines) { + &print_ruler; + print FILE "

    Footnotes

    \n"; + &print(*foot_lines, FILE); + } + if ($monolithic || !@toc_lines) { + &print_toplevel_footer; + } else { + &print_footer; + } + close(FILE); + } else { + warn "$ERROR Can't write to $docu_doc: $!\n"; + } +} + +print "# that's all folks\n" if $verbose; + +#+++############################################################################ +# # +# Low level functions # +# # +#---############################################################################ + +sub update_sec_num { + local($name, $level) = @_; + + $level--; # here we start at 0 + if ($name =~ /^appendix/) { + # appendix style + if (defined(@appendix_sec_num)) { + &incr_sec_num($level, @appendix_sec_num); + } else { + @appendix_sec_num = ('A', 0, 0, 0); + } + return(join('.', @appendix_sec_num[0..$level])); + } else { + # normal style + if (defined(@normal_sec_num)) { + &incr_sec_num($level, @normal_sec_num); + } else { + @normal_sec_num = (1, 0, 0, 0); + } + return(join('.', @normal_sec_num[0..$level])); + } +} + +sub incr_sec_num { + local($level, $l); + $level = shift(@_); + $_[$level]++; + foreach $l ($level+1 .. 3) { + $_[$l] = 0; + } +} + +sub check { + local($_, %seen, %context, $before, $match, $after); + + while (<>) { + if (/\@(\*|\.|\:|\@|\{|\})/) { + $seen{$&}++; + $context{$&} .= "> $_" if $verbose; + $_ = "$`XX$'"; + redo; + } + if (/\@(\w+)/) { + ($before, $match, $after) = ($`, $&, $'); + if ($before =~ /\b[\w-]+$/ && $after =~ /^[\w-.]*\b/) { # e-mail address + $seen{'e-mail address'}++; + $context{'e-mail address'} .= "> $_" if $verbose; + } else { + $seen{$match}++; + $context{$match} .= "> $_" if $verbose; + } + $match =~ s/^\@/X/; + $_ = "$before$match$after"; + redo; + } + } + + foreach (sort(keys(%seen))) { + if ($verbose) { + print "$_\n"; + print $context{$_}; + } else { + print "$_ ($seen{$_})\n"; + } + } +} + +sub open { + local($name) = @_; + + ++$fh_name; + if (open($fh_name, $name)) { + unshift(@fhs, $fh_name); + } else { + warn "$ERROR Can't read file $name: $!\n"; + } +} + +sub init_input { + @fhs = (); # hold the file handles to read + @input_spool = (); # spooled lines to read + $fh_name = 'FH000'; + &open($docu); +} + +sub next_line { + local($fh, $line); + + if (@input_spool) { + $line = shift(@input_spool); + return($line); + } + while (@fhs) { + $fh = $fhs[0]; + $line = <$fh>; + return($line) if $line; + close($fh); + shift(@fhs); + } + return(undef); +} + +# used in pass 1, use &next_line +sub skip_until { + local($tag) = @_; + local($_); + + while ($_ = &next_line) { + return if /^\@end\s+$tag\s*$/; + } + die "* Failed to find '$tag' after: " . $lines[$#lines]; +} + +# +# HTML stacking to have a better HTML output +# + +sub html_reset { + @html_stack = ('html'); + $html_element = 'body'; +} + +sub html_push { + local($what) = @_; + push(@html_stack, $html_element); + $html_element = $what; +} + +sub html_push_if { + local($what) = @_; + push(@html_stack, $html_element) + if ($html_element && $html_element ne 'P'); + $html_element = $what; +} + +sub html_pop { + $html_element = pop(@html_stack); +} + +sub html_pop_if { + local($elt); + + if (@_) { + foreach $elt (@_) { + if ($elt eq $html_element) { + $html_element = pop(@html_stack) if @html_stack; + last; + } + } + } else { + $html_element = pop(@html_stack) if @html_stack; + } +} + +sub html_debug { + local($what, $line) = @_; + return("$what") + if $debug & $DEBUG_HTML; + return($what); +} + +# to debug the output... +sub debug { + local($what, $line) = @_; + return("$what") + if $debug & $DEBUG_HTML; + return($what); +} + +sub normalise_node { + $_[0] =~ s/\s+/ /g; + $_[0] =~ s/ $//; + $_[0] =~ s/^ //; +} + +sub menu_entry { + local($entry, $node, $descr) = @_; + local($href); + + &normalise_node($node); + $href = $node2href{$node}; + if ($href) { + $descr =~ s/^\s+//; + $descr = ": $descr" if $descr; + push(@lines2, "
  • " . &anchor('', $href, $entry) . "$descr\n"); + } else { + warn "$ERROR Undefined node ($node): $_"; + } +} + +sub do_ctrl { "^$_[0]" } + +sub do_sc { "\U$_[0]\E" } + +sub apply_style { + local($texi_style, $text) = @_; + local($style); + + $style = $style_map{$texi_style}; + if (defined($style)) { # known style + if ($style =~ /^\"/) { # add quotes + $style = $'; + $text = "\`$text\'"; + } + if ($style =~ /^\&/) { # custom + $style = $'; + $text = &$style($text); + } elsif ($style) { # good style + $text = "<$style>$text"; + } else { # no style + } + } else { # unknown style + $text = undef; + } + return($text); +} + +# remove Texinfo styles +sub remove_style { + local($_) = @_; + s/\@\w+{([^\{\}]+)}/$1/g; + return($_); +} + +sub substitute_style { + local($_) = @_; + local($changed, $done, $style, $text); + + $changed = 1; + while ($changed) { + $changed = 0; + $done = ''; + while (/\@(\w+){([^\{\}]+)}/) { + $text = &apply_style($1, $2); + if ($text) { + $_ = "$`$text$'"; + $changed = 1; + } else { + $done .= "$`\@$1"; + $_ = "{$2}$'"; + } + } + $_ = $done . $_; + } + return($_); +} + +sub anchor { + local($name, $href, $text, $newline) = @_; + local($result); + + $result = "

    \n"; +} + +sub print_header { + local($_); + + # clean the title + $_ = &remove_style($_[0]); + &unprotect_texi; + # print the header + if ($doctype eq 'html2') { + print FILE $html2_doctype; + } elsif ($doctype) { + print FILE $doctype; + } + print FILE < + +$header +$_ + + +EOT +} + +sub print_toplevel_header { + local($_); + + &print_header; # pass given arg... + print FILE $full_title; + if ($value{'_subtitle'}) { + $value{'_subtitle'} =~ s/\n+$//; + foreach (split(/\n/, $value{'_subtitle'})) { + $_ = &substitute_style($_); + &unprotect_texi; + print FILE "

    $_

    \n"; + } + } + if ($value{'_author'}) { + $value{'_author'} =~ s/\n+$//; + foreach (split(/\n/, $value{'_author'})) { + $_ = &substitute_style($_); + &unprotect_texi; + s/[\w.-]+\@[\w.-]+/
    $&<\/A>/g; + print FILE "
    $_
    \n"; + } + } + print FILE "

    \n"; +} + +sub print_footer { + print FILE < + +EOT +} + +sub print_toplevel_footer { + &print_ruler; + print FILE <texi2html +translator version 1.51.

    +EOT + &print_footer; +} + +sub protect_texi { + # protect @ { } ` ' + s/\@\@/$;0/go; + s/\@\{/$;1/go; + s/\@\}/$;2/go; + s/\@\`/$;3/go; + s/\@\'/$;4/go; +} + +sub protect_html { + local($what) = @_; + # protect & < > + $what =~ s/\&/\&\#38;/g; + $what =~ s/\/\&\#62;/g; + # but recognize some HTML things + $what =~ s/\&\#60;\/A\&\#62;/<\/A>/g; # + $what =~ s/\&\#60;A ([^\&]+)\&\#62;//g; # + $what =~ s/\&\#60;IMG ([^\&]+)\&\#62;//g; # + return($what); +} + +sub unprotect_texi { + s/$;0/\@/go; + s/$;1/\{/go; + s/$;2/\}/go; + s/$;3/\`/go; + s/$;4/\'/go; +} + +sub unprotect_html { + local($what) = @_; + $what =~ s/\&\#38;/\&/g; + $what =~ s/\&\#60;/\/g; + return($what); +} + +sub byalpha { + $key2alpha{$a} cmp $key2alpha{$b}; +} + +############################################################################## + + # These next few lines are legal in both Perl and nroff. + +.00 ; # finish .ig + +'di \" finish diversion--previous line must be blank +.nr nl 0-1 \" fake up transition to first page again +.nr % 0 \" start at page 1 +'; __END__ ############# From here on it's a standard manual page ############ +.TH TEXI2HTML 1 "09/10/96" +.AT 3 +.SH NAME +texi2html \- a Texinfo to HTML converter +.SH SYNOPSIS +.B texi2html [options] file +.PP +.B texi2html -check [-verbose] files +.SH DESCRIPTION +.I Texi2html +converts the given Texinfo file to a set of HTML files. It tries to handle +most of the Texinfo commands. It creates hypertext links for cross-references, +footnotes... +.PP +It also tries to add links from a reference to its corresponding entry in the +bibliography (if any). It may also handle a glossary (see the +.B \-glossary +option). +.PP +.I Texi2html +creates several files depending on the contents of the Texinfo file and on +the chosen options (see FILES). +.PP +The HTML files created by +.I texi2html +are closer to TeX than to Info, that's why +.I texi2html +converts @iftex sections and not @ifinfo ones by default. You can reverse +this with the \-expandinfo option. +.SH OPTIONS +.TP 12 +.B \-check +Check the given file and give the list of all things that may be Texinfo commands. +This may be used to check the output of +.I texi2html +to find the Texinfo commands that have been left in the HTML file. +.TP +.B \-expandinfo +Expand @ifinfo sections, not @iftex ones. +.TP +.B \-glossary +Use the section named 'Glossary' to build a list of terms and put links in the HTML +document from each term toward its definition. +.TP +.B \-invisible \fIname\fP +Use \fIname\fP to create invisible destination anchors for index links. This is a workaround +for a known bug of many WWW browsers, including xmosaic. +.TP +.B \-I \fIdir\fP +Look also in \fIdir\fP to find included files. +.TP +.B \-menu +Show the Texinfo menus; by default they are ignored. +.TP +.B \-monolithic +Output only one file, including the table of contents and footnotes. +.TP +.B \-number +Number the sections. +.TP +.B \-split_chapter +Split the output into several HTML files (one per main section: +chapter, appendix...). +.TP +.B \-split_node +Split the output into several HTML files (one per node). +.TP +.B \-usage +Print usage instructions, listing the current available command-line options. +.TP +.B \-verbose +Give a verbose output. Can be used with the +.B \-check +option. +.PP +.SH FILES +By default +.I texi2html +creates the following files (foo being the name of the Texinfo file): +.TP 16 +.B foo_toc.html +The table of contents. +.TP +.B foo.html +The document's contents. +.TP +.B foo_foot.html +The footnotes (if any). +.PP +When used with the +.B \-split +option, it creates several files (one per chapter or node), named +.B foo_n.html +(n being the indice of the chapter or node), instead of the single +.B foo.html +file. +.PP +When used with the +.B \-monolithic +option, it creates only one file: +.B foo.html +.SH VARIABLES +.I texi2html +predefines the following variables: \fBhtml\fP, \fBtexi2html\fP. +.SH ADDITIONAL COMMANDS +.I texi2html +implements the following non-Texinfo commands: +.TP 16 +.B @ifhtml +This indicates the start of an HTML section, this section will passed through +without any modofication. +.TP +.B @end ifhtml +This indcates the end of an HTML section. +.SH VERSION +This is \fItexi2html\fP version 1.51, 09/10/96. +.PP +The latest version of \fItexi2html\fP can be found in WWW, cf. URL +http://wwwcn.cern.ch/dci/texi2html/ +.SH AUTHOR +The main author is Lionel Cons, CERN CN/DCI/UWS, Lionel.Cons@cern.ch. +Many other people around the net contributed to this program. +.SH COPYRIGHT +This program is the intellectual property of the European +Laboratory for Particle Physics (known as CERN). No guarantee whatsoever is +provided by CERN. No liability whatsoever is accepted for any loss or damage +of any kind resulting from any defect or inaccuracy in this information or +code. +.PP +CERN, 1211 Geneva 23, Switzerland +.SH "SEE ALSO" +GNU Texinfo Documentation Format, +HyperText Markup Language (HTML), +World Wide Web (WWW). +.SH BUGS +This program does not understand all Texinfo commands (yet). +.PP +TeX specific commands (normally enclosed in @iftex) will be +passed unmodified. +.ex diff --git a/barcode-0.98/ean.c b/barcode-0.98/ean.c new file mode 100644 index 00000000..0801a0ef --- /dev/null +++ b/barcode-0.98/ean.c @@ -0,0 +1,774 @@ +/* + * ean.c -- encoding for ean, upc and isbn + * + * Copyright (c) 1999 Alessandro Rubini + * Copyright (c) 1999 Prosa Srl. + * Copyright (c) 2001 Boszormenyi Zoltan + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + +#include +#include +#include +#include +#include + +#include "barcode.h" + +/* + * IMPORTANT NOTE: if you are reading this file to learn how to add a + * new encoding type, this is the wrong place as there are too many + * special cases. Please refer to code39.c instead. If you want to + * learn how UPC, EAN, ISBN work, on the other hand, I did my best to + * commend things and hope you enjoy it. + */ + +/* + * These following static arrays are used to describe the barcode. + * + * The various forms of UPC and EAN are documented as using three + * different alphabets to encode the ten digits. However, each digit + * has exactly one encoding; only, it is sometimes mirrored. Moreover, + * if you represent the width of each symbol (bar/space) instead of + * the sequence of 1's and 0's, you find that even-parity and odd-parity + * encoding are exactly the same. So, here are the digits: */ +static char *digits[] = { + "3211","2221","2122","1411","1132", + "1231","1114","1312","1213","3112"}; + +/* + * What EAN encoding does is adding a leading digit (the 13th digit). + * Such an extra digit is encoded by mirroring three of the six digits that + * appear in the left half of the UPC code. Here how mirroring works: + */ +static char *ean_mirrortab[] = { + "------","--1-11","--11-1","--111-","-1--11", + "-11--1","-111--","-1-1-1","-1-11-","-11-1-" +}; + +/* + * UPC-E (the 6-digit one), instead, encodes the check character as + * a mirroring of the symbols. This is similar, but the encoding for "0" is + * different (EAN uses no mirroring for "0" to be compatible with UPC). + * The same rule is used for UPC-5 (the supplemental digits for ISBN) + */ +static char *upc_mirrortab[] = { + "---111","--1-11","--11-1","--111-","-1--11", + "-11--1","-111--","-1-1-1","-1-11-","-11-1-" +}; + +/* + * UPC-E mirroring for encoding "1" + */ +static char *upc_mirrortab1[] = { + "111---","11-1--","11--1-","11---1","1-11--", + "1--11-","1---11","1-1-1-","1-1--1","1--1-1" +}; + +/* UPC-2 has just two digits to mirror */ +static char *upc_mirrortab2[] = { + "11","1-","-1","--" +}; + +/* + * initial, middle, final guard bars (first symbol is a a space). + * EAN-13 overwrites the first "0" with "9" to make space for the extra digit. + */ +static char *guard[] = {"0a1a","1a1a1","a1a"}; + +/* initial, final guard bars for UPC-E*/ +static char *guardE[] = {"0a1a","1a1a1a"}; + +/* initial and inter-char guard bars for supplementals (first is space) */ +static char *guardS[] = {"9112","11"}; + +/* + * These functions are shortcuts I use in the encoding engine + */ +static int ean_make_checksum(char *text, int mode) +{ + int esum = 0, osum = 0, i; + int even=1; /* last char is even */ + + if (strchr(text, ' ')) + i = strchr(text, ' ') - text; /* end of first part */ + else + i = strlen(text); /* end of all */ + + while (i-- > 0) { + if (even) esum += text[i]-'0'; + else osum += text[i]-'0'; + even = !even; + } + if (!mode) { /* standard upc/ean checksum */ + i = (3*esum + osum) % 10; + return (10-i) % 10; /* complement to 10 */ + } else { /* add-5 checksum */ + i = (3*esum + 9*osum); + return i%10; + } +} + +/* + * Check that the text can be encoded. Returns 0 or -1. + * Accept: + * 13 or 12 digits: EAN-13 w/ or w/o checksum + * or + * 8 or 7 digits: EAN-8 w/ or w/o checksum. + * For both EAN-13 and EAN-8, accept an addon of 2 or 5 digits, + * separated by ' ' + */ +int Barcode_ean_verify(unsigned char *text) +{ + int i, len0, len, addon; + unsigned char tmp[24], *spc; + + len = strlen(text); + spc = strchr(text, ' '); + if (spc) { + len0 = spc - text; + addon = len - len0 - 1; + if (addon != 2 && addon != 5) + return -1; + for (i=len0+1; i= '5' && text[10] <= '9') { + memcpy(&result[1], text+1, 5); + result[6] = text[10]; + } else { + return NULL; + } + result[7] = chksum + '0'; + + return result; +} + +/* + * UPC-A is the same as EAN, but accept + * 12 or 11 digits (UPC-A w/ or w/o checksum) + * or accept UPC-E as: + * 6 digits (w/o number system and checksum): number system '0' assumed, + * 7 digits (either w/o number system or checksum), + * 8 digits (w/ number system and checksum) + * plus the 2 or 5-digit add-on + */ +int Barcode_upc_verify(unsigned char *text) +{ + int i, len0, len, addon; + unsigned char tmp[24], *spc; + + len = strlen(text); + spc = strchr(text, ' '); + if (spc) { + len0 = spc - text; + addon = len - len0 - 1; + if (addon != 2 && addon != 5) + return -1; + for (i=len0+1; iascii) { + bc->error = EINVAL; + return -1; + } + + /* Find out whether the barcode has addon and + * the length of the barcode w/o the addon. + */ + len = strlen(bc->ascii); + spc = strchr(bc->ascii, ' '); + if (spc) { + len0 = spc - bc->ascii; + addon = strlen(spc + 1); + if (addon != 2 && addon != 5) { + bc->error = EINVAL; /* impossible, actually */ + return -1; + } + } else { + len0 = len; + addon = 0; + } + + if (!bc->encoding) { + /* ISBN already wrote what it is; if unknown, find it out */ + + /* + * Do not decide only by barcode length, it may be ambiguous. + * Anyway, either the user specified the barcode type or + * we already found a fitting one. + */ + switch(bc->flags & BARCODE_ENCODING_MASK) { + case BARCODE_EAN: + switch (len0) { + case 7: case 8: + bc->encoding = strdup("EAN-8"); + encoding = EAN8; + break; + case 12: case 13: + bc->encoding = strdup("EAN-13"); + encoding = EAN13; + break; + default: + bc->error = -EINVAL; + return -1; + } + break; + + case BARCODE_UPC: + switch (len0) { + case 6: case 7: case 8: + bc->encoding = strdup("UPC-E"); + encoding = UPCE; + break; + case 11: case 12: + bc->encoding = strdup("UPC-A"); + encoding = UPCA; + break; + default: + bc->error = -EINVAL; + return -1; + } + break; + default: + /* else, it's wrong (impossible, as the text is checked) */ + bc->error = -EINVAL; + return -1; + } + } + + /* better safe than sorry */ + if (bc->partial) free(bc->partial); bc->partial = NULL; + if (bc->textinfo) free(bc->textinfo); bc->textinfo = NULL; + + if (encoding == UPCA) { /* add the leading 0 (not printed) */ + text[0] = '0'; + strcpy(text+1, bc->ascii); + } else if (encoding == UPCE) { + strcpy(text, upc_a_to_e(upc_e_to_a(bc->ascii))); + } else { + strcpy(text, bc->ascii); + } + + /* + * build the checksum and the bars: any encoding is slightly different + */ + if (encoding == UPCA || encoding == EAN13 || encoding == ISBN) { + if (!(encoding == UPCA && len0 == 12) && + !(encoding == EAN13 && len0 == 13)) { + checksum = ean_make_checksum(text, 0); + text[12] = '0' + checksum; /* add it to the text */ + text[13] = '\0'; + } + + strcpy(partial, guard[0]); + if (encoding == EAN13 || encoding == ISBN) { /* The first digit */ + sprintf(tptr,"0:12:%c ",text[0]); + tptr += strlen(tptr); + partial[0] = '9'; /* extra space for the digit */ + } else if (encoding == UPCA) + partial[0] = '9'; /* UPC has one digit before the symbol, too */ + xpos = width_of_partial(partial); + mirror = ean_mirrortab[text[0]-'0']; + + /* left part */ + for (i=1;i<7;i++) { + ptr1 = partial + strlen(partial); /* target */ + ptr2 = digits[text[i]-'0']; /* source */ + strcpy(ptr1, ptr2); + if (mirror[i-1] == '1') { + /* mirror this */ + ptr1[0] = ptr2[3]; + ptr1[1] = ptr2[2]; + ptr1[2] = ptr2[1]; + ptr1[3] = ptr2[0]; + } + /* + * Write the ascii digit. UPC has a special case + * for the first digit, which is out of the bars + */ + if (encoding == UPCA && i==1) { + sprintf(tptr, "0:10:%c ", text[i]); + tptr += strlen(tptr); + ptr1[1] += 'a'-'1'; /* bars are long */ + ptr1[3] += 'a'-'1'; + } else { + sprintf(tptr, "%i:12:%c ", xpos, text[i]); + tptr += strlen(tptr); + } + /* count the width of the symbol */ + xpos += 7; /* width_of_partial(ptr2) */ + } + + strcat(partial, guard[1]); /* middle */ + xpos += width_of_partial(guard[1]); + + /* right part */ + for (i=7;i<13;i++) { + ptr1 = partial + strlen(partial); /* target */ + ptr2 = digits[text[i]-'0']; /* source */ + strcpy(ptr1, ptr2); + /* + * Ascii digit. Once again, UPC has a special + * case for the last digit + */ + if (encoding == UPCA && i==12) { + sprintf(tptr, "%i:10:%c ", xpos+13, text[i]); + tptr += strlen(tptr); + ptr1[0] += 'a'-'1'; /* bars are long */ + ptr1[2] += 'a'-'1'; + } else { + sprintf(tptr, "%i:12:%c ", xpos, text[i]); + tptr += strlen(tptr); + } + xpos += 7; /* width_of_partial(ptr2) */ + } + tptr[-1] = '\0'; /* overwrite last space */ + strcat(partial, guard[2]); /* end */ + xpos += width_of_partial(guard[2]); + + } else if (encoding == UPCE) { + checksum = text[7] - '0'; + + strcpy(partial, guardE[0]); + partial[0] = '9'; /* UPC-A has one digit before the symbol, too */ + xpos = width_of_partial(partial); + + /* UPC-E has the number system written before the bars. */ + sprintf(tptr, "0:10:%c ", text[0]); + tptr += strlen(tptr); + + if (text[0] == '0') + mirror = upc_mirrortab[checksum]; + else + mirror = upc_mirrortab1[checksum]; + + for (i=0;i<6;i++) { + ptr1 = partial + strlen(partial); /* target */ + ptr2 = digits[text[i+1]-'0']; /* source */ + strcpy(ptr1, ptr2); + if (mirror[i] != '1') { /* negated wrt EAN13 */ + /* mirror this */ + ptr1[0] = ptr2[3]; + ptr1[1] = ptr2[2]; + ptr1[2] = ptr2[1]; + ptr1[3] = ptr2[0]; + } + sprintf(tptr, "%i:12:%c ", xpos, text[i+1]); + tptr += strlen(tptr); + xpos += 7; /* width_of_partial(ptr2) */ + } + + sprintf(tptr, "%i:10:%c ", xpos+10, text[7]); + tptr += strlen(tptr); + ptr1[0] += 'a'-'1'; /* bars are long */ + ptr1[2] += 'a'-'1'; + + tptr[-1] = '\0'; /* overwrite last space */ + strcat(partial, guardE[1]); /* end */ + + } else { /* EAN-8 almost identical to EAN-13 but no mirroring */ + + if (len0 != 8) { + checksum = ean_make_checksum(text, 0); + text[7] = '0' + checksum; /* add it to the text */ + text[8] = '\0'; + } + + strcpy(partial, guard[0]); + xpos = width_of_partial(partial); + + /* left part */ + for (i=0;i<4;i++) { + strcpy(partial + strlen(partial), digits[text[i]-'0']); + sprintf(tptr, "%i:12:%c ", xpos, text[i]); + tptr += strlen(tptr); + xpos += 7; /* width_of_partial(digits[text[i]-'0' */ + } + strcat(partial, guard[1]); /* middle */ + xpos += width_of_partial(guard[1]); + + /* right part */ + for (i=4;i<8;i++) { + strcpy(partial + strlen(partial), digits[text[i]-'0']); + sprintf(tptr, "%i:12:%c ", xpos, text[i]); + tptr += strlen(tptr); + xpos += 7; /* width_of_partial(digits[text[i]-'0' */ + } + tptr[-1] = '\0'; /* overwrite last space */ + strcat(partial, guard[2]); /* end */ + } + + /* + * And that's it. Now, in case some add-on is specified it + * must be encoded too. Look for it. + */ + if ( (ptr1 = spc) ) { + ptr1++; + strcpy(text, ptr1); + if (strlen(ptr1)==5) { + checksum = ean_make_checksum(text, 1 /* special way */); + mirror = upc_mirrortab[checksum]+1; /* only last 5 digits */ + } else { + checksum = atoi(text)%4; + mirror = upc_mirrortab2[checksum]; + } + strcat(textinfo, " +"); strcat(partial, "+"); + tptr = textinfo + strlen(textinfo); + for (i=0; ipartial = strdup(partial); + if (!bc->partial) { + bc->error = errno; + return -1; + } + bc->textinfo = strdup(textinfo); + if (!bc->textinfo) { + bc->error = errno; + free(bc->partial); + bc->partial = NULL; + return -1; + } + if (!bc->width) + bc->width = width_of_partial(partial); + + return 0; /* success */ +} + +int Barcode_upc_encode(struct Barcode_Item *bc) +{ + return Barcode_ean_encode(bc); /* UPC is folded into EAN */ +} + +int Barcode_isbn_encode(struct Barcode_Item *bc) +{ + /* For ISBN we must normalize the string and prefix "978" */ + unsigned char *text = malloc(24); /* 13 + ' ' + 5 plus some slack */ + unsigned char *otext; + int i, j, retval; + + if (!text) { + bc->error = ENOMEM; + return -1; + } + strcpy(text, "978"); j=3; + + otext = bc->ascii; + for (i=0; otext[i]; i++) { + if (isdigit(otext[i])) + text[j++] = otext[i]; + if (j == 12) /* checksum added later */ + break; + } + text[j]='\0'; + if (strchr(otext, ' ')) + strcat(text, strchr(otext, ' ')); + bc->ascii = text; + bc->encoding = strdup("ISBN"); + retval = Barcode_ean_encode(bc); + bc->ascii = otext; /* restore ascii for the ps comments */ + free(text); + return retval; +} + diff --git a/barcode-0.98/i25.c b/barcode-0.98/i25.c new file mode 100644 index 00000000..72bd0358 --- /dev/null +++ b/barcode-0.98/i25.c @@ -0,0 +1,164 @@ +/* + * i25.c -- "interleaved 2 of 5" + * + * Copyright (c) 1999,2000 Alessandro Rubini (rubini@gnu.org) + * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + +#include +#include +#include +#include +#include + +#include "barcode.h" + +static char *codes[] = { + "11331", "31113", "13113", "33111", "11313", + "31311", "13311", "11133", "31131", "13131" +}; + +static char *guard[] = {"a1a1", "c1a"}; /* begin end */ + +int Barcode_i25_verify(unsigned char *text) +{ + if (!text[0]) + return -1; + while (*text && isdigit(*text)) + text++; + if (*text) + return -1; /* a non-digit char */ + return 0; /* ok */ +} + +int Barcode_i25_encode(struct Barcode_Item *bc) +{ + unsigned char *text; + unsigned char *partial; /* dynamic */ + unsigned char *textinfo; /* dynamic */ + unsigned char *textptr, *p1, *p2, *pd; + int i, len, sum[2], textpos, usesum = 0; + + if (bc->partial) + free(bc->partial); + if (bc->textinfo) + free(bc->textinfo); + bc->partial = bc->textinfo = NULL; /* safe */ + + if (!bc->encoding) + bc->encoding = strdup("interleaved 2 of 5"); + + text = bc->ascii; + if (!bc->ascii) { + bc->error = EINVAL; + return -1; + } + + if ((bc->flags & BARCODE_NO_CHECKSUM)) usesum = 0; else usesum = 1; + + /* create the real text string, padded to an even number of digits */ + text = malloc(strlen(bc->ascii) + 3); /* leading 0, checksum, term. */ + if (!text) { + bc->error = errno; + return -1; + } + /* add the leading 0 if needed */ + i = strlen(bc->ascii) + usesum; + if (i % 2) { + /* add a leading 0 */ + text[0] = '0'; + strcpy(text+1, bc->ascii); + } else { + strcpy(text, bc->ascii); + } + /* add the trailing checksum if needed, the leading 0 is ignored */ + if (usesum) { + sum[0] = sum[1] = 0; + for (i=0; text[i]; i++) + sum[i%2] += text[i]-'0'; + /* + * The "even" sum must be multiplied by three, and the * + * rightmost digit is defined as "even". The digits' position + * is already correct, whether or not we added a leading zero. + * (e.g., they are in pos. 0..4 or 1..4 of the string) + */ + i = sum[0] * 3 + sum[1]; + strcat(text, "0"); + text[strlen(text)-1] += (10 - (i%10)) % 10; + } + + /* the partial code is 5 * (text + check) + 4(head) + 3(tail) + term. */ + partial = malloc( (strlen(text) + 3) * 5 +2); /* be large... */ + if (!partial) { + bc->error = errno; + free(text); + return -1; + } + + /* the text information is at most "nnn:fff:c " * (strlen+1) +term */ + textinfo = malloc(10*(strlen(text)+1) + 2); + if (!textinfo) { + bc->error = errno; + free(partial); + free(text); + return -1; + } + + + strcpy(partial, "0"); /* the first space */ + strcat(partial, guard[0]); /* start */ + textpos = 4; /* width of initial guard */ + textptr = textinfo; + + len = strlen(text); + for (i=0; ierror = EINVAL; /* impossible if text is verified */ + free(partial); + free(textinfo); + free(text); + return -1; + } + /* interleave two digits */ + p1 = codes[text[i]-'0']; + p2 = codes[text[i+1]-'0']; + pd = partial + strlen(partial); /* destination */ + while (*p1) { + *(pd++) = *(p1++); + *(pd++) = *(p2++); + } + *pd = '\0'; + /* and print the ascii text (but don't print the checksum, if any */ + if (usesum && strlen(text+i)==2) { + /* print only one digit, discard the checksum */ + sprintf(textptr, "%i:12:%c ", textpos, text[i]); + } else { + sprintf(textptr, "%i:12:%c %i:12:%c ", textpos, text[i], + textpos+9, text[i+1]); + } + textpos += 18; /* width of two codes */ + textptr += strlen(textptr); + } + strcat(partial, guard[1]); + + bc->partial = partial; + bc->textinfo = textinfo; + free(text); + + return 0; +} + diff --git a/barcode-0.98/install-sh b/barcode-0.98/install-sh new file mode 100644 index 00000000..ab74c882 --- /dev/null +++ b/barcode-0.98/install-sh @@ -0,0 +1,238 @@ +#!/bin/sh +# +# install - install a program, script, or datafile +# This comes from X11R5. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. +# + + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +tranformbasename="" +transform_arg="" +instcmd="$mvprog" +chmodcmd="$chmodprog 0755" +chowncmd="" +chgrpcmd="" +stripcmd="" +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src="" +dst="" +dir_arg="" + +while [ x"$1" != x ]; do + case $1 in + -c) instcmd="$cpprog" + shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + -s) stripcmd="$stripprog" + shift + continue;; + + -t=*) transformarg=`echo $1 | sed 's/-t=//'` + shift + continue;; + + -b=*) transformbasename=`echo $1 | sed 's/-b=//'` + shift + continue;; + + *) if [ x"$src" = x ] + then + src=$1 + else + # this colon is to work around a 386BSD /bin/sh bug + : + dst=$1 + fi + shift + continue;; + esac +done + +if [ x"$src" = x ] +then + echo "install: no input file specified" + exit 1 +else + true +fi + +if [ x"$dir_arg" != x ]; then + dst=$src + src="" + + if [ -d $dst ]; then + instcmd=: + else + instcmd=mkdir + fi +else + +# Waiting for this to be detected by the "$instcmd $src $dsttmp" command +# might cause directories to be created, which would be especially bad +# if $src (and thus $dsttmp) contains '*'. + + if [ -f $src -o -d $src ] + then + true + else + echo "install: $src does not exist" + exit 1 + fi + + if [ x"$dst" = x ] + then + echo "install: no destination specified" + exit 1 + else + true + fi + +# If destination is a directory, append the input filename; if your system +# does not like double slashes in filenames, you may need to add some logic + + if [ -d $dst ] + then + dst="$dst"/`basename $src` + else + true + fi +fi + +## this sed command emulates the dirname command +dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + +# Make sure that the destination directory exists. +# this part is taken from Noah Friedman's mkinstalldirs script + +# Skip lots of stat calls in the usual case. +if [ ! -d "$dstdir" ]; then +defaultIFS=' +' +IFS="${IFS-${defaultIFS}}" + +oIFS="${IFS}" +# Some sh's can't handle IFS=/ for some reason. +IFS='%' +set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` +IFS="${oIFS}" + +pathcomp='' + +while [ $# -ne 0 ] ; do + pathcomp="${pathcomp}${1}" + shift + + if [ ! -d "${pathcomp}" ] ; + then + $mkdirprog "${pathcomp}" + else + true + fi + + pathcomp="${pathcomp}/" +done +fi + +if [ x"$dir_arg" != x ] +then + $doit $instcmd $dst && + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi +else + +# If we're going to rename the final executable, determine the name now. + + if [ x"$transformarg" = x ] + then + dstfile=`basename $dst` + else + dstfile=`basename $dst $transformbasename | + sed $transformarg`$transformbasename + fi + +# don't allow the sed command to completely eliminate the filename + + if [ x"$dstfile" = x ] + then + dstfile=`basename $dst` + else + true + fi + +# Make a temp file name in the proper directory. + + dsttmp=$dstdir/#inst.$$# + +# Move or copy the file name to the temp name + + $doit $instcmd $src $dsttmp && + + trap "rm -f ${dsttmp}" 0 && + +# and set any options; do chmod last to preserve setuid bits + +# If any of these fail, we abort the whole thing. If we want to +# ignore errors from any of these, just make sure not to ignore +# errors from the above "$doit $instcmd $src $dsttmp" command. + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && + +# Now rename the file to the real destination. + + $doit $rmcmd -f $dstdir/$dstfile && + $doit $mvcmd $dsttmp $dstdir/$dstfile + +fi && + + +exit 0 diff --git a/barcode-0.98/library.c b/barcode-0.98/library.c new file mode 100644 index 00000000..a8787020 --- /dev/null +++ b/barcode-0.98/library.c @@ -0,0 +1,244 @@ +/* + * library.c -- external functions of libbarcode + * + * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org) + * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + +#include +#include +#include +#include +#ifdef HAVE_UNISTD_H /* sometimes (windows, for instance) it's missing */ +# include +#endif +#include + +#include "barcode.h" + +/* + * This function allocates a barcode structure and strdup()s the + * text string. It returns NULL in case of error + */ +struct Barcode_Item *Barcode_Create(char *text) +{ + struct Barcode_Item *bc; + + bc = malloc(sizeof(*bc)); + if (!bc) return NULL; + + memset(bc, 0, sizeof(*bc)); + bc->ascii = strdup(text); + bc->margin = BARCODE_DEFAULT_MARGIN; /* default margin */ + return bc; +} + + +/* + * Free a barcode structure + */ +int Barcode_Delete(struct Barcode_Item *bc) +{ + if (bc->ascii) + free(bc->ascii); + if (bc->partial) + free(bc->partial); + if (bc->textinfo) + free(bc->textinfo); + if (bc->encoding) + free(bc->encoding); + free(bc); + return 0; /* always success */ +} + + +/* + * The various supported encodings. This might be extended to support + * dynamic addition of extra encodings + */ +extern int Barcode_ean_verify(unsigned char *text); +extern int Barcode_ean_encode(struct Barcode_Item *bc); +extern int Barcode_upc_verify(unsigned char *text); +extern int Barcode_upc_encode(struct Barcode_Item *bc); +extern int Barcode_isbn_verify(unsigned char *text); +extern int Barcode_isbn_encode(struct Barcode_Item *bc); +extern int Barcode_39_verify(unsigned char *text); +extern int Barcode_39_encode(struct Barcode_Item *bc); +extern int Barcode_128b_verify(unsigned char *text); +extern int Barcode_128b_encode(struct Barcode_Item *bc); +extern int Barcode_128c_verify(unsigned char *text); +extern int Barcode_128c_encode(struct Barcode_Item *bc); +extern int Barcode_128_verify(unsigned char *text); +extern int Barcode_128_encode(struct Barcode_Item *bc); +extern int Barcode_128raw_verify(unsigned char *text); +extern int Barcode_128raw_encode(struct Barcode_Item *bc); +extern int Barcode_i25_verify(unsigned char *text); +extern int Barcode_i25_encode(struct Barcode_Item *bc); +extern int Barcode_cbr_verify(unsigned char *text); +extern int Barcode_cbr_encode(struct Barcode_Item *bc); +extern int Barcode_msi_verify(unsigned char *text); +extern int Barcode_msi_encode(struct Barcode_Item *bc); +extern int Barcode_pls_verify(unsigned char *text); +extern int Barcode_pls_encode(struct Barcode_Item *bc); +extern int Barcode_93_verify(unsigned char *text); +extern int Barcode_93_encode(struct Barcode_Item *bc); + + +struct encoding { + int type; + int (*verify)(unsigned char *text); + int (*encode)(struct Barcode_Item *bc); +}; + +struct encoding encodings[] = { + {BARCODE_EAN, Barcode_ean_verify, Barcode_ean_encode}, + {BARCODE_UPC, Barcode_upc_verify, Barcode_upc_encode}, + {BARCODE_ISBN, Barcode_isbn_verify, Barcode_isbn_encode}, + {BARCODE_128B, Barcode_128b_verify, Barcode_128b_encode}, + {BARCODE_128C, Barcode_128c_verify, Barcode_128c_encode}, + {BARCODE_128RAW, Barcode_128raw_verify, Barcode_128raw_encode}, + {BARCODE_39, Barcode_39_verify, Barcode_39_encode}, + {BARCODE_I25, Barcode_i25_verify, Barcode_i25_encode}, + {BARCODE_128, Barcode_128_verify, Barcode_128_encode}, + {BARCODE_CBR, Barcode_cbr_verify, Barcode_cbr_encode}, + {BARCODE_PLS, Barcode_pls_verify, Barcode_pls_encode}, + {BARCODE_MSI, Barcode_msi_verify, Barcode_msi_encode}, + {BARCODE_93, Barcode_93_verify, Barcode_93_encode}, + {0, NULL, NULL} +}; + +/* + * A function to encode a string into bc->partial, ready for + * postprocessing to the output file. Meaningful bits for "flags" are + * the encoding mask and the no-checksum flag. These bits + * get saved in the data structure. + */ +int Barcode_Encode(struct Barcode_Item *bc, int flags) +{ + int validbits = BARCODE_ENCODING_MASK | BARCODE_NO_CHECKSUM; + struct encoding *cptr; + + /* If any flag is cleared in "flags", inherit it from "bc->flags" */ + if (!(flags & BARCODE_ENCODING_MASK)) + flags |= bc->flags & BARCODE_ENCODING_MASK; + if (!(flags & BARCODE_NO_CHECKSUM)) + flags |= bc->flags & BARCODE_NO_CHECKSUM; + flags = bc->flags = (flags & validbits) | (bc->flags & ~validbits); + + if (!(flags & BARCODE_ENCODING_MASK)) { + /* get the first code able to handle the text */ + for (cptr = encodings; cptr->verify; cptr++) + if (cptr->verify((unsigned char *)bc->ascii)==0) + break; + if (!cptr->verify) { + bc->error = EINVAL; /* no code can handle this text */ + return -1; + } + flags |= cptr->type; /* this works */ + bc->flags |= cptr->type; + } + for (cptr = encodings; cptr->verify; cptr++) + if (cptr->type == (flags & BARCODE_ENCODING_MASK)) + break; + if (!cptr->verify) { + bc->error = EINVAL; /* invalid barcode type */ + return -1; + } + if (cptr->verify(bc->ascii) != 0) { + bc->error = EINVAL; + return -1; + } + return cptr->encode(bc); +} + + +/* + * When multiple output formats are supported, there will + * be a jumpt table like the one for the types. Now we don't need it + */ +extern int Barcode_ps_print(struct Barcode_Item *bc, FILE *f); +extern int Barcode_pcl_print(struct Barcode_Item *bc, FILE *f); + +/* + * A function to print a partially decoded string. Meaningful bits for + * "flags" are the output mask etc. These bits get saved in the data + * structure. + */ +int Barcode_Print(struct Barcode_Item *bc, FILE *f, int flags) +{ + int validbits = BARCODE_OUTPUT_MASK | BARCODE_NO_ASCII + | BARCODE_OUT_NOHEADERS; + + /* If any flag is clear in "flags", inherit it from "bc->flags" */ + if (!(flags & BARCODE_OUTPUT_MASK)) + flags |= bc->flags & BARCODE_OUTPUT_MASK; + if (!(flags & BARCODE_NO_ASCII)) + flags |= bc->flags & BARCODE_NO_ASCII; + if (!(flags & BARCODE_OUT_NOHEADERS)) + flags |= bc->flags & BARCODE_OUT_NOHEADERS; + flags = bc->flags = (flags & validbits) | (bc->flags & ~validbits); + + if (bc->flags & BARCODE_OUT_PCL) + return Barcode_pcl_print(bc, f); + return Barcode_ps_print(bc, f); +} + +/* + * Choose the position + */ +int Barcode_Position(struct Barcode_Item *bc, int wid, int hei, + int xoff, int yoff, double scalef) +{ + bc->width = wid; bc->height = hei; + bc->xoff = xoff; bc->yoff = yoff; + bc->scalef = scalef; + return 0; +} + +/* + * Do it all in one step + */ +int Barcode_Encode_and_Print(char *text, FILE *f, int wid, int hei, + int xoff, int yoff, int flags) +{ + struct Barcode_Item * bc; + + if (!(bc=Barcode_Create(text))) { + errno = -ENOMEM; + return -1; + } + if ( Barcode_Position(bc, wid, hei, xoff, yoff, 0.0) < 0 + || Barcode_Encode(bc, flags) < 0 + || Barcode_Print(bc, f, flags) < 0) { + errno = bc->error; + Barcode_Delete(bc); + return -1; + } + Barcode_Delete(bc); + return 0; +} + +/* + * Return the version + */ + +int Barcode_Version(char *vptr) +{ + if (vptr) + strcpy(vptr, BARCODE_VERSION); + return BARCODE_VERSION_INT; +} diff --git a/barcode-0.98/main.c b/barcode-0.98/main.c new file mode 100644 index 00000000..e07e4d3c --- /dev/null +++ b/barcode-0.98/main.c @@ -0,0 +1,604 @@ +/* + * main.c - a commandline frontend for the barcode library + * + * Copyright (c) 1999 Michele Comitini (mcm@glisco.it) + * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org) + * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + +#include +#include +#include +#include + +#include "cmdline.h" +#include "barcode.h" + +#ifndef NO_LIBPAPER +#include +#endif + +/* + * Most of this file deals with command line options, by exploiting + * the cmdline.[ch] engine to offer defaults via environment variables + * and handling functions for complex options. + * + * In order to offer a friendly interface (for those who feel the + * cmdline *is* friendly, like me), we have to convert names to enums... + */ + +struct { + char *name; + int type; +} encode_tab[] = { + {"ean", BARCODE_EAN}, + {"ean13", BARCODE_EAN}, + {"ean-13", BARCODE_EAN}, + {"ean8", BARCODE_EAN}, + {"ean-8", BARCODE_EAN}, + {"upc", BARCODE_UPC}, + {"upc-a", BARCODE_UPC}, + {"upc-e", BARCODE_UPC}, + {"isbn", BARCODE_ISBN}, + {"39", BARCODE_39}, + {"code39", BARCODE_39}, + {"128c", BARCODE_128C}, + {"code128c", BARCODE_128C}, + {"128b", BARCODE_128B}, + {"code128b", BARCODE_128B}, + {"128", BARCODE_128}, + {"code128", BARCODE_128}, + {"128raw", BARCODE_128RAW}, + {"i25", BARCODE_I25}, + {"interleaved 2 of 5", BARCODE_I25}, + {"cbr", BARCODE_CBR}, + {"codabar", BARCODE_CBR}, + {"msi", BARCODE_MSI}, + {"pls", BARCODE_PLS}, + {"plessey", BARCODE_PLS}, + {"code93", BARCODE_93}, + {"93", BARCODE_93}, + + {NULL, 0} +}; + +/* + * Get encoding type from string rapresentation. + * Returns -1 on error. + */ +#ifndef HAVE_STRCASECMP /* some libs (windows, for example) have stricmp */ +# define strcasecmp stricmp +#endif + +int encode_id(char *encode_name) +{ + int i; + for (i = 0; encode_tab[i].name; i++) + if (!strcasecmp(encode_tab[i].name, encode_name)) + return encode_tab[i].type; + return -1; +} + +int list_encodes(FILE *f) /* used in the help message */ +{ + int prev = -1; + int i; + + fprintf(f, "Known encodings are (synonyms appear on the same line):"); + for (i = 0; encode_tab[i].name; i++) { + if (encode_tab[i].type != prev) + fprintf(f, "\n\t"); + else + fprintf(f, ", "); + fprintf(f, "\"%s\"", encode_tab[i].name); + prev = encode_tab[i].type; + } + fprintf(f, "\n"); + return 0; +} + + +/* + * Variables to hold cmdline arguments (or defaults) + */ + +char *ifilename, *ofilename; +int encoding_type; /* filled by get_encoding() */ +int code_width, code_height; /* "-g" for standalone codes */ +int lines, columns; /* "-t" for tables */ +int xmargin0, ymargin0; /* both for "-g" and "-t" */ +int xmargin1, ymargin1; /* same, but right and top */ +int ximargin, yimargin; /* "-m": internal margins */ +int eps, pcl, ps, noascii, nochecksum; /* boolean flags */ +int page_wid, page_hei; /* page size in points */ +char *page_name; /* name of the media */ +double unit = 1.0; /* unit specification */ + +char *prgname; /* used to print error msgs, initialized to argv[0] by main */ + +/* + * Functions to handle command line arguments + */ + +struct encode_item { + char *string; + struct encode_item *next; +} *list_head, *list_tail; + +/* each "-b" option adds a string to the input pool allocating its space */ +int get_input_string(void *arg) +{ + struct encode_item *item = malloc(sizeof(*item)); + if (!item) { + fprintf(stderr, "%s: malloc: %s\n", prgname, strerror(errno)); + return -2; + } + item->string = strdup(arg); + if (!list_head) { + list_head = list_tail = item; + } else { + list_tail->next = item; + list_tail = item; + } + item->next = NULL; + return 0; +} + +/* and this function extracts strings from the pool */ +unsigned char *retrieve_input_string(FILE *ifile) +{ + char *string; + static char fileline[128]; + + struct encode_item *item = list_head; + if (list_tail) { /* this means at least one "-b" was specified */ + if (!item) + return NULL; /* the list is empty */ + string = item->string; + list_head = item->next; + free(item); + return string; + } + + /* else, read from the file */ + if (!fgets(fileline, 128, ifile)) + return NULL; + if (fileline[strlen(fileline)-1]=='\n') + fileline[strlen(fileline)-1]= '\0'; + return strdup(fileline); +} + +/* accept a unit specification */ +int get_unit(void *arg) +{ + static struct { + char *str; + double unit; + } *ptr, unittab[] = { + {"pt", 1.0}, + {"in", 72.0}, + {"cm", 72.0/2.54}, + {"mm", 72.0/25.4}, + {NULL, 0.0} + }; + + for (ptr = unittab; ptr->str && strcmp((char *)arg, ptr->str); ptr++) + ; + unit = ptr->unit; + if (ptr->str) return 0; + + fprintf(stderr, "%s: incorrect unit \"%s\" (use one of", + prgname, (char *)arg); + for (ptr = unittab; ptr->str; ptr++) + fprintf(stderr, " \"%s\"", ptr->str); + fprintf(stderr, ")\n"); + return -2; +} + +/* convert an encoding name to an encoding integer code */ +int get_encoding(void *arg) +{ + encoding_type = encode_id((char *)arg); + if (encoding_type >=0) return 0; + fprintf(stderr, "%s: wrong encoding \"%s\"\n", prgname, + (char *)arg); + return -2; /* error, no help */ +} + +/* convert a geometry specification */ +int get_geometry(void *arg) +{ + double w = 0.0, h = 0.0; + double x = 0.0, y = 0.0; + int n; + + if (((char *)arg)[0]=='+') { + n = sscanf((char *)arg, "+%lf+%lf%s", &x, &y, (char *)arg); + } else { + n = sscanf((char *)arg, "%lfx%lf+%lf+%lf%s", &w, &h, &x, &y, + (char *)arg); + } + if (n!=4 && n!=2) { + fprintf(stderr, "%s: wrong geometry \"%s\"\n", prgname, (char *)arg); + return -2; + } + /* convert to points */ + code_width = w * unit; + code_height = h * unit; + xmargin0 = x * unit; + ymargin0 = y * unit; + return 0; +} + +/* convert a geometry specification */ +int get_table(void *arg) +{ + double x0 = 0.0, y0 = 0.0, x1 = 0.0, y1 = 0.0; + int n; + + n = sscanf((char *)arg, "%dx%d+%lf+%lf-%lf-%lf", + &columns, &lines, &x0, &y0, &x1, &y1); + + if (n==1 || n==3) { /* error: 2, 4, 5, 6 are fine */ + fprintf(stderr, "%s: wrong table specification \"%s\"\n", prgname, + (char *)arg); + return -2; + } + if (n < 6) y1 = y0; /* symmetric by default */ + if (n < 5) x1 = x0; + + /* convert and return */ + xmargin0 = x0 * unit; + ymargin0 = y0 * unit; + xmargin1 = x1 * unit; + ymargin1 = y1 * unit; + return 0; +} + +/* convert an internal margin specification */ +int get_margin(void *arg) +{ + char separator; + double x,y; + int n; + + /* accept one number or two, separated by any char */ + n = sscanf((char *)arg, "%lf%c%lf", &x, &separator, &y); + + if (n==1) { + n=3; y = x; + } + if (n==3) { + ximargin = x * unit; + yimargin = y * unit; + return 0; + } + fprintf(stderr, "%s: wrong margin specification \"%s\"\n", prgname, + (char *)arg); + return -2; + return 0; +} + +/* convert a page geometry specification */ +int get_page_geometry(void *arg) +{ + int n; + double dpw, dph; /* page width, height in mm or inches */ + static char tmpstr[20]; + page_name = arg; /* if undecipherable, we won't run the program :) */ + /* + * try to decode a "mm" string (eg. "210mmx297mm" or "210x297mm") + */ + n = sscanf((char *)arg, "%lfmmx%lf", &dpw, &dph); + if (n != 2 && strlen(arg)<20) { + n = sscanf((char *)arg, "%lfx%lf%s", &dpw, &dph, tmpstr); + if (n == 3 && !strcmp(tmpstr, "mm")) { + /* Ok, convert to points: 1in is 25.4mm, 1in is also 72p */ + page_wid = (int)(dpw / 25.4 * 72.0 + 0.5); + page_hei = (int)(dph / 25.4 * 72.0 + 0.5); + return 0; + } + } + + /* + * try to decode an "in" string (eg. "8.5inx11in" or "8.5x11in") + */ + n = sscanf((char *)arg, "%lfinx%lf", &dpw, &dph); + if (n != 2 && strlen(arg)<20) { + n = sscanf((char *)arg, "%lfx%lf%s", &dpw, &dph, tmpstr); + if (n == 3 && !strcmp(tmpstr, "in")) { + page_wid = (int)(dpw * 72.0 + 0.5); /* round to points */ + page_hei = (int)(dph * 72.0 + 0.5); + return 0; + } + } + + /* + * try to decode a numeric specification + */ + n = sscanf((char *)arg, "%lfx%lf", &dpw, &dph); + if (n == 2) { + page_wid = dpw * unit; + page_hei = dph * unit; + if (unit != 1.0) { /* rebuild the page name */ + page_name = malloc(32); /* big, to avoid snprintf, missing on HP */ + if (page_name) + sprintf(page_name, "%dx%d\n", page_wid, page_hei); + } + return 0; + } + +#ifndef NO_LIBPAPER + /* + * try to use libpaper, since it is available + */ + { + const struct paper* paptr; + + paperinit(); + paptr = paperinfo(arg); + if (!paptr) { /* unknown name */ + paperdone(); + return -1; + } + page_wid = (int)(paperpswidth(paptr) + 0.5); + page_hei = (int)(paperpsheight(paptr) + 0.5); + paperdone(); + return 0; + } +#endif + /* If we got here, the argument is undecipherable: fail */ + fprintf(stderr, "%s: wrong page size specification \"%s\"\n", prgname, + (char *)arg); + return -2; +} + +/* + * The table of possible arguments + */ +struct commandline option_table[] = { + {'i', CMDLINE_S, &ifilename, NULL, NULL, NULL, + "input file (strings to encode), default is stdin"}, + {'o', CMDLINE_S, &ofilename, NULL, NULL, NULL, + "output file, default is stdout"}, + {'b', CMDLINE_S, NULL, get_input_string, NULL, NULL, + "string to encode (use input file if missing)"}, + {'e', CMDLINE_S, NULL, get_encoding, "BARCODE_ENCODING", NULL, + "encoding type (default is best fit for first string)"}, + {'u', CMDLINE_S, NULL, get_unit, "BARCODE_UNIT", NULL, + "unit (\"mm\", \"in\", ...) used to decode -g, -t, -p"}, + {'g', CMDLINE_S, NULL, get_geometry, "BARCODE_GEOMETRY", NULL, + "geometry on the page: [x][++]"}, + {'t', CMDLINE_S, NULL, get_table, "BARCODE_TABLE", NULL, + "table geometry: x[++]"}, + {'m', CMDLINE_S, NULL, get_margin, "BARCODE_MARGIN", "10", + "internal margin for each item in a table: [,]"}, + {'n', CMDLINE_NONE, &noascii, NULL, NULL, NULL, + "\"numeric\": avoid printing text along with the bars"}, + {'c', CMDLINE_NONE, &nochecksum, NULL, NULL, NULL, + "no Checksum character, if the chosen encoding allows it"}, + {'E', CMDLINE_NONE, &eps, NULL, NULL, NULL, + "print one code as eps file (default: multi-page ps)"}, + {'P', CMDLINE_NONE, &pcl, NULL, NULL, NULL, + "create PCL output instead of postscript"}, + {'p', CMDLINE_S, NULL, get_page_geometry, NULL, NULL, + "page size (refer to the man page)"}, + {0,} +}; + +#ifdef NO_STRERROR +/* + * A strerror replacement (thanks to Thad Floryan ) + */ +char *strerror(int error) +{ + static char msg[16]; + if (error >= 0 && error < sys_nerr) + return sys_errlist[error]; + sprintf(msg, "Error %d", error); + return msg; +} +#endif + +/* + * The main function + */ +int main(int argc, char **argv) +{ + struct Barcode_Item * bc; + FILE *ifile = stdin; + FILE *ofile = stdout; + char *line; + int flags=0; /* for the library */ + int page, retval; + + prgname = argv[0]; + + /* First of all, accept "--help" and "-h" as a special case */ + if (argc == 2 && (!strcmp(argv[1],"--help") || !strcmp(argv[1],"-h"))) { + commandline_errormsg(stderr, option_table, argv[0], "Options:\n"); + fprintf(stderr,"\n"); + list_encodes(stderr); + exit(1); + } + /* Also, accept "--version" as a special case */ + if (argc == 2 && (!strcmp(argv[1],"--version"))) { + printf("barcode frontend (GNU barcode) " BARCODE_VERSION "\n"); + exit(0); + } + + /* Otherwise, parse the commandline */ + retval = commandline(option_table, argc, argv, "Use: %s [options]\n"); + if (retval) { + if (retval == -1) /* help printed, complete it */ + list_encodes(stderr); + else /* no help printed, suggest it */ + fprintf(stderr, "%s: try \"%s --help\"\n", prgname, prgname); + exit(1); + } + + /* If no paper size has been specified, use the default, if any */ + if (!page_name) { + page_wid = 595; page_hei = 842; + page_name = "A4"; /* I live in Europe :) */ +#ifndef NO_LIBPAPER + get_page_geometry(systempapername()); /* or the system default */ +#endif + } + + /* FIXME: print warnings for incompatible options */ + + /* open the input stream if specified */ + if (ifilename) + ifile = fopen(ifilename,"r"); + if (!ifile) { + fprintf(stderr, "%s: %s: %s\n", argv[0], ifilename, + strerror(errno)); + exit(1); + } + + /* open the output stream if specified */ + if (ofilename) + ofile = fopen(ofilename,"w"); + if (!ofile) { + fprintf(stderr, "%s: %s: %s\n", argv[0], ofilename, + strerror(errno)); + exit(1); + } + + if (encoding_type < 0) { /* unknown type specified */ + fprintf(stderr,"%s: Unknown endoding. Try \"%s --help\"\n", + argv[0], argv[0]); + exit(1); + } + flags |= encoding_type; + if (pcl) { + flags |= BARCODE_OUT_PCL; + } else { + ps = !eps; /* a shortcut */ + if (eps) + flags |= BARCODE_OUT_EPS; /* print headers too */ + else + flags |= BARCODE_OUT_PS | BARCODE_OUT_NOHEADERS; + } + if (noascii) + flags |= BARCODE_NO_ASCII; + if (nochecksum) + flags |= BARCODE_NO_CHECKSUM; + + /* the table is not available in eps mode */ + if (eps && (lines>1 || columns>1)) { + fprintf(stderr, "%s: can't print tables in EPS format\n",argv[0]); + exit(1); + } + + if (ps) { /* The header is independent of single/table mode */ + /* Headers. Don't let the library do it, we may need multi-page */ + fprintf(ofile, "%%!PS-Adobe-2.0\n"); + /* It would be nice to know the bounding box. Leave it alone */ + fprintf(ofile, "%%%%Creator: \"barcode\", " + "libbarcode sample frontend\n"); + if (page_name) + fprintf(ofile, "%%%%DocumentPaperSizes: %s\n", page_name); + fprintf(ofile, "%%%%EndComments\n"); + fprintf(ofile, "%%%%EndProlog\n\n"); + } + + /* + * Here we are, ready to work. Handle the one-per-page case first, + * as it is shorter. + */ + if (!lines && !columns) { + page = 0; + while ( (line = retrieve_input_string(ifile)) ) { + page++; + if (ps) { + fprintf(ofile, "%%%%Page: %i %i\n\n",page,page); + } + if (Barcode_Encode_and_Print(line, ofile, code_width, code_height, + xmargin0, ymargin0, flags) < 0) { + fprintf(stderr, "%s: can't encode \"%s\"\n", argv[0], line); + } + if (eps) break; /* if output is eps, do it once only */ + if (ps) fprintf(ofile, "showpage\n"); + if (pcl) fprintf(ofile, "\f"); + } + /* no more lines, print footers */ + if (ps) { + fprintf(ofile, "%%%%Trailer\n\n"); + } + } else { + + /* table mode, the header has been already printed */ + + int xstep = (page_wid - xmargin0 - xmargin1)/columns; + int ystep = (page_hei - ymargin0 - ymargin1)/lines; + int x = columns, y = -1; /* position in the table, start off-page */ + + if (!ximargin) ximargin = BARCODE_DEFAULT_MARGIN; + if (!yimargin) yimargin = BARCODE_DEFAULT_MARGIN; + /* Assign default size unless -g did it (Joachim Reichelt) */ + if ( !code_width && !code_height) { + code_width = xstep - 2*ximargin; + code_height = ystep - 2*yimargin; + } + + page=0; + while ( (line = retrieve_input_string(ifile)) ) { + x++; /* fit x and y */ + if (x >= columns) { + x=0; y--; + if (y<0) { + y = lines-1; page++; + /* flush page */ + if (ps && page > 1) fprintf(ofile, "showpage\n"); + if (pcl && page > 1) fprintf(ofile, "\f"); + /* new page */ + if (ps) fprintf(ofile, "%%%%Page: %i %i\n\n",page,page); + } + } + + /* + * Create a barcode item. This allows to set the margin to 0, as + * we have [xy]imargin to use. But don't use Encode_and_Print(), + * unroll it here instead + */ + bc = Barcode_Create(line); + if (!bc) { + fprintf(stderr, "%s: Barcode_Create(): %s\n", argv[0], + strerror(errno)); + exit(1); + } + bc->margin = 0; + if ( (Barcode_Position(bc, code_width, code_height, + xmargin0 + ximargin + x * xstep, + ymargin0 + yimargin + y * ystep, 0.0) < 0) + || (Barcode_Encode(bc, flags) < 0) + || (Barcode_Print(bc, ofile, flags) < 0) ) { + fprintf(stderr, "%s: can't encode \"%s\": %s\n", argv[0], + line, strerror(bc->error)); + } + Barcode_Delete(bc); + } + if (ps) fprintf(ofile, "showpage\n\n%%%%Trailer\n\n"); + if (pcl) fprintf(ofile, "\f"); + } + return 0; +} + + + diff --git a/barcode-0.98/missing b/barcode-0.98/missing new file mode 100755 index 00000000..d46f79f6 --- /dev/null +++ b/barcode-0.98/missing @@ -0,0 +1,198 @@ +#! /bin/sh +# Common stub for a few missing GNU programs while installing. +# Copyright (C) 1996, 1997, 2001 Free Software Foundation, Inc. +# Franc,ois Pinard , 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +if test $# -eq 0; then + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 +fi + +# In the cases where this matters, `missing' is being run in the +# srcdir already. +if test -f configure.in; then + configure_ac=configure.ac +else + configure_ac=configure.in +fi + +case "$1" in + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + +Supported PROGRAM values: + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + automake touch all \`Makefile.in' files + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + yacc create \`y.tab.[ch]', if possible, from existing .[ch]" + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing - GNU libit 0.0" + ;; + + -*) + echo 1>&2 "$0: Unknown \`$1' option" + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 + ;; + + aclocal) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`acinclude.m4' or \`$configure_ac'. You might want + to install the \`Automake' and \`Perl' packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`$configure_ac'. You might want to install the + \`Autoconf' and \`GNU m4' packages. Grab them from any GNU + archive site." + touch configure + ;; + + autoheader) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`acconfig.h' or \`$configure_ac'. You might want + to install the \`Autoconf' and \`GNU m4' packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' $configure_ac` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case "$f" in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files + ;; + + automake) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`$configure_ac'. + You might want to install the \`Automake' and \`Perl' packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done + ;; + + bison|yacc) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified a \`.y' file. You may need the \`Bison' package + in order for those modifications to take effect. You can get + \`Bison' from any GNU archive site." + rm -f y.tab.c y.tab.h + if [ $# -ne 1 ]; then + eval LASTARG="\${$#}" + case "$LASTARG" in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if [ ! -f y.tab.h ]; then + echo >y.tab.h + fi + if [ ! -f y.tab.c ]; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex|flex) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified a \`.l' file. You may need the \`Flex' package + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c + if [ $# -ne 1 ]; then + eval LASTARG="\${$#}" + case "$LASTARG" in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if [ ! -f lex.yy.c ]; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + makeinfo) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified a \`.texi' or \`.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy \`make' (AIX, + DU, IRIX). You might want to install the \`Texinfo' package or + the \`GNU make' package. Grab either from any GNU archive site." + file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` + if test -z "$file"; then + file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` + fi + touch $file + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and you do not seem to have it handy on your + system. You might have modified some files without having the + proper tools for further handling them. Check the \`README' file, + it often tells you about the needed prerequirements for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing \`$1' program." + exit 1 + ;; +esac + +exit 0 diff --git a/barcode-0.98/mkinstalldirs b/barcode-0.98/mkinstalldirs new file mode 100755 index 00000000..6b3b5fc5 --- /dev/null +++ b/barcode-0.98/mkinstalldirs @@ -0,0 +1,40 @@ +#! /bin/sh +# mkinstalldirs --- make directory hierarchy +# Author: Noah Friedman +# Created: 1993-05-16 +# Public domain + +# $Id$ + +errstatus=0 + +for file +do + set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` + shift + + pathcomp= + for d + do + pathcomp="$pathcomp$d" + case "$pathcomp" in + -* ) pathcomp=./$pathcomp ;; + esac + + if test ! -d "$pathcomp"; then + echo "mkdir $pathcomp" + + mkdir "$pathcomp" || lasterr=$? + + if test ! -d "$pathcomp"; then + errstatus=$lasterr + fi + fi + + pathcomp="$pathcomp/" + done +done + +exit $errstatus + +# mkinstalldirs ends here diff --git a/barcode-0.98/msi.c b/barcode-0.98/msi.c new file mode 100644 index 00000000..77a373b2 --- /dev/null +++ b/barcode-0.98/msi.c @@ -0,0 +1,155 @@ +/* + * msi.c -- encoding for MSI-Plessey + * + * Copyright (c) 2000 Leonid A. Broukhis (leob@mailcom.com) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + +#include +#include +#include +#include +#include + +#include "barcode.h" + + +/* Patterns */ +static char *patterns[] = { "13", "31" }; + +static char *fillers[] = { "031", "131" }; + +static int width = 16 /* each character uses 4 patterns */, + startpos = 6 /* length of the first filler */; + +/* + * Check that the text can be encoded. Returns 0 or -1. + */ +int Barcode_msi_verify(unsigned char *text) +{ + int i; + + if (!strlen(text)) + return -1; + for (i=0; text[i]; i++) { + if (!isdigit(text[i])) + return -1; + } + return 0; +} + +static int add_one(char *ptr, int code) +{ + sprintf(ptr, "%s%s%s%s", + patterns[(code >> 3) & 1], + patterns[(code >> 2) & 1], + patterns[(code >> 1) & 1], + patterns[code & 1]); + return 0; +} + +/* + * The encoding functions fills the "partial" and "textinfo" fields. + * Lowercase chars are converted to uppercase + */ +int Barcode_msi_encode(struct Barcode_Item *bc) +{ + static char *text; + static char *partial; /* dynamic */ + static char *textinfo; /* dynamic */ + char *ptr, *textptr; + int i, code, textpos, usesum, checksum = 0; + + if (bc->partial) + free(bc->partial); + if (bc->textinfo) + free(bc->textinfo); + bc->partial = bc->textinfo = NULL; /* safe */ + + if (!bc->encoding) + bc->encoding = strdup("msi"); + + if ((bc->flags & BARCODE_NO_CHECKSUM)) + usesum = 0; + else + usesum = 1; + + text = bc->ascii; + + /* the partial code is head + 8 * (text + check) + tail + margin + term. */ + partial = malloc( 3 + 8 * (strlen(text) + 1) + 3 + 2 ); + if (!partial) { + bc->error = errno; + return -1; + } + + /* the text information is at most "nnn:fff:c " * strlen +term */ + textinfo = malloc(10*strlen(text) + 2); + if (!textinfo) { + bc->error = errno; + free(partial); + return -1; + } + + strcpy(partial, fillers[0]); + ptr = partial + strlen(partial); + textptr = textinfo; + textpos = startpos; + + for (i=0; ipartial = partial; + bc->textinfo = textinfo; + + return 0; +} diff --git a/barcode-0.98/pcl.c b/barcode-0.98/pcl.c new file mode 100644 index 00000000..d5ec097a --- /dev/null +++ b/barcode-0.98/pcl.c @@ -0,0 +1,200 @@ +/* + * pcl.c -- printing the "partial" bar encoding in PCL format + * + * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org) + * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it) + * Copyright (c) 2001 Andrea Scopece (a.scopece@tin.it) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + +#include +#include +#include +#include +#include + +#include "barcode.h" + +#define SHRINK_AMOUNT 0.15 /* shrink the bars to account for ink spreading */ + + +/* + * How do the "partial" and "textinfo" strings work? See file "ps.c" + */ + + +int Barcode_pcl_print(struct Barcode_Item *bc, FILE *f) +{ + int i, j, k, barlen; + double f1, f2, fsav=0; + int mode = '-'; /* text below bars */ + double scalef=1, xpos, x0, y0, yr; + unsigned char *ptr; + unsigned char c; + + char font_id[6]; /* default font, should be "scalable" */ + /* 0 Line printer, use on older LJet II, isn't scalable */ + /* 4148 Univers, use on LJet III series, and Lj 4L, 5L */ + /* 16602 Arial, default LJ family 4, 5, 6, Color, Djet */ + + if (!bc->partial || !bc->textinfo) { + bc->error = EINVAL; + return -1; + } + + /* + * Maybe this first part can be made common to several printing back-ends, + * we'll see how that works when other ouput engines are added + */ + + /* First, calculate barlen */ + barlen = bc->partial[0] - '0'; + for (ptr = bc->partial+1; *ptr; ptr++) + if (isdigit(*ptr)) + barlen += (*ptr - '0'); + else if (islower(*ptr)) + barlen += (*ptr - 'a'+1); + + /* The scale factor depends on bar length */ + if (!bc->scalef) { + if (!bc->width) bc->width = barlen; /* default */ + scalef = bc->scalef = (double)bc->width / (double)barlen; + } + + /* The width defaults to "just enough" */ + if (!bc->width) bc->width = barlen * scalef +1; + + /* But it can be too small, in this case enlarge and center the area */ + if (bc->width < barlen * scalef) { + int wid = barlen * scalef + 1; + bc->xoff -= (wid - bc->width)/2 ; + bc->width = wid; + /* Can't extend too far on the left */ + if (bc->xoff < 0) { + bc->width += -bc->xoff; + bc->xoff = 0; + } + } + + /* The height defaults to 80 points (rescaled) */ + if (!bc->height) bc->height = 80 * scalef; + +#if 0 + /* If too small (5 + text), enlarge and center */ + i = 5 + 10 * ((bc->flags & BARCODE_NO_ASCII)==0); + if (bc->height < i * scalef ) { + int hei = i * scalef; + bc->yoff -= (hei-bc->height)/2; + bc->height = hei; + if (bc->yoff < 0) { + bc->height += -bc->yoff; + bc->yoff = 0; + } + } +#else + /* If too small (5 + text), reduce the scale factor and center */ + i = 5 + 10 * ((bc->flags & BARCODE_NO_ASCII)==0); + if (bc->height < i * scalef ) { + double scaleg = ((double)bc->height) / i; + int wid = bc->width * scaleg / scalef; + bc->xoff += (bc->width - wid)/2; + bc->width = wid; + scalef = scaleg; + } +#endif + + /* + * deal with PCL output + */ + + xpos = bc->margin + (bc->partial[0]-'0') * scalef; + for (ptr = bc->partial+1, i=1; *ptr; ptr++, i++) { + /* special cases: '+' and '-' */ + if (*ptr == '+' || *ptr == '-') { + mode = *ptr; /* don't count it */ i++; continue; + } + + /* j is the width of this bar/space */ + if (isdigit (*ptr)) j = *ptr-'0'; + else j = *ptr-'a'+1; + if (i%2) { /* bar */ + x0 = bc->xoff + xpos; + y0 = bc->yoff + bc->margin; + yr = bc->height; + if (!(bc->flags & BARCODE_NO_ASCII)) { /* leave space for text */ + if (mode == '-') { + /* text below bars: 10 points or five points */ + yr -= (isdigit(*ptr) ? 10 : 5) * scalef; + } else { /* '+' */ + /* text above bars: 10 or 0 from bottom, and 10 from top */ + y0 += (isdigit(*ptr) ? 10 : 0) * scalef; + yr -= (isdigit(*ptr) ? 20 : 10) * scalef; + } + } + + fprintf(f,"%c&a%.0fH", 27, x0 * 10.0); + fprintf(f,"%c&a%.0fV", 27, y0 * 10.0); + fprintf(f,"%c*c%.0fH", 27, ((j*scalef)-SHRINK_AMOUNT) * 10.0); + fprintf(f,"%c*c%.0fV", 27, yr * 10.0); + fprintf(f,"%c*c0P\n", 27); + } + xpos += j * scalef; + } + + /* the text */ + + mode = '-'; /* reinstantiate default */ + if (!(bc->flags & BARCODE_NO_ASCII)) { + k=0; /* k is the "previous font size" */ + for (ptr = bc->textinfo; ptr; ptr = strchr(ptr, ' ')) { + while (*ptr == ' ') ptr++; + if (!*ptr) break; + if (*ptr == '+' || *ptr == '-') { + mode = *ptr; continue; + } + if (sscanf(ptr, "%lf:%lf:%c", &f1, &f2, &c) != 3) { + fprintf(stderr, "barcode: impossible data: %s\n", ptr); + continue; + } + + /* select a Scalable Font */ + + if (fsav != f2) + { + if ((bc->flags & BARCODE_OUT_PCL_III) == BARCODE_OUT_PCL_III) + { strcpy(font_id, "4148"); /* font Univers */ + } + else + { strcpy(font_id, "16602"); /* font Arial */ + } + + fprintf(f,"%c(8U%c(s1p%5.2fv0s0b%sT", 27, 27, f2 * scalef, font_id); + } + fsav = f2; + + fprintf(f,"%c&a%.0fH", 27, (bc->xoff + f1 * scalef + bc->margin) * 10.0); + fprintf(f,"%c&a%.0fV", 27, + mode != '-' + ? ((double)bc->yoff + bc->margin + 8*scalef) * 10.0 + : ((double)bc->yoff + bc->margin + bc->height ) * 10.0); + + fprintf(f, "%c", c); + } + + } + + return 0; +} diff --git a/barcode-0.98/plessey.c b/barcode-0.98/plessey.c new file mode 100644 index 00000000..ec471005 --- /dev/null +++ b/barcode-0.98/plessey.c @@ -0,0 +1,164 @@ +/* + * plessey.c -- encoding for Plessey + * + * Copyright (c) 2000 Leonid A. Broukhis (leob@mailcom.com) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + +#include +#include +#include +#include +#include + +#include "barcode.h" + +static char * patterns[] = { "13", "31" }; + +/* this is ordered in decades to simplify encoding */ +static char alphabet[] = + "0123456789" "ABCDEF"; + +/* stop sequence may be 231311313 (barcodemill.com) */ +static char *fillers[] = { "031311331", "331311313" }; + +static int width = 16, startpos = 16; + +/* + * Check that the text can be encoded. Returns 0 or -1. + * If it's all lowecase convert to uppercase and accept it + */ +int Barcode_pls_verify(unsigned char *text) +{ + int i, upper = 0, lower = 0; + + if (!strlen(text)) + return -1; + for (i=0; text[i]; i++) { + if (!strchr(alphabet,toupper(text[i]))) + return -1; + if (isupper(text[i])) upper++; + if (islower(text[i])) lower++; + } + if (upper && lower) + return -1; + return 0; +} + +static int add_one(char *ptr, int code) +{ + sprintf(ptr, "%s%s%s%s", + patterns[code & 1], + patterns[(code >> 1) & 1], + patterns[(code >> 2) & 1], + patterns[(code >> 3) & 1] + ); + return 0; +} + +/* + * The encoding functions fills the "partial" and "textinfo" fields. + * Lowercase chars are converted to uppercase + */ +int Barcode_pls_encode(struct Barcode_Item *bc) +{ + static char *text; + static char *partial; /* dynamic */ + static char *textinfo; /* dynamic */ + char *c, *ptr, *textptr; + unsigned char *checkptr; + int i, code, textpos; + static char check[9] = {1,1,1,1,0,1,0,0,1}; + if (bc->partial) + free(bc->partial); + if (bc->textinfo) + free(bc->textinfo); + bc->partial = bc->textinfo = NULL; /* safe */ + + if (!bc->encoding) + bc->encoding = strdup("plessey"); + + text = bc->ascii; + if (!text) { + bc->error = EINVAL; + return -1; + } + /* the partial code is 8 * (head + text + check + tail) + margin + term. */ + partial = malloc( (strlen(text) + 4) * 8 + 3); + checkptr = calloc (1, strlen(text) * 4 + 8); + + if (!partial || !checkptr) { + if (partial) free(partial); + if (checkptr) free(checkptr); + bc->error = errno; + return -1; + } + + /* the text information is at most "nnn:fff:c " * strlen +term */ + textinfo = malloc(10*strlen(text) + 2); + if (!textinfo) { + bc->error = errno; + free(partial); + return -1; + } + + strcpy(partial, fillers[0]); + ptr = partial + strlen(partial); + textptr = textinfo; + textpos = startpos; + + for (i=0; ierror = EINVAL; /* impossible if text is verified */ + free(partial); + free(textinfo); + return -1; + } + code = c - alphabet; + add_one(ptr, code); + sprintf(textptr, "%i:12:%c ", textpos, toupper(text[i])); + + textpos += width; /* width of each code */ + textptr += strlen(textptr); + ptr += strlen(ptr); + checkptr[4*i] = code & 1; + checkptr[4*i+1] = (code >> 1) & 1; + checkptr[4*i+2] = (code >> 2) & 1; + checkptr[4*i+3] = (code >> 3) & 1; + } + /* The CRC checksum is required */ + for (i=0; i < 4*strlen(text); i++) { + int j; + if (checkptr[i]) + for (j = 0; j < 9; j++) + checkptr[i+j] ^= check[j]; + } + for (i = 0; i < 8; i++) { + sprintf(ptr, patterns[checkptr[strlen(text) * 4 + i]]); + ptr += 2; + } + fprintf(stderr, "CRC: "); + for (i = 0; i < 8; i++) { + fputc('0' + checkptr[strlen(text) * 4 + i], stderr); + } + fputc('\n', stderr); + strcpy(ptr, fillers[1]); + bc->partial = partial; + bc->textinfo = textinfo; + + return 0; +} diff --git a/barcode-0.98/ps.c b/barcode-0.98/ps.c new file mode 100644 index 00000000..35917517 --- /dev/null +++ b/barcode-0.98/ps.c @@ -0,0 +1,272 @@ +/* + * ps.c -- printing the "partial" bar encoding + * + * Copyright (c) 1999 Alessandro Rubini (rubini@gnu.org) + * Copyright (c) 1999 Prosa Srl. (prosa@prosa.it) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + +#include +#include +#include +#include +#include + +#include "barcode.h" + +#define SHRINK_AMOUNT 0.15 /* shrink the bars to account for ink spreading */ + + +/* + * How do the "partial" and "textinfo" strings work? + * + * The first char in "partial" tells how much extra space to add to the + * left of the bars. For EAN-13, it is used to leave space to print the + * first digit, other codes may have '0' for no-extra-space-needed. + * + * The next characters are alternating bars and spaces, as multiples + * of the base dimension which is 1 unless the code is + * rescaled. Rescaling is calculated as the ratio from the requested + * width and the calculated width. Digits represent bar/space + * dimensions. Lower-case letters represent those bars that should + * extend lower than the others: 'a' is equivalent to '1', 'b' is '2' and + * so on. + * + * The "textinfo" string is made up of fields "%lf:%lf:%c" separated by + * blank space. The first integer is the x position of the character, + * the second is the font size (before rescaling) and the char item is + * the charcter to be printed. + * + * Both the "partial" and "textinfo" strings may include "-" or "+" as + * special characters (in "textinfo" the char should be a standalone + * word). They state where the text should be printed: below the bars + * ("-", default) or above the bars. This is used, for example, to + * print the add-5 and add-2 codes to the right of UPC or EAN codes + * (the add-5 extension is mostly used in ISBN codes. + */ + + +int Barcode_ps_print(struct Barcode_Item *bc, FILE *f) +{ + int i, j, k, barlen, printable=1; + double f1, f2, fsav=0; + int mode = '-'; /* text below bars */ + double scalef=1, xpos, x0, y0, yr; + unsigned char *ptr; + unsigned char c; + + if (!bc->partial || !bc->textinfo) { + bc->error = EINVAL; + return -1; + } + + + /* + * Maybe this first part can be made common to several printing back-ends, + * we'll see how that works when other ouput engines are added + */ + + /* First, calculate barlen */ + barlen = bc->partial[0] - '0'; + for (ptr = bc->partial+1; *ptr; ptr++) + if (isdigit(*ptr)) + barlen += (*ptr - '0'); + else if (islower(*ptr)) + barlen += (*ptr - 'a'+1); + + /* The scale factor depends on bar length */ + if (!bc->scalef) { + if (!bc->width) bc->width = barlen; /* default */ + scalef = bc->scalef = (double)bc->width / (double)barlen; + } + + /* The width defaults to "just enough" */ + if (!bc->width) bc->width = barlen * scalef +1; + + /* But it can be too small, in this case enlarge and center the area */ + if (bc->width < barlen * scalef) { + int wid = barlen * scalef + 1; + bc->xoff -= (wid - bc->width)/2 ; + bc->width = wid; + /* Can't extend too far on the left */ + if (bc->xoff < 0) { + bc->width += -bc->xoff; + bc->xoff = 0; + } + } + + /* The height defaults to 80 points (rescaled) */ + if (!bc->height) bc->height = 80 * scalef; + +#if 0 + /* If too small (5 + text), enlarge and center */ + i = 5 + 10 * ((bc->flags & BARCODE_NO_ASCII)==0); + if (bc->height < i * scalef ) { + int hei = i * scalef; + bc->yoff -= (hei-bc->height)/2; + bc->height = hei; + if (bc->yoff < 0) { + bc->height += -bc->yoff; + bc->yoff = 0; + } + } +#else + /* If too small (5 + text), reduce the scale factor and center */ + i = 5 + 10 * ((bc->flags & BARCODE_NO_ASCII)==0); + if (bc->height < i * scalef ) { + double scaleg = ((double)bc->height) / i; + int wid = bc->width * scaleg / scalef; + bc->xoff += (bc->width - wid)/2; + bc->width = wid; + scalef = scaleg; + } +#endif + + /* + * Ok, then deal with actual ps (eps) output + */ + + if (!(bc->flags & BARCODE_OUT_NOHEADERS)) { /* spit a header first */ + if (bc->flags & BARCODE_OUT_EPS) + fprintf(f, "%%!PS-Adobe-2.0 EPSF-1.2\n"); + else + fprintf(f, "%%!PS-Adobe-2.0\n"); + fprintf(f, "%%%%Creator: libbarcode\n"); + if (bc->flags & BARCODE_OUT_EPS) { + fprintf(f, "%%%%BoundingBox: %i %i %i %i\n", + bc->xoff, + bc->yoff, + bc->xoff + bc->width + 2* bc->margin, + bc->yoff + bc->height + 2* bc->margin); + } + fprintf(f, "%%%%EndComments\n"); + if (bc->flags & BARCODE_OUT_PS) { + fprintf(f, "%%%%EndProlog\n\n"); + fprintf(f, "%%%%Page: 1 1\n\n"); + } + } + + /* Print some informative comments */ + for (i=0; bc->ascii[i]; i++) + if (bc->ascii[i] < ' ') + printable = 0; + + fprintf(f,"%% Printing barcode for \"%s\", scaled %5.2f", + printable ? bc->ascii : "", scalef); + if (bc->encoding) + fprintf(f,", encoded using \"%s\"",bc->encoding); + fprintf(f, "\n"); + fprintf(f,"%% The space/bar succession is represented " + "by the following widths (space first):\n" + "%% "); + for (i=0; ipartial); i++) { + unsigned char c = bc->partial[i]; + if (isdigit(c)) putc(c, f); + if (islower(c)) putc(c-'a'+'1', f); + if (isupper(c)) putc(c-'A'+'1', f); + } + /* open array for "forall" */ + fprintf(f, "\n[\n%% height xpos ypos width" + " height xpos ypos width\n"); + + xpos = bc->margin + (bc->partial[0]-'0') * scalef; + for (ptr = bc->partial+1, i=1; *ptr; ptr++, i++) { + /* special cases: '+' and '-' */ + if (*ptr == '+' || *ptr == '-') { + mode = *ptr; /* don't count it */ i++; continue; + } + /* j is the width of this bar/space */ + if (isdigit (*ptr)) j = *ptr-'0'; + else j = *ptr-'a'+1; + if (i%2) { /* bar */ + x0 = bc->xoff + xpos + (j*scalef)/2; + y0 = bc->yoff + bc->margin; + yr = bc->height; + if (!(bc->flags & BARCODE_NO_ASCII)) { /* leave space for text */ + if (mode == '-') { + /* text below bars: 10 points or five points */ + y0 += (isdigit(*ptr) ? 10 : 5) * scalef; + yr -= (isdigit(*ptr) ? 10 : 5) * scalef; + } else { /* '+' */ + /* text above bars: 10 or 0 from bottom, and 10 from top */ + y0 += (isdigit(*ptr) ? 10 : 0) * scalef; + yr -= (isdigit(*ptr) ? 20 : 10) * scalef; + } + } + /* Define an array and then use "forall" (Hans Schou) */ + fprintf(f," [%5.2f %6.2f %6.2f %5.2f]%s", + yr, x0, y0, (j * scalef) - SHRINK_AMOUNT, + i%4 == 1 ? " " : "\n"); + } + xpos += j * scalef; + } + fprintf(f,"\n]\t{ {} forall setlinewidth moveto 0 exch rlineto stroke} " + "bind forall\n"); + + /* Then, the text */ + + mode = '-'; /* reinstantiate default */ + if (!(bc->flags & BARCODE_NO_ASCII)) { + fprintf(f, "[\n%% char xpos ypos fontsize\n"); + k=0; /* k is the "previous font size" */ + for (ptr = bc->textinfo; ptr; ptr = strchr(ptr, ' ')) { + while (*ptr == ' ') ptr++; + if (!*ptr) break; + if (*ptr == '+' || *ptr == '-') { + mode = *ptr; continue; + } + if (sscanf(ptr, "%lf:%lf:%c", &f1, &f2, &c) != 3) { + fprintf(stderr, "barcode: impossible data: %s\n", ptr); + continue; + } + + fprintf(f, " [("); + /* Both the backslash and the two parens are special */ + if (c=='\\' || c==')' || c=='(') + fprintf(f, "\\%c) ", c); + else + fprintf(f, "%c) ", c); + fprintf(f, "%6.2f %6.2f %5.2f]\n", + bc->xoff + f1 * scalef + bc->margin, + mode == '-' + ? (double)bc->yoff + bc->margin + : (double)bc->yoff + bc->margin+bc->height - 8*scalef, + fsav == f2 ? 0.0 : f2 * scalef); + fsav = f2; + } + fprintf(f,"] { {} forall dup 0.00 ne {\n\t" + "/Helvetica findfont exch scalefont setfont\n" + " } {pop} ifelse\n" + " moveto show} bind forall\n"); + + + } + + fprintf(f,"%% End barcode for \"%s\"\n\n", + printable ? bc->ascii : ""); + + if (!(bc->flags & BARCODE_OUT_NOHEADERS)) { + if (bc->flags & BARCODE_OUT_PS) { + fprintf(f,"showpage\n"); + fprintf(f, "%%%%Trailer\n\n"); + } + } + return 0; +} + + + + diff --git a/barcode-0.98/sample.c b/barcode-0.98/sample.c new file mode 100644 index 00000000..46e62058 --- /dev/null +++ b/barcode-0.98/sample.c @@ -0,0 +1,98 @@ +#include +#include + +#include "barcode.h" + +int main(int argc, char **argv) +{ + int ps = 1, pcl = 0, oflags; + if (argc == 2 && !strcmp(argv[1],"-P")) { + ps = 0; pcl = 1; argc=1; + } + if (argc>2) { + fprintf(stderr, "%s: use \"%s\" for postscript or \"%s -P\" for PCL\n", + argv[0], argv[0], argv[0]); + exit(1); + } + if (pcl) { + oflags = BARCODE_OUT_PCL; + } else { + oflags = BARCODE_OUT_PS | BARCODE_OUT_NOHEADERS; + printf("%%!PS-Adobe-2.0\n"); + printf("%%%%Creator: barcode sample program\n"); + printf("%%%%EndComments\n"); + printf("%%%%EndProlog\n\n"); + printf("%%%%Page: 1 1\n\n"); + } + /* Print a few barcodes in several places in the page */ + + /* default size, bottom left */ + Barcode_Encode_and_Print("800894002700",stdout, 0, 0, 40, 40, + BARCODE_EAN | oflags); + + /* smaller */ + Barcode_Encode_and_Print("800894002700",stdout, 70, 50, 160, 55, + BARCODE_EAN | oflags); + + /* smallest */ + Barcode_Encode_and_Print("800894002700",stdout, 40, 30, 270, 70, + BARCODE_EAN | oflags); + + /* A bigger all-0 */ + Barcode_Encode_and_Print("000000000000",stdout, 170, 0, 40, 160, + BARCODE_EAN | oflags); + + /* Still bigger all-0 (but UPC, this time) */ + Barcode_Encode_and_Print("00000000000",stdout, 250, 0, 270, 160, + BARCODE_UPC | oflags); + + /* A few code-39 ones */ + Barcode_Encode_and_Print("silly code",stdout, 0, 0, 40, 320, + BARCODE_39 | oflags); + Barcode_Encode_and_Print("SAMPLE CODES",stdout, 100, 30, 400, 80, + BARCODE_39 | oflags); + + /* ISBN with add-5 */ + Barcode_Encode_and_Print("1-56592-292-1 90000",stdout, 0, 0, 40, 430, + BARCODE_ISBN | oflags); + + /* UPC with add-2 */ + Barcode_Encode_and_Print("07447084452 07",stdout, 0, 0, 300, 410, + BARCODE_UPC | oflags); + + /* code 128-C */ + Barcode_Encode_and_Print("12345678900123456789",stdout, 0, 0, 40, 530, + BARCODE_128C | oflags); + + /* and my data as code-128B autodetected */ + Barcode_Encode_and_Print("RBNLSN68T11E897W",stdout, 0, 60, 240, 510, + oflags); + /* same as code-39, forced */ + Barcode_Encode_and_Print("RBNLSN68T11E897W",stdout, 0, 60, 240, 590, + BARCODE_NO_CHECKSUM | BARCODE_39 | oflags); + + /* one interleaved 2 of 5 */ + Barcode_Encode_and_Print("0123456789",stdout, 0, 0, 40, 620, + BARCODE_I25 | oflags); + + /* upc-e and ean-8 (autotected based on code size) */ + Barcode_Encode_and_Print("012345",stdout, 0, 0, 50, 720, oflags); + Barcode_Encode_and_Print("0123456",stdout, 0, 0, 160, 720, oflags); + + + + if (pcl) { + printf("\f"); + } else { + printf("\nshowpage\n"); + printf("%%%%Trailer\n\n"); + } + return 0; +} + + + + + + + diff --git a/config.guess b/config.guess new file mode 100755 index 00000000..dc84c68e --- /dev/null +++ b/config.guess @@ -0,0 +1,1501 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +# Free Software Foundation, Inc. + +timestamp='2009-11-20' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Originally written by Per Bothner. Please send patches (context +# diff format) to and include a ChangeLog +# entry. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm:riscos:*:*|arm:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH="i386" + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH="x86_64" + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[456]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + case ${UNAME_MACHINE} in + pc98) + echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-gnu + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit ;; + i*86:Linux:*:*) + LIBC=gnu + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + or32:Linux:*:*) + echo or32-unknown-linux-gnu + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-gnu + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in + i386) + eval $set_cc_for_build + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + UNAME_PROCESSOR="x86_64" + fi + fi ;; + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NSE-?:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +eval $set_cc_for_build +cat >$dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix\n"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + c34*) + echo c34-convex-bsd + exit ;; + c38*) + echo c38-convex-bsd + exit ;; + c4*) + echo c4-convex-bsd + exit ;; + esac +fi + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/config.h.in b/config.h.in new file mode 100644 index 00000000..9a3a81a5 --- /dev/null +++ b/config.h.in @@ -0,0 +1,83 @@ +/* config.h.in. Generated from configure.in by autoheader. */ + +/* always defined to indicate that i18n is enabled */ +#undef ENABLE_NLS + +/* Gettext package */ +#undef GETTEXT_PACKAGE + +/* Define to 1 if you have the `bind_textdomain_codeset' function. */ +#undef HAVE_BIND_TEXTDOMAIN_CODESET + +/* Define to 1 if you have the `dcgettext' function. */ +#undef HAVE_DCGETTEXT + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Define if the GNU gettext() function is already present or preinstalled. */ +#undef HAVE_GETTEXT + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define if your file defines LC_MESSAGES. */ +#undef HAVE_LC_MESSAGES + +/* Define to 1 for EDS support */ +#undef HAVE_LIBEBOOK + +/* Define to 1 if you have the header file. */ +#undef HAVE_LOCALE_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#undef LT_OBJDIR + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Version number of package */ +#undef VERSION diff --git a/config.sub b/config.sub new file mode 100755 index 00000000..2a55a507 --- /dev/null +++ b/config.sub @@ -0,0 +1,1705 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +# Free Software Foundation, Inc. + +timestamp='2009-11-20' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Please send patches to . Submit a context +# diff and a properly formatted GNU ChangeLog entry. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray | -microblaze) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fido | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nios | nios2 \ + | ns16k | ns32k \ + | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ + | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e \ + | we32k \ + | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12 | picochip) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nios-* | nios2-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ + | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze) + basic_machine=microblaze-xilinx + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; + tile*) + basic_machine=tile-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/configure b/configure new file mode 100755 index 00000000..041da4d9 --- /dev/null +++ b/configure @@ -0,0 +1,19337 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.63 for glabels 2.2.8. +# +# Report bugs to . +# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# CDPATH. +$as_unset CDPATH + + +if test "x$CONFIG_SHELL" = x; then + if (eval ":") 2>/dev/null; then + as_have_required=yes +else + as_have_required=no +fi + + if test $as_have_required = yes && (eval ": +(as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=\$LINENO + as_lineno_2=\$LINENO + test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && + test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } +") 2> /dev/null; then + : +else + as_candidate_shells= + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + case $as_dir in + /*) + for as_base in sh bash ksh sh5; do + as_candidate_shells="$as_candidate_shells $as_dir/$as_base" + done;; + esac +done +IFS=$as_save_IFS + + + for as_shell in $as_candidate_shells $SHELL; do + # Try only shells that exist, to save several forks. + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { ("$as_shell") 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +_ASEOF +}; then + CONFIG_SHELL=$as_shell + as_have_required=yes + if { "$as_shell" 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +(as_func_return () { + (exit $1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = "$1" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test $exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } + +_ASEOF +}; then + break +fi + +fi + + done + + if test "x$CONFIG_SHELL" != x; then + for as_var in BASH_ENV ENV + do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + done + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} +fi + + + if test $as_have_required = no; then + echo This script requires a shell more modern than all the + echo shells that I found on your system. Please install a + echo modern shell, or manually run the script under such a + echo shell if you do have one. + { (exit 1); exit 1; } +fi + + +fi + +fi + + + +(eval "as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0") || { + echo No shell found that supports shell functions. + echo Please tell bug-autoconf@gnu.org about your system, + echo including any error possibly output before this message. + echo This can help us improve future autoconf versions. + echo Configuration will now proceed without shell functions. +} + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + + + +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$lt_ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` + ;; +esac + +ECHO=${lt_ECHO-echo} +if test "X$1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X$1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then + # Yippee, $ECHO works! + : +else + # Restart under the correct shell. + exec $SHELL "$0" --no-reexec ${1+"$@"} +fi + +if test "X$1" = X--fallback-echo; then + # used as fallback echo + shift + cat <<_LT_EOF +$* +_LT_EOF + exit 0 +fi + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test -z "$lt_ECHO"; then + if test "X${echo_test_string+set}" != Xset; then + # find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if { echo_test_string=`eval $cmd`; } 2>/dev/null && + { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null + then + break + fi + done + fi + + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : + else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$ECHO" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + ECHO='print -r' + elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} + else + # Try using printf. + ECHO='printf %s\n' + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + ECHO="$CONFIG_SHELL $0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$CONFIG_SHELL $0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do + if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "$0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} + else + # Oops. We lost completely, so just stick with echo. + ECHO=echo + fi + fi + fi + fi + fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +lt_ECHO=$ECHO +if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then + lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" +fi + + + + +exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Identity of this package. +PACKAGE_NAME='glabels' +PACKAGE_TARNAME='glabels' +PACKAGE_VERSION='2.2.8' +PACKAGE_STRING='glabels 2.2.8' +PACKAGE_BUGREPORT='http://sourceforge.net/tracker/?func=add&group_id=46122&atid=445116' + +ac_unique_file="src/glabels.c" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIBOBJS +MKINSTALLDIRS +POSUB +POFILES +PO_IN_DATADIR_FALSE +PO_IN_DATADIR_TRUE +INTLLIBS +INSTOBJEXT +GMOFILES +CATOBJEXT +CATALOGS +MSGFMT_OPTS +GETTEXT_PACKAGE +ENABLE_UPDATE_DESKTOPDB_FALSE +ENABLE_UPDATE_DESKTOPDB_TRUE +ENABLE_UPDATE_MIMEDB_FALSE +ENABLE_UPDATE_MIMEDB_TRUE +HAVE_NEWER_MIME_FALSE +HAVE_NEWER_MIME_TRUE +UPDATE_DESKTOP_DATABASE +HAVE_NEW_MIME_FALSE +HAVE_NEW_MIME_TRUE +UPDATE_MIME_DATABASE +DISABLE_DEPRECATED_CFLAGS +HAVE_XML_PARSE_HUGE +XML_PARSE_HUGE_LIBS +XML_PARSE_HUGE_CFLAGS +MYGAL_LIBS +MYGAL_CFLAGS +LIBGLABELS_LIBS +LIBGLABELS_CFLAGS +GLABELS_LIBS +GLABELS_CFLAGS +LIBEBOOK_LIBS +LIBEBOOK_CFLAGS +LIBEBOOK_REQUIRED +LIBGLADE_REQUIRED +LIBXML_REQUIRED +LIBGNOMEUI_REQUIRED +LIBGNOME_REQUIRED +GTK_REQUIRED +GLIB_REQUIRED +LIBGLABELS_VERSION_INFO +GTK_DOC_USE_LIBTOOL_FALSE +GTK_DOC_USE_LIBTOOL_TRUE +ENABLE_GTK_DOC_FALSE +ENABLE_GTK_DOC_TRUE +GTKDOC_CHECK +HTML_DIR +GLIB_GENMARSHAL +WARN_CFLAGS +CPP +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +lt_ECHO +RANLIB +AR +OBJDUMP +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +EGREP +GREP +SED +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +LIBTOOL +DATADIRNAME +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +ALL_LINGUAS +INTLTOOL_PERL +GMSGFMT +MSGFMT +MSGMERGE +XGETTEXT +INTLTOOL_POLICY_RULE +INTLTOOL_SERVICE_RULE +INTLTOOL_THEME_RULE +INTLTOOL_SCHEMAS_RULE +INTLTOOL_CAVES_RULE +INTLTOOL_XML_NOMERGE_RULE +INTLTOOL_XML_RULE +INTLTOOL_KBD_RULE +INTLTOOL_XAM_RULE +INTLTOOL_UI_RULE +INTLTOOL_SOUNDLIST_RULE +INTLTOOL_SHEET_RULE +INTLTOOL_SERVER_RULE +INTLTOOL_PONG_RULE +INTLTOOL_OAF_RULE +INTLTOOL_PROP_RULE +INTLTOOL_KEYS_RULE +INTLTOOL_DIRECTORY_RULE +INTLTOOL_DESKTOP_RULE +INTLTOOL_EXTRACT +INTLTOOL_MERGE +INTLTOOL_UPDATE +USE_NLS +MAINT +MAINTAINER_MODE_FALSE +MAINTAINER_MODE_TRUE +HAVE_GNOME_DOC_UTILS_FALSE +HAVE_GNOME_DOC_UTILS_TRUE +DISTCHECK_CONFIGURE_FLAGS +ENABLE_SK_FALSE +ENABLE_SK_TRUE +DOC_USER_FORMATS +OMF_DIR +HELP_DIR +PKG_CONFIG +LN_S +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +with_help_dir +with_omf_dir +with_help_formats +enable_scrollkeeper +enable_maintainer_mode +enable_nls +enable_dependency_tracking +enable_shared +enable_static +with_pic +enable_fast_install +with_gnu_ld +enable_libtool_lock +enable_compile_warnings +enable_iso_c +with_html_dir +enable_gtk_doc +with_libebook +enable_deprecations +enable_update_mimedb +enable_update_desktopdb +' + ac_precious_vars='build_alias +host_alias +target_alias +PKG_CONFIG +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +LIBEBOOK_CFLAGS +LIBEBOOK_LIBS +GLABELS_CFLAGS +GLABELS_LIBS +LIBGLABELS_CFLAGS +LIBGLABELS_LIBS +MYGAL_CFLAGS +MYGAL_LIBS +XML_PARSE_HUGE_CFLAGS +XML_PARSE_HUGE_LIBS' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 + { (exit 1); exit 1; }; } + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 + { (exit 1); exit 1; }; } + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 + { (exit 1); exit 1; }; } + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 + { (exit 1); exit 1; }; } + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) { $as_echo "$as_me: error: unrecognized option: $ac_option +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + { $as_echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 + { (exit 1); exit 1; }; } ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; } +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + { $as_echo "$as_me: error: working directory cannot be determined" >&2 + { (exit 1); exit 1; }; } +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 + { (exit 1); exit 1; }; } + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 + { (exit 1); exit 1; }; } + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures glabels 2.2.8 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/glabels] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of glabels 2.2.8:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --disable-scrollkeeper do not make updates to the scrollkeeper database + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer + --disable-nls do not use Native Language Support + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-static[=PKGS] build static libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) + --enable-compile-warnings=[no/minimum/yes/maximum/error] + Turn on compiler warnings + --enable-iso-c Try to warn if code is not ISO C + --enable-gtk-doc use gtk-doc to build documentation [default=no] + --enable-deprecations warn about deprecated usages [default=no] + --disable-update-mimedb disable the update-mime-database after install + default=no + --disable-update-desktopdb + disable the update-desktop-database after install + default=no + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-help-dir=DIR path to help docs + --with-omf-dir=DIR path to OMF files + --with-help-formats=FORMATS + list of formats + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-html-dir=PATH path to installed docs + --without-libebook build without Evolution Data Server support + +Some influential environment variables: + PKG_CONFIG path to pkg-config utility + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + LIBEBOOK_CFLAGS + C compiler flags for LIBEBOOK, overriding pkg-config + LIBEBOOK_LIBS + linker flags for LIBEBOOK, overriding pkg-config + GLABELS_CFLAGS + C compiler flags for GLABELS, overriding pkg-config + GLABELS_LIBS + linker flags for GLABELS, overriding pkg-config + LIBGLABELS_CFLAGS + C compiler flags for LIBGLABELS, overriding pkg-config + LIBGLABELS_LIBS + linker flags for LIBGLABELS, overriding pkg-config + MYGAL_CFLAGS + C compiler flags for MYGAL, overriding pkg-config + MYGAL_LIBS linker flags for MYGAL, overriding pkg-config + XML_PARSE_HUGE_CFLAGS + C compiler flags for XML_PARSE_HUGE, overriding pkg-config + XML_PARSE_HUGE_LIBS + linker flags for XML_PARSE_HUGE, overriding pkg-config + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +glabels configure 2.2.8 +generated by GNU Autoconf 2.63 + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by glabels $as_me 2.2.8, which was +generated by GNU Autoconf 2.63. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" +done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 2) + ac_configure_args1="$ac_configure_args1 '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + ac_configure_args="$ac_configure_args '$ac_arg'" + ;; + esac + done +done +$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } +$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + cat <<\_ASBOX +## ---------------- ## +## Cache variables. ## +## ---------------- ## +_ASBOX + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + cat <<\_ASBOX +## ----------------- ## +## Output variables. ## +## ----------------- ## +_ASBOX + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + cat <<\_ASBOX +## ------------------- ## +## File substitutions. ## +## ------------------- ## +_ASBOX + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + cat <<\_ASBOX +## ----------- ## +## confdefs.h. ## +## ----------- ## +_ASBOX + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + ac_site_file1=$CONFIG_SITE +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test -r "$ac_site_file"; then + { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then + { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { (exit 1); exit 1; }; } +fi + + + + + + + + + + + + + + + + + + + + + + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +am__api_version='1.11' + +ac_aux_dir= +for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 +$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} + { (exit 1); exit 1; }; } +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + +done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Just in case +sleep 1 +echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + { { $as_echo "$as_me:$LINENO: error: unsafe absolute working directory name" >&5 +$as_echo "$as_me: error: unsafe absolute working directory name" >&2;} + { (exit 1); exit 1; }; };; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + { { $as_echo "$as_me:$LINENO: error: unsafe srcdir value: \`$srcdir'" >&5 +$as_echo "$as_me: error: unsafe srcdir value: \`$srcdir'" >&2;} + { (exit 1); exit 1; }; };; +esac + +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" >&5 +$as_echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" >&2;} + { (exit 1); exit 1; }; } + fi + + test "$2" = conftest.file + ) +then + # Ok. + : +else + { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files! +Check your system clock" >&5 +$as_echo "$as_me: error: newly created file is older than distributed files! +Check your system clock" >&2;} + { (exit 1); exit 1; }; } +fi +{ $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if test "${ac_cv_path_mkdir+set}" = set; then + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done +done +IFS=$as_save_IFS + +fi + + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + test -d ./--version && rmdir ./--version + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_AWK+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:$LINENO: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 +$as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} + { (exit 1); exit 1; }; } + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE=glabels + VERSION=2.2.8 + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. + +AMTAR=${AMTAR-"${am_missing_run}tar"} + +am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' + + + + + +{ $as_echo "$as_me:$LINENO: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_PKG_CONFIG+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi + +fi + +gdu_cv_version_required=0.3.2 + +{ $as_echo "$as_me:$LINENO: checking gnome-doc-utils >= $gdu_cv_version_required" >&5 +$as_echo_n "checking gnome-doc-utils >= $gdu_cv_version_required... " >&6; } +if test -n "$PKG_CONFIG" && \ + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gnome-doc-utils >= \$gdu_cv_version_required\"") >&5 + ($PKG_CONFIG --exists --print-errors "gnome-doc-utils >= $gdu_cv_version_required") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + gdu_cv_have_gdu=yes +else + gdu_cv_have_gdu=no +fi + +if test "$gdu_cv_have_gdu" = "yes"; then + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + : +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:$LINENO: error: gnome-doc-utils >= $gdu_cv_version_required not found" >&5 +$as_echo "$as_me: error: gnome-doc-utils >= $gdu_cv_version_required not found" >&2;} + { (exit 1); exit 1; }; } +fi + + + +# Check whether --with-help-dir was given. +if test "${with_help_dir+set}" = set; then + withval=$with_help_dir; +else + with_help_dir='${datadir}/gnome/help' +fi + +HELP_DIR="$with_help_dir" + + + +# Check whether --with-omf-dir was given. +if test "${with_omf_dir+set}" = set; then + withval=$with_omf_dir; +else + with_omf_dir='${datadir}/omf' +fi + +OMF_DIR="$with_omf_dir" + + + +# Check whether --with-help-formats was given. +if test "${with_help_formats+set}" = set; then + withval=$with_help_formats; +else + with_help_formats='' +fi + +DOC_USER_FORMATS="$with_help_formats" + + +# Check whether --enable-scrollkeeper was given. +if test "${enable_scrollkeeper+set}" = set; then + enableval=$enable_scrollkeeper; +else + enable_scrollkeeper=yes +fi + + if test "$gdu_cv_have_gdu" = "yes" -a "$enable_scrollkeeper" = "yes"; then + ENABLE_SK_TRUE= + ENABLE_SK_FALSE='#' +else + ENABLE_SK_TRUE='#' + ENABLE_SK_FALSE= +fi + + +DISTCHECK_CONFIGURE_FLAGS="--disable-scrollkeeper $DISTCHECK_CONFIGURE_FLAGS" + + + if test "$gdu_cv_have_gdu" = "yes"; then + HAVE_GNOME_DOC_UTILS_TRUE= + HAVE_GNOME_DOC_UTILS_FALSE='#' +else + HAVE_GNOME_DOC_UTILS_TRUE='#' + HAVE_GNOME_DOC_UTILS_FALSE= +fi + + + + + +{ $as_echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 +$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } + # Check whether --enable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + { $as_echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 +$as_echo "$USE_MAINTAINER_MODE" >&6; } + if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + + MAINT=$MAINTAINER_MODE_TRUE + + +ac_config_headers="$ac_config_headers config.h" + + + + { $as_echo "$as_me:$LINENO: checking whether NLS is requested" >&5 +$as_echo_n "checking whether NLS is requested... " >&6; } + # Check whether --enable-nls was given. +if test "${enable_nls+set}" = set; then + enableval=$enable_nls; USE_NLS=$enableval +else + USE_NLS=yes +fi + + { $as_echo "$as_me:$LINENO: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } + + +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:$LINENO: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } + +# Provide some information about the compiler. +$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { (ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi + +{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +if test -z "$ac_file"; then + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: C compiler cannot create executables +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; }; } +fi + +ac_exeext=$ac_cv_exeext + +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 +# If not cross compiling, check that we can run a simple program. +if test "$cross_compiling" != yes; then + if { ac_try='./$ac_file' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } + fi + fi +fi +{ $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } +fi + +rm -f conftest$ac_cv_exeext +{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if test "${ac_cv_objext+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } +fi + +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if test "${ac_cv_c_compiler_gnu+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_compiler_gnu=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if test "${ac_cv_prog_cc_g+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_c89=$ac_arg +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:$LINENO: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:$LINENO: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + + + +case "$am__api_version" in + 1.01234) + { { $as_echo "$as_me:$LINENO: error: Automake 1.5 or newer is required to use intltool" >&5 +$as_echo "$as_me: error: Automake 1.5 or newer is required to use intltool" >&2;} + { (exit 1); exit 1; }; } + ;; + *) + ;; +esac + +if test -n "0.21"; then + { $as_echo "$as_me:$LINENO: checking for intltool >= 0.21" >&5 +$as_echo_n "checking for intltool >= 0.21... " >&6; } + + INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.21 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` + INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` + INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` + + { $as_echo "$as_me:$LINENO: result: $INTLTOOL_APPLIED_VERSION found" >&5 +$as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } + test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || + { { $as_echo "$as_me:$LINENO: error: Your intltool is too old. You need intltool 0.21 or later." >&5 +$as_echo "$as_me: error: Your intltool is too old. You need intltool 0.21 or later." >&2;} + { (exit 1); exit 1; }; } +fi + +# Extract the first word of "intltool-update", so it can be a program name with args. +set dummy intltool-update; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_INTLTOOL_UPDATE+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $INTLTOOL_UPDATE in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE +if test -n "$INTLTOOL_UPDATE"; then + { $as_echo "$as_me:$LINENO: result: $INTLTOOL_UPDATE" >&5 +$as_echo "$INTLTOOL_UPDATE" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "intltool-merge", so it can be a program name with args. +set dummy intltool-merge; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_INTLTOOL_MERGE+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $INTLTOOL_MERGE in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE +if test -n "$INTLTOOL_MERGE"; then + { $as_echo "$as_me:$LINENO: result: $INTLTOOL_MERGE" >&5 +$as_echo "$INTLTOOL_MERGE" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "intltool-extract", so it can be a program name with args. +set dummy intltool-extract; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_INTLTOOL_EXTRACT+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $INTLTOOL_EXTRACT in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT +if test -n "$INTLTOOL_EXTRACT"; then + { $as_echo "$as_me:$LINENO: result: $INTLTOOL_EXTRACT" >&5 +$as_echo "$INTLTOOL_EXTRACT" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then + { { $as_echo "$as_me:$LINENO: error: The intltool scripts were not found. Please install intltool." >&5 +$as_echo "$as_me: error: The intltool scripts were not found. Please install intltool." >&2;} + { (exit 1); exit 1; }; } +fi + + INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@' + INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' +INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@' + INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# Check the gettext tools to make sure they are GNU +# Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_XGETTEXT+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $XGETTEXT in + [\\/]* | ?:[\\/]*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +XGETTEXT=$ac_cv_path_XGETTEXT +if test -n "$XGETTEXT"; then + { $as_echo "$as_me:$LINENO: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "msgmerge", so it can be a program name with args. +set dummy msgmerge; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_MSGMERGE+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $MSGMERGE in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +MSGMERGE=$ac_cv_path_MSGMERGE +if test -n "$MSGMERGE"; then + { $as_echo "$as_me:$LINENO: result: $MSGMERGE" >&5 +$as_echo "$MSGMERGE" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_MSGFMT+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $MSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +MSGFMT=$ac_cv_path_MSGFMT +if test -n "$MSGFMT"; then + { $as_echo "$as_me:$LINENO: result: $MSGFMT" >&5 +$as_echo "$MSGFMT" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_GMSGFMT+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT +if test -n "$GMSGFMT"; then + { $as_echo "$as_me:$LINENO: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then + { { $as_echo "$as_me:$LINENO: error: GNU gettext tools not found; required for intltool" >&5 +$as_echo "$as_me: error: GNU gettext tools not found; required for intltool" >&2;} + { (exit 1); exit 1; }; } +fi +xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" +mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" +mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" +if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then + { { $as_echo "$as_me:$LINENO: error: GNU gettext tools not found; required for intltool" >&5 +$as_echo "$as_me: error: GNU gettext tools not found; required for intltool" >&2;} + { (exit 1); exit 1; }; } +fi + +# Extract the first word of "perl", so it can be a program name with args. +set dummy perl; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_INTLTOOL_PERL+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $INTLTOOL_PERL in + [\\/]* | ?:[\\/]*) + ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL +if test -n "$INTLTOOL_PERL"; then + { $as_echo "$as_me:$LINENO: result: $INTLTOOL_PERL" >&5 +$as_echo "$INTLTOOL_PERL" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test -z "$INTLTOOL_PERL"; then + { { $as_echo "$as_me:$LINENO: error: perl not found" >&5 +$as_echo "$as_me: error: perl not found" >&2;} + { (exit 1); exit 1; }; } +fi +{ $as_echo "$as_me:$LINENO: checking for perl >= 5.8.1" >&5 +$as_echo_n "checking for perl >= 5.8.1... " >&6; } +$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 +if test $? -ne 0; then + { { $as_echo "$as_me:$LINENO: error: perl 5.8.1 is required for intltool" >&5 +$as_echo "$as_me: error: perl 5.8.1 is required for intltool" >&2;} + { (exit 1); exit 1; }; } +else + IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" + { $as_echo "$as_me:$LINENO: result: $IT_PERL_VERSION" >&5 +$as_echo "$IT_PERL_VERSION" >&6; } +fi +if test "x" != "xno-xml"; then + { $as_echo "$as_me:$LINENO: checking for XML::Parser" >&5 +$as_echo_n "checking for XML::Parser... " >&6; } + if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then + { $as_echo "$as_me:$LINENO: result: ok" >&5 +$as_echo "ok" >&6; } + else + { { $as_echo "$as_me:$LINENO: error: XML::Parser perl module is required for intltool" >&5 +$as_echo "$as_me: error: XML::Parser perl module is required for intltool" >&2;} + { (exit 1); exit 1; }; } + fi +fi + +# Substitute ALL_LINGUAS so we can use it in po/Makefile + + +# Set DATADIRNAME correctly if it is not set yet +# (copied from glib-gettext.m4) +if test -z "$DATADIRNAME"; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + DATADIRNAME=share +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + case $host in + *-*-solaris*) + { $as_echo "$as_me:$LINENO: checking for bind_textdomain_codeset" >&5 +$as_echo_n "checking for bind_textdomain_codeset... " >&6; } +if test "${ac_cv_func_bind_textdomain_codeset+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define bind_textdomain_codeset to an innocuous variant, in case declares bind_textdomain_codeset. + For example, HP-UX 11i declares gettimeofday. */ +#define bind_textdomain_codeset innocuous_bind_textdomain_codeset + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char bind_textdomain_codeset (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef bind_textdomain_codeset + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char bind_textdomain_codeset (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_bind_textdomain_codeset || defined __stub___bind_textdomain_codeset +choke me +#endif + +int +main () +{ +return bind_textdomain_codeset (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_func_bind_textdomain_codeset=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_bind_textdomain_codeset=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_bind_textdomain_codeset" >&5 +$as_echo "$ac_cv_func_bind_textdomain_codeset" >&6; } +if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then + DATADIRNAME=share +else + DATADIRNAME=lib +fi + + ;; + *) + DATADIRNAME=lib + ;; + esac +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_PKG_CONFIG+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi + +fi + +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:$LINENO: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.2.6b' +macro_revision='1.3017' + + + + + + + + + + + + + +ltmain="$ac_aux_dir/ltmain.sh" + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 +$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} + { (exit 1); exit 1; }; } + +{ $as_echo "$as_me:$LINENO: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if test "${ac_cv_build+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 +$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;} + { (exit 1); exit 1; }; } +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 +$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} + { (exit 1); exit 1; }; } + +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 +$as_echo "$as_me: error: invalid value of canonical build" >&2;} + { (exit 1); exit 1; }; };; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:$LINENO: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if test "${ac_cv_host+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 +$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} + { (exit 1); exit 1; }; } +fi + +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 +$as_echo "$as_me: error: invalid value of canonical host" >&2;} + { (exit 1); exit 1; }; };; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if test "${ac_cv_path_SED+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + $as_unset ac_script || ac_script= + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done +done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + { { $as_echo "$as_me:$LINENO: error: no acceptable sed could be found in \$PATH" >&5 +$as_echo "$as_me: error: no acceptable sed could be found in \$PATH" >&2;} + { (exit 1); exit 1; }; } + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if test "${ac_cv_path_GREP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done +done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:$LINENO: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if test "${ac_cv_path_EGREP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done +done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:$LINENO: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if test "${ac_cv_path_FGREP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done +done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + { { $as_echo "$as_me:$LINENO: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +$as_echo "$as_me: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:$LINENO: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if test "${lt_cv_path_LD+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} + { (exit 1); exit 1; }; } +{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if test "${lt_cv_prog_gnu_ld+set}" = set; then + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:$LINENO: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if test "${lt_cv_path_NM+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$ac_tool_prefix"; then + for ac_prog in "dumpbin -symbols" "link -dump -symbols" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_DUMPBIN+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:$LINENO: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in "dumpbin -symbols" "link -dump -symbols" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:$LINENO: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if test "${lt_cv_nm_interface+set}" = set; then + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:5573: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:5576: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:5579: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +# find the maximum length of command line arguments +{ $as_echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if test "${lt_cv_sys_max_cmd_len+set}" = set; then + $as_echo_n "(cached) " >&6 +else + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ + = "XX$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n $lt_cv_sys_max_cmd_len ; then + { $as_echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:$LINENO: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +{ $as_echo "$as_me:$LINENO: checking whether the shell understands some XSI constructs" >&5 +$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +{ $as_echo "$as_me:$LINENO: result: $xsi_shell" >&5 +$as_echo "$xsi_shell" >&6; } + + +{ $as_echo "$as_me:$LINENO: checking whether the shell understands \"+=\"" >&5 +$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } +lt_shell_append=no +( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +{ $as_echo "$as_me:$LINENO: result: $lt_shell_append" >&5 +$as_echo "$lt_shell_append" >&6; } + + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if test "${lt_cv_ld_reload_flag+set}" = set; then + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OBJDUMP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:$LINENO: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + + +{ $as_echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if test "${lt_cv_deplibs_check_method+set}" = set; then + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_AR+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:$LINENO: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_AR+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_RANLIB+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 + (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:$LINENO: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:$LINENO: result: ok" >&5 +$as_echo "ok" >&6; } +fi + + + + + + + + + + + + + + + + + + + + + + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line 6773 "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if test "${lt_cv_cc_needs_belf+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + lt_cv_cc_needs_belf=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + lt_cv_cc_needs_belf=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_DSYMUTIL+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:$LINENO: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_NMEDIT+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:$LINENO: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_LIPO+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:$LINENO: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_LIPO="lipo" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OTOOL+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:$LINENO: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL="otool" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OTOOL64+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:$LINENO: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:$LINENO: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if test "${lt_cv_apple_cc_single_mod+set}" = set; then + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + { $as_echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if test "${lt_cv_ld_exported_symbols_list+set}" = set; then + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + lt_cv_ld_exported_symbols_list=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + lt_cv_ld_exported_symbols_list=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[012]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:$LINENO: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if test "${ac_cv_header_stdc+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_stdc=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_stdc=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. + + + + + + + + + +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_ac_Header=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_Header=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + +for ac_header in dlfcn.h +do +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_ac_Header=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_Header=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + +# Set options + + + + enable_dlopen=no + + + enable_win32_dll=no + + + # Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + # Check whether --enable-static was given. +if test "${enable_static+set}" = set; then + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=yes +fi + + + + + + + + + + +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then + withval=$with_pic; pic_mode="$withval" +else + pic_mode=default +fi + + +test -z "$pic_mode" && pic_mode=default + + + + + + + + # Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:$LINENO: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if test "${lt_cv_objdir+set}" = set; then + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +#define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + + + + + + + + + + + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:$LINENO: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + lt_prog_compiler_no_builtin_flag=' -fno-builtin' + + { $as_echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:8626: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:8630: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + +{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl*) + # IBM XL C 8.0/Fortran 10.1 on PPC + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Sun\ F*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac +{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 +$as_echo "$lt_prog_compiler_pic" >&6; } + + + + + + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if test "${lt_cv_prog_compiler_pic_works+set}" = set; then + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:8965: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:8969: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if test "${lt_cv_prog_compiler_static_works+set}" = set; then + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test x"$lt_cv_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test "${lt_cv_prog_compiler_c_o+set}" = set; then + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:9070: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:9074: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test "${lt_cv_prog_compiler_c_o+set}" = set; then + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:9125: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:9129: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:$LINENO: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test "$hard_links" = no; then + { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + ld_shlibs=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag= + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld='-rpath $libdir' + archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = no; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path='`cygpath -w "$srcfile"`' + enable_shared_with_static_runtimes=yes + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + whole_archive_flag_spec='' + link_all_deplibs=yes + allow_undefined_flag="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=echo + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + freebsd1*) + ld_shlibs=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_flag_spec_ld='+b $libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + cat >conftest.$ac_ext <<_ACEOF +int foo(void) {} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='${wl}-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='${wl}-z,text' + allow_undefined_flag='${wl}-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='${wl}-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:$LINENO: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test "$ld_shlibs" = no && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + archive_cmds_need_lc=no + else + archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 +$as_echo "$archive_cmds_need_lc" >&6; } + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` + else + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix[3-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then + shlibpath_overrides_runpath=yes +fi + +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Add ABI-specific directories to the system library path. + sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:$LINENO: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test "$hardcode_action" = relink || + test "$inherit_rpath" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_dl_dlopen=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dl_dlopen=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = x""yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + { $as_echo "$as_me:$LINENO: checking for shl_load" >&5 +$as_echo_n "checking for shl_load... " >&6; } +if test "${ac_cv_func_shl_load+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define shl_load to an innocuous variant, in case declares shl_load. + For example, HP-UX 11i declares gettimeofday. */ +#define shl_load innocuous_shl_load + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char shl_load (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef shl_load + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_shl_load || defined __stub___shl_load +choke me +#endif + +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_func_shl_load=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_shl_load=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 +$as_echo "$ac_cv_func_shl_load" >&6; } +if test "x$ac_cv_func_shl_load" = x""yes; then + lt_cv_dlopen="shl_load" +else + { $as_echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if test "${ac_cv_lib_dld_shl_load+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_dld_shl_load=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dld_shl_load=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = x""yes; then + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" +else + { $as_echo "$as_me:$LINENO: checking for dlopen" >&5 +$as_echo_n "checking for dlopen... " >&6; } +if test "${ac_cv_func_dlopen+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define dlopen to an innocuous variant, in case declares dlopen. + For example, HP-UX 11i declares gettimeofday. */ +#define dlopen innocuous_dlopen + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char dlopen (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef dlopen + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_dlopen || defined __stub___dlopen +choke me +#endif + +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_func_dlopen=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_dlopen=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 +$as_echo "$ac_cv_func_dlopen" >&6; } +if test "x$ac_cv_func_dlopen" = x""yes; then + lt_cv_dlopen="dlopen" +else + { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_dl_dlopen=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dl_dlopen=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = x""yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { $as_echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if test "${ac_cv_lib_svld_dlopen+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_svld_dlopen=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_svld_dlopen=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = x""yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { $as_echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if test "${ac_cv_lib_dld_dld_link+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_dld_dld_link=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dld_dld_link=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = x""yes; then + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if test "${lt_cv_dlopen_self+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line 11928 "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if test "${lt_cv_dlopen_self_static+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line 12024 "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report which library types will actually be built + { $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + { $as_echo "$as_me:$LINENO: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:$LINENO: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + { $as_echo "$as_me:$LINENO: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + + +{ $as_echo "$as_me:$LINENO: checking for library containing strerror" >&5 +$as_echo_n "checking for library containing strerror... " >&6; } +if test "${ac_cv_search_strerror+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char strerror (); +int +main () +{ +return strerror (); + ; + return 0; +} +_ACEOF +for ac_lib in '' cposix; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_search_strerror=$ac_res +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext + if test "${ac_cv_search_strerror+set}" = set; then + break +fi +done +if test "${ac_cv_search_strerror+set}" = set; then + : +else + ac_cv_search_strerror=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5 +$as_echo "$ac_cv_search_strerror" >&6; } +ac_res=$ac_cv_search_strerror +if test "$ac_res" != no; then + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } + +# Provide some information about the compiler. +$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if test "${ac_cv_c_compiler_gnu+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_compiler_gnu=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if test "${ac_cv_prog_cc_g+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_c89=$ac_arg +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:$LINENO: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:$LINENO: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } + +# Provide some information about the compiler. +$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if test "${ac_cv_c_compiler_gnu+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_compiler_gnu=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if test "${ac_cv_prog_cc_g+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_c89=$ac_arg +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:$LINENO: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:$LINENO: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + +am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc + +{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if test "${ac_cv_header_stdc+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_stdc=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_stdc=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + + + + + # Check whether --enable-compile-warnings was given. +if test "${enable_compile_warnings+set}" = set; then + enableval=$enable_compile_warnings; +else + enable_compile_warnings="yes" +fi + + + warnCFLAGS= + if test "x$GCC" != xyes; then + enable_compile_warnings=no + fi + + warning_flags= + realsave_CFLAGS="$CFLAGS" + + case "$enable_compile_warnings" in + no) + warning_flags= + ;; + minimum) + warning_flags="-Wall" + ;; + yes) + warning_flags="-Wall -Wmissing-prototypes" + ;; + maximum|error) + warning_flags="-Wall -Wmissing-prototypes -Wnested-externs -Wpointer-arith" + CFLAGS="$warning_flags $CFLAGS" + for option in -Wno-sign-compare; do + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $option" + { $as_echo "$as_me:$LINENO: checking whether gcc understands $option" >&5 +$as_echo_n "checking whether gcc understands $option... " >&6; } + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + has_option=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + has_option=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$SAVE_CFLAGS" + { $as_echo "$as_me:$LINENO: result: $has_option" >&5 +$as_echo "$has_option" >&6; } + if test $has_option = yes; then + warning_flags="$warning_flags $option" + fi + unset has_option + unset SAVE_CFLAGS + done + unset option + if test "$enable_compile_warnings" = "error" ; then + warning_flags="$warning_flags -Werror" + fi + ;; + *) + { { $as_echo "$as_me:$LINENO: error: Unknown argument '$enable_compile_warnings' to --enable-compile-warnings" >&5 +$as_echo "$as_me: error: Unknown argument '$enable_compile_warnings' to --enable-compile-warnings" >&2;} + { (exit 1); exit 1; }; } + ;; + esac + CFLAGS="$realsave_CFLAGS" + { $as_echo "$as_me:$LINENO: checking what warning flags to pass to the C compiler" >&5 +$as_echo_n "checking what warning flags to pass to the C compiler... " >&6; } + { $as_echo "$as_me:$LINENO: result: $warning_flags" >&5 +$as_echo "$warning_flags" >&6; } + + # Check whether --enable-iso-c was given. +if test "${enable_iso_c+set}" = set; then + enableval=$enable_iso_c; +else + enable_iso_c=no +fi + + + { $as_echo "$as_me:$LINENO: checking what language compliance flags to pass to the C compiler" >&5 +$as_echo_n "checking what language compliance flags to pass to the C compiler... " >&6; } + complCFLAGS= + if test "x$enable_iso_c" != "xno"; then + if test "x$GCC" = "xyes"; then + case " $CFLAGS " in + *\ \ -ansi\ \ *) ;; + *) complCFLAGS="$complCFLAGS -ansi" ;; + esac + case " $CFLAGS " in + *\ \ -pedantic\ \ *) ;; + *) complCFLAGS="$complCFLAGS -pedantic" ;; + esac + fi + fi + { $as_echo "$as_me:$LINENO: result: $complCFLAGS" >&5 +$as_echo "$complCFLAGS" >&6; } + + WARN_CFLAGS="$warning_flags $complCFLAGS" + + + +# Extract the first word of "glib-genmarshal", so it can be a program name with args. +set dummy glib-genmarshal; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_GLIB_GENMARSHAL+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $GLIB_GENMARSHAL in + [\\/]* | ?:[\\/]*) + ac_cv_path_GLIB_GENMARSHAL="$GLIB_GENMARSHAL" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GLIB_GENMARSHAL="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +GLIB_GENMARSHAL=$ac_cv_path_GLIB_GENMARSHAL +if test -n "$GLIB_GENMARSHAL"; then + { $as_echo "$as_me:$LINENO: result: $GLIB_GENMARSHAL" >&5 +$as_echo "$GLIB_GENMARSHAL" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +# Check whether --with-html-dir was given. +if test "${with_html_dir+set}" = set; then + withval=$with_html_dir; +else + with_html_dir='${datadir}/gtk-doc/html' +fi + + HTML_DIR="$with_html_dir" + + + # Check whether --enable-gtk-doc was given. +if test "${enable_gtk_doc+set}" = set; then + enableval=$enable_gtk_doc; +else + enable_gtk_doc=no +fi + + + if test x$enable_gtk_doc = xyes; then + if test -n "$PKG_CONFIG" && \ + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk-doc >= 1.0\"") >&5 + ($PKG_CONFIG --exists --print-errors "gtk-doc >= 1.0") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + : +else + { { $as_echo "$as_me:$LINENO: error: You need to have gtk-doc >= 1.0 installed to build gtk-doc" >&5 +$as_echo "$as_me: error: You need to have gtk-doc >= 1.0 installed to build gtk-doc" >&2;} + { (exit 1); exit 1; }; } +fi + fi + + { $as_echo "$as_me:$LINENO: checking whether to build gtk-doc documentation" >&5 +$as_echo_n "checking whether to build gtk-doc documentation... " >&6; } + { $as_echo "$as_me:$LINENO: result: $enable_gtk_doc" >&5 +$as_echo "$enable_gtk_doc" >&6; } + + for ac_prog in gtkdoc-check +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_GTKDOC_CHECK+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $GTKDOC_CHECK in + [\\/]* | ?:[\\/]*) + ac_cv_path_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GTKDOC_CHECK="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +GTKDOC_CHECK=$ac_cv_path_GTKDOC_CHECK +if test -n "$GTKDOC_CHECK"; then + { $as_echo "$as_me:$LINENO: result: $GTKDOC_CHECK" >&5 +$as_echo "$GTKDOC_CHECK" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$GTKDOC_CHECK" && break +done + + + if test x$enable_gtk_doc = xyes; then + ENABLE_GTK_DOC_TRUE= + ENABLE_GTK_DOC_FALSE='#' +else + ENABLE_GTK_DOC_TRUE='#' + ENABLE_GTK_DOC_FALSE= +fi + + if test -n "$LIBTOOL"; then + GTK_DOC_USE_LIBTOOL_TRUE= + GTK_DOC_USE_LIBTOOL_FALSE='#' +else + GTK_DOC_USE_LIBTOOL_TRUE='#' + GTK_DOC_USE_LIBTOOL_FALSE= +fi + + + +LIBGLABELS_C=6 +LIBGLABELS_R=2 +LIBGLABELS_A=1 + +LIBGLABELS_VERSION_INFO=${LIBGLABELS_C}:${LIBGLABELS_R}:${LIBGLABELS_A} + + + +GLIB_REQUIRED=2.12.0 +GTK_REQUIRED=2.10.0 +LIBGNOME_REQUIRED=2.16.0 +LIBGNOMEUI_REQUIRED=2.16.0 +LIBXML_REQUIRED=2.6.0 +LIBGLADE_REQUIRED=2.6.0 +LIBEBOOK_REQUIRED=1.8.0 + + + + + + + + + + + +# Check whether --with-libebook was given. +if test "${with_libebook+set}" = set; then + withval=$with_libebook; +fi + +have_libebook=no +if test "x$with_libebook" != xno; then + +pkg_failed=no +{ $as_echo "$as_me:$LINENO: checking for LIBEBOOK" >&5 +$as_echo_n "checking for LIBEBOOK... " >&6; } + +if test -n "$LIBEBOOK_CFLAGS"; then + pkg_cv_LIBEBOOK_CFLAGS="$LIBEBOOK_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libebook-1.2 >= \$LIBEBOOK_REQUIRED\"") >&5 + ($PKG_CONFIG --exists --print-errors "libebook-1.2 >= $LIBEBOOK_REQUIRED") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + pkg_cv_LIBEBOOK_CFLAGS=`$PKG_CONFIG --cflags "libebook-1.2 >= $LIBEBOOK_REQUIRED" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$LIBEBOOK_LIBS"; then + pkg_cv_LIBEBOOK_LIBS="$LIBEBOOK_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libebook-1.2 >= \$LIBEBOOK_REQUIRED\"") >&5 + ($PKG_CONFIG --exists --print-errors "libebook-1.2 >= $LIBEBOOK_REQUIRED") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + pkg_cv_LIBEBOOK_LIBS=`$PKG_CONFIG --libs "libebook-1.2 >= $LIBEBOOK_REQUIRED" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + LIBEBOOK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libebook-1.2 >= $LIBEBOOK_REQUIRED" 2>&1` + else + LIBEBOOK_PKG_ERRORS=`$PKG_CONFIG --print-errors "libebook-1.2 >= $LIBEBOOK_REQUIRED" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBEBOOK_PKG_ERRORS" >&5 + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + have_libebook=no +elif test $pkg_failed = untried; then + have_libebook=no +else + LIBEBOOK_CFLAGS=$pkg_cv_LIBEBOOK_CFLAGS + LIBEBOOK_LIBS=$pkg_cv_LIBEBOOK_LIBS + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + have_libebook=yes +fi +fi + +if test "x$have_libebook" = "xyes"; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_LIBEBOOK 1 +_ACEOF + + OPTIONAL_MODULES="$OPTIONAL_MODULES libebook-1.2 >= $LIBEBOOK_REQUIRED" +fi + + + +pkg_failed=no +{ $as_echo "$as_me:$LINENO: checking for GLABELS" >&5 +$as_echo_n "checking for GLABELS... " >&6; } + +if test -n "$GLABELS_CFLAGS"; then + pkg_cv_GLABELS_CFLAGS="$GLABELS_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\\ +glib-2.0 >= \$GLIB_REQUIRED \\ +gtk+-2.0 >= \$GTK_REQUIRED \\ +libgnome-2.0 >= \$LIBGNOME_REQUIRED \\ +libgnomeui-2.0 >= \$LIBGNOMEUI_REQUIRED \\ +libxml-2.0 >= \$LIBXML_REQUIRED \\ +libglade-2.0 >= \$LIBGLADE_REQUIRED \\ +\$OPTIONAL_MODULES \\ +\"") >&5 + ($PKG_CONFIG --exists --print-errors "\ +glib-2.0 >= $GLIB_REQUIRED \ +gtk+-2.0 >= $GTK_REQUIRED \ +libgnome-2.0 >= $LIBGNOME_REQUIRED \ +libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ +libxml-2.0 >= $LIBXML_REQUIRED \ +libglade-2.0 >= $LIBGLADE_REQUIRED \ +$OPTIONAL_MODULES \ +") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + pkg_cv_GLABELS_CFLAGS=`$PKG_CONFIG --cflags "\ +glib-2.0 >= $GLIB_REQUIRED \ +gtk+-2.0 >= $GTK_REQUIRED \ +libgnome-2.0 >= $LIBGNOME_REQUIRED \ +libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ +libxml-2.0 >= $LIBXML_REQUIRED \ +libglade-2.0 >= $LIBGLADE_REQUIRED \ +$OPTIONAL_MODULES \ +" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$GLABELS_LIBS"; then + pkg_cv_GLABELS_LIBS="$GLABELS_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\\ +glib-2.0 >= \$GLIB_REQUIRED \\ +gtk+-2.0 >= \$GTK_REQUIRED \\ +libgnome-2.0 >= \$LIBGNOME_REQUIRED \\ +libgnomeui-2.0 >= \$LIBGNOMEUI_REQUIRED \\ +libxml-2.0 >= \$LIBXML_REQUIRED \\ +libglade-2.0 >= \$LIBGLADE_REQUIRED \\ +\$OPTIONAL_MODULES \\ +\"") >&5 + ($PKG_CONFIG --exists --print-errors "\ +glib-2.0 >= $GLIB_REQUIRED \ +gtk+-2.0 >= $GTK_REQUIRED \ +libgnome-2.0 >= $LIBGNOME_REQUIRED \ +libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ +libxml-2.0 >= $LIBXML_REQUIRED \ +libglade-2.0 >= $LIBGLADE_REQUIRED \ +$OPTIONAL_MODULES \ +") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + pkg_cv_GLABELS_LIBS=`$PKG_CONFIG --libs "\ +glib-2.0 >= $GLIB_REQUIRED \ +gtk+-2.0 >= $GTK_REQUIRED \ +libgnome-2.0 >= $LIBGNOME_REQUIRED \ +libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ +libxml-2.0 >= $LIBXML_REQUIRED \ +libglade-2.0 >= $LIBGLADE_REQUIRED \ +$OPTIONAL_MODULES \ +" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GLABELS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "\ +glib-2.0 >= $GLIB_REQUIRED \ +gtk+-2.0 >= $GTK_REQUIRED \ +libgnome-2.0 >= $LIBGNOME_REQUIRED \ +libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ +libxml-2.0 >= $LIBXML_REQUIRED \ +libglade-2.0 >= $LIBGLADE_REQUIRED \ +$OPTIONAL_MODULES \ +" 2>&1` + else + GLABELS_PKG_ERRORS=`$PKG_CONFIG --print-errors "\ +glib-2.0 >= $GLIB_REQUIRED \ +gtk+-2.0 >= $GTK_REQUIRED \ +libgnome-2.0 >= $LIBGNOME_REQUIRED \ +libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ +libxml-2.0 >= $LIBXML_REQUIRED \ +libglade-2.0 >= $LIBGLADE_REQUIRED \ +$OPTIONAL_MODULES \ +" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$GLABELS_PKG_ERRORS" >&5 + + { { $as_echo "$as_me:$LINENO: error: Package requirements (\ +glib-2.0 >= $GLIB_REQUIRED \ +gtk+-2.0 >= $GTK_REQUIRED \ +libgnome-2.0 >= $LIBGNOME_REQUIRED \ +libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ +libxml-2.0 >= $LIBXML_REQUIRED \ +libglade-2.0 >= $LIBGLADE_REQUIRED \ +$OPTIONAL_MODULES \ +) were not met: + +$GLABELS_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables GLABELS_CFLAGS +and GLABELS_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. +" >&5 +$as_echo "$as_me: error: Package requirements (\ +glib-2.0 >= $GLIB_REQUIRED \ +gtk+-2.0 >= $GTK_REQUIRED \ +libgnome-2.0 >= $LIBGNOME_REQUIRED \ +libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ +libxml-2.0 >= $LIBXML_REQUIRED \ +libglade-2.0 >= $LIBGLADE_REQUIRED \ +$OPTIONAL_MODULES \ +) were not met: + +$GLABELS_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables GLABELS_CFLAGS +and GLABELS_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. +" >&2;} + { (exit 1); exit 1; }; } +elif test $pkg_failed = untried; then + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables GLABELS_CFLAGS +and GLABELS_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables GLABELS_CFLAGS +and GLABELS_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } +else + GLABELS_CFLAGS=$pkg_cv_GLABELS_CFLAGS + GLABELS_LIBS=$pkg_cv_GLABELS_LIBS + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + : +fi + + + + + + +pkg_failed=no +{ $as_echo "$as_me:$LINENO: checking for LIBGLABELS" >&5 +$as_echo_n "checking for LIBGLABELS... " >&6; } + +if test -n "$LIBGLABELS_CFLAGS"; then + pkg_cv_LIBGLABELS_CFLAGS="$LIBGLABELS_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\\ +glib-2.0 >= \$GLIB_REQUIRED \\ +libxml-2.0 >= \$LIBXML_REQUIRED \\ +\"") >&5 + ($PKG_CONFIG --exists --print-errors "\ +glib-2.0 >= $GLIB_REQUIRED \ +libxml-2.0 >= $LIBXML_REQUIRED \ +") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + pkg_cv_LIBGLABELS_CFLAGS=`$PKG_CONFIG --cflags "\ +glib-2.0 >= $GLIB_REQUIRED \ +libxml-2.0 >= $LIBXML_REQUIRED \ +" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$LIBGLABELS_LIBS"; then + pkg_cv_LIBGLABELS_LIBS="$LIBGLABELS_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\\ +glib-2.0 >= \$GLIB_REQUIRED \\ +libxml-2.0 >= \$LIBXML_REQUIRED \\ +\"") >&5 + ($PKG_CONFIG --exists --print-errors "\ +glib-2.0 >= $GLIB_REQUIRED \ +libxml-2.0 >= $LIBXML_REQUIRED \ +") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + pkg_cv_LIBGLABELS_LIBS=`$PKG_CONFIG --libs "\ +glib-2.0 >= $GLIB_REQUIRED \ +libxml-2.0 >= $LIBXML_REQUIRED \ +" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + LIBGLABELS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "\ +glib-2.0 >= $GLIB_REQUIRED \ +libxml-2.0 >= $LIBXML_REQUIRED \ +" 2>&1` + else + LIBGLABELS_PKG_ERRORS=`$PKG_CONFIG --print-errors "\ +glib-2.0 >= $GLIB_REQUIRED \ +libxml-2.0 >= $LIBXML_REQUIRED \ +" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBGLABELS_PKG_ERRORS" >&5 + + { { $as_echo "$as_me:$LINENO: error: Package requirements (\ +glib-2.0 >= $GLIB_REQUIRED \ +libxml-2.0 >= $LIBXML_REQUIRED \ +) were not met: + +$LIBGLABELS_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables LIBGLABELS_CFLAGS +and LIBGLABELS_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. +" >&5 +$as_echo "$as_me: error: Package requirements (\ +glib-2.0 >= $GLIB_REQUIRED \ +libxml-2.0 >= $LIBXML_REQUIRED \ +) were not met: + +$LIBGLABELS_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables LIBGLABELS_CFLAGS +and LIBGLABELS_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. +" >&2;} + { (exit 1); exit 1; }; } +elif test $pkg_failed = untried; then + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables LIBGLABELS_CFLAGS +and LIBGLABELS_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables LIBGLABELS_CFLAGS +and LIBGLABELS_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } +else + LIBGLABELS_CFLAGS=$pkg_cv_LIBGLABELS_CFLAGS + LIBGLABELS_LIBS=$pkg_cv_LIBGLABELS_LIBS + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + : +fi + + + + + + +pkg_failed=no +{ $as_echo "$as_me:$LINENO: checking for MYGAL" >&5 +$as_echo_n "checking for MYGAL... " >&6; } + +if test -n "$MYGAL_CFLAGS"; then + pkg_cv_MYGAL_CFLAGS="$MYGAL_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\\ +gtk+-2.0 >= \$GTK_REQUIRED \\ +libgnomeui-2.0 >= \$LIBGNOMEUI_REQUIRED \\ +\"") >&5 + ($PKG_CONFIG --exists --print-errors "\ +gtk+-2.0 >= $GTK_REQUIRED \ +libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ +") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + pkg_cv_MYGAL_CFLAGS=`$PKG_CONFIG --cflags "\ +gtk+-2.0 >= $GTK_REQUIRED \ +libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ +" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$MYGAL_LIBS"; then + pkg_cv_MYGAL_LIBS="$MYGAL_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"\\ +gtk+-2.0 >= \$GTK_REQUIRED \\ +libgnomeui-2.0 >= \$LIBGNOMEUI_REQUIRED \\ +\"") >&5 + ($PKG_CONFIG --exists --print-errors "\ +gtk+-2.0 >= $GTK_REQUIRED \ +libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ +") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + pkg_cv_MYGAL_LIBS=`$PKG_CONFIG --libs "\ +gtk+-2.0 >= $GTK_REQUIRED \ +libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ +" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + MYGAL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "\ +gtk+-2.0 >= $GTK_REQUIRED \ +libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ +" 2>&1` + else + MYGAL_PKG_ERRORS=`$PKG_CONFIG --print-errors "\ +gtk+-2.0 >= $GTK_REQUIRED \ +libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ +" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$MYGAL_PKG_ERRORS" >&5 + + { { $as_echo "$as_me:$LINENO: error: Package requirements (\ +gtk+-2.0 >= $GTK_REQUIRED \ +libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ +) were not met: + +$MYGAL_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables MYGAL_CFLAGS +and MYGAL_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. +" >&5 +$as_echo "$as_me: error: Package requirements (\ +gtk+-2.0 >= $GTK_REQUIRED \ +libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ +) were not met: + +$MYGAL_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables MYGAL_CFLAGS +and MYGAL_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. +" >&2;} + { (exit 1); exit 1; }; } +elif test $pkg_failed = untried; then + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables MYGAL_CFLAGS +and MYGAL_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables MYGAL_CFLAGS +and MYGAL_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; }; } +else + MYGAL_CFLAGS=$pkg_cv_MYGAL_CFLAGS + MYGAL_LIBS=$pkg_cv_MYGAL_LIBS + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + : +fi + + + + + + +pkg_failed=no +{ $as_echo "$as_me:$LINENO: checking for XML_PARSE_HUGE" >&5 +$as_echo_n "checking for XML_PARSE_HUGE... " >&6; } + +if test -n "$XML_PARSE_HUGE_CFLAGS"; then + pkg_cv_XML_PARSE_HUGE_CFLAGS="$XML_PARSE_HUGE_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.7.0\"") >&5 + ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.7.0") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + pkg_cv_XML_PARSE_HUGE_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 >= 2.7.0" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$XML_PARSE_HUGE_LIBS"; then + pkg_cv_XML_PARSE_HUGE_LIBS="$XML_PARSE_HUGE_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.7.0\"") >&5 + ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.7.0") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + pkg_cv_XML_PARSE_HUGE_LIBS=`$PKG_CONFIG --libs "libxml-2.0 >= 2.7.0" 2>/dev/null` +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + XML_PARSE_HUGE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libxml-2.0 >= 2.7.0" 2>&1` + else + XML_PARSE_HUGE_PKG_ERRORS=`$PKG_CONFIG --print-errors "libxml-2.0 >= 2.7.0" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$XML_PARSE_HUGE_PKG_ERRORS" >&5 + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + HAVE_XML_PARSE_HUGE="-UHAVE_XML_PARSE_HUGE" +elif test $pkg_failed = untried; then + HAVE_XML_PARSE_HUGE="-UHAVE_XML_PARSE_HUGE" +else + XML_PARSE_HUGE_CFLAGS=$pkg_cv_XML_PARSE_HUGE_CFLAGS + XML_PARSE_HUGE_LIBS=$pkg_cv_XML_PARSE_HUGE_LIBS + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_XML_PARSE_HUGE="-DHAVE_XML_PARSE_HUGE" +fi + + + +# Check whether --enable-deprecations was given. +if test "${enable_deprecations+set}" = set; then + enableval=$enable_deprecations; +else + enable_deprecations=no +fi + + +if test "x$enable_deprecations" = "xyes"; then + DISABLE_DEPRECATED_CFLAGS="\ +-DG_DISABLE_DEPRECATED \ +-DGDK_DISABLE_DEPRECATED \ +-DGTK_DISABLE_DEPRECATED \ +-DGDK_PIXBUF_DISABLE_DEPRECATED \ +-DGNOME_DISABLE_DEPRECATED \ +-DLIBGLADE_DISABLE_DEPRECATED" + +fi + + +# Extract the first word of "update-mime-database", so it can be a program name with args. +set dummy update-mime-database; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_UPDATE_MIME_DATABASE+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $UPDATE_MIME_DATABASE in + [\\/]* | ?:[\\/]*) + ac_cv_path_UPDATE_MIME_DATABASE="$UPDATE_MIME_DATABASE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_UPDATE_MIME_DATABASE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + test -z "$ac_cv_path_UPDATE_MIME_DATABASE" && ac_cv_path_UPDATE_MIME_DATABASE="no" + ;; +esac +fi +UPDATE_MIME_DATABASE=$ac_cv_path_UPDATE_MIME_DATABASE +if test -n "$UPDATE_MIME_DATABASE"; then + { $as_echo "$as_me:$LINENO: result: $UPDATE_MIME_DATABASE" >&5 +$as_echo "$UPDATE_MIME_DATABASE" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test x$UPDATE_MIME_DATABASE != xno; then + HAVE_NEW_MIME_TRUE= + HAVE_NEW_MIME_FALSE='#' +else + HAVE_NEW_MIME_TRUE='#' + HAVE_NEW_MIME_FALSE= +fi + + +# Extract the first word of "update-desktop-database", so it can be a program name with args. +set dummy update-desktop-database; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_UPDATE_DESKTOP_DATABASE+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $UPDATE_DESKTOP_DATABASE in + [\\/]* | ?:[\\/]*) + ac_cv_path_UPDATE_DESKTOP_DATABASE="$UPDATE_DESKTOP_DATABASE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_UPDATE_DESKTOP_DATABASE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + test -z "$ac_cv_path_UPDATE_DESKTOP_DATABASE" && ac_cv_path_UPDATE_DESKTOP_DATABASE="no" + ;; +esac +fi +UPDATE_DESKTOP_DATABASE=$ac_cv_path_UPDATE_DESKTOP_DATABASE +if test -n "$UPDATE_DESKTOP_DATABASE"; then + { $as_echo "$as_me:$LINENO: result: $UPDATE_DESKTOP_DATABASE" >&5 +$as_echo "$UPDATE_DESKTOP_DATABASE" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test x$UPDATE_DESKTOP_DATABASE != xno; then + HAVE_NEWER_MIME_TRUE= + HAVE_NEWER_MIME_FALSE='#' +else + HAVE_NEWER_MIME_TRUE='#' + HAVE_NEWER_MIME_FALSE= +fi + + +# Check whether --enable-update-mimedb was given. +if test "${enable_update_mimedb+set}" = set; then + enableval=$enable_update_mimedb; +else + enable_update_mimedb=yes +fi + + if test x$enable_update_mimedb = xyes; then + ENABLE_UPDATE_MIMEDB_TRUE= + ENABLE_UPDATE_MIMEDB_FALSE='#' +else + ENABLE_UPDATE_MIMEDB_TRUE='#' + ENABLE_UPDATE_MIMEDB_FALSE= +fi + + +# Check whether --enable-update-desktopdb was given. +if test "${enable_update_desktopdb+set}" = set; then + enableval=$enable_update_desktopdb; +else + enable_update_desktopdb=yes +fi + + if test x$enable_update_desktopdb = xyes; then + ENABLE_UPDATE_DESKTOPDB_TRUE= + ENABLE_UPDATE_DESKTOPDB_FALSE='#' +else + ENABLE_UPDATE_DESKTOPDB_TRUE='#' + ENABLE_UPDATE_DESKTOPDB_FALSE= +fi + + + +GETTEXT_PACKAGE=glabels + + +cat >>confdefs.h <<_ACEOF +#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" +_ACEOF + + + + +for ac_header in locale.h +do +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 +$as_echo_n "checking $ac_header usability... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 +$as_echo_n "checking $ac_header presence... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ---------------------------------------------------------------------------------- ## +## Report this to http://sourceforge.net/tracker/?func=add&group_id=46122&atid=445116 ## +## ---------------------------------------------------------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + +fi +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + if test $ac_cv_header_locale_h = yes; then + { $as_echo "$as_me:$LINENO: checking for LC_MESSAGES" >&5 +$as_echo_n "checking for LC_MESSAGES... " >&6; } +if test "${am_cv_val_LC_MESSAGES+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +return LC_MESSAGES + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + am_cv_val_LC_MESSAGES=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + am_cv_val_LC_MESSAGES=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $am_cv_val_LC_MESSAGES" >&5 +$as_echo "$am_cv_val_LC_MESSAGES" >&6; } + if test $am_cv_val_LC_MESSAGES = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_LC_MESSAGES 1 +_ACEOF + + fi + fi + USE_NLS=yes + + + gt_cv_have_gettext=no + + CATOBJEXT=NONE + XGETTEXT=: + INTLLIBS= + + if test "${ac_cv_header_libintl_h+set}" = set; then + { $as_echo "$as_me:$LINENO: checking for libintl.h" >&5 +$as_echo_n "checking for libintl.h... " >&6; } +if test "${ac_cv_header_libintl_h+set}" = set; then + $as_echo_n "(cached) " >&6 +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5 +$as_echo "$ac_cv_header_libintl_h" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:$LINENO: checking libintl.h usability" >&5 +$as_echo_n "checking libintl.h usability... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:$LINENO: checking libintl.h presence" >&5 +$as_echo_n "checking libintl.h presence... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { $as_echo "$as_me:$LINENO: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: libintl.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { $as_echo "$as_me:$LINENO: WARNING: libintl.h: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: libintl.h: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: libintl.h: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: libintl.h: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: libintl.h: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: libintl.h: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: libintl.h: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: libintl.h: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: libintl.h: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ---------------------------------------------------------------------------------- ## +## Report this to http://sourceforge.net/tracker/?func=add&group_id=46122&atid=445116 ## +## ---------------------------------------------------------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ $as_echo "$as_me:$LINENO: checking for libintl.h" >&5 +$as_echo_n "checking for libintl.h... " >&6; } +if test "${ac_cv_header_libintl_h+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_header_libintl_h=$ac_header_preproc +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5 +$as_echo "$ac_cv_header_libintl_h" >&6; } + +fi +if test "x$ac_cv_header_libintl_h" = x""yes; then + gt_cv_func_dgettext_libintl="no" + libintl_extra_libs="" + + # + # First check in libc + # + { $as_echo "$as_me:$LINENO: checking for ngettext in libc" >&5 +$as_echo_n "checking for ngettext in libc... " >&6; } +if test "${gt_cv_func_ngettext_libc+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include + +int +main () +{ +return !ngettext ("","", 1) + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + gt_cv_func_ngettext_libc=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gt_cv_func_ngettext_libc=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_ngettext_libc" >&5 +$as_echo "$gt_cv_func_ngettext_libc" >&6; } + + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + { $as_echo "$as_me:$LINENO: checking for dgettext in libc" >&5 +$as_echo_n "checking for dgettext in libc... " >&6; } +if test "${gt_cv_func_dgettext_libc+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include + +int +main () +{ +return !dgettext ("","") + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + gt_cv_func_dgettext_libc=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gt_cv_func_dgettext_libc=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_dgettext_libc" >&5 +$as_echo "$gt_cv_func_dgettext_libc" >&6; } + fi + + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + +for ac_func in bind_textdomain_codeset +do +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + eval "$as_ac_var=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + fi + + # + # If we don't have everything we want, check in libintl + # + if test "$gt_cv_func_dgettext_libc" != "yes" \ + || test "$gt_cv_func_ngettext_libc" != "yes" \ + || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then + + { $as_echo "$as_me:$LINENO: checking for bindtextdomain in -lintl" >&5 +$as_echo_n "checking for bindtextdomain in -lintl... " >&6; } +if test "${ac_cv_lib_intl_bindtextdomain+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char bindtextdomain (); +int +main () +{ +return bindtextdomain (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_intl_bindtextdomain=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_intl_bindtextdomain=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_bindtextdomain" >&5 +$as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } +if test "x$ac_cv_lib_intl_bindtextdomain" = x""yes; then + { $as_echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5 +$as_echo_n "checking for ngettext in -lintl... " >&6; } +if test "${ac_cv_lib_intl_ngettext+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ngettext (); +int +main () +{ +return ngettext (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_intl_ngettext=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_intl_ngettext=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5 +$as_echo "$ac_cv_lib_intl_ngettext" >&6; } +if test "x$ac_cv_lib_intl_ngettext" = x""yes; then + { $as_echo "$as_me:$LINENO: checking for dgettext in -lintl" >&5 +$as_echo_n "checking for dgettext in -lintl... " >&6; } +if test "${ac_cv_lib_intl_dgettext+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dgettext (); +int +main () +{ +return dgettext (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_intl_dgettext=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_intl_dgettext=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dgettext" >&5 +$as_echo "$ac_cv_lib_intl_dgettext" >&6; } +if test "x$ac_cv_lib_intl_dgettext" = x""yes; then + gt_cv_func_dgettext_libintl=yes +fi + +fi + +fi + + + if test "$gt_cv_func_dgettext_libintl" != "yes" ; then + { $as_echo "$as_me:$LINENO: checking if -liconv is needed to use gettext" >&5 +$as_echo_n "checking if -liconv is needed to use gettext... " >&6; } + { $as_echo "$as_me:$LINENO: result: " >&5 +$as_echo "" >&6; } + { $as_echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5 +$as_echo_n "checking for ngettext in -lintl... " >&6; } +if test "${ac_cv_lib_intl_ngettext+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl -liconv $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ngettext (); +int +main () +{ +return ngettext (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_intl_ngettext=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_intl_ngettext=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5 +$as_echo "$ac_cv_lib_intl_ngettext" >&6; } +if test "x$ac_cv_lib_intl_ngettext" = x""yes; then + { $as_echo "$as_me:$LINENO: checking for dcgettext in -lintl" >&5 +$as_echo_n "checking for dcgettext in -lintl... " >&6; } +if test "${ac_cv_lib_intl_dcgettext+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lintl -liconv $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dcgettext (); +int +main () +{ +return dcgettext (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_lib_intl_dcgettext=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_intl_dcgettext=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dcgettext" >&5 +$as_echo "$ac_cv_lib_intl_dcgettext" >&6; } +if test "x$ac_cv_lib_intl_dcgettext" = x""yes; then + gt_cv_func_dgettext_libintl=yes + libintl_extra_libs=-liconv +else + : +fi + +else + : +fi + + fi + + # + # If we found libintl, then check in it for bind_textdomain_codeset(); + # we'll prefer libc if neither have bind_textdomain_codeset(), + # and both have dgettext and ngettext + # + if test "$gt_cv_func_dgettext_libintl" = "yes" ; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS -lintl $libintl_extra_libs" + unset ac_cv_func_bind_textdomain_codeset + +for ac_func in bind_textdomain_codeset +do +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + eval "$as_ac_var=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + LIBS="$glib_save_LIBS" + + if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then + gt_cv_func_dgettext_libc=no + else + if test "$gt_cv_func_dgettext_libc" = "yes" \ + && test "$gt_cv_func_ngettext_libc" = "yes"; then + gt_cv_func_dgettext_libintl=no + fi + fi + fi + fi + + if test "$gt_cv_func_dgettext_libc" = "yes" \ + || test "$gt_cv_func_dgettext_libintl" = "yes"; then + gt_cv_have_gettext=yes + fi + + if test "$gt_cv_func_dgettext_libintl" = "yes"; then + INTLLIBS="-lintl $libintl_extra_libs" + fi + + if test "$gt_cv_have_gettext" = "yes"; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_GETTEXT 1 +_ACEOF + + # Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_MSGFMT+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case "$MSGFMT" in + /*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then + ac_cv_path_MSGFMT="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" + ;; +esac +fi +MSGFMT="$ac_cv_path_MSGFMT" +if test "$MSGFMT" != "no"; then + { $as_echo "$as_me:$LINENO: result: $MSGFMT" >&5 +$as_echo "$MSGFMT" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + if test "$MSGFMT" != "no"; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS $INTLLIBS" + +for ac_func in dcgettext +do +as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 +$as_echo_n "checking for $ac_func... " >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + eval "$as_ac_var=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_var'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + MSGFMT_OPTS= + { $as_echo "$as_me:$LINENO: checking if msgfmt accepts -c" >&5 +$as_echo_n "checking if msgfmt accepts -c... " >&6; } + cat >conftest.foo <<_ACEOF + +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: test 1.0\n" +"PO-Revision-Date: 2007-02-15 12:01+0100\n" +"Last-Translator: test \n" +"Language-Team: C \n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" + +_ACEOF +if { ($as_echo "$as_me:$LINENO: \$MSGFMT -c -o /dev/null conftest.foo") >&5 + ($MSGFMT -c -o /dev/null conftest.foo) 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + MSGFMT_OPTS=-c; { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } +else { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +echo "$as_me: failed input was:" >&5 +sed 's/^/| /' conftest.foo >&5 +fi + + # Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_GMSGFMT+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT +if test -n "$GMSGFMT"; then + { $as_echo "$as_me:$LINENO: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + # Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_XGETTEXT+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case "$XGETTEXT" in + /*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then + ac_cv_path_XGETTEXT="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" + ;; +esac +fi +XGETTEXT="$ac_cv_path_XGETTEXT" +if test "$XGETTEXT" != ":"; then + { $as_echo "$as_me:$LINENO: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + CATOBJEXT=.gmo + DATADIRNAME=share +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + case $host in + *-*-solaris*) + { $as_echo "$as_me:$LINENO: checking for bind_textdomain_codeset" >&5 +$as_echo_n "checking for bind_textdomain_codeset... " >&6; } +if test "${ac_cv_func_bind_textdomain_codeset+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define bind_textdomain_codeset to an innocuous variant, in case declares bind_textdomain_codeset. + For example, HP-UX 11i declares gettimeofday. */ +#define bind_textdomain_codeset innocuous_bind_textdomain_codeset + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char bind_textdomain_codeset (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef bind_textdomain_codeset + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char bind_textdomain_codeset (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_bind_textdomain_codeset || defined __stub___bind_textdomain_codeset +choke me +#endif + +int +main () +{ +return bind_textdomain_codeset (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then + ac_cv_func_bind_textdomain_codeset=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_bind_textdomain_codeset=no +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_bind_textdomain_codeset" >&5 +$as_echo "$ac_cv_func_bind_textdomain_codeset" >&6; } +if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then + CATOBJEXT=.gmo + DATADIRNAME=share +else + CATOBJEXT=.mo + DATADIRNAME=lib +fi + + ;; + *) + CATOBJEXT=.mo + DATADIRNAME=lib + ;; + esac +fi + +rm -rf conftest.dSYM +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$glib_save_LIBS" + INSTOBJEXT=.mo + else + gt_cv_have_gettext=no + fi + fi + +fi + + + + if test "$gt_cv_have_gettext" = "yes" ; then + +cat >>confdefs.h <<\_ACEOF +#define ENABLE_NLS 1 +_ACEOF + + fi + + if test "$XGETTEXT" != ":"; then + if $XGETTEXT --omit-header /dev/null 2> /dev/null; then + : ; + else + { $as_echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5 +$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } + XGETTEXT=":" + fi + fi + + # We need to process the po/ directory. + POSUB=po + + ac_config_commands="$ac_config_commands default-1" + + + for lang in $ALL_LINGUAS; do + GMOFILES="$GMOFILES $lang.gmo" + POFILES="$POFILES $lang.po" + done + + + + + + + + + + + + + + if test "$gt_cv_have_gettext" = "yes"; then + if test "x$ALL_LINGUAS" = "x"; then + LINGUAS= + else + { $as_echo "$as_me:$LINENO: checking for catalogs to be installed" >&5 +$as_echo_n "checking for catalogs to be installed... " >&6; } + NEW_LINGUAS= + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + NEW_LINGUAS="$NEW_LINGUAS $presentlang" + fi + done + LINGUAS=$NEW_LINGUAS + { $as_echo "$as_me:$LINENO: result: $LINGUAS" >&5 +$as_echo "$LINGUAS" >&6; } + fi + + if test -n "$LINGUAS"; then + for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done + fi + fi + + MKINSTALLDIRS= + if test -n "$ac_aux_dir"; then + MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" + fi + if test -z "$MKINSTALLDIRS"; then + MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" + fi + + + test -d po || mkdir po + if test "x$srcdir" != "x."; then + if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then + posrcprefix="$srcdir/" + else + posrcprefix="../$srcdir/" + fi + else + posrcprefix="../" + fi + rm -f po/POTFILES + sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ + < $srcdir/po/POTFILES.in > po/POTFILES + + + +ac_config_files="$ac_config_files Makefile barcode-0.98/Makefile iec16022-0.2.1/Makefile libglabels/Makefile libglabels/libglabels.pc src/Makefile src/pixmaps/Makefile src/stock-pixmaps/Makefile src/mygal/Makefile data/Makefile data/templates/Makefile data/pixmaps/Makefile data/mime/Makefile data/glade/Makefile data/desktop/Makefile data/dtd/Makefile data/man/Makefile po/Makefile.in help/Makefile docs/Makefile docs/libglabels/Makefile glabels.spec" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + test "x$cache_file" != "x/dev/null" && + { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + cat confcache >$cache_file + else + { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${ENABLE_SK_TRUE}" && test -z "${ENABLE_SK_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_SK\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"ENABLE_SK\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${HAVE_GNOME_DOC_UTILS_TRUE}" && test -z "${HAVE_GNOME_DOC_UTILS_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_GNOME_DOC_UTILS\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"HAVE_GNOME_DOC_UTILS\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi + + ac_config_commands="$ac_config_commands po/stamp-it" + + +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_GTK_DOC\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"ENABLE_GTK_DOC\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${GTK_DOC_USE_LIBTOOL_TRUE}" && test -z "${GTK_DOC_USE_LIBTOOL_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"GTK_DOC_USE_LIBTOOL\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"GTK_DOC_USE_LIBTOOL\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${HAVE_NEW_MIME_TRUE}" && test -z "${HAVE_NEW_MIME_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_NEW_MIME\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"HAVE_NEW_MIME\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${HAVE_NEWER_MIME_TRUE}" && test -z "${HAVE_NEWER_MIME_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_NEWER_MIME\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"HAVE_NEWER_MIME\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${ENABLE_UPDATE_MIMEDB_TRUE}" && test -z "${ENABLE_UPDATE_MIMEDB_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_UPDATE_MIMEDB\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"ENABLE_UPDATE_MIMEDB\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${ENABLE_UPDATE_DESKTOPDB_TRUE}" && test -z "${ENABLE_UPDATE_DESKTOPDB_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_UPDATE_DESKTOPDB\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"ENABLE_UPDATE_DESKTOPDB\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi + +: ${CONFIG_STATUS=./config.status} +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# CDPATH. +$as_unset CDPATH + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 + +# Save the log message, to keep $[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by glabels $as_me 2.2.8, which was +generated by GNU Autoconf 2.63. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTION]... [FILE]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_version="\\ +glabels config.status 2.2.8 +configured by $0, generated by GNU Autoconf 2.63, + with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" + +Copyright (C) 2008 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + { $as_echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) { $as_echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' +macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' +enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' +enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' +pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' +host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' +host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' +host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' +build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' +build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' +build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' +SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' +Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' +GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' +EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' +FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' +LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' +NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' +LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' +ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' +exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' +lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' +reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' +AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' +STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' +RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' +CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' +compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' +GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' +objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' +SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' +ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' +need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' +LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' +OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' +libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' +module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' +fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' +need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' +version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' +runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' +libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' +soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' +finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' +old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' +striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# Quote evaled strings. +for var in SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +OBJDUMP \ +deplibs_check_method \ +file_magic_cmd \ +AR \ +AR_FLAGS \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +SHELL \ +ECHO \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_wl \ +lt_prog_compiler_pic \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_flag_spec_ld \ +hardcode_libdir_separator \ +fix_srcfile_path \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +finish_eval \ +old_striplib \ +striplib; do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +sys_lib_dlsearch_path_spec; do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Fix-up fallback echo if it was mangled by the above quoting rules. +case \$lt_ECHO in +*'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` + ;; +esac + +ac_aux_dir='$ac_aux_dir' +xsi_shell='$xsi_shell' +lt_shell_append='$lt_shell_append' + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile' + + + + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "barcode-0.98/Makefile") CONFIG_FILES="$CONFIG_FILES barcode-0.98/Makefile" ;; + "iec16022-0.2.1/Makefile") CONFIG_FILES="$CONFIG_FILES iec16022-0.2.1/Makefile" ;; + "libglabels/Makefile") CONFIG_FILES="$CONFIG_FILES libglabels/Makefile" ;; + "libglabels/libglabels.pc") CONFIG_FILES="$CONFIG_FILES libglabels/libglabels.pc" ;; + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "src/pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES src/pixmaps/Makefile" ;; + "src/stock-pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES src/stock-pixmaps/Makefile" ;; + "src/mygal/Makefile") CONFIG_FILES="$CONFIG_FILES src/mygal/Makefile" ;; + "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; + "data/templates/Makefile") CONFIG_FILES="$CONFIG_FILES data/templates/Makefile" ;; + "data/pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES data/pixmaps/Makefile" ;; + "data/mime/Makefile") CONFIG_FILES="$CONFIG_FILES data/mime/Makefile" ;; + "data/glade/Makefile") CONFIG_FILES="$CONFIG_FILES data/glade/Makefile" ;; + "data/desktop/Makefile") CONFIG_FILES="$CONFIG_FILES data/desktop/Makefile" ;; + "data/dtd/Makefile") CONFIG_FILES="$CONFIG_FILES data/dtd/Makefile" ;; + "data/man/Makefile") CONFIG_FILES="$CONFIG_FILES data/man/Makefile" ;; + "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; + "help/Makefile") CONFIG_FILES="$CONFIG_FILES help/Makefile" ;; + "docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;; + "docs/libglabels/Makefile") CONFIG_FILES="$CONFIG_FILES docs/libglabels/Makefile" ;; + "glabels.spec") CONFIG_FILES="$CONFIG_FILES glabels.spec" ;; + "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; + + *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= + trap 'exit_status=$? + { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status +' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || +{ + $as_echo "$as_me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } +} + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=' ' +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } +ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\).*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\).*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ + || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 +$as_echo "$as_me: error: could not setup config files machinery" >&2;} + { (exit 1); exit 1; }; } +_ACEOF + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/ +s/:*\${srcdir}:*/:/ +s/:*@srcdir@:*/:/ +s/^\([^=]*=[ ]*\):*/\1/ +s/:*$// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_t=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_t"; then + break + elif $ac_last_try; then + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5 +$as_echo "$as_me: error: could not setup config headers machinery" >&2;} + { (exit 1); exit 1; }; } +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 +$as_echo "$as_me: error: invalid tag $ac_tag" >&2;} + { (exit 1); exit 1; }; };; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 +$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} + { (exit 1); exit 1; }; };; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + ac_file_inputs="$ac_file_inputs '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$tmp/stdin" \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir="$ac_dir" + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= + +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p +' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&2;} + + rm -f "$tmp/stdin" + case $ac_file in + -) cat "$tmp/out" && rm -f "$tmp/out";; + *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + esac \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" + } >"$tmp/config.h" \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } + if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$tmp/config.h" "$ac_file" \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ + || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5 +$as_echo "$as_me: error: could not create -" >&2;} + { (exit 1); exit 1; }; } + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir=$dirpart/$fdir + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + +# The names of the tagged configurations supported by this script. +available_tags="" + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that does not interpret backslashes. +ECHO=$lt_ECHO + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# If ld is used when linking, flag to hardcode \$libdir into a binary +# during linking. This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path=$lt_fix_srcfile_path + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain="$ac_aux_dir/ltmain.sh" + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + case $xsi_shell in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac +} + +# func_basename file +func_basename () +{ + func_basename_result="${1##*/}" +} + +# func_dirname_and_basename file append nondir_replacement +# perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# Implementation must be kept synchronized with func_dirname +# and func_basename. For efficiency, we do not delegate to +# those functions but instead duplicate the functionality here. +func_dirname_and_basename () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}" +} + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +func_stripname () +{ + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"} +} + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=${1%%=*} + func_opt_split_arg=${1#*=} +} + +# func_lo2o object +func_lo2o () +{ + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=${1%.*}.lo +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=$(( $* )) +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=${#1} +} + +_LT_EOF + ;; + *) # Bourne compatible functions. + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` +} + + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# func_strip_suffix prefix name +func_stripname () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; + esac +} + +# sed scripts: +my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' +my_sed_long_arg='1s/^-[^=]*=//' + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` + func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` +} + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=`expr "$@"` +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` +} + +_LT_EOF +esac + +case $lt_shell_append in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$1+=\$2" +} +_LT_EOF + ;; + *) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$1=\$$1\$2" +} + +_LT_EOF + ;; + esac + + + sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + ;; + "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) + sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile + esac ;; + "po/stamp-it":C) + if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then + { { $as_echo "$as_me:$LINENO: error: po/Makefile.in.in was not created by intltoolize." >&5 +$as_echo "$as_me: error: po/Makefile.in.in was not created by intltoolize." >&2;} + { (exit 1); exit 1; }; } + fi + rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" + >"po/stamp-it.tmp" + sed '/^#/d + s/^[[].*] *// + /^[ ]*$/d + '"s|^| $ac_top_srcdir/|" \ + "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" + + sed '/^POTFILES =/,/[^\\]$/ { + /^POTFILES =/!d + r po/POTFILES + } + ' "po/Makefile.in" >"po/Makefile" + rm -f "po/Makefile.tmp" + mv "po/stamp-it.tmp" "po/stamp-it" + ;; + + esac +done # for ac_tag + + +{ (exit 0); exit 0; } +_ACEOF +chmod +x $CONFIG_STATUS +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || { (exit 1); exit 1; } +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + + +echo " +Configuration: + + Package: ${PACKAGE}-${VERSION}: + Installation prefix ${prefix} + Source code location: ${srcdir} + Compiler: ${CC} + Evolution Data Server support: ${have_libebook} + +" + diff --git a/configure.in b/configure.in new file mode 100644 index 00000000..0258b0fa --- /dev/null +++ b/configure.in @@ -0,0 +1,234 @@ +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.52) + +AC_INIT(glabels, 2.2.8, http://sourceforge.net/tracker/?func=add&group_id=46122&atid=445116) +AC_CONFIG_SRCDIR(src/glabels.c) +AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) +GNOME_DOC_INIT + +AM_MAINTAINER_MODE +AM_CONFIG_HEADER(config.h) + +AC_PROG_INTLTOOL([0.21]) +PKG_PROG_PKG_CONFIG + +AM_PROG_LIBTOOL + +AC_ISC_POSIX +AC_PROG_CC +AM_PROG_CC_STDC +AC_HEADER_STDC + +GNOME_COMPILE_WARNINGS + +AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal) + +GTK_DOC_CHECK(1.0) + +dnl --------------------------------------------------------------------------- +dnl - LIBGLABELS API versioning +dnl --------------------------------------------------------------------------- +dnl From the libtool manual: +dnl 1. Start with version information of `0:0:0' for each libtool library. +dnl 2. Update the version information only immediately before a public release. +dnl More frequent updates are unnecessary, and only guarantee that the current +dnl interface number gets larger faster. +dnl 3. If the library source code has changed at all since the last update, then increment +dnl revision (`c:r:a' becomes `c:r+1:a'). +dnl 4. If any interfaces have been added, removed, or changed since the last update, +dnl increment current, and set revision to 0. +dnl 5. If any interfaces have been added since the last public release, then increment age. +dnl 6. If any interfaces have been removed since the last public release, then set age +dnl to 0. +LIBGLABELS_C=6 +LIBGLABELS_R=2 +LIBGLABELS_A=1 + +LIBGLABELS_VERSION_INFO=${LIBGLABELS_C}:${LIBGLABELS_R}:${LIBGLABELS_A} +AC_SUBST(LIBGLABELS_VERSION_INFO) + + +dnl --------------------------------------------------------------------------- +dnl - Library dependencies +dnl --------------------------------------------------------------------------- +GLIB_REQUIRED=2.12.0 +GTK_REQUIRED=2.10.0 +LIBGNOME_REQUIRED=2.16.0 +LIBGNOMEUI_REQUIRED=2.16.0 +LIBXML_REQUIRED=2.6.0 +LIBGLADE_REQUIRED=2.6.0 +LIBEBOOK_REQUIRED=1.8.0 + +dnl Make above strings available for packaging files (e.g. rpm spec files) +AC_SUBST(GLIB_REQUIRED) +AC_SUBST(GTK_REQUIRED) +AC_SUBST(LIBGNOME_REQUIRED) +AC_SUBST(LIBGNOMEUI_REQUIRED) +AC_SUBST(LIBXML_REQUIRED) +AC_SUBST(LIBGLADE_REQUIRED) +AC_SUBST(LIBEBOOK_REQUIRED) + + +dnl --------------------------------------------------------------------------- +dnl - Check for evolution data server +dnl --------------------------------------------------------------------------- +AC_ARG_WITH(libebook, + [AC_HELP_STRING([--without-libebook], + [build without Evolution Data Server support])]) +have_libebook=no +if test "x$with_libebook" != xno; then + PKG_CHECK_MODULES(LIBEBOOK, libebook-1.2 >= $LIBEBOOK_REQUIRED, + [have_libebook=yes], [have_libebook=no]) +fi + +if test "x$have_libebook" = "xyes"; then + AC_DEFINE(HAVE_LIBEBOOK,1,[Define to 1 for EDS support]) + OPTIONAL_MODULES="$OPTIONAL_MODULES libebook-1.2 >= $LIBEBOOK_REQUIRED" +fi + + +dnl --------------------------------------------------------------------------- +dnl - GLABELS prerequisites +dnl --------------------------------------------------------------------------- +PKG_CHECK_MODULES(GLABELS, \ +glib-2.0 >= $GLIB_REQUIRED \ +gtk+-2.0 >= $GTK_REQUIRED \ +libgnome-2.0 >= $LIBGNOME_REQUIRED \ +libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ +libxml-2.0 >= $LIBXML_REQUIRED \ +libglade-2.0 >= $LIBGLADE_REQUIRED \ +$OPTIONAL_MODULES \ +) + +AC_SUBST(GLABELS_CFLAGS) +AC_SUBST(GLABELS_LIBS) + + +dnl --------------------------------------------------------------------------- +dnl - LIBGLABELS more modest prerequisites +dnl --------------------------------------------------------------------------- +PKG_CHECK_MODULES(LIBGLABELS, \ +glib-2.0 >= $GLIB_REQUIRED \ +libxml-2.0 >= $LIBXML_REQUIRED \ +) + +AC_SUBST(LIBGLABELS_CFLAGS) +AC_SUBST(LIBGLABELS_LIBS) + + +dnl --------------------------------------------------------------------------- +dnl - MYGAL prerequisites +dnl --------------------------------------------------------------------------- +PKG_CHECK_MODULES(MYGAL, \ +gtk+-2.0 >= $GTK_REQUIRED \ +libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED \ +) + +AC_SUBST(MYGAL_CFLAGS) +AC_SUBST(MYGAL_LIBS) + + +dnl --------------------------------------------------------------------------- +dnl - Is XML_PARSE_HUGE available? +dnl --------------------------------------------------------------------------- +PKG_CHECK_MODULES(XML_PARSE_HUGE, libxml-2.0 >= 2.7.0, + HAVE_XML_PARSE_HUGE="-DHAVE_XML_PARSE_HUGE", + HAVE_XML_PARSE_HUGE="-UHAVE_XML_PARSE_HUGE") +AC_SUBST(HAVE_XML_PARSE_HUGE) + + +dnl --------------------------------------------------------------------------- +dnl - Enable deprecation testing +dnl --------------------------------------------------------------------------- +AC_ARG_ENABLE(deprecations, + [AC_HELP_STRING([--enable-deprecations], + [warn about deprecated usages [default=no]])],, + [enable_deprecations=no]) + +if test "x$enable_deprecations" = "xyes"; then + DISABLE_DEPRECATED_CFLAGS="\ +-DG_DISABLE_DEPRECATED \ +-DGDK_DISABLE_DEPRECATED \ +-DGTK_DISABLE_DEPRECATED \ +-DGDK_PIXBUF_DISABLE_DEPRECATED \ +-DGNOME_DISABLE_DEPRECATED \ +-DLIBGLADE_DISABLE_DEPRECATED" + AC_SUBST(DISABLE_DEPRECATED_CFLAGS) +fi + + +dnl --------------------------------------------------------------------------- +dnl - Is freedesktop mime dbase available? +dnl --------------------------------------------------------------------------- +AC_PATH_PROG(UPDATE_MIME_DATABASE, update-mime-database, no) +AM_CONDITIONAL(HAVE_NEW_MIME, test x$UPDATE_MIME_DATABASE != xno) + +AC_PATH_PROG(UPDATE_DESKTOP_DATABASE, update-desktop-database, no) +AM_CONDITIONAL(HAVE_NEWER_MIME, test x$UPDATE_DESKTOP_DATABASE != xno) + +AC_ARG_ENABLE(update-mimedb, AC_HELP_STRING([--disable-update-mimedb], + [disable the update-mime-database after install [default=no]]),, + enable_update_mimedb=yes) +AM_CONDITIONAL(ENABLE_UPDATE_MIMEDB, test x$enable_update_mimedb = xyes) + +AC_ARG_ENABLE(update-desktopdb, AC_HELP_STRING([--disable-update-desktopdb], + [disable the update-desktop-database after install [default=no]]),, + enable_update_desktopdb=yes) +AM_CONDITIONAL(ENABLE_UPDATE_DESKTOPDB, test x$enable_update_desktopdb = xyes) + + +dnl --------------------------------------------------------------------------- +dnl - Supported languages +dnl --------------------------------------------------------------------------- +GETTEXT_PACKAGE=glabels +AC_SUBST(GETTEXT_PACKAGE) +AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Gettext package]) + +AM_GLIB_GNU_GETTEXT + + +dnl --------------------------------------------------------------------------- +dnl - Makefiles, etc. +dnl --------------------------------------------------------------------------- +AC_OUTPUT([ +Makefile +barcode-0.98/Makefile +iec16022-0.2.1/Makefile +libglabels/Makefile +libglabels/libglabels.pc +src/Makefile +src/pixmaps/Makefile +src/stock-pixmaps/Makefile +src/mygal/Makefile +data/Makefile +data/templates/Makefile +data/pixmaps/Makefile +data/mime/Makefile +data/glade/Makefile +data/desktop/Makefile +data/dtd/Makefile +data/man/Makefile +po/Makefile.in +help/Makefile +docs/Makefile +docs/libglabels/Makefile +glabels.spec +]) + + +dnl --------------------------------------------------------------------------- +dnl - Print configuration information +dnl --------------------------------------------------------------------------- +echo " +Configuration: + + Package: ${PACKAGE}-${VERSION}: + Installation prefix ${prefix} + Source code location: ${srcdir} + Compiler: ${CC} + Evolution Data Server support: ${have_libebook} + +" + +dnl cat ${srcdir}/MESSAGE-OF-DOOM diff --git a/data/Makefile.am b/data/Makefile.am new file mode 100644 index 00000000..6b00c464 --- /dev/null +++ b/data/Makefile.am @@ -0,0 +1,5 @@ +## Process this file with automake to produce Makefile.in + +SUBDIRS = desktop dtd glade man mime pixmaps templates + + diff --git a/data/Makefile.in b/data/Makefile.in new file mode 100644 index 00000000..38853604 --- /dev/null +++ b/data/Makefile.in @@ -0,0 +1,604 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = data +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_CFLAGS = @GLABELS_CFLAGS@ +GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_REQUIRED = @GLIB_REQUIRED@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_REQUIRED = @GTK_REQUIRED@ +HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +HELP_DIR = @HELP_DIR@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ +LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ +LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ +LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ +LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ +LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ +LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ +LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +MYGAL_CFLAGS = @MYGAL_CFLAGS@ +MYGAL_LIBS = @MYGAL_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ +UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +XGETTEXT = @XGETTEXT@ +XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ +XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = desktop dtd glade man mime pixmaps templates +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu data/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ + install-am install-strip tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/desktop/Makefile.am b/data/desktop/Makefile.am new file mode 100644 index 00000000..ce2a21fc --- /dev/null +++ b/data/desktop/Makefile.am @@ -0,0 +1,13 @@ +## Process this file with automake to produce Makefile.in + +@INTLTOOL_DESKTOP_RULE@ + +DESKTOP_IN_FILES = glabels.desktop.in +DESKTOP_FILES =$(DESKTOP_IN_FILES:.desktop.in=.desktop) + +desktopdir = $(datadir)/applications +desktop_DATA = $(DESKTOP_FILES) + +EXTRA_DIST = $(DESKTOP_IN_FILES) + +CLEANFILES = $(DESKTOP_FILES) diff --git a/data/desktop/Makefile.in b/data/desktop/Makefile.in new file mode 100644 index 00000000..3986b8f6 --- /dev/null +++ b/data/desktop/Makefile.in @@ -0,0 +1,458 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = data/desktop +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(desktopdir)" +DATA = $(desktop_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_CFLAGS = @GLABELS_CFLAGS@ +GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_REQUIRED = @GLIB_REQUIRED@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_REQUIRED = @GTK_REQUIRED@ +HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +HELP_DIR = @HELP_DIR@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ +LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ +LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ +LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ +LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ +LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ +LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ +LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +MYGAL_CFLAGS = @MYGAL_CFLAGS@ +MYGAL_LIBS = @MYGAL_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ +UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +XGETTEXT = @XGETTEXT@ +XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ +XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +DESKTOP_IN_FILES = glabels.desktop.in +DESKTOP_FILES = $(DESKTOP_IN_FILES:.desktop.in=.desktop) +desktopdir = $(datadir)/applications +desktop_DATA = $(DESKTOP_FILES) +EXTRA_DIST = $(DESKTOP_IN_FILES) +CLEANFILES = $(DESKTOP_FILES) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/desktop/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu data/desktop/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-desktopDATA: $(desktop_DATA) + @$(NORMAL_INSTALL) + test -z "$(desktopdir)" || $(MKDIR_P) "$(DESTDIR)$(desktopdir)" + @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \ + done + +uninstall-desktopDATA: + @$(NORMAL_UNINSTALL) + @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(desktopdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(desktopdir)" && rm -f $$files +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(desktopdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-desktopDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-desktopDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-desktopDATA install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-desktopDATA + + +@INTLTOOL_DESKTOP_RULE@ + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/desktop/glabels.desktop.in b/data/desktop/glabels.desktop.in new file mode 100644 index 00000000..be70f928 --- /dev/null +++ b/data/desktop/glabels.desktop.in @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +_Name=gLabels Label Designer +_Comment=Create labels, business cards and media covers +Exec=glabels %F +Icon=glabels.png +Terminal=false +Type=Application +Categories=GNOME;Application;Office; +StartupNotify=true +MimeType=application/x-glabels; diff --git a/data/dtd/Makefile.am b/data/dtd/Makefile.am new file mode 100644 index 00000000..0dce23d6 --- /dev/null +++ b/data/dtd/Makefile.am @@ -0,0 +1,9 @@ +## Process this file with automake to produce Makefile.in + +dtddir = $(datadir)/glabels/dtd + +dtd_DATA = \ + glabels-2.2.dtd + +EXTRA_DIST = $(dtd_DATA) + diff --git a/data/dtd/Makefile.in b/data/dtd/Makefile.in new file mode 100644 index 00000000..3dabd77b --- /dev/null +++ b/data/dtd/Makefile.in @@ -0,0 +1,454 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = data/dtd +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(dtddir)" +DATA = $(dtd_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_CFLAGS = @GLABELS_CFLAGS@ +GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_REQUIRED = @GLIB_REQUIRED@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_REQUIRED = @GTK_REQUIRED@ +HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +HELP_DIR = @HELP_DIR@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ +LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ +LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ +LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ +LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ +LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ +LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ +LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +MYGAL_CFLAGS = @MYGAL_CFLAGS@ +MYGAL_LIBS = @MYGAL_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ +UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +XGETTEXT = @XGETTEXT@ +XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ +XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +dtddir = $(datadir)/glabels/dtd +dtd_DATA = \ + glabels-2.2.dtd + +EXTRA_DIST = $(dtd_DATA) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/dtd/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu data/dtd/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-dtdDATA: $(dtd_DATA) + @$(NORMAL_INSTALL) + test -z "$(dtddir)" || $(MKDIR_P) "$(DESTDIR)$(dtddir)" + @list='$(dtd_DATA)'; test -n "$(dtddir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dtddir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(dtddir)" || exit $$?; \ + done + +uninstall-dtdDATA: + @$(NORMAL_UNINSTALL) + @list='$(dtd_DATA)'; test -n "$(dtddir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(dtddir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(dtddir)" && rm -f $$files +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(dtddir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-dtdDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-dtdDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dtdDATA install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-dtdDATA + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/dtd/glabels-2.2.dtd b/data/dtd/glabels-2.2.dtd new file mode 100644 index 00000000..b23519fc --- /dev/null +++ b/data/dtd/glabels-2.2.dtd @@ -0,0 +1,381 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/glade/Makefile.am b/data/glade/Makefile.am new file mode 100644 index 00000000..4747c88f --- /dev/null +++ b/data/glade/Makefile.am @@ -0,0 +1,18 @@ +## Process this file with automake to produce Makefile.in + +gladedir = $(datadir)/glabels/glade/ + +glade_DATA = \ + object-editor.glade \ + prefs-dialog.glade \ + template-designer.glade \ + merge-properties-dialog.glade \ + property-bar.glade \ + print-custom-widget.glade \ + wdgt-media-select.glade \ + wdgt-rotate-label.glade \ + new-label-dialog.glade + +EXTRA_DIST = $(glade_DATA) + + diff --git a/data/glade/Makefile.in b/data/glade/Makefile.in new file mode 100644 index 00000000..2c82fbd0 --- /dev/null +++ b/data/glade/Makefile.in @@ -0,0 +1,462 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = data/glade +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(gladedir)" +DATA = $(glade_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_CFLAGS = @GLABELS_CFLAGS@ +GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_REQUIRED = @GLIB_REQUIRED@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_REQUIRED = @GTK_REQUIRED@ +HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +HELP_DIR = @HELP_DIR@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ +LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ +LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ +LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ +LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ +LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ +LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ +LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +MYGAL_CFLAGS = @MYGAL_CFLAGS@ +MYGAL_LIBS = @MYGAL_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ +UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +XGETTEXT = @XGETTEXT@ +XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ +XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +gladedir = $(datadir)/glabels/glade/ +glade_DATA = \ + object-editor.glade \ + prefs-dialog.glade \ + template-designer.glade \ + merge-properties-dialog.glade \ + property-bar.glade \ + print-custom-widget.glade \ + wdgt-media-select.glade \ + wdgt-rotate-label.glade \ + new-label-dialog.glade + +EXTRA_DIST = $(glade_DATA) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/glade/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu data/glade/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-gladeDATA: $(glade_DATA) + @$(NORMAL_INSTALL) + test -z "$(gladedir)" || $(MKDIR_P) "$(DESTDIR)$(gladedir)" + @list='$(glade_DATA)'; test -n "$(gladedir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(gladedir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(gladedir)" || exit $$?; \ + done + +uninstall-gladeDATA: + @$(NORMAL_UNINSTALL) + @list='$(glade_DATA)'; test -n "$(gladedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(gladedir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(gladedir)" && rm -f $$files +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(gladedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-gladeDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-gladeDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-gladeDATA install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-gladeDATA + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/glade/merge-properties-dialog.glade b/data/glade/merge-properties-dialog.glade new file mode 100644 index 00000000..b62dcedf --- /dev/null +++ b/data/glade/merge-properties-dialog.glade @@ -0,0 +1,375 @@ + + + + + + + True + dialog1 + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_NONE + False + True + False + True + False + False + GDK_WINDOW_TYPE_HINT_DIALOG + GDK_GRAVITY_NORTH_WEST + True + True + + + + True + False + 0 + + + + True + GTK_BUTTONBOX_END + + + + True + True + True + gtk-cancel + True + GTK_RELIEF_NORMAL + True + -6 + + + + + + True + True + True + gtk-ok + True + GTK_RELIEF_NORMAL + True + -5 + + + + + 0 + False + True + GTK_PACK_END + + + + + + True + False + 6 + + + + True + 0 + 0.5 + GTK_SHADOW_NONE + + + + True + 0.5 + 0.5 + 1 + 1 + 0 + 0 + 12 + 0 + + + + 12 + True + 2 + 2 + False + 6 + 6 + + + + True + Format: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 0 + 1 + fill + + + + + + + True + False + True + + + 1 + 2 + 0 + 1 + fill + + + + + + True + False + 0 + + + + + + + 1 + 2 + 1 + 2 + fill + fill + + + + + + True + Location: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 1 + 2 + fill + + + + + + + + + + + True + <b>Source</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + label_item + + + + + 0 + False + True + + + + + + True + 0 + 0.5 + GTK_SHADOW_NONE + + + + True + 0.5 + 0.5 + 1 + 1 + 0 + 0 + 12 + 0 + + + + True + False + 6 + + + + 6 + 500 + 350 + True + True + GTK_POLICY_AUTOMATIC + GTK_POLICY_AUTOMATIC + GTK_SHADOW_IN + GTK_CORNER_TOP_LEFT + + + + True + True + True + False + False + True + False + False + False + + + + + 0 + True + True + + + + + + 6 + True + False + 12 + + + + True + True + Select all + True + GTK_RELIEF_NORMAL + True + + + 0 + False + False + + + + + + True + True + Unselect all + True + GTK_RELIEF_NORMAL + True + + + 0 + False + False + + + + + 0 + False + True + + + + + + + + + + True + <b>Record selection/preview</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + label_item + + + + + 0 + True + True + + + + + 0 + True + True + + + + + + + diff --git a/data/glade/new-label-dialog.glade b/data/glade/new-label-dialog.glade new file mode 100644 index 00000000..8633976c --- /dev/null +++ b/data/glade/new-label-dialog.glade @@ -0,0 +1,85 @@ + + + + + + True + window1 + + + True + 3 + vertical + 6 + + + True + 0 + none + + + True + 12 + + + True + + + + + + + + + + True + <b>Media type</b> + True + + + label_item + + + + + 0 + + + + + True + 0 + none + + + True + 12 + + + True + + + + + + + + + + True + <b>Label orientation</b> + True + + + label_item + + + + + 1 + + + + + + diff --git a/data/glade/object-editor.glade b/data/glade/object-editor.glade new file mode 100644 index 00000000..d4ba2fe4 --- /dev/null +++ b/data/glade/object-editor.glade @@ -0,0 +1,3471 @@ + + + + + + + + 6 + True + dialog1 + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_NONE + False + True + False + True + False + False + GDK_WINDOW_TYPE_HINT_DIALOG + GDK_GRAVITY_NORTH_WEST + True + False + True + + + + True + False + 0 + + + + True + GTK_BUTTONBOX_END + + + + True + True + True + gtk-close + True + GTK_RELIEF_NORMAL + True + -7 + + + + + 0 + False + True + GTK_PACK_END + + + + + + 6 + True + False + 12 + + + + True + False + 12 + + + + True + 0.5 + 0.5 + 0 + 0 + + + 0 + False + True + + + + + + True + <span weight="bold" size="larger">Xxx object properties</span> + False + True + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + 0 + False + False + + + + + + True + True + True + True + GTK_POS_TOP + True + False + + + + 12 + True + False + 6 + + + + True + False + 0 + + + + True + True + GTK_POLICY_ALWAYS + GTK_POLICY_ALWAYS + GTK_SHADOW_NONE + GTK_CORNER_TOP_LEFT + + + + 232 + True + True + True + False + True + GTK_JUSTIFY_LEFT + GTK_WRAP_NONE + True + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + 0 + True + True + + + + + 0 + True + True + + + + + + True + False + 12 + + + + True + Key: + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + False + True + + + 0 + True + True + + + + + + True + True + Insert merge field + True + GTK_RELIEF_NORMAL + True + + + 0 + False + False + + + + + 0 + False + False + + + + + False + False + + + + + + True + Text + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + 12 + True + False + 12 + + + + True + False + 12 + + + + True + Family: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + False + True + + + 0 + True + True + + + + + 0 + False + False + + + + + + True + False + 12 + + + + True + Size: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + False + 12 + + + + True + True + 0.00999999977648 + 0 + True + GTK_UPDATE_ALWAYS + False + False + 1 1 100 1 10 0 + + + 0 + False + False + + + + + 0 + True + True + + + + + 0 + False + False + + + + + + True + False + 12 + + + + True + Style: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + False + 12 + + + + True + True + GTK_RELIEF_NORMAL + True + False + False + + + + True + gtk-bold + 4 + 0.5 + 0.5 + 0 + 0 + + + + + 0 + False + False + + + + + + True + True + GTK_RELIEF_NORMAL + True + False + False + + + + True + gtk-italic + 4 + 0.5 + 0.5 + 0 + 0 + + + + + 0 + False + False + + + + + 0 + True + True + + + + + 0 + False + False + + + + + + True + False + 12 + + + + True + Color: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.140000000596 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + False + 6 + + + + True + False + 6 + + + + True + True + + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + False + 12 + + + + True + gl_object_editor_construct_color_combo + 2 + 0 + Sun, 16 Nov 2003 06:52:23 GMT + + + 0 + False + False + + + + + 0 + True + True + + + + + 0 + True + True + + + + + + True + False + 6 + + + + True + True + Key: + True + GTK_RELIEF_NORMAL + True + False + False + True + text_color_radio + + + 0 + False + False + + + + + + True + False + 12 + + + + True + False + True + + + 0 + True + True + + + + + 0 + True + True + + + + + 0 + True + True + + + + + 0 + True + True + + + + + 0 + False + False + + + + + + True + False + 12 + + + + True + Alignment: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + False + 12 + + + + True + True + GTK_RELIEF_NORMAL + True + False + False + + + + True + gtk-justify-left + 4 + 0.5 + 0.5 + 0 + 0 + + + + + 0 + False + False + + + + + + True + True + GTK_RELIEF_NORMAL + True + False + False + + + + True + gtk-justify-center + 4 + 0.5 + 0.5 + 0 + 0 + + + + + 0 + False + False + + + + + + True + True + GTK_RELIEF_NORMAL + True + False + False + + + + True + gtk-justify-right + 4 + 0.5 + 0.5 + 0 + 0 + + + + + 0 + False + False + + + + + 0 + True + True + + + + + 0 + False + False + + + + + + True + False + 12 + + + + True + Line Spacing: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + False + 12 + + + + True + True + 0.00999999977648 + 2 + False + GTK_UPDATE_ALWAYS + False + False + 1 0 5 0.01 0.1 0 + + + 0 + False + False + + + + + 0 + True + True + + + + + 0 + False + False + + + + + + True + True + Allow merge to automatically shrink text + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + False + False + + + + + + True + Style + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + 12 + True + False + 12 + + + + True + False + 12 + + + + True + Width: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + False + 12 + + + + True + True + 0.00999999977648 + 2 + True + GTK_UPDATE_ALWAYS + False + False + 1 0.25 4 0.25 1 0 + + + 0 + False + False + + + + + + True + points + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + 0 + True + True + + + + + 0 + False + False + + + + + + True + False + 12 + + + + True + Color: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.140000000596 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + False + 6 + + + + True + False + 6 + + + + True + True + + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + False + 12 + + + + True + gl_object_editor_construct_color_combo + 1 + 0 + Sun, 16 Nov 2003 06:52:23 GMT + + + 0 + False + False + + + + + 0 + True + True + + + + + 0 + True + True + + + + + + True + False + 6 + + + + True + True + Key: + True + GTK_RELIEF_NORMAL + True + False + False + True + line_color_radio + + + 0 + False + False + + + + + + True + False + 12 + + + + True + False + True + + + 0 + True + True + + + + + 0 + True + True + + + + + 0 + True + True + + + + + 0 + True + True + + + + + 0 + False + False + + + + + False + True + + + + + + True + Line + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + 12 + True + False + 0 + + + + True + False + 12 + + + + True + Color: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.140000000596 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + False + 6 + + + + True + False + 6 + + + + True + True + + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + False + 12 + + + + True + gl_object_editor_construct_color_combo + 0 + 0 + Sun, 16 Nov 2003 06:52:23 GMT + + + 0 + False + False + + + + + 0 + True + True + + + + + 0 + True + True + + + + + + True + False + 6 + + + + True + True + Key: + True + GTK_RELIEF_NORMAL + True + False + False + True + fill_color_radio + + + 0 + False + False + + + + + + True + False + 12 + + + + True + False + True + + + 0 + True + True + + + + + 0 + True + True + + + + + 0 + True + True + + + + + 0 + True + True + + + + + 0 + False + False + + + + + False + True + + + + + + True + Fill + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + 12 + True + False + 12 + + + + True + False + 12 + + + + True + True + File: + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + Select A File + GTK_FILE_CHOOSER_ACTION_OPEN + True + True + False + -1 + + + 0 + True + True + + + + + 0 + False + False + + + + + + True + False + 12 + + + + True + False + True + Key: + True + GTK_RELIEF_NORMAL + True + False + False + True + img_file_radio + + + 0 + False + False + + + + + + True + False + True + + + 0 + True + True + + + + + 0 + False + False + + + + + False + True + + + + + + True + Image + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + 12 + True + False + 12 + + + + True + False + 12 + + + + True + True + Literal: + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + True + True + True + 0 + + True + * + False + + + 0 + True + True + + + + + 0 + False + False + + + + + + True + False + 12 + + + + True + True + Key: + True + GTK_RELIEF_NORMAL + True + False + False + True + data_literal_radio + + + 0 + False + False + + + + + + True + False + True + + + 0 + True + True + + + + + 0 + False + False + + + + + + True + False + 12 + + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + 2 + 2 + False + 6 + 6 + + + + True + format: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 0 + 1 + fill + + + + + + + True + 00000000000 00000 + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 1 + 2 + 0 + 1 + fill + + + + + + + True + digits: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 1 + 2 + fill + + + + + + + True + False + 0 + + + + True + True + 1 + 0 + True + GTK_UPDATE_ALWAYS + False + False + 1 1 100 1 10 0 + + + 0 + False + False + + + + + 1 + 2 + 1 + 2 + fill + fill + + + + + 0 + True + True + + + + + 0 + False + False + + + + + False + True + + + + + + True + Data + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + 12 + True + False + 12 + + + + True + False + 12 + + + + True + Style: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + False + True + + + 0 + True + True + + + + + 0 + False + False + + + + + + True + True + Text + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + True + Checksum + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + False + 12 + + + + True + Color: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.140000000596 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + False + 6 + + + + True + False + 6 + + + + True + True + + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + False + 12 + + + + True + gl_object_editor_construct_color_combo + 1 + 0 + Sun, 16 Nov 2003 06:52:23 GMT + + + 0 + False + False + + + + + 0 + True + True + + + + + 0 + True + True + + + + + + True + False + 6 + + + + True + True + Key: + True + GTK_RELIEF_NORMAL + True + False + False + True + bc_color_radio + + + 0 + False + False + + + + + + True + False + 12 + + + + True + False + True + + + 0 + True + True + + + + + 0 + True + True + + + + + 0 + True + True + + + + + 0 + True + True + + + + + 0 + False + False + + + + + True + True + + + + + + True + Style + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + 12 + True + False + 12 + + + + True + 3 + 3 + False + 12 + 12 + + + + True + Width: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 0 + 1 + fill + + + + + + + True + Height: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 1 + 2 + fill + + + + + + + True + False + 12 + + + + True + True + 0.00999999977648 + 2 + True + GTK_UPDATE_ALWAYS + True + False + 1 0 100 0.01 10 0 + + + 0 + False + True + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + 1 + 2 + 1 + 2 + fill + fill + + + + + + True + False + 12 + + + + True + True + Reset image size + True + GTK_RELIEF_NORMAL + True + + + 0 + False + False + + + + + 0 + 2 + 2 + 3 + fill + + + + + + + True + False + 12 + + + + True + True + 0.00999999977648 + 2 + True + GTK_UPDATE_ALWAYS + True + False + 1 0 100 0.01 10 0 + + + 0 + False + True + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + 1 + 2 + 0 + 1 + fill + fill + + + + + + True + gl_object_editor_construct_chain_button + 0 + 0 + Sat, 07 Feb 2004 02:56:47 GMT + + + 2 + 3 + 0 + 2 + + fill + + + + + 0 + True + True + + + + + False + True + + + + + + True + Size + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + 12 + True + False + 12 + + + + True + 2 + 2 + False + 12 + 12 + + + + True + Length: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 0 + 1 + fill + + + + + + + True + Angle: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 1 + 2 + fill + + + + + + + True + False + 12 + + + + True + True + 0.00999999977648 + 2 + True + GTK_UPDATE_ALWAYS + True + False + 1 0 100 0.01 10 0 + + + 0 + False + True + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + 1 + 2 + 0 + 1 + fill + + + + + + True + False + 12 + + + + True + True + 0.00999999977648 + 1 + True + GTK_UPDATE_ALWAYS + True + False + 0 -180 180 0.1 5 0 + + + 0 + False + True + + + + + + True + degrees + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + 1 + 2 + 1 + 2 + fill + fill + + + + + 0 + True + True + + + + + False + True + + + + + + True + Size + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + 12 + True + False + 12 + + + + True + 2 + 3 + False + 12 + 12 + + + + 50 + True + X: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 0 + 1 + fill + + + + + + + True + Y: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 1 + 2 + fill + + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 0 + 1 + fill + + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 1 + 2 + fill + + + + + + + True + True + 0.00999999977648 + 2 + True + GTK_UPDATE_ALWAYS + True + False + 0 0 100 0.01 10 0 + + + 1 + 2 + 0 + 1 + + + + + + + + True + True + 0.00999999977648 + 2 + True + GTK_UPDATE_ALWAYS + True + False + 0 0 100 0.01 10 0 + + + 1 + 2 + 1 + 2 + + + + + + + 0 + True + True + + + + + False + True + + + + + + True + Position + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + 12 + True + False + 12 + + + + True + True + Enable shadow + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + False + 12 + + + + True + False + 12 + + + + True + X Offset: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + False + 12 + + + + True + True + 0.00999999977648 + 2 + True + GTK_UPDATE_ALWAYS + True + False + 0 0 100 0.00999999977648 10 0 + + + 0 + False + True + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + 0 + True + True + + + + + 0 + True + True + + + + + + True + False + 12 + + + + True + Y Offset: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + False + 12 + + + + True + True + 0.00999999977648 + 2 + True + GTK_UPDATE_ALWAYS + True + False + 0 0 100 0.00999999977648 10 0 + + + 0 + False + True + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + 0 + True + True + + + + + 0 + True + True + + + + + + True + False + 12 + + + + True + Color: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.140000000596 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + False + 6 + + + + True + False + 6 + + + + True + True + + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + False + 12 + + + + True + gl_object_editor_construct_color_combo + 3 + 0 + Sun, 16 Nov 2003 06:52:23 GMT + + + 0 + False + False + + + + + 0 + True + True + + + + + 0 + True + True + + + + + + True + False + 6 + + + + True + True + Key: + True + GTK_RELIEF_NORMAL + True + False + False + True + shadow_color_radio + + + 0 + False + False + + + + + + True + False + 12 + + + + True + False + True + + + 0 + True + True + + + + + 0 + True + True + + + + + 0 + True + True + + + + + 0 + True + True + + + + + 0 + True + True + + + + + + True + False + 12 + + + + True + Opacity: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + False + 12 + + + + True + True + 1 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 1 0 100 1 10 0 + + + 0 + False + True + + + + + + True + % + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + 0 + True + True + + + + + 0 + True + True + + + + + 0 + False + False + + + + + False + True + + + + + + True + Shadow + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + True + False + 0 + + + + + + + False + True + + + + + + True + label48 + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + 0 + True + True + + + + + 0 + True + True + + + + + + + diff --git a/data/glade/prefs-dialog.glade b/data/glade/prefs-dialog.glade new file mode 100644 index 00000000..b169a381 --- /dev/null +++ b/data/glade/prefs-dialog.glade @@ -0,0 +1,1309 @@ + + + + + + + True + gLabels Preferences + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_NONE + False + True + False + True + False + False + GDK_WINDOW_TYPE_HINT_DIALOG + GDK_GRAVITY_NORTH_WEST + True + False + True + + + + True + False + 0 + + + + True + GTK_BUTTONBOX_END + + + + True + True + True + gtk-close + True + GTK_RELIEF_NORMAL + True + -7 + + + + + 0 + False + True + GTK_PACK_END + + + + + + True + True + True + True + GTK_POS_TOP + False + False + + + + 12 + True + False + 12 + + + + True + Select locale specific behavior. + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + 0 + 0.5 + GTK_SHADOW_NONE + + + + True + False + 0 + + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + 6 + True + False + 6 + + + + True + True + Points + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + True + Inches + True + GTK_RELIEF_NORMAL + True + False + False + True + units_points_radio + + + 0 + False + False + + + + + + True + True + Millimeters + True + GTK_RELIEF_NORMAL + True + False + False + True + units_points_radio + + + 0 + False + False + + + + + 0 + True + True + + + + + + + + True + <span weight="bold">Units</span> + False + True + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + label_item + + + + + 0 + False + False + + + + + + True + 0 + 0.5 + GTK_SHADOW_NONE + + + + True + False + 0 + + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + 6 + True + False + 6 + + + + True + True + US Letter + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + True + ISO A4 + True + GTK_RELIEF_NORMAL + True + False + False + True + page_size_us_letter_radio + + + 0 + False + False + + + + + 0 + True + True + + + + + + + + True + <span weight="bold">Default page size</span> + False + True + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + label_item + + + + + 0 + False + False + + + + + False + True + + + + + + True + Locale + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + 12 + True + False + 12 + + + + True + Select default properties for new objects. + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + 0 + 0.5 + GTK_SHADOW_NONE + + + + True + False + 0 + + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + 4 + 2 + False + 12 + 12 + + + + True + Font: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 0 + 1 + fill + + + + + + + True + Color: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 1 + 2 + fill + + + + + + + True + Alignment: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 2 + 3 + fill + + + + + + + 90 + True + Line Spacing: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 3 + 4 + fill + + + + + + + True + False + 12 + + + + True + False + True + + + 0 + True + True + + + + + + True + True + 1 + 0 + True + GTK_UPDATE_ALWAYS + False + False + 1 1 100 1 10 0 + + + 0 + False + False + + + + + + True + True + GTK_RELIEF_NORMAL + True + False + False + + + + True + gtk-bold + 4 + 0.5 + 0.5 + 0 + 0 + + + + + 0 + False + False + + + + + + True + True + GTK_RELIEF_NORMAL + True + False + False + + + + True + gtk-italic + 4 + 0.5 + 0.5 + 0 + 0 + + + + + 0 + False + False + + + + + 1 + 2 + 0 + 1 + fill + + + + + + True + False + 12 + + + + True + gl_object_editor_construct_color_combo + 2 + 0 + Sun, 23 Nov 2003 15:42:02 GMT + + + 0 + False + False + + + + + 1 + 2 + 1 + 2 + fill + fill + + + + + + True + False + 12 + + + + True + True + GTK_RELIEF_NORMAL + True + False + False + + + + True + gtk-justify-left + 4 + 0.5 + 0.5 + 0 + 0 + + + + + 0 + False + False + + + + + + True + True + GTK_RELIEF_NORMAL + True + False + False + + + + True + gtk-justify-center + 4 + 0.5 + 0.5 + 0 + 0 + + + + + 0 + False + False + + + + + + True + True + GTK_RELIEF_NORMAL + True + False + False + + + + True + gtk-justify-right + 4 + 0.5 + 0.5 + 0 + 0 + + + + + 0 + False + False + + + + + 1 + 2 + 2 + 3 + fill + fill + + + + + + True + False + 40 + + + + True + True + 0.00999999977648 + 2 + False + GTK_UPDATE_ALWAYS + False + False + 1 0 5 0.01 0.1 0 + + + 0 + False + False + + + + + 1 + 2 + 3 + 4 + fill + fill + + + + + 0 + True + True + + + + + + + + True + <span weight="bold">Text</span> + False + True + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + label_item + + + + + 0 + False + False + + + + + + True + 0 + 0.5 + GTK_SHADOW_NONE + + + + True + False + 0 + + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + 2 + 2 + False + 12 + 12 + + + + 90 + True + Width: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 0 + 1 + fill + + + + + + + True + Color: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 1 + 2 + fill + + + + + + + True + False + 12 + + + + True + True + 0.00999999977648 + 2 + True + GTK_UPDATE_ALWAYS + False + False + 1 0.25 4 0.25 1 0 + + + 0 + False + False + + + + + + True + points + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + 1 + 2 + 0 + 1 + fill + + + + + + True + False + 12 + + + + True + gl_object_editor_construct_color_combo + 1 + 0 + Sun, 23 Nov 2003 15:42:41 GMT + + + 0 + False + False + + + + + 1 + 2 + 1 + 2 + fill + fill + + + + + 0 + True + True + + + + + + + + True + <span weight="bold">Line</span> + False + True + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + label_item + + + + + 0 + False + False + + + + + + True + 0 + 0.5 + GTK_SHADOW_NONE + + + + True + False + 0 + + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + 1 + 2 + False + 12 + 12 + + + + 90 + True + Color: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 0 + 1 + fill + + + + + + + True + False + 12 + + + + True + gl_object_editor_construct_color_combo + 0 + 0 + Sun, 23 Nov 2003 15:43:12 GMT + + + 0 + False + False + + + + + 1 + 2 + 0 + 1 + fill + + + + + 0 + True + True + + + + + + + + True + <span weight="bold">Fill</span> + False + True + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + label_item + + + + + 0 + False + False + + + + + False + True + + + + + + True + Object defaults + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + 0 + True + True + + + + + + + diff --git a/data/glade/print-custom-widget.glade b/data/glade/print-custom-widget.glade new file mode 100644 index 00000000..f5063abc --- /dev/null +++ b/data/glade/print-custom-widget.glade @@ -0,0 +1,287 @@ + + + + + + + True + window1 + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_NONE + False + True + False + True + False + False + GDK_WINDOW_TYPE_HINT_NORMAL + GDK_GRAVITY_NORTH_WEST + True + False + + + + 12 + True + False + 12 + + + + True + False + 0 + + + + True + 0 + 0.5 + GTK_SHADOW_NONE + + + + True + 0.5 + 0.5 + 1 + 1 + 0 + 0 + 12 + 0 + + + + True + False + 0 + + + + + + + + + + + + True + <b>Print control (Simple)</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + label_item + + + + + 0 + True + True + + + + + + True + 0 + 0.5 + GTK_SHADOW_NONE + + + + True + 0.5 + 0.5 + 1 + 1 + 0 + 0 + 12 + 0 + + + + True + False + 0 + + + + + + + + + + + + True + <b>Print control (Merge)</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + label_item + + + + + 0 + True + True + + + + + 0 + False + False + + + + + + True + 0 + 0.5 + GTK_SHADOW_NONE + + + + True + 0.5 + 0.5 + 1 + 1 + 0 + 0 + 12 + 0 + + + + True + False + 0 + + + + True + True + print outlines (to test printer alignment) + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + True + print in reverse (i.e. a mirror image) + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + True + print crop marks + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + + + + + True + <b>Options</b> + False + True + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + label_item + + + + + 0 + True + True + + + + + + + diff --git a/data/glade/property-bar.glade b/data/glade/property-bar.glade new file mode 100644 index 00000000..f86d7730 --- /dev/null +++ b/data/glade/property-bar.glade @@ -0,0 +1,375 @@ + + + + + + + True + window1 + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_NONE + False + True + False + True + False + False + GDK_WINDOW_TYPE_HINT_NORMAL + GDK_GRAVITY_NORTH_WEST + True + + + + True + GTK_ORIENTATION_HORIZONTAL + GTK_TOOLBAR_ICONS + True + False + + + + True + True + True + False + + + + True + Font family + True + False + + + + True + False + False + + + + + + + False + False + + + + + + True + True + True + False + + + + True + 0.5 + 0.5 + 1 + 1 + 0 + 0 + 6 + 0 + + + + True + Font size + True + 1 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 1 1 250 1 10 0 + + + + + + + False + False + + + + + + True + True + True + True + + + False + False + + + + + + True + Bold + + True + gtk-bold + True + True + False + False + + + False + True + + + + + + True + Italic + + True + gtk-italic + True + True + False + False + + + False + True + + + + + + True + True + True + True + + + False + False + + + + + + True + Left align + + True + gtk-justify-left + True + True + False + False + + + False + True + + + + + + True + Center align + + True + gtk-justify-center + True + True + False + False + text_align_left_radio + + + False + True + + + + + + True + Right align + + True + gtk-justify-right + True + True + False + False + text_align_left_radio + + + False + True + + + + + + True + True + True + True + + + False + False + + + + + + True + True + True + False + + + + True + Text Color + True + False + + + + True + Text color + gl_ui_property_bar_construct_color_combo + 0 + 0 + Sun, 01 May 2005 15:21:11 GMT + + + + + + + False + False + + + + + + True + True + True + False + + + + True + Fill color + True + False + + + + True + Fill color + gl_ui_property_bar_construct_color_combo + 1 + 0 + Sun, 01 May 2005 15:21:18 GMT + + + + + + + False + False + + + + + + True + True + True + False + + + + True + Line color + True + False + + + + True + Line color + gl_ui_property_bar_construct_color_combo + 2 + 0 + Sun, 01 May 2005 15:21:24 GMT + + + + + + + False + False + + + + + + True + True + True + True + + + False + False + + + + + + True + True + True + False + + + + True + Line width + True + 1 + 2 + False + GTK_UPDATE_ALWAYS + False + False + 1 0.25 4 0.25 1 0 + + + + + False + False + + + + + + + diff --git a/data/glade/template-designer.glade b/data/glade/template-designer.glade new file mode 100644 index 00000000..22a0be78 --- /dev/null +++ b/data/glade/template-designer.glade @@ -0,0 +1,3445 @@ + + + + + + + + True + window1 + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_NONE + False + True + False + True + False + False + GDK_WINDOW_TYPE_HINT_NORMAL + GDK_GRAVITY_NORTH_WEST + True + False + + + + 6 + True + True + True + True + GTK_POS_TOP + False + False + + + + True + Welcome to the gLabels Template Designer. + +This dialog will assist you in the creation of a custom gLabels template. + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + False + True + + + + + + True + start_page + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + 18 + True + False + 24 + + + + True + Please enter the following identifying information about the template stationery. + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + 6 + 2 + False + 12 + 12 + + + + True + Brand/Manufacturer: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 0 + 1 + fill + + + + + + + True + Part #: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 1 + 2 + fill + + + + + + + True + False + 12 + + + + True + True + True + True + 0 + + True + * + False + + + 0 + False + False + + + + + + True + (e.g., 8163A) + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + 1 + 2 + 1 + 2 + fill + fill + + + + + + True + False + 12 + + + + True + True + True + True + 0 + + True + * + False + + + 0 + False + False + + + + + + True + (e.g., Avery, Acme, ...) + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + 1 + 2 + 0 + 1 + fill + fill + + + + + + True + Description: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 4 + 5 + fill + + + + + + + True + True + True + True + 0 + + True + * + False + + + 1 + 2 + 4 + 5 + + + + + + + True + (e.g., "Mailing Labels," "Business Cards," ...) + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 1 + 2 + 5 + 6 + fill + + + + + + + True + False + 6 + + + + True + 0.5 + 0.5 + 0 + 0 + + + 0 + False + False + + + + + + True + + False + True + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + True + + + + + 1 + 2 + 2 + 3 + fill + + + + + + 0 + True + True + + + + + False + True + + + + + + True + name_page + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + 18 + True + False + 24 + + + + True + Please select the page size of the template stationery. + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + 3 + 2 + False + 12 + 12 + + + + True + Page size: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 0 + 1 + fill + + + + + + + True + Width: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 1 + 2 + fill + + + + + + + True + Height: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 2 + 3 + fill + + + + + + + True + False + 0 + + + + True + False + True + + + 0 + False + False + + + + + + + + + 1 + 2 + 0 + 1 + fill + + + + + + True + False + 12 + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 1 0 100 1 10 0 + + + 0 + False + False + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + 1 + 2 + 1 + 2 + fill + fill + + + + + + True + False + 12 + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 1 0 100 1 10 0 + + + 0 + False + False + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + 1 + 2 + 2 + 3 + fill + fill + + + + + 0 + False + False + + + + + False + True + + + + + + True + pg_size_page + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + 18 + True + False + 24 + + + + True + Please select the basic shape of the labels or cards. + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + False + 6 + + + + True + True + Rectangular or square (can have rounded corners) + True + GTK_RELIEF_NORMAL + True + False + False + True + + + 0 + False + False + + + + + + True + True + Round + True + GTK_RELIEF_NORMAL + True + False + False + True + shape_rect_radio + + + 0 + False + False + + + + + + True + True + CD/DVD (including credit card CDs) + True + GTK_RELIEF_NORMAL + True + False + False + True + shape_rect_radio + + + 0 + False + False + + + + + 0 + True + True + + + + + False + True + + + + + + True + shape_page + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + 18 + True + False + 24 + + + + True + Please enter the following size parameters of a single label or card in your template. + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + False + 12 + + + + True + 6 + 3 + False + 12 + 12 + + + + True + 1. Width: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 0 + 1 + fill + + + + + + + True + 2. Height: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 1 + 2 + fill + + + + + + + True + 3. Round (radius of corner): + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 2 + 3 + fill + + + + + + + True + 4. Horiz. waste (overprint allowed): + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 3 + 4 + fill + + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 0 + 1 + fill + + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 1 + 2 + fill + + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 2 + 3 + fill + + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 3 + 4 + fill + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 0 + + + 1 + 2 + 0 + 1 + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 0 + + + 1 + 2 + 1 + 2 + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 0 + + + 1 + 2 + 2 + 3 + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 0 + + + 1 + 2 + 3 + 4 + + + + + + + True + 6. Margin + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 5 + 6 + fill + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 0 + + + 1 + 2 + 5 + 6 + + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 5 + 6 + fill + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 0 + + + 1 + 2 + 4 + 5 + + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 4 + 5 + fill + + + + + + + True + 5. Vert. waste (overprint allowed): + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 4 + 5 + fill + + + + + + 0 + False + False + + + + + + True + 1 + 0 + 0 + 0 + + + 0 + True + True + + + + + 0 + False + False + + + + + False + True + + + + + + True + rect_size_page + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + 18 + True + False + 24 + + + + True + Please enter the following size parameters of a single label in your template. + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + False + 12 + + + + True + 3 + 3 + False + 12 + 12 + + + + True + 1. Radius: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 0 + 1 + fill + + + + + + + True + 2. Waste (overprint allowed): + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 1 + 2 + fill + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 0 + + + 1 + 2 + 0 + 1 + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 0 + + + 1 + 2 + 1 + 2 + + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 0 + 1 + fill + + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 1 + 2 + fill + + + + + + + True + 3. Margin + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 2 + 3 + fill + + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 2 + 3 + fill + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 0 + + + 1 + 2 + 2 + 3 + + + + + + 0 + False + False + + + + + + True + 1 + 0 + 0 + 0 + + + 0 + True + True + + + + + 0 + False + False + + + + + False + True + + + + + + True + round_size_page + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + 18 + True + False + 24 + + + + True + Please enter the following size parameters of a single label in your template. + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + False + 12 + + + + True + 6 + 3 + False + 12 + 12 + + + + True + 1. Outer radius: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 0 + 1 + fill + + + + + + + True + 2. Inner radius: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 1 + 2 + fill + + + + + + + True + 3. Clipping width: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 2 + 3 + fill + + + + + + + True + 4. Clipping height: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 3 + 4 + fill + + + + + + + True + 5. Waste (overprint allowed): + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 4 + 5 + fill + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 0 + + + 1 + 2 + 0 + 1 + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 0 + + + 1 + 2 + 1 + 2 + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 0 + + + 1 + 2 + 2 + 3 + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 0 + + + 1 + 2 + 3 + 4 + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 0 + + + 1 + 2 + 4 + 5 + + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 0 + 1 + fill + + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 1 + 2 + fill + + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 2 + 3 + fill + + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 3 + 4 + fill + + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 4 + 5 + fill + + + + + + + True + 6. Margin + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 5 + 6 + fill + + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 5 + 6 + fill + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 0 + + + 1 + 2 + 5 + 6 + + + + + + 0 + False + False + + + + + + True + 1 + 0 + 0 + 0 + + + 0 + True + True + + + + + 0 + False + False + + + + + False + True + + + + + + True + cd_size_page + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + 18 + True + False + 24 + + + + True + How many layouts will your template contain? + +A layout is a set of labels or cards that can be arranged in a simple grid. +Most templates only need one layout, as in the first example. +The second example illustrates when two layouts are needed. + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + False + 12 + + + + True + False + 0 + + + + True + 0.5 + 0.5 + 0 + 0 + + + 0 + True + True + + + + + + True + Templates needing only +one layout. + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + 0 + True + True + + + + + + True + False + 0 + + + + True + 0.5 + 0.5 + 0 + 0 + + + 0 + True + True + + + + + + True + Templates needing +two layouts. + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + 0 + True + True + + + + + 0 + False + False + + + + + + True + False + 12 + + + + True + Number of layouts: + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + True + 0.10000000149 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 1 1 2 1 1 0 + + + 0 + False + False + + + + + 0 + False + False + + + + + False + True + + + + + + True + nlayouts_page + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + 18 + True + False + 12 + + + + True + Please enter the following layout information. + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + False + False + + + + + + True + False + 18 + + + + True + 7 + 4 + False + 6 + 12 + + + + True + Layout #1 + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 1 + 2 + 0 + 1 + fill + + + + + + + True + Layout #2 + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 2 + 3 + 0 + 1 + fill + + + + + + + True + Number across (nx): + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 1 + 2 + fill + + + + + + + True + Number down (ny): + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 2 + 3 + fill + + + + + + + True + Distance from left edge (x0): + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 3 + 4 + fill + + + + + + + True + Distance from top edge (y0): + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 4 + 5 + fill + + + + + + + True + Horizontal pitch (dx): + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 5 + 6 + fill + + + + + + + True + Vertical pitch (dy): + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + 1 + 6 + 7 + fill + + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 3 + 4 + 3 + 4 + fill + + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 3 + 4 + 4 + 5 + fill + + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 3 + 4 + 5 + 6 + fill + + + + + + + True + inches + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 3 + 4 + 6 + 7 + fill + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 1 1 100 1 10 0 + + + 1 + 2 + 1 + 2 + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 1 1 100 1 10 0 + + + 1 + 2 + 2 + 3 + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 1 1 100 1 10 0 + + + 2 + 3 + 1 + 2 + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 1 1 100 1 10 0 + + + 2 + 3 + 2 + 3 + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 0 + + + 1 + 2 + 3 + 4 + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 0 + + + 2 + 3 + 3 + 4 + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 0 + + + 1 + 2 + 4 + 5 + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 0 + + + 2 + 3 + 4 + 5 + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 0 + + + 1 + 2 + 5 + 6 + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 0 + + + 2 + 3 + 5 + 6 + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 0 + + + 1 + 2 + 6 + 7 + + + + + + + True + True + 0.00999999977648 + 0 + False + GTK_UPDATE_ALWAYS + False + False + 0 0 100 1 10 0 + + + 2 + 3 + 6 + 7 + + + + + + 0 + False + False + + + + + + True + False + 0 + + + + True + + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + True + True + + + + + + True + False + 6 + + + + True + gl_template_designer_construct_mini_preview + 175 + 200 + Mon, 29 Dec 2003 21:27:10 GMT + + + 0 + True + True + + + + + + 6 + True + True + Print test sheet + True + GTK_RELIEF_NORMAL + True + + + 0 + False + False + + + + + 0 + False + False + + + + + 0 + True + True + + + + + 0 + False + False + + + + + False + True + + + + + + True + layout_page + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + True + Congratulations! + +You have completed the gLabels Template Designer. +If you wish to accept and save your design, click "Apply." + +Otherwise, you may click "Cancel" to abandon your design +or "Back" to continue editing this design. + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + False + True + + + + + + True + finish_page + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + tab + + + + + + + diff --git a/data/glade/wdgt-media-select.glade b/data/glade/wdgt-media-select.glade new file mode 100644 index 00000000..1696bfaa --- /dev/null +++ b/data/glade/wdgt-media-select.glade @@ -0,0 +1,204 @@ + + + + + + True + window1 + + + True + + + True + True + 6 + + + True + + + 480 + 320 + True + True + 12 + automatic + automatic + in + + + True + True + False + + + + + 0 + + + + + + + True + Recent templates + + + False + tab + + + + + True + + + True + 12 + 12 + + + True + 6 + + + True + Brand: + + + False + False + 0 + + + + + True + + + False + 1 + + + + + False + False + 0 + + + + + True + 6 + + + True + Page size: + + + False + False + 0 + + + + + True + + + False + 1 + + + + + False + 1 + + + + + True + 6 + + + True + Category: + + + False + False + 0 + + + + + True + + + False + 1 + + + + + False + 2 + + + + + False + 0 + + + + + 480 + 320 + True + True + 12 + automatic + automatic + in + + + True + True + False + + + + + 1 + + + + + 1 + + + + + True + Search all templates + + + 1 + False + tab + + + + + 0 + + + + + + diff --git a/data/glade/wdgt-rotate-label.glade b/data/glade/wdgt-rotate-label.glade new file mode 100644 index 00000000..aa48b50a --- /dev/null +++ b/data/glade/wdgt-rotate-label.glade @@ -0,0 +1,39 @@ + + + + + + True + window1 + + + True + 6 + 6 + + + Rotate + True + True + False + True + True + + + False + False + 0 + + + + + True + + + 1 + + + + + + diff --git a/data/man/Makefile.am b/data/man/Makefile.am new file mode 100644 index 00000000..34051904 --- /dev/null +++ b/data/man/Makefile.am @@ -0,0 +1,6 @@ +## Process this file with automake to produce Makefile.in + +man_MANS = glabels.1 + +EXTRA_DIST = $(man_MANS) + diff --git a/data/man/Makefile.in b/data/man/Makefile.in new file mode 100644 index 00000000..0cba8c40 --- /dev/null +++ b/data/man/Makefile.in @@ -0,0 +1,485 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = data/man +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +man1dir = $(mandir)/man1 +am__installdirs = "$(DESTDIR)$(man1dir)" +NROFF = nroff +MANS = $(man_MANS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_CFLAGS = @GLABELS_CFLAGS@ +GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_REQUIRED = @GLIB_REQUIRED@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_REQUIRED = @GTK_REQUIRED@ +HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +HELP_DIR = @HELP_DIR@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ +LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ +LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ +LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ +LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ +LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ +LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ +LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +MYGAL_CFLAGS = @MYGAL_CFLAGS@ +MYGAL_LIBS = @MYGAL_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ +UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +XGETTEXT = @XGETTEXT@ +XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ +XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +man_MANS = glabels.1 +EXTRA_DIST = $(man_MANS) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/man/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu data/man/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-man1: $(man_MANS) + @$(NORMAL_INSTALL) + test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" + @list=''; test -n "$(man1dir)" || exit 0; \ + { for i in $$list; do echo "$$i"; done; \ + l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ + sed -n '/\.1[a-z]*$$/p'; \ + } | while read p; do \ + if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; echo "$$p"; \ + done | \ + sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ + sed 'N;N;s,\n, ,g' | { \ + list=; while read file base inst; do \ + if test "$$base" = "$$inst"; then list="$$list $$file"; else \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ + fi; \ + done; \ + for i in $$list; do echo "$$i"; done | $(am__base_list) | \ + while read files; do \ + test -z "$$files" || { \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ + done; } + +uninstall-man1: + @$(NORMAL_UNINSTALL) + @list=''; test -n "$(man1dir)" || exit 0; \ + files=`{ for i in $$list; do echo "$$i"; done; \ + l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ + sed -n '/\.1[a-z]*$$/p'; \ + } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ + test -z "$$files" || { \ + echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(man1dir)" && rm -f $$files; } +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @list='$(MANS)'; if test -n "$$list"; then \ + list=`for p in $$list; do \ + if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ + if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ + if test -n "$$list" && \ + grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ + echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ + grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ + echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ + echo " typically \`make maintainer-clean' will remove them" >&2; \ + exit 1; \ + else :; fi; \ + else :; fi + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(MANS) +installdirs: + for dir in "$(DESTDIR)$(man1dir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-man + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: install-man1 + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-man + +uninstall-man: uninstall-man1 + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-man1 \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-man uninstall-man1 + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/man/glabels.1 b/data/man/glabels.1 new file mode 100644 index 00000000..489b2a42 --- /dev/null +++ b/data/man/glabels.1 @@ -0,0 +1,67 @@ +.TH glabels 1 "Jun 28, 2004" +.SH NAME +glabels \- Label and business card creation program for GNOME +.SH SYNOPSIS +.B glabels +.RI [OPTIONS] +.RI [label-filename...] +.sp +.B glabels-batch +.RI [OPTIONS] +.RI [label-filename...] +.SH DESCRIPTION +.B glabels +is a lightweight program for creating labels and business cards for +the GNOME desktop environment. It is designed to work with various +laser/ink-jet peel-off label and business card sheets that you'll find at most +office supply stores. +.B glabels +is pre-configured with templates for many of these products. +It also provides an interactive template designer for creating new +templates according to user specifications. +.PP +For full documentation see the \fBgLabels\fR online help. + +.PP +.B glabels-batch +is a command line utility to print labels previously prepared with +.B glabels. +.SH OPTIONS +.TP +\fB\-?\fR, \fB\-\-help\fR +Display a summary of available command-line options. +.TP +\fB\-\-usage\fR +Display a short usage summary. +.TP +\fB\-v\fR, \fB\-\-version\fR +Print program version information. +.PP +.B Options specific to glabels-batch +.TP +\fB\-o\fR \fIfilename\fR, \fB\-\-output\fR=\fIfilename\fR +Set output filename to \fIfilename\fR. (default="output.ps") +.TP +\fB\-s\fR \fIn\fR, \fB\-\-sheets\fR=\fIn\fR +Set number of sheets to \fIn\fR. (default=1) +.TP +\fB\-c\fR \fIn\fR, \fB\-\-copies\fR=\fIn\fR +Set number of copies to \fIn\fR. (default=1) +.TP +\fB\-f\fR \fIn\fR, \fB\-\-first\fR=\fIn\fR +Set label on first sheet to start printing from to \fIn\fR. (default=1) +.TP +\fB\-l\fR, \fB\-\-outline\fR +Print outlines around labels. This is useful for testing printer alignment +or printing proof sheets. +.TP +\fB\-r\fR, \fB\-\-reverse\fR +Print mirror image of labels. This is useful for clear labels intended to be +seen from the back through glass. + +.SH FILES +The $HOME/.glabels directory contains all user-defined templates. +.SH SEE ALSO +The gLabels homepage at . +.SH AUTHOR +Jim Evins diff --git a/data/mime/Makefile.am b/data/mime/Makefile.am new file mode 100644 index 00000000..027c1022 --- /dev/null +++ b/data/mime/Makefile.am @@ -0,0 +1,53 @@ +## Process this file with automake to produce Makefile.in + +keys_in_files=glabels.keys.in +keys_files = $(keys_in_files:.keys.in=.keys) +@INTLTOOL_KEYS_RULE@ + +xml_in_files=glabels.xml.in +xml_files = $(xml_in_files:.xml.in=.xml) +@INTLTOOL_XML_RULE@ + +mimedir = $(datadir)/mime-info +mime_DATA = $(keys_files) glabels.mime + +appdir = $(datadir)/application-registry +app_DATA = glabels.applications + +newmimedir = $(datadir)/mime/packages +newmime_DATA = $(xml_files) + +EXTRA_DIST = \ + $(keys_in_files) \ + $(mime_DATA) \ + $(app_DATA) \ + $(xml_in_files) \ + $(newmime_DATA) + +CLEANFILES = $(keys_files) $(xml_files) + + +install-data-hook: +if ENABLE_UPDATE_MIMEDB +if HAVE_NEW_MIME + $(UPDATE_MIME_DATABASE) "$(DESTDIR)$(datadir)/mime" +endif +endif +if ENABLE_UPDATE_DESKTOPDB +if HAVE_NEWER_MIME + $(UPDATE_DESKTOP_DATABASE) +endif +endif + +uninstall-hook: +if ENABLE_UPDATE_MIMEDB +if HAVE_NEW_MIME + $(UPDATE_MIME_DATABASE) "$(DESTDIR)$(datadir)/mime" +endif +endif +if ENABLE_UPDATE_DESKTOPDB +if HAVE_NEWER_MIME + $(UPDATE_DESKTOP_DATABASE) +endif +endif + diff --git a/data/mime/Makefile.in b/data/mime/Makefile.in new file mode 100644 index 00000000..8e95bd13 --- /dev/null +++ b/data/mime/Makefile.in @@ -0,0 +1,524 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = data/mime +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(appdir)" "$(DESTDIR)$(mimedir)" \ + "$(DESTDIR)$(newmimedir)" +DATA = $(app_DATA) $(mime_DATA) $(newmime_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_CFLAGS = @GLABELS_CFLAGS@ +GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_REQUIRED = @GLIB_REQUIRED@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_REQUIRED = @GTK_REQUIRED@ +HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +HELP_DIR = @HELP_DIR@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ +LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ +LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ +LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ +LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ +LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ +LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ +LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +MYGAL_CFLAGS = @MYGAL_CFLAGS@ +MYGAL_LIBS = @MYGAL_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ +UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +XGETTEXT = @XGETTEXT@ +XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ +XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +keys_in_files = glabels.keys.in +keys_files = $(keys_in_files:.keys.in=.keys) +xml_in_files = glabels.xml.in +xml_files = $(xml_in_files:.xml.in=.xml) +mimedir = $(datadir)/mime-info +mime_DATA = $(keys_files) glabels.mime +appdir = $(datadir)/application-registry +app_DATA = glabels.applications +newmimedir = $(datadir)/mime/packages +newmime_DATA = $(xml_files) +EXTRA_DIST = \ + $(keys_in_files) \ + $(mime_DATA) \ + $(app_DATA) \ + $(xml_in_files) \ + $(newmime_DATA) + +CLEANFILES = $(keys_files) $(xml_files) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/mime/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu data/mime/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-appDATA: $(app_DATA) + @$(NORMAL_INSTALL) + test -z "$(appdir)" || $(MKDIR_P) "$(DESTDIR)$(appdir)" + @list='$(app_DATA)'; test -n "$(appdir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(appdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(appdir)" || exit $$?; \ + done + +uninstall-appDATA: + @$(NORMAL_UNINSTALL) + @list='$(app_DATA)'; test -n "$(appdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(appdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(appdir)" && rm -f $$files +install-mimeDATA: $(mime_DATA) + @$(NORMAL_INSTALL) + test -z "$(mimedir)" || $(MKDIR_P) "$(DESTDIR)$(mimedir)" + @list='$(mime_DATA)'; test -n "$(mimedir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(mimedir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(mimedir)" || exit $$?; \ + done + +uninstall-mimeDATA: + @$(NORMAL_UNINSTALL) + @list='$(mime_DATA)'; test -n "$(mimedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(mimedir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(mimedir)" && rm -f $$files +install-newmimeDATA: $(newmime_DATA) + @$(NORMAL_INSTALL) + test -z "$(newmimedir)" || $(MKDIR_P) "$(DESTDIR)$(newmimedir)" + @list='$(newmime_DATA)'; test -n "$(newmimedir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(newmimedir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(newmimedir)" || exit $$?; \ + done + +uninstall-newmimeDATA: + @$(NORMAL_UNINSTALL) + @list='$(newmime_DATA)'; test -n "$(newmimedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(newmimedir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(newmimedir)" && rm -f $$files +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(appdir)" "$(DESTDIR)$(mimedir)" "$(DESTDIR)$(newmimedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-appDATA install-mimeDATA install-newmimeDATA + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) install-data-hook +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-appDATA uninstall-mimeDATA \ + uninstall-newmimeDATA + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) uninstall-hook +.MAKE: install-am install-data-am install-strip uninstall-am + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-appDATA install-data install-data-am install-data-hook \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-mimeDATA install-newmimeDATA install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ + uninstall-appDATA uninstall-hook uninstall-mimeDATA \ + uninstall-newmimeDATA + +@INTLTOOL_KEYS_RULE@ +@INTLTOOL_XML_RULE@ + +install-data-hook: +@ENABLE_UPDATE_MIMEDB_TRUE@@HAVE_NEW_MIME_TRUE@ $(UPDATE_MIME_DATABASE) "$(DESTDIR)$(datadir)/mime" +@ENABLE_UPDATE_DESKTOPDB_TRUE@@HAVE_NEWER_MIME_TRUE@ $(UPDATE_DESKTOP_DATABASE) + +uninstall-hook: +@ENABLE_UPDATE_MIMEDB_TRUE@@HAVE_NEW_MIME_TRUE@ $(UPDATE_MIME_DATABASE) "$(DESTDIR)$(datadir)/mime" +@ENABLE_UPDATE_DESKTOPDB_TRUE@@HAVE_NEWER_MIME_TRUE@ $(UPDATE_DESKTOP_DATABASE) + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/mime/glabels.applications b/data/mime/glabels.applications new file mode 100644 index 00000000..1391018e --- /dev/null +++ b/data/mime/glabels.applications @@ -0,0 +1,9 @@ +glabels + command=glabels + name=gLabels + can_open_multiple_files=true + expects_uris=false + requires_terminal=false + mime_types=application/x-glabels + uses_gnomevfs=false + diff --git a/data/mime/glabels.keys b/data/mime/glabels.keys new file mode 100644 index 00000000..9d76d321 --- /dev/null +++ b/data/mime/glabels.keys @@ -0,0 +1,24 @@ +application/x-glabels: + open=glabels %f + description=gLabels Project File + [ca]description=Fitxer de projecte del gLabels + [cs]description=Projektový soubor gLabels + [da]description=gLabels' projektfil + [de]description=gLabels-Projektdatei + [eo]description=Dosiero de Projekto de gLabels + [es]description=Archivo de projecto gLabels + [fr]description=Fichier de projet gLabels + [it]description=File di progetto di gLabels + [ja]description=gLabels のプロジェクト・ファイル + [ko]description=gLabels 프로젝트 파일 + [pt]description=Propriedades de ficheiro gLabels + [ru]description=Файл проекта gLabels + [sl]description=Datoteka projekta gLabels + [sv]description=gLabels-projektfil + [zh_CN]description=gLabels工程文件 + icon_filename=glabels-application-x-glabels.png + default_action_type=application + category=Documents + short_list_application_ids_for_novice_user_level=glabels + short_list_application_ids_for_intermediate_user_level=glabels + short_list_application_ids_for_advanced_user_level=glabels diff --git a/data/mime/glabels.keys.in b/data/mime/glabels.keys.in new file mode 100644 index 00000000..596c96c7 --- /dev/null +++ b/data/mime/glabels.keys.in @@ -0,0 +1,9 @@ +application/x-glabels: + open=glabels %f + _description=gLabels Project File + icon_filename=glabels-application-x-glabels.png + default_action_type=application + category=Documents + short_list_application_ids_for_novice_user_level=glabels + short_list_application_ids_for_intermediate_user_level=glabels + short_list_application_ids_for_advanced_user_level=glabels diff --git a/data/mime/glabels.mime b/data/mime/glabels.mime new file mode 100644 index 00000000..ab2f8cd3 --- /dev/null +++ b/data/mime/glabels.mime @@ -0,0 +1,2 @@ +application/x-glabels + ext: glabels diff --git a/data/mime/glabels.xml b/data/mime/glabels.xml new file mode 100644 index 00000000..f09cb359 --- /dev/null +++ b/data/mime/glabels.xml @@ -0,0 +1,22 @@ + + + + gLabels Project File + Fitxer de projecte del gLabels + Projektový soubor gLabels + gLabels' projektfil + gLabels-Projektdatei + Dosiero de Projekto de gLabels + Archivo de projecto gLabels + Fichier de projet gLabels + File di progetto di gLabels + gLabels のプロジェクト・ファイル + gLabels 프로젝트 파일 + Propriedades de ficheiro gLabels + Файл проекта gLabels + Datoteka projekta gLabels + gLabels-projektfil + gLabels工程文件 + + + \ No newline at end of file diff --git a/data/mime/glabels.xml.in b/data/mime/glabels.xml.in new file mode 100644 index 00000000..70f0e2f3 --- /dev/null +++ b/data/mime/glabels.xml.in @@ -0,0 +1,8 @@ + + + + <_comment>gLabels Project File + + + + diff --git a/data/pixmaps/Makefile.am b/data/pixmaps/Makefile.am new file mode 100644 index 00000000..4cebb802 --- /dev/null +++ b/data/pixmaps/Makefile.am @@ -0,0 +1,26 @@ +## Process this file with automake to produce Makefile.in + +glabels_pixmapsdir = $(datadir)/pixmaps/glabels + +glabels_pixmaps_DATA = \ + glabels-splash.png \ + glabels-about-logo.png \ + ex-rect-size.png \ + ex-round-size.png \ + ex-cd-size.png \ + ex-1layout.png \ + ex-2layouts.png + +glabels_app_icondir = $(datadir)/pixmaps + +glabels_app_icon_DATA = \ + glabels.png + +glabels_mime_icondir = $(datadir)/pixmaps + +glabels_mime_icon_DATA = \ + glabels-application-x-glabels.png + +EXTRA_DIST = $(glabels_pixmaps_DATA) \ + $(glabels_app_icon_DATA) \ + $(glabels_mime_icon_DATA) diff --git a/data/pixmaps/Makefile.in b/data/pixmaps/Makefile.in new file mode 100644 index 00000000..5946c1d3 --- /dev/null +++ b/data/pixmaps/Makefile.in @@ -0,0 +1,518 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = data/pixmaps +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(glabels_app_icondir)" \ + "$(DESTDIR)$(glabels_mime_icondir)" \ + "$(DESTDIR)$(glabels_pixmapsdir)" +DATA = $(glabels_app_icon_DATA) $(glabels_mime_icon_DATA) \ + $(glabels_pixmaps_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_CFLAGS = @GLABELS_CFLAGS@ +GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_REQUIRED = @GLIB_REQUIRED@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_REQUIRED = @GTK_REQUIRED@ +HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +HELP_DIR = @HELP_DIR@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ +LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ +LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ +LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ +LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ +LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ +LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ +LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +MYGAL_CFLAGS = @MYGAL_CFLAGS@ +MYGAL_LIBS = @MYGAL_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ +UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +XGETTEXT = @XGETTEXT@ +XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ +XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +glabels_pixmapsdir = $(datadir)/pixmaps/glabels +glabels_pixmaps_DATA = \ + glabels-splash.png \ + glabels-about-logo.png \ + ex-rect-size.png \ + ex-round-size.png \ + ex-cd-size.png \ + ex-1layout.png \ + ex-2layouts.png + +glabels_app_icondir = $(datadir)/pixmaps +glabels_app_icon_DATA = \ + glabels.png + +glabels_mime_icondir = $(datadir)/pixmaps +glabels_mime_icon_DATA = \ + glabels-application-x-glabels.png + +EXTRA_DIST = $(glabels_pixmaps_DATA) \ + $(glabels_app_icon_DATA) \ + $(glabels_mime_icon_DATA) + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/pixmaps/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu data/pixmaps/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-glabels_app_iconDATA: $(glabels_app_icon_DATA) + @$(NORMAL_INSTALL) + test -z "$(glabels_app_icondir)" || $(MKDIR_P) "$(DESTDIR)$(glabels_app_icondir)" + @list='$(glabels_app_icon_DATA)'; test -n "$(glabels_app_icondir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(glabels_app_icondir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(glabels_app_icondir)" || exit $$?; \ + done + +uninstall-glabels_app_iconDATA: + @$(NORMAL_UNINSTALL) + @list='$(glabels_app_icon_DATA)'; test -n "$(glabels_app_icondir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(glabels_app_icondir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(glabels_app_icondir)" && rm -f $$files +install-glabels_mime_iconDATA: $(glabels_mime_icon_DATA) + @$(NORMAL_INSTALL) + test -z "$(glabels_mime_icondir)" || $(MKDIR_P) "$(DESTDIR)$(glabels_mime_icondir)" + @list='$(glabels_mime_icon_DATA)'; test -n "$(glabels_mime_icondir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(glabels_mime_icondir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(glabels_mime_icondir)" || exit $$?; \ + done + +uninstall-glabels_mime_iconDATA: + @$(NORMAL_UNINSTALL) + @list='$(glabels_mime_icon_DATA)'; test -n "$(glabels_mime_icondir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(glabels_mime_icondir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(glabels_mime_icondir)" && rm -f $$files +install-glabels_pixmapsDATA: $(glabels_pixmaps_DATA) + @$(NORMAL_INSTALL) + test -z "$(glabels_pixmapsdir)" || $(MKDIR_P) "$(DESTDIR)$(glabels_pixmapsdir)" + @list='$(glabels_pixmaps_DATA)'; test -n "$(glabels_pixmapsdir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(glabels_pixmapsdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(glabels_pixmapsdir)" || exit $$?; \ + done + +uninstall-glabels_pixmapsDATA: + @$(NORMAL_UNINSTALL) + @list='$(glabels_pixmaps_DATA)'; test -n "$(glabels_pixmapsdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(glabels_pixmapsdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(glabels_pixmapsdir)" && rm -f $$files +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(glabels_app_icondir)" "$(DESTDIR)$(glabels_mime_icondir)" "$(DESTDIR)$(glabels_pixmapsdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-glabels_app_iconDATA \ + install-glabels_mime_iconDATA install-glabels_pixmapsDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-glabels_app_iconDATA \ + uninstall-glabels_mime_iconDATA uninstall-glabels_pixmapsDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-glabels_app_iconDATA \ + install-glabels_mime_iconDATA install-glabels_pixmapsDATA \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am uninstall uninstall-am uninstall-glabels_app_iconDATA \ + uninstall-glabels_mime_iconDATA uninstall-glabels_pixmapsDATA + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/pixmaps/ex-1layout.png b/data/pixmaps/ex-1layout.png new file mode 100644 index 0000000000000000000000000000000000000000..3045c5f231a11ae86e2d076d8e762a7ca2914618 GIT binary patch literal 1567 zcmV+)2H^RLP)1c~ z2F5lvRuiIX3W+oZ7rV_C9^+wjwn&tCvx+TQI{IUu9~cdHtnXZXKDk$au8xAuP=N2` zjZZIILj1=kegXJ7$d`zA$16oq0N@LNC4g@Lz9Z&j5Wj$*c)OKZQ~&&7 zU-S`pn{y+5lG0t#{sTZ2z;Adve_;13EQ7&-&d<+DRaG(!gPxwAXt7w3>$*fl6zU=Uj$IQ?21G>(oZrR%kG8MVo;FkD_<(&_0bJw85$+VAo4 zkxoxf>GJY2mVRvO*S?-(WfsSAP^nZZbA|(0}O{l zj7B3gn@tw|X0wUWXoTT#$fECuBvuBvy}iZV-JN%rJ9ZRB!QI^*Zf|c{^!<>;N*Tv- z@bK^u`syz%nx^65;UTfBL`kfa>2|xgxw%Os*3Hcgy4`Lfu_7myq9~C*N$X~fe!q`K zqmf9gMx%j#zn@5~NY4t1=_x*!ZWggD3kL@WiNrcMIDlnYiNunrFlDCGDGG%`BC!gE z0;bbxBC#TkSaD4`??)&u-7GSn&l8)v6-B{(K2Ic8#bOaelt_Px z2*qNNJq{pKVd|7hB`lZAL}D$MOO#5bL}E!|rHrO&n9XL1#G1`!?Dxw&B(YMaUazCq z>m?Ga*XyBPuO|{K2y35wN5xNrOV?{hhE_M&woR(4Mn2vksHz%z3C*^C$%vIQs;c7T zuVN$KP0g-K&@6owOYmf{XL8R z{rx?v)hcSW8jJq6tet$M|8=UA)k(hAZ@MnPWx3gy=(WX*ey;WR1^ziitk zUDwGljMw)E!{WLw8HPc+u188LBDpHu8B|rpcszc6g)8jUqGegHua1q!a=atMpAT>yRASuTk z8L2@ku&}E&NTnQi%6K(M4-XI7W96y_DG^2bB(0k@qz35+Prjq#r@^J`wIf5T8>9xQ zz=G5u71)p(qyh_4gVbmKjf$TJm#){244q@GA}dG*7CM~{E-o%$nr19|rfK5h;sTvc zClW2wl!t3jGa z@|aj@A~i^bOc7{x!@exKiwp59SYmww@CASh;4}PB-V{8a`xRu&Rsj40;8y^Jl{VnnG&fuy1Hq;1L3sZ0zajqQTIW|@ z3GG+V16JOB*LS~0qoEuhAHV+J*RNj*0D8S%q#uq!msYkMBUT{4aztpq{sp2{ZDY__ R>8Ahy002ovPDHLkV1ne**HHif literal 0 HcmV?d00001 diff --git a/data/pixmaps/ex-2layouts.png b/data/pixmaps/ex-2layouts.png new file mode 100644 index 0000000000000000000000000000000000000000..1bb5931ac2ec6d60075bb44d514d58fef7e60fcf GIT binary patch literal 1610 zcmV-Q2DSN#P)8#64SWS@1RuaR z5EVr)VxL>Q2wwKGh!Y&f+Jl;%&7VnESykQIzYmCEu&aK4^X=+XSM_%cd<^sOnN#Cp z|IQ%)`;lG%e)aMp#?D78!!Q8gGk^_%uK>P5vKdG(;1{)J1r`&)p8%o&44-Q`1-SJJ ztFdALeh2UgWGpXm>*eWE$jfXtL%ZEZx7&r|I9MzeSg+TJMx#h160j@_`FtKXH#aa% zQ$-0Mae>`Qb(W^uU%rHR=Q7T%m(&rf-|wSbE~8j1A{L9GUa!M(9IRF=FvhT2t>8Eg z>h(Heu^5WQBFg15`u)DlG6?Jp!u#@}#*cY?d}P2%7judmtT<0IE` zqG0!j=U)J_0RF&#Gajvass4_#juX}E=n-o+n<10QAeBmCJRZZcEUx1%%ffg(MkNzHaoT?;zW4Y;jZhlWHQM{qmj@V@{-YL#FEJ*b6r zraCYhjaWLJmfGfzs1)iWy>ua3!&}FR>Lq+BtW+v^cz8f6l@e{@O;V{89v&W0sZ^x4 zOXx+&Sp9wvqV7*!{C0&gxgr{b{n-?O==PEQLEL^Znw4cbxtsW zo1;wfO;T=Sb-P^@3I%Be{ER}OfNr;|r7uD*+-rr7;~*Z7tElA_@pv4L<7nyYoKUb< z$PKr#7K;TUk%*MeKOz!|V6j+e>FeAOF^J5+v$!vX>-AdMZ15$9VPL&pYw3%S3%9YN z(WthSaK;#-(WsWb2)S?@E0IWGv)QPq5IvwQmc`bbr`uX2#x9hshG)TIJmmH@@r2#aU?>E(A8=c_xJb8W`~S1+~41$TCFN+KMb7QS|I@B zayewPSu~qXsl^;hnSOC@vJ=Xa)w1bpSuTw-+ucIEOXti3ny}iYF zJU*tGXU5|(Zf|eVYPF=aM+BRnI@)zzmQJUcZQE?S-3px*+wGRww$0M%w9*GD7^4x3 z7g4>Ae*DWcO$>*_=SR4BXN!*GJU==%91dv~7$Q8oyVvWnQmMpD(`2@7v-y0^o}Qkb zN3!j9%buQ|*nB=`wrw-hG+C)sV!d8Z)d}|s(1^u_s9s*?nEUp<6XfiM{j~ZEfWHB_ z`}gk>yWrL<$cXBt#8^RwjKznjUSW+fA{0Z$B9uVJB9uVJB9x#c(eGG-JgX$U5vUQ1 z5&^@7mK$-p5&=OsNVyQz%l8qB5&^@Dva`XDL_pAp#f3_}lojpAelC?lsn*L6MD_CR zQb>t_=Z!DM3R@ze$o_K``_Ogbi?PC(2*?7y|6DfOjYWxo;Xu2wC=oCmXg3xm0)_+a z#-c>PaG>2-ln59Ov>S^O0mFfIV^JbtIMBWy>yQX|d3mY4uOKA?p7PC35wwq3VN3)R zxjB03H%YY{ixL5e15#JZ{Z0gg54#)oeG0w&MpQ5DBUV@w0a=JHgMd$q(3A*x{`g`n zN(3YT+Ch4>UZNVR)SjmX5xsnUn1T`k!;R82LU$q{XvE^KK}0X#AOE66!0@8&?9h=2 z2pX}tYY@>Zkilyzvm5*fUJJticq$4d`gw#B{rI3nKO#_&u?Qu2+K&~sy+p@CdU-R} z1%S^0OaL*wJu5Jmjqhh8r)W3~a{ z6M)|UM1J_UQ-)#p%l``b<|4h|{R@&bb@Bjb+07*qo IM6N<$f>vJvIRF3v literal 0 HcmV?d00001 diff --git a/data/pixmaps/ex-cd-size.png b/data/pixmaps/ex-cd-size.png new file mode 100644 index 0000000000000000000000000000000000000000..68261f0367506c6374d30fc53b9c3bd6ab50fc74 GIT binary patch literal 32300 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ⅈ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 literal 0 HcmV?d00001 diff --git a/data/pixmaps/ex-rect-size.png b/data/pixmaps/ex-rect-size.png new file mode 100644 index 0000000000000000000000000000000000000000..2710472f1e1776090d6d03e7c62a7572ae3db054 GIT binary patch literal 4972 zcmaJ_c{o(z+dh`an#mGl%}&a`$0%bN%UBaa7+V-y4B5#tvPG6Cd&m-o#=fL1p_I@> zV;4pCW$eDw_kGvzukZSeNxBoW05PE?NiI&k3p->0yn{291HY2{4kh9rYzPPwJ(?!oKs1n;2 zzh7ImU1vwWI6GTgLsW;|mb-_C&Iy@C72dd}QA)w2MAl_2;RqIqGr??38$LO=;Z+OX zt;kai6mLsQx=>M6G)EV4|C)Ys(67Nv0Yxw3(}laTY|^!zM=LWuUlztwx8}T4$^%xv zf6iJU$p~LTq%V5CuhWcYJl$Mx+t{8HMfokXKJ9H)3)#1sX$`2-;ex-_mJk;=)eUzs z;Hjvn7*9w@;7N^FlftYM5zj=7&Xy5m%bG6jxDS5ySux)eaTlNh-^<+S4)sfIp(Ma*7T#=H!uHj?n~kj z_|AO!^6UEgbf!pS#x%Obl@)hAU0psv?%|SwxVU(6TpZQP`nquWD8fKZ{Mt1!A)(md zkdR+qdKyQ^#}%ceu?pVP22~bs{4O}TxRl-RZVud-u6nY*Nm$*Zj1)u^M@N&l`Yyx~ zk6*?j?%(GvEi1bWh)YUlw<+Ix;O$+$yX#MIy}KlJ6cK-k_bj9k()I6tz-?u$Vr**a zI;qpy0dsDg0>GUuxX?a6PwA;B$e3JyupA717k#@1WDc5VJV-X_wt%m8us^a zp6dK&#`oI$FfS?b8t<@)dS}YW?d|Qw>1+vdV#8JQ4AulJvOwLChK44byI8yinIV`U zY?!;)Aw0I402F_>u)EtGeBbLv>5&qrm7U#aN5;GvD`i!nG&*jHT<{!cFy zFCh?!IrqzESZ+q@n!{kPeny+NK*{1Ynt11-EHVI@ry}I7nZl)9Od{c5D0&M6=9ZSa z5{=k~#W!9Pa0W1p2(DkrdlN99S&hIucUWVu3v}*&(?_3mHrCc&0-k1O{yJPt7m5@l zLx+2(NKb&V<5yGTZt|Yt*$GG&WFU7?k=s)k8Mf?sivKfO9$%uI6q}vuB#oYwQ_35b zo~ayht09-MP5qtN)LrL>P7c*%rz5K^ST>oTpFfI{y5JZde&!BTeZZmnSVXW+R~@x{ zN5z6?p=rH<))+QP3(uDxi)Gas$J+TOe{=*0*rW@I9`L@gC~%1GmFGvTyaR{sd1#t+ zz%0~6%TwV6(GY8BBOuf5h-&$Wc5N7_1X(N74K|Fr-K$4oSdBOH@eP~+loA2 zK4GV)VuD~VQa!%4zSQ&TlKKG8NGGv9n1$I^QuQy_nu5#LZi_KYfUqC{(nqwZhsW0 z|GQvsN0^>Y86F;n94ms^a&~rhb9cWT5~5o8REaYiSuOy)8gXk!;uMX@6uHwpwz8i) zO!E4j8@gLBeSWdL)6&xe-`Z(@@Av&J4!6~ypMB#rY_!ZUJd7DDc41|8b>!Q(Xt3Oa z;AHI#8tYpNg<6R=@{q{L@T}EXjsdGLhHxZ`yYqU`M%L;$N&gQt2?8=@j35lzBx)cWX4K$7#|EOeg5rN6%(g~F1@^(^ z;k;)pLffW2dsqp~>F%hJpW@XZ{VaNsCp0$C`5d(lIdFJZKH8%}I_Wh&lpc$$ydx6H z_!pyU^sY(@gi1{XUkOH7r3P|}l7l{)Hj4FC;`%r+a0`P`NYWMnzk-M-6D4fpBmrv) zHvfQttE#H^*2|<6wM!t3@f3M^d3^jo)-ZRCF#!PsQ|<3!3VBTqIi#^rTvgRjK)0v0 zwKY4mU-&kqJpz%i3LSj=R*n$+*`>j1cxm7^UcUIlT;zyb%!KC>oeOIpSYh^3L0qNq zwQL~*wv!`S`?tSJMn*tYN?xbHiH`c7M-%z7#}AL6hg)uhSVncpwJWDp;|fTpoTx zMwVjJB!fHhLCAfboLqUBK2cP3wWs%x)G;@$C}aul8H0K6j=xec@A&K{ zEaNzafmRuS!H=9P$$qVdV7|?)BFD|nu7O5hPft>j)#X!P|?v_sF^q^TA-eMrQ{C z>g2OrP+FIV2DiZX1-T`-HFL2N(#zlo=Dsdq)xscGEL9mS#Cz2l&tqyVmsb?qZI~L3yVC>;>ZL0mzvrjIvYA2f?1j73}znStj zO*t931gk+b#wJx(98Q}R#ThEKS#p-P`gwIwDAW%4z*q7f-%kkeMtN&TM}9DrKI=r~ zcG7gna|JXM(8!e)VR_+dpw@`~sU6SAeRS3Q=ff}95(avDV?#p*ZuL+l(;07xXupRK zX@Ic3@wQ_HfMgax?x@sOfGKp=uvb!TO^r`3RY~ieZ7*}o zrSj%i=CgTQ)X>1pmgwB0%Um@+_;|DgadAmLxh3R2i18z?Azc{*ylBmbYhq$iU|9}0 zMUS|_U0p>|)g97U2UNhy3L0~s8=Ia+va+)BM7$Vx7XqAQa`amlSSrwl@L``)d6>WoacFbSoH(=1z-0d zInuRdmYys3eL$FSRmcv2^m9FzeB?X16w ziK!`h!^B^xTV7UHTusdl!ktSm(;QPp?`lWTQ2XzzP?9>a15lGsH?D&uwP&!_PoAEY zwRA+z_JJ4FViIh0^i-NX+KRnIOEZ(igmpUnC-%PRW%U#3LIFV@4;9}~_Cak~c6z>I z2r674V99(B)G;WChzIepVTRQFlGXwh{|s*$ZWjB&q{aKn@F`ZJETN%P_}M@}nK=<{ zeN(-LX;+}nGnpM(ZdA~B<$fp`&n8ghX&yWq)ws!hGn@J0QfpI~8Qn_nDwrWCkN#1hWW zjyKddgv3J+e`PC!g`TV+F?B_|9C)b`Kor;I!192y$39rc-P^z4q<_(=^kW7eR<1+Y|5H4)n%jV|v82M33P9>nf|lLr_a z7~oj7+5Gt8Rtjz%Gx-B$wM*!tYVWWoNZK?rjm(tq21titn}mLKQ^&UjvW(ezuLd-@ zK9j3lvjV5hslXWs0CGlF(=o`jxgc+!s6P}(Tn;}wbfu@Kr#x-b>Te+|JAG_!aQXb? zV8gtAe%|p_UkHr-TKJ)JFYo(}Nj#mF>z81ErhJuGjOYk)`YF>xF?CAr_0CuWznf zNki-BEWzL!$;->jfh~nxV%&J z!^=mN)u#J5h4GKTzOGZf@dKw>mL=5^dN3FNczk?(@SNPs-MuoqjbU!q!(P_4_Xi4R znQcxa+lA!zglTg)m567{*xUcimWUwx`5P!Z-T^*kU&4ajqI@D zT-IwACpW^8NaUHTpI`lIOJ$|_WM`NvSw6F=SeTlcT8CB12%o$>E109-tE-Q-OKxdt z#lDK!-#Y3cT;jQTAW2$g1gBcq*@0$tadWe!xP%0~XpZPg^}xTwhvwQZ&!rc13rD@A z*t|dk{CQwtV5j%Uqqd__V|ZT*<`b{J6aP29Y)+UeY-ozHudn#E=BSTb;`@mi%fBW8 z+U*f&0U)x0-%REXb#aKo-`~HV;)Ift4e?RG^BFD-KQX8<=fqCCYyS5y4(xP&(L1X& zu{3cC+?zLs?>95fO>JJT8f5^w+}zwIu+Wr>RB?(loZE+}kL+|^&CN=_H0hq;xkd90 zXPhBT)W;t|2VXO!FU)E<8IUP4ahL&&@IIDEinRZ0sgE6%B>n#l3x_a=kM62W&wK8G P=VAat3kk2eZ6Ez#4FiW5 literal 0 HcmV?d00001 diff --git a/data/pixmaps/ex-round-size.png b/data/pixmaps/ex-round-size.png new file mode 100644 index 0000000000000000000000000000000000000000..c45d6c3b509388b6225af33bb5b743f052ef24d6 GIT binary patch literal 16682 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 AWB>pF literal 0 HcmV?d00001 diff --git a/data/pixmaps/glabels-about-logo.png b/data/pixmaps/glabels-about-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9997c67ed0e712f554786e21cbf6b651ae6b17a7 GIT binary patch literal 7734 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 literal 0 HcmV?d00001 diff --git a/data/pixmaps/glabels-application-x-glabels.png b/data/pixmaps/glabels-application-x-glabels.png new file mode 100644 index 0000000000000000000000000000000000000000..59c749f372d2cf7bc21f01dba15f4d79658165d9 GIT binary patch literal 2573 zcmV+o3i9=dP)8`G5}RoRVpJPhC+OB&j@i(S9EkV zQ>IK|)22;SR#pNu0LegXBoa~TI6^0oot;e}5a7_E1OF2e_agcE1vE4?Fm>uwIy*Z# zapDAdd3gZe1#SR6fMV@u3uRYV*RWDSQ55|uD%vUC59JC5gQBjkPPgax`^BC;dxY2P z6~H7M(n-3}Qs`bqOM&5vIgMIcS^!WKg`}h;X3Utujvd=cNJzMfLpnvA9N#2xYwjEE z3gK`VfKVtzI2w$7?Cft0xD#NoPGkrMgZTY^PM_}wT-3|5JE6_?pzc_ ziBM&RmdlaatlTYa@;b7s9Ovc>LOhnko34gVer?g^-|s-XetHz<~pd9zEKTfGGk_z+_L#9y5E(4BBW@D^8?& zWKA!_hE}OGa^`WZqOSv?P#+#oG<|)21Ofrd%a26t^lizKCHeI91W8OB!>wC>KK=9* zix)2jr*%LGsHmtQCnpCG6ciK!uy=2<{@q9=^DySBW9SYZEFmv%kp#%lTQ_uC~}oEmTqfLdvk2$e)gp3`h9 z3YKQ zht==cu}T1ZzC{dFfj}alkei!JAkfvng;hJ3mL4KE*N5>O;F#m)Y9%;&^e8zw^Gtes z8p0vL!r2MHz_F(I}(tpkl9;uKFW39X&)pGK@eTg{Gtz7D|ZRhw;wHvIMlre#jzt8?|d z^@k7jcC8Pn2l(5!JK4AU7&XVgkaU`?UbWeAoV4`u{P-mw6DOt8dfm_IlV>@&zXq_J ziI+b+kBO5~d3Wn>zWm}c@$qpy_d@P~UPwzH&$P@*x&t0bOXgbR4I8jW(vo>&%g=c3 zMISZCzmRl;$=Y=*cxYTAZ*F{#j`jd6pI@l!q#t)vQq>L9<%`z{cHiaZ*X{h}Pah3v zeBq)j0P3%(bvn2I-YRalI#hF0+n|805!b*Hz3Mx)TmDWd z#F4y|m^6x+voi^H-{tK;f5euze!Cb7l6h)z|^ps>{DC2yvql8!1 zE@kH9)A_-yO#boyK0S(31n&0q0;;!$659E>v+;P`#EtOs$G3llH#P>3$IZNjv!&-& zuiDJ(zutz+f1Lj90zy>+KuVwpCtPyOiF$eUu(J0YH1Z z5nU;TKKl0&Ry;eO-@W-$MvU-s%iqcQb5|u}TFAG&@i%HeyTC1f2iKc#0;&T__8uoO zF@c9CjFb9=LSe36X=dk#haK&KoI>Vm)KK5TFJD{5_>?i!UuovUzZ;uNeIfh5UI!{F zj!;>%>%IXAg?jtHMd9%b>E%2CR~x=mBT!pgOH^ z?-S|N6=}bI=FAz=(Uw8mac|H`LS9gQ5uBZWos?UnVm%6M*>mQQW!H z#e@lIghIVsxNwP=Uw#?jMc@KZ?*T|oP9_xUXr3477X>jzrA< z3&p@kMS!R%^$q2U6)S0MY@oT>ekzLsL{(K4U0p_PbqekMmgeSWIy*bruwes0E^rQL zg$L;WLPNYh0Oq2;v3E!H6PyXeqrSe>+8#s^z+KdTuCxFF4QwJRcsCC|fiMsRx`B`e j*2RMj+$w_p{|)^Y#Rg@mNE1*d00000NkvXXu0mjfW(36k literal 0 HcmV?d00001 diff --git a/data/pixmaps/glabels-splash.png b/data/pixmaps/glabels-splash.png new file mode 100644 index 0000000000000000000000000000000000000000..713cb8a2493a24f0ea48fa3e5b1a93e5de40192f GIT binary patch literal 110600 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 !rfA6OB3}YUMJf)O`hhfNJ6&hyrOi3g$i*Qhb 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 Ef;)rG6951J literal 0 HcmV?d00001 diff --git a/data/templates/Makefile.am b/data/templates/Makefile.am new file mode 100644 index 00000000..4d38e069 --- /dev/null +++ b/data/templates/Makefile.am @@ -0,0 +1,20 @@ +## Process this file with automake to produce Makefile.in + +templatesdir = $(datadir)/glabels/templates + +templates_DATA = \ + paper-sizes.xml \ + categories.xml \ + avery-iso-templates.xml \ + avery-other-templates.xml \ + avery-us-templates.xml \ + brother-other-templates.xml \ + dymo-other-templates.xml \ + misc-iso-templates.xml \ + misc-other-templates.xml \ + misc-us-templates.xml \ + pearl-templates.xml \ + zweckform-iso-templates.xml + +EXTRA_DIST = $(templates_DATA) + diff --git a/data/templates/Makefile.in b/data/templates/Makefile.in new file mode 100644 index 00000000..c60ec5f2 --- /dev/null +++ b/data/templates/Makefile.in @@ -0,0 +1,465 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = data/templates +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(templatesdir)" +DATA = $(templates_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_CFLAGS = @GLABELS_CFLAGS@ +GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_REQUIRED = @GLIB_REQUIRED@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_REQUIRED = @GTK_REQUIRED@ +HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +HELP_DIR = @HELP_DIR@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ +LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ +LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ +LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ +LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ +LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ +LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ +LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +MYGAL_CFLAGS = @MYGAL_CFLAGS@ +MYGAL_LIBS = @MYGAL_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ +UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +XGETTEXT = @XGETTEXT@ +XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ +XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +templatesdir = $(datadir)/glabels/templates +templates_DATA = \ + paper-sizes.xml \ + categories.xml \ + avery-iso-templates.xml \ + avery-other-templates.xml \ + avery-us-templates.xml \ + brother-other-templates.xml \ + dymo-other-templates.xml \ + misc-iso-templates.xml \ + misc-other-templates.xml \ + misc-us-templates.xml \ + pearl-templates.xml \ + zweckform-iso-templates.xml + +EXTRA_DIST = $(templates_DATA) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/templates/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu data/templates/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-templatesDATA: $(templates_DATA) + @$(NORMAL_INSTALL) + test -z "$(templatesdir)" || $(MKDIR_P) "$(DESTDIR)$(templatesdir)" + @list='$(templates_DATA)'; test -n "$(templatesdir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(templatesdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(templatesdir)" || exit $$?; \ + done + +uninstall-templatesDATA: + @$(NORMAL_UNINSTALL) + @list='$(templates_DATA)'; test -n "$(templatesdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(templatesdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(templatesdir)" && rm -f $$files +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(templatesdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-templatesDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-templatesDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + install-templatesDATA installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-templatesDATA + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/templates/avery-iso-templates.xml b/data/templates/avery-iso-templates.xml new file mode 100644 index 00000000..269c9262 --- /dev/null +++ b/data/templates/avery-iso-templates.xml @@ -0,0 +1,316 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/templates/avery-other-templates.xml b/data/templates/avery-other-templates.xml new file mode 100644 index 00000000..796657cf --- /dev/null +++ b/data/templates/avery-other-templates.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + diff --git a/data/templates/avery-us-templates.xml b/data/templates/avery-us-templates.xml new file mode 100644 index 00000000..2c2bab62 --- /dev/null +++ b/data/templates/avery-us-templates.xml @@ -0,0 +1,807 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/templates/brother-other-templates.xml b/data/templates/brother-other-templates.xml new file mode 100644 index 00000000..6fb666bc --- /dev/null +++ b/data/templates/brother-other-templates.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + diff --git a/data/templates/categories.xml b/data/templates/categories.xml new file mode 100644 index 00000000..cae2d4c3 --- /dev/null +++ b/data/templates/categories.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/data/templates/dymo-other-templates.xml b/data/templates/dymo-other-templates.xml new file mode 100644 index 00000000..b1518ce1 --- /dev/null +++ b/data/templates/dymo-other-templates.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/templates/misc-iso-templates.xml b/data/templates/misc-iso-templates.xml new file mode 100644 index 00000000..f84b0a96 --- /dev/null +++ b/data/templates/misc-iso-templates.xml @@ -0,0 +1,715 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/templates/misc-other-templates.xml b/data/templates/misc-other-templates.xml new file mode 100644 index 00000000..4f57e745 --- /dev/null +++ b/data/templates/misc-other-templates.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + diff --git a/data/templates/misc-us-templates.xml b/data/templates/misc-us-templates.xml new file mode 100644 index 00000000..7b6a05a1 --- /dev/null +++ b/data/templates/misc-us-templates.xml @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/templates/paper-sizes.xml b/data/templates/paper-sizes.xml new file mode 100644 index 00000000..17149aeb --- /dev/null +++ b/data/templates/paper-sizes.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/templates/pearl-templates.xml b/data/templates/pearl-templates.xml new file mode 100644 index 00000000..52df93d3 --- /dev/null +++ b/data/templates/pearl-templates.xml @@ -0,0 +1,498 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/templates/zweckform-iso-templates.xml b/data/templates/zweckform-iso-templates.xml new file mode 100644 index 00000000..fa3c9391 --- /dev/null +++ b/data/templates/zweckform-iso-templates.xml @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/depcomp b/depcomp new file mode 100755 index 00000000..df8eea7e --- /dev/null +++ b/depcomp @@ -0,0 +1,630 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2009-04-28.21; # UTC + +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free +# Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by `PROGRAMS ARGS'. + object Object file output by `PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputing dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +cygpath_u="cygpath -u -f -" +if test "$depmode" = msvcmsys; then + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u="sed s,\\\\\\\\,/,g" + depmode=msvisualcpp +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +## The second -e expression handles DOS-style file names with drive letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the `deleted header file' problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. + tr ' ' ' +' < "$tmpdepfile" | +## Some versions of gcc put a space before the `:'. On the theory +## that the space means something, we add a space to the output as +## well. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like `#:fec' to the end of the + # dependency line. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ + tr ' +' ' ' >> "$depfile" + echo >> "$depfile" + + # The second pass generates a dummy entry for each header file. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts `$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + # Each line is of the form `foo.o: dependent.h'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +icc) + # Intel's C compiler understands `-MD -MF file'. However on + # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # ICC 7.0 will fill foo.d with something like + # foo.o: sub/foo.c + # foo.o: sub/foo.h + # which is wrong. We want: + # sub/foo.o: sub/foo.c + # sub/foo.o: sub/foo.h + # sub/foo.c: + # sub/foo.h: + # ICC 7.1 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using \ : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | + sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" + # Add `dependent.h:' lines. + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in `foo.d' instead, so we check for that too. + # Subdirectories are respected. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + + if test "$libtool" = yes; then + # With Tru64 cc, shared objects can also be used to make a + # static library. This mechanism is used in libtool 1.4 series to + # handle both shared and static libraries in a single compilation. + # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. + # + # With libtool 1.5 this exception was removed, and libtool now + # generates 2 separate objects for the 2 libraries. These two + # compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 + tmpdepfile2=$dir$base.o.d # libtool 1.5 + tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 + tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.o.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + tmpdepfile4=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for `:' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. + "$@" $dashmflag | + sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tr ' ' ' +' < "$tmpdepfile" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no eat=no + for arg + do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + if test $eat = yes; then + eat=no + continue + fi + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -arch) + eat=yes ;; + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix=`echo "$object" | sed 's/^.*\././'` + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + sed '1,2d' "$tmpdepfile" | tr ' ' ' +' | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E | + sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + IFS=" " + for arg + do + case "$arg" in + -o) + shift + ;; + $object) + shift + ;; + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E 2>/dev/null | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" + echo " " >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvcmsys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/docs/Makefile.am b/docs/Makefile.am new file mode 100644 index 00000000..0cb49459 --- /dev/null +++ b/docs/Makefile.am @@ -0,0 +1,3 @@ +## Process this file with automake to produce Makefile.in. + +SUBDIRS = libglabels diff --git a/docs/Makefile.in b/docs/Makefile.in new file mode 100644 index 00000000..341a3dab --- /dev/null +++ b/docs/Makefile.in @@ -0,0 +1,604 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = docs +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_CFLAGS = @GLABELS_CFLAGS@ +GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_REQUIRED = @GLIB_REQUIRED@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_REQUIRED = @GTK_REQUIRED@ +HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +HELP_DIR = @HELP_DIR@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ +LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ +LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ +LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ +LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ +LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ +LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ +LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +MYGAL_CFLAGS = @MYGAL_CFLAGS@ +MYGAL_LIBS = @MYGAL_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ +UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +XGETTEXT = @XGETTEXT@ +XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ +XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = libglabels +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ + install-am install-strip tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/docs/libglabels/Makefile.am b/docs/libglabels/Makefile.am new file mode 100644 index 00000000..28e56fdb --- /dev/null +++ b/docs/libglabels/Makefile.am @@ -0,0 +1,69 @@ +## Process this file with automake to produce Makefile.in + +# We require automake 1.6 at least. +AUTOMAKE_OPTIONS = 1.6 + +# This is a blank Makefile.am for using gtk-doc. +# Copy this to your project's API docs directory and modify the variables to +# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples +# of using the various options. + +# The name of the module, e.g. 'glib'. +DOC_MODULE=libglabels + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml + +# The directory containing the source code. Relative to $(srcdir). +# gtk-doc will search all .c & .h files beneath here for inline comments +# documenting the functions and macros. +# e.g. DOC_SOURCE_DIR=../../../gtk +DOC_SOURCE_DIR=../../libglabels + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS= + +# Extra options to supply to gtkdoc-scan. +# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" +SCAN_OPTIONS= + +# Extra options to supply to gtkdoc-mkdb. +# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml +MKDB_OPTIONS=--sgml-mode --output-format=xml + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html +FIXXREF_OPTIONS= + +# Used for dependencies. The docs will be rebuilt if any of these change. +# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h +# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c +HFILE_GLOB= +CFILE_GLOB= + +# Header files to ignore when scanning. +# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h +IGNORE_HFILES=libglabels-private.h + +# Images to copy into HTML directory. +# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png +HTML_IMAGES= + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files= + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +# e.g. INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) +# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) +INCLUDES= +GTKDOC_LIBS= + +# This includes the standard gtk-doc make rules, copied by gtkdocize. +include $(top_srcdir)/gtk-doc.make + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST += diff --git a/docs/libglabels/Makefile.in b/docs/libglabels/Makefile.in new file mode 100644 index 00000000..c95b075f --- /dev/null +++ b/docs/libglabels/Makefile.in @@ -0,0 +1,655 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# -*- mode: makefile -*- + +#################################### +# Everything below here is generic # +#################################### +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/gtk-doc.make +subdir = docs/libglabels +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_CFLAGS = @GLABELS_CFLAGS@ +GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_REQUIRED = @GLIB_REQUIRED@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_REQUIRED = @GTK_REQUIRED@ +HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +HELP_DIR = @HELP_DIR@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ +LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ +LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ +LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ +LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ +LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ +LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ +LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +MYGAL_CFLAGS = @MYGAL_CFLAGS@ +MYGAL_LIBS = @MYGAL_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ +UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +XGETTEXT = @XGETTEXT@ +XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ +XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# We require automake 1.6 at least. +AUTOMAKE_OPTIONS = 1.6 + +# This is a blank Makefile.am for using gtk-doc. +# Copy this to your project's API docs directory and modify the variables to +# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples +# of using the various options. + +# The name of the module, e.g. 'glib'. +DOC_MODULE = libglabels + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.sgml + +# The directory containing the source code. Relative to $(srcdir). +# gtk-doc will search all .c & .h files beneath here for inline comments +# documenting the functions and macros. +# e.g. DOC_SOURCE_DIR=../../../gtk +DOC_SOURCE_DIR = ../../libglabels + +# Extra options to pass to gtkdoc-scangobj. Not normally needed. +SCANGOBJ_OPTIONS = + +# Extra options to supply to gtkdoc-scan. +# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" +SCAN_OPTIONS = + +# Extra options to supply to gtkdoc-mkdb. +# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml +MKDB_OPTIONS = --sgml-mode --output-format=xml + +# Extra options to supply to gtkdoc-fixref. Not normally needed. +# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html +FIXXREF_OPTIONS = + +# Used for dependencies. The docs will be rebuilt if any of these change. +# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h +# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c +HFILE_GLOB = +CFILE_GLOB = + +# Header files to ignore when scanning. +# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h +IGNORE_HFILES = libglabels-private.h + +# Images to copy into HTML directory. +# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png +HTML_IMAGES = + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +# e.g. content_files=running.sgml building.sgml changes-2.0.sgml +content_files = + +# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. +# Only needed if you are using gtkdoc-scangobj to dynamically query widget +# signals and properties. +# e.g. INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) +# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) +INCLUDES = +GTKDOC_LIBS = +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = sh -c +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) +TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE) + +# This includes the standard gtk-doc make rules, copied by gtkdocize. + +# Other files to distribute +# e.g. EXTRA_DIST += version.xml.in +EXTRA_DIST = $(content_files) $(HTML_IMAGES) $(DOC_MAIN_SGML_FILE) \ + $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt +DOC_STAMPS = scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \ + $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp + +SCANOBJ_FILES = \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/gtk-doc.make $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/libglabels/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/libglabels/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook +check-am: all-am +check: check-am +all-am: Makefile all-local +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-local + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-data-local + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic \ + maintainer-clean-local + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-local + +.MAKE: install-am install-strip + +.PHONY: all all-am all-local check check-am clean clean-generic \ + clean-libtool clean-local dist-hook distclean \ + distclean-generic distclean-libtool distclean-local distdir \ + dvi dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-data-local install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic \ + maintainer-clean-local mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ + uninstall-local + + +@ENABLE_GTK_DOC_TRUE@all-local: html-build.stamp +@ENABLE_GTK_DOC_FALSE@all-local: + +docs: html-build.stamp + +$(REPORT_FILES): sgml-build.stamp + +#### scan #### + +scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) + @echo 'gtk-doc: Scanning header files' + @-chmod -R u+w $(srcdir) + cd $(srcdir) && \ + gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES) + if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; then \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \ + else \ + cd $(srcdir) ; \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ + fi + touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +#### templates #### + +tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt + @echo 'gtk-doc: Rebuilding template files' + @-chmod -R u+w $(srcdir) + cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS) + touch tmpl-build.stamp + +tmpl.stamp: tmpl-build.stamp + @true + +tmpl/*.sgml: + @true + +#### xml #### + +sgml-build.stamp: tmpl.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files) + @echo 'gtk-doc: Building XML' + @-chmod -R u+w $(srcdir) + cd $(srcdir) && \ + gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $(MKDB_OPTIONS) + touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +#### html #### + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @echo 'gtk-doc: Building HTML' + @-chmod -R u+w $(srcdir) + rm -rf $(srcdir)/html + mkdir $(srcdir)/html + mkhtml_options=""; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ + if test "$(?)" = "0"; then \ + mkhtml_options=--path="$(srcdir)"; \ + fi + cd $(srcdir)/html && gtkdoc-mkhtml $(mkhtml_options) $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) + test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html ) + @echo 'gtk-doc: Fixing cross-references' + cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) + touch html-build.stamp + +############## + +clean-local: + rm -f *~ *.bak + rm -rf .libs + +distclean-local: + cd $(srcdir) && \ + rm -rf xml $(REPORT_FILES) \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + +maintainer-clean-local: clean + cd $(srcdir) && rm -rf xml html + +install-data-local: + installfiles=`echo $(srcdir)/html/*`; \ + if test "$$installfiles" = '$(srcdir)/html/*'; \ + then echo '-- Nothing to install' ; \ + else \ + if test -n "$(DOC_MODULE_VERSION)"; then \ + installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ + else \ + installdir="$(DESTDIR)$(TARGET_DIR)"; \ + fi; \ + $(mkinstalldirs) $${installdir} ; \ + for i in $$installfiles; do \ + echo '-- Installing '$$i ; \ + $(INSTALL_DATA) $$i $${installdir}; \ + done; \ + if test -n "$(DOC_MODULE_VERSION)"; then \ + mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ + $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ + mv -f $${installdir}/$(DOC_MODULE).devhelp \ + $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp; \ + fi; \ + ! which gtkdoc-rebase >/dev/null 2>&1 || \ + gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir} ; \ + fi + +uninstall-local: + if test -n "$(DOC_MODULE_VERSION)"; then \ + installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ + else \ + installdir="$(DESTDIR)$(TARGET_DIR)"; \ + fi; \ + rm -rf $${installdir} + +# +# Require gtk-doc when making dist +# +@ENABLE_GTK_DOC_TRUE@dist-check-gtkdoc: +@ENABLE_GTK_DOC_FALSE@dist-check-gtkdoc: +@ENABLE_GTK_DOC_FALSE@ @echo "*** gtk-doc must be installed and enabled in order to make dist" +@ENABLE_GTK_DOC_FALSE@ @false + +dist-hook: dist-check-gtkdoc dist-hook-local + mkdir $(distdir)/tmpl + mkdir $(distdir)/xml + mkdir $(distdir)/html + -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl + -cp $(srcdir)/xml/*.xml $(distdir)/xml + cp $(srcdir)/html/* $(distdir)/html + -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/ + -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/ + cd $(distdir) && rm -f $(DISTCLEANFILES) + ! which gtkdoc-rebase >/dev/null 2>&1 || \ + gtkdoc-rebase --online --relative --html-dir=$(distdir)/html + +.PHONY : dist-hook-local docs + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/docs/libglabels/html/ch01.html b/docs/libglabels/html/ch01.html new file mode 100644 index 00000000..ace3432c --- /dev/null +++ b/docs/libglabels/html/ch01.html @@ -0,0 +1,47 @@ + + + + +Basic LibGlabels Usage + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/libglabels/html/ch02.html b/docs/libglabels/html/ch02.html new file mode 100644 index 00000000..bfe8fb9a --- /dev/null +++ b/docs/libglabels/html/ch02.html @@ -0,0 +1,47 @@ + + + + +Working Directly With LibGlabels XML + + + + + + + + + + + + + + + + + + + +
    +

    +Working Directly With LibGlabels XML

    +
    +
    +XML Paper Functions — Functions to parse glabels XML paper definition files +
    +
    +XML Category Functions — Functions to parse glabels XML category definition files +
    +
    +XML Template Functions — Functions to create and parse glabels XML template nodes and files +
    +
    +XML Helper Functions — Functions to help format and parse glabels XML properties +
    +
    +
    + + + diff --git a/docs/libglabels/html/ch03.html b/docs/libglabels/html/ch03.html new file mode 100644 index 00000000..9705f9f7 --- /dev/null +++ b/docs/libglabels/html/ch03.html @@ -0,0 +1,41 @@ + + + + +Miscellaneous + + + + + + + + + + + + + + + + + + + +
    +

    +Miscellaneous

    +
    +
    +Enumerations — Common enumerations used by libglabels +
    +
    +String Utility Functions — String utility functions provided by libglabels +
    +
    +
    + + + diff --git a/docs/libglabels/html/home.png b/docs/libglabels/html/home.png new file mode 100644 index 0000000000000000000000000000000000000000..17003611d9df2b066afc682cbde962f3a575002d GIT binary patch literal 654 zcmV;90&)F`P)~yY zO1cF+0vxb!W?!x?K+*#62Jq)nA4q`)5S6sgX4ao{=)(Mgq+YMr)7sjak|a^9)zS!j zlk{-n29mabXYF=7SYBQx&vO8xC}MYams+hxqtO7sImhPaCf@rq;I^3!#u*2aUP)55 zT2&N90xmEJ0s&fGT~(T<3d2xYmK9C>IP*x-M@ib*+0pFm>>uW37N2Wzaq-fCnIZE9 zpb8}0+uN+KuQM2oZVHfP8U6kQdo3?>Wo2dT)WeM9So8DqhLi#T0 z-i(>mfjhvbsYV`;4sgfJ-p>G-SqJ!fjR6BQYs1h*y9xaN0l{VB;o%`08yiy@)$8@~ z2PD1gcDuiy;j1tR0v#V8OH%W)25-YKyx(j#IXO9*YWf0mb8}QG6@b@;cHxh9{t7+@ o!Yd`f8L$sLH?yBt^q3C6015TtIu@BS5dZ)H07*qoM6N<$f*igdr~m)} literal 0 HcmV?d00001 diff --git a/docs/libglabels/html/index.html b/docs/libglabels/html/index.html new file mode 100644 index 00000000..2670d9f1 --- /dev/null +++ b/docs/libglabels/html/index.html @@ -0,0 +1,67 @@ + + + + +LibGlabels Reference Manual + + + + + + + + + + +
    +
    +
    +
    +
    +
    +
    Basic LibGlabels Usage
    +
    +
    +Database — Database of pre-defined templates +
    +
    +The lglTemplate Structure — How templates are represented in memory +
    +
    +The lglPaper Structure — Paper size definitions +
    +
    +The lglCategory Structure — Template category definitions +
    +
    +
    Working Directly With LibGlabels XML
    +
    +
    +XML Paper Functions — Functions to parse glabels XML paper definition files +
    +
    +XML Category Functions — Functions to parse glabels XML category definition files +
    +
    +XML Template Functions — Functions to create and parse glabels XML template nodes and files +
    +
    +XML Helper Functions — Functions to help format and parse glabels XML properties +
    +
    +
    Miscellaneous
    +
    +
    +Enumerations — Common enumerations used by libglabels +
    +
    +String Utility Functions — String utility functions provided by libglabels +
    +
    +
    +
    + + + diff --git a/docs/libglabels/html/index.sgml b/docs/libglabels/html/index.sgml new file mode 100644 index 00000000..98deb568 --- /dev/null +++ b/docs/libglabels/html/index.sgml @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/libglabels/html/left.png b/docs/libglabels/html/left.png new file mode 100644 index 0000000000000000000000000000000000000000..2d05b3d5b4aeec9384bbfe404bfc4ed0897051c4 GIT binary patch literal 459 zcmV;+0W|)JP)40xL?wO*>WZ(J#ML5j2<9jD6A%Q&kC}jOeEc;X{s;`zcnxLeZR6?6h#^ihmNF6NpGdilO$m<82oD9WQ|6nVv1`? z>KufRi{?QPXg;4;wroQu4?mN1Ydd@|kaQ|ZyWLK!)yi7Wb%=0{}lD)tfliHAUyWRQ+fD_;aV6j->y6!O_8bENg + + + +The lglCategory Structure + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    The lglCategory Structure

    +

    The lglCategory Structure — Template category definitions

    +
    +
    +

    Synopsis

    +
    +
    +#include <libglabels/category.h>
    +
    +                    lglCategory;
    +lglCategory *       lgl_category_new                    (gchar *id,
    +                                                         gchar *name);
    +lglCategory *       lgl_category_dup                    (const lglCategory *orig);
    +void                lgl_category_free                   (lglCategory *category);
    +
    +
    +
    +

    Description

    +

    +This section describes a structure for representing a category of stationary and related +functions. +

    +
    +
    +

    Details

    +
    +

    lglCategory

    +
    typedef struct {
    +	gchar               *id;     /* Unique ID of category */
    +	gchar               *name;   /* Localized name of category */
    +} lglCategory;
    +
    +

    +This structure defines a category. +

    +
    ++ + + + + + + + + + +

    gchar *id;

    Category ID. +

    gchar *name;

    Localized category name. +
    +
    +
    +
    +

    lgl_category_new ()

    +
    lglCategory *       lgl_category_new                    (gchar *id,
    +                                                         gchar *name);
    +

    +Allocates and constructs a new lglCategory structure.

    +

    +

    +
    ++ + + + + + + + + + + + + + +

    id :

    Id of category definition. (E.g. label, card, etc.) Should be + unique. +

    name :

    Localized name of category. +

    Returns :

    a pointer to a newly allocated lglCategory structure. + +
    +
    +
    +
    +

    lgl_category_dup ()

    +
    lglCategory *       lgl_category_dup                    (const lglCategory *orig);
    +

    +Duplicates an existing lglCategory structure.

    +

    +

    +
    ++ + + + + + + + + + +

    orig :

    lglCategory structure to be duplicated. +

    Returns :

    a pointer to a newly allocated lglCategory structure. + +
    +
    +
    +
    +

    lgl_category_free ()

    +
    void                lgl_category_free                   (lglCategory *category);
    +

    +Free all memory associated with an existing lglCategory structure.

    +

    +

    +
    ++ + + + +

    category :

    pointer to lglCategory structure to be freed. +
    +
    +
    +
    + + + diff --git a/docs/libglabels/html/libglabels-db.html b/docs/libglabels/html/libglabels-db.html new file mode 100644 index 00000000..e221080d --- /dev/null +++ b/docs/libglabels/html/libglabels-db.html @@ -0,0 +1,1073 @@ + + + + +Database + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    Database

    +

    Database — Database of pre-defined templates

    +
    +
    +

    Synopsis

    +
    +
    +#include <libglabels/db.h>
    +
    +enum                lglDbRegStatus;
    +
    +void                lgl_db_init                         (void);
    +
    +GList *             lgl_db_get_paper_id_list            (void);
    +void                lgl_db_free_paper_id_list           (GList *ids);
    +GList *             lgl_db_get_paper_name_list          (void);
    +void                lgl_db_free_paper_name_list         (GList *names);
    +lglPaper *          lgl_db_lookup_paper_from_id         (const gchar *id);
    +lglPaper *          lgl_db_lookup_paper_from_name       (const gchar *name);
    +gchar *             lgl_db_lookup_paper_id_from_name    (const gchar *name);
    +gchar *             lgl_db_lookup_paper_name_from_id    (const gchar *id);
    +gboolean            lgl_db_is_paper_id_known            (const gchar *id);
    +gboolean            lgl_db_is_paper_id_other            (const gchar *id);
    +
    +GList *             lgl_db_get_category_id_list         (void);
    +void                lgl_db_free_category_id_list        (GList *ids);
    +GList *             lgl_db_get_category_name_list       (void);
    +void                lgl_db_free_category_name_list      (GList *names);
    +lglCategory *       lgl_db_lookup_category_from_id      (const gchar *id);
    +lglCategory *       lgl_db_lookup_category_from_name    (const gchar *name);
    +gchar *             lgl_db_lookup_category_id_from_name (const gchar *name);
    +gchar *             lgl_db_lookup_category_name_from_id (const gchar *id);
    +gboolean            lgl_db_is_category_id_known         (const gchar *id);
    +
    +GList *             lgl_db_get_brand_list               (const gchar *paper_id,
    +                                                         const gchar *category_id);
    +void                lgl_db_free_brand_list              (GList *brands);
    +
    +lglDbRegStatus      lgl_db_register_template            (const lglTemplate *template);
    +gboolean            lgl_db_does_template_exist          (const gchar *brand,
    +                                                         const gchar *part);
    +gboolean            lgl_db_does_template_name_exist     (const gchar *name);
    +GList *             lgl_db_get_template_name_list_unique
    +                                                        (const gchar *brand,
    +                                                         const gchar *paper_id,
    +                                                         const gchar *category_id);
    +GList *             lgl_db_get_template_name_list_all   (const gchar *brand,
    +                                                         const gchar *paper_id,
    +                                                         const gchar *category_id);
    +void                lgl_db_free_template_name_list      (GList *names);
    +lglTemplate *       lgl_db_lookup_template_from_name    (const gchar *name);
    +
    +void                lgl_db_print_known_papers           (void);
    +void                lgl_db_print_known_categories       (void);
    +void                lgl_db_print_known_templates        (void);
    +void                lgl_db_print_aliases                (const lglTemplate *template);
    +
    +
    +
    +

    Description

    +

    +This section describes a set of functions to locate and add templates and related information in +the LibGlabels template database. +

    +
    +
    +

    Details

    +
    +

    enum lglDbRegStatus

    +
    typedef enum
    +{
    +        LGL_DB_REG_OK                =  0,
    +        LGL_DB_REG_BAD_PAPER_ID      = -1,
    +        LGL_DB_REG_BRAND_PART_EXISTS = -2,
    +        LGL_DB_REG_FILE_WRITE_ERROR  = -3
    +} lglDbRegStatus;
    +
    +

    +This enumeration defines a set of possible return values for lgl_db_register_template(). +

    +
    ++ + + + + + + + + + + + + + + + + + +

    LGL_DB_REG_OK

    Registration successful. +

    LGL_DB_REG_BAD_PAPER_ID

    Registration failed because paper id is unknown. +

    LGL_DB_REG_BRAND_PART_EXISTS

    Registration failed because template with same brand and part name/number already exists. +

    LGL_DB_REG_FILE_WRITE_ERROR

    Registration failed because an error while writing to disk. +
    +
    +
    +
    +

    lgl_db_init ()

    +
    void                lgl_db_init                         (void);
    +

    +Initialize all libglabels subsystems. It is not necessary for an application to call +lgl_db_init(), because libglabels will initialize on demand. An application programmer may +choose to call lgl_db_init() at startup to minimize the impact of the first libglabels call +on GUI response time. +

    +

    +This function initializes its paper definitions, category definitions, and its template +database.. It will search both system and user template directories to locate +this data.

    +

    +

    +
    +
    +
    +

    lgl_db_get_paper_id_list ()

    +
    GList *             lgl_db_get_paper_id_list            (void);
    +

    +Get a list of all paper ids known to libglabels.

    +

    +

    +
    ++ + + + +

    Returns :

    a list of paper ids. + +
    +
    +
    +
    +

    lgl_db_free_paper_id_list ()

    +
    void                lgl_db_free_paper_id_list           (GList *ids);
    +

    +Free up all storage associated with an id list obtained with +lgl_db_get_paper_id_list().

    +

    +

    +
    ++ + + + +

    ids :

    List of id strings to be freed. +
    +
    +
    +
    +

    lgl_db_get_paper_name_list ()

    +
    GList *             lgl_db_get_paper_name_list          (void);
    +

    +Get a list of all localized paper names known to libglabels.

    +

    +

    +
    ++ + + + +

    Returns :

    a list of localized paper names. + +
    +
    +
    +
    +

    lgl_db_free_paper_name_list ()

    +
    void                lgl_db_free_paper_name_list         (GList *names);
    +

    +Free up all storage associated with a name list obtained with +lgl_db_get_paper_name_list().

    +

    +

    +
    ++ + + + +

    names :

    List of localized paper name strings to be freed. +
    +
    +
    +
    +

    lgl_db_lookup_paper_from_id ()

    +
    lglPaper *          lgl_db_lookup_paper_from_id         (const gchar *id);
    +

    +Lookup paper definition from id string.

    +

    +

    +
    ++ + + + + + + + + + +

    id :

    paper id string +

    Returns :

    pointer to a newly allocated lglPaper structure. + +
    +
    +
    +
    +

    lgl_db_lookup_paper_from_name ()

    +
    lglPaper *          lgl_db_lookup_paper_from_name       (const gchar *name);
    +

    +Lookup paper definition from localized paper name string.

    +

    +

    +
    ++ + + + + + + + + + +

    name :

    localized paper name string +

    Returns :

    pointer to a newly allocated lglPaper structure. + +
    +
    +
    +
    +

    lgl_db_lookup_paper_id_from_name ()

    +
    gchar *             lgl_db_lookup_paper_id_from_name    (const gchar *name);
    +

    +Lookup paper name string from localized paper name string.

    +

    +

    +
    ++ + + + + + + + + + +

    name :

    localized paper name stringp +

    Returns :

    pointer to a newly allocated id string. + +
    +
    +
    +
    +

    lgl_db_lookup_paper_name_from_id ()

    +
    gchar *             lgl_db_lookup_paper_name_from_id    (const gchar *id);
    +

    +Lookup localized paper name string from paper id string.

    +

    +

    +
    ++ + + + + + + + + + +

    id :

    paper id string +

    Returns :

    pointer to a newly allocated localized paper name string. + +
    +
    +
    +
    +

    lgl_db_is_paper_id_known ()

    +
    gboolean            lgl_db_is_paper_id_known            (const gchar *id);
    +

    +Determine if given paper id is known to libglabels.

    +

    +

    +
    ++ + + + + + + + + + +

    id :

    paper id to test +

    Returns :

    TRUE if id is known, otherwise FALSE. + +
    +
    +
    +
    +

    lgl_db_is_paper_id_other ()

    +
    gboolean            lgl_db_is_paper_id_other            (const gchar *id);
    +

    +Determine if given paper id is the special id "Other."

    +

    +

    +
    ++ + + + + + + + + + +

    id :

    paper id to test +

    Returns :

    TRUE if id is "Other", otherwise FALSE. + +
    +
    +
    +
    +

    lgl_db_get_category_id_list ()

    +
    GList *             lgl_db_get_category_id_list         (void);
    +

    +Get a list of all category ids known to libglabels.

    +

    +

    +
    ++ + + + +

    Returns :

    a list of category ids. + +
    +
    +
    +
    +

    lgl_db_free_category_id_list ()

    +
    void                lgl_db_free_category_id_list        (GList *ids);
    +

    +Free up all storage associated with an id list obtained with +lgl_db_get_category_id_list().

    +

    +

    +
    ++ + + + +

    ids :

    List of id strings to be freed. +
    +
    +
    +
    +

    lgl_db_get_category_name_list ()

    +
    GList *             lgl_db_get_category_name_list       (void);
    +

    +Get a list of all localized category names known to libglabels.

    +

    +

    +
    ++ + + + +

    Returns :

    a list of localized category names. + +
    +
    +
    +
    +

    lgl_db_free_category_name_list ()

    +
    void                lgl_db_free_category_name_list      (GList *names);
    +

    +Free up all storage associated with a name list obtained with +lgl_db_get_category_name_list().

    +

    +

    +
    ++ + + + +

    names :

    List of localized category name strings to be freed. +
    +
    +
    +
    +

    lgl_db_lookup_category_from_id ()

    +
    lglCategory *       lgl_db_lookup_category_from_id      (const gchar *id);
    +

    +Lookup category definition from id string.

    +

    +

    +
    ++ + + + + + + + + + +

    id :

    category id string +

    Returns :

    pointer to a newly allocated lglCategory structure. + +
    +
    +
    +
    +

    lgl_db_lookup_category_from_name ()

    +
    lglCategory *       lgl_db_lookup_category_from_name    (const gchar *name);
    +

    +Lookup category definition from localized category name string.

    +

    +

    +
    ++ + + + + + + + + + +

    name :

    localized category name string +

    Returns :

    pointer to a newly allocated lglCategory structure. + +
    +
    +
    +
    +

    lgl_db_lookup_category_id_from_name ()

    +
    gchar *             lgl_db_lookup_category_id_from_name (const gchar *name);
    +

    +Lookup category name string from localized category name string.

    +

    +

    +
    ++ + + + + + + + + + +

    name :

    localized category name stringp +

    Returns :

    pointer to a newly allocated id string. + +
    +
    +
    +
    +

    lgl_db_lookup_category_name_from_id ()

    +
    gchar *             lgl_db_lookup_category_name_from_id (const gchar *id);
    +

    +Lookup localized category name string from category id string.

    +

    +

    +
    ++ + + + + + + + + + +

    id :

    category id string +

    Returns :

    pointer to a newly allocated localized category name string. + +
    +
    +
    +
    +

    lgl_db_is_category_id_known ()

    +
    gboolean            lgl_db_is_category_id_known         (const gchar *id);
    +

    +Determine if given category id is known to libglabels.

    +

    +

    +
    ++ + + + + + + + + + +

    id :

    category id to test +

    Returns :

    TRUE if id is known, otherwise FALSE. + +
    +
    +
    +
    +

    lgl_db_get_brand_list ()

    +
    GList *             lgl_db_get_brand_list               (const gchar *paper_id,
    +                                                         const gchar *category_id);
    +

    +Get a list of all valid brands of templates in the template database. +Results can be filtered by page size and/or template category. A list of valid page +sizes can be obtained using lgl_db_get_paper_id_list(). A list of valid template +categories can be obtained using lgl_db_get_category_id_list().

    +

    +

    +
    ++ + + + + + + + + + + + + + +

    paper_id :

    If non NULL, limit results to given page size. +

    category_id :

    If non NULL, limit results to given template category. +

    Returns :

    a list of brands +
    +
    +
    +
    +

    lgl_db_free_brand_list ()

    +
    void                lgl_db_free_brand_list              (GList *brands);
    +

    +Free up all storage associated with a list of template names obtained with +lgl_db_get_brand_list().

    +

    +

    +
    ++ + + + +

    brands :

    List of template brand strings to be freed. +
    +
    +
    +
    +

    lgl_db_register_template ()

    +
    lglDbRegStatus      lgl_db_register_template            (const lglTemplate *template);
    +

    +Register a template. This function adds a template to the template database. +The template will be stored in an individual XML file in the user template directory.

    +

    +

    +
    ++ + + + + + + + + + +

    template :

    Pointer to a template structure to add to database. +

    Returns :

    Status of registration attempt (lglDbRegStatus) +
    +
    +
    +
    +

    lgl_db_does_template_exist ()

    +
    gboolean            lgl_db_does_template_exist          (const gchar *brand,
    +                                                         const gchar *part);
    +

    +This function tests whether a template with the given brand and part name/number exists.

    +

    +

    +
    ++ + + + + + + + + + + + + + +

    brand :

    Brand name. +

    part :

    Part name/number. +

    Returns :

    TRUE if such a template exists in the database. +
    +
    +
    +
    +

    lgl_db_does_template_name_exist ()

    +
    gboolean            lgl_db_does_template_name_exist     (const gchar *name);
    +

    +This function test whether a template with the given name exists.

    +

    +

    +
    ++ + + + + + + + + + +

    name :

    name string +

    Returns :

    TRUE if such a template exists in the database. + +
    +
    +
    +
    +

    lgl_db_get_template_name_list_unique ()

    +
    GList *             lgl_db_get_template_name_list_unique
    +                                                        (const gchar *brand,
    +                                                         const gchar *paper_id,
    +                                                         const gchar *category_id);
    +

    +Get a list of valid names of unique templates in the template database. Results +can be filtered by page size and/or template category. A list of valid page sizes +can be obtained using lgl_db_get_paper_id_list(). A list of valid template categories +can be obtained using lgl_db_get_category_id_list(). +

    +

    +This function differs from lgl_db_get_template_name_list_all(), because it does not +return multiple names for the same template.

    +

    +

    +
    ++ + + + + + + + + + + + + + + + + + +

    brand :

    If non NULL, limit results to given brand +

    paper_id :

    If non NULL, limit results to given page size. +

    category_id :

    If non NULL, limit results to given template category. +

    Returns :

    a list of template names. +
    +
    +
    +
    +

    lgl_db_get_template_name_list_all ()

    +
    GList *             lgl_db_get_template_name_list_all   (const gchar *brand,
    +                                                         const gchar *paper_id,
    +                                                         const gchar *category_id);
    +

    +Get a list of all valid names and aliases of templates in the template database. +Results can be filtered by page size and/or template category. A list of valid page +sizes can be obtained using lgl_db_get_paper_id_list(). A list of valid template +categories can be obtained using lgl_db_get_category_id_list(). +

    +

    +This function differs from lgl_db_get_template_name_list_unique(), because it will +return multiple names for the same template.

    +

    +

    +
    ++ + + + + + + + + + + + + + + + + + +

    brand :

    If non NULL, limit results to given brand +

    paper_id :

    If non NULL, limit results to given page size. +

    category_id :

    If non NULL, limit results to given template category. +

    Returns :

    a list of template names and aliases. +
    +
    +
    +
    +

    lgl_db_free_template_name_list ()

    +
    void                lgl_db_free_template_name_list      (GList *names);
    +

    +Free up all storage associated with a list of template names obtained with +lgl_db_get_template_name_list_all() or lgl_db_get_template_name_list_unique().

    +

    +

    +
    ++ + + + +

    names :

    List of template name strings to be freed. +
    +
    +
    +
    +

    lgl_db_lookup_template_from_name ()

    +
    lglTemplate *       lgl_db_lookup_template_from_name    (const gchar *name);
    +

    +Lookup template in template database from name string.

    +

    +

    +
    ++ + + + + + + + + + +

    name :

    name string +

    Returns :

    pointer to a newly allocated lglTemplate structure. + +
    +
    +
    +
    +

    lgl_db_print_known_papers ()

    +
    void                lgl_db_print_known_papers           (void);
    +

    +For debugging purposes: print a list of all paper definitions known to +libglabels.

    +

    +

    +
    +
    +
    +

    lgl_db_print_known_categories ()

    +
    void                lgl_db_print_known_categories       (void);
    +

    +For debugging purposes: print a list of all category definitions known to +libglabels.

    +

    +

    +
    +
    +
    +

    lgl_db_print_known_templates ()

    +
    void                lgl_db_print_known_templates        (void);
    +

    +Print all known templates (for debugging purposes).

    +

    +

    +
    +
    +
    +

    lgl_db_print_aliases ()

    +
    void                lgl_db_print_aliases                (const lglTemplate *template);
    +

    +Print all aliases of a template (for debugging purposes).

    +

    +

    +
    ++ + + + +

    template :

    template +
    +
    +
    +
    + + + diff --git a/docs/libglabels/html/libglabels-enums.html b/docs/libglabels/html/libglabels-enums.html new file mode 100644 index 00000000..d2f3862c --- /dev/null +++ b/docs/libglabels/html/libglabels-enums.html @@ -0,0 +1,122 @@ + + + + +Enumerations + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    Enumerations

    +

    Enumerations — Common enumerations used by libglabels

    +
    +
    +

    Synopsis

    +
    +
    +#include <libglabels/enums.h>
    +
    +enum                lglUnitsType;
    +
    +
    +
    +

    Description

    +

    +This section defines enumerations used to interact with libglabels. +

    +
    +
    +

    Details

    +
    +

    enum lglUnitsType

    +
    typedef enum {
    +	LGL_UNITS_POINT, /* encoded as "pt" */
    +	LGL_UNITS_INCH,  /* encoded as "in" */
    +	LGL_UNITS_MM,    /* encoded as "mm" */
    +	LGL_UNITS_CM,    /* encoded as "cm" */
    +	LGL_UNITS_PICA,  /* encoded as "pc" */
    +
    +	LGL_UNITS_FIRST = LGL_UNITS_POINT,
    +	LGL_UNITS_LAST  = LGL_UNITS_PICA,
    +} lglUnitsType;
    +
    +

    +This enumeration defines a set of units of distance supported by the libglabels XML distance +attributes. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    LGL_UNITS_POINT

    Points. Encoded as "pt" in XML distance attributes. +

    LGL_UNITS_INCH

    Inches. Encoded as "in" in XML distance attributes. +

    LGL_UNITS_MM

    Millmeters. Encoded as "mm" in XML distance attributes. +

    LGL_UNITS_CM

    Centimeters. Encoded as "cm" in XML distance attributes. +

    LGL_UNITS_PICA

    Picas. Encoded as "pc" in XML distance attributes. +

    LGL_UNITS_FIRST

    First enumeration. Used for generic iteration through supported units.. +

    LGL_UNITS_LAST

    Last enumeration. Used for generic iteration through supported units. +
    +
    +
    +
    + + + diff --git a/docs/libglabels/html/libglabels-paper.html b/docs/libglabels/html/libglabels-paper.html new file mode 100644 index 00000000..54f9255a --- /dev/null +++ b/docs/libglabels/html/libglabels-paper.html @@ -0,0 +1,238 @@ + + + + +The lglPaper Structure + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    The lglPaper Structure

    +

    The lglPaper Structure — Paper size definitions

    +
    +
    +

    Synopsis

    +
    +
    +#include <libglabels/paper.h>
    +
    +                    lglPaper;
    +lglPaper *          lgl_paper_new                       (gchar *id,
    +                                                         gchar *name,
    +                                                         gdouble width,
    +                                                         gdouble height,
    +                                                         gchar *pwg_size);
    +lglPaper *          lgl_paper_dup                       (const lglPaper *orig);
    +void                lgl_paper_free                      (lglPaper *paper);
    +
    +
    +
    +

    Description

    +

    +This section describes a structure for representing a paper size definition +and related functions. +

    +
    +
    +

    Details

    +
    +

    lglPaper

    +
    typedef struct {
    +	gchar               *id;       /* Unique ID of paper definition */
    +	gchar               *name;     /* Localized name of paper */
    +	gdouble              width;    /* Width (in points) */
    +	gdouble              height;   /* Height (in points) */
    +	gchar               *pwg_size; /* PWG 5101.1-2002 size name */
    +} lglPaper;
    +
    +

    +This structure defines a paper (page) size. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + +

    gchar *id;

    Paper size ID. +

    gchar *name;

    Localized paper size name. +

    gdouble width;

    Width of paper in points. +

    gdouble height;

    Height of paper in points. +

    gchar *pwg_size;

    PWG 5101.1-2002 size name. +
    +
    +
    +
    +

    lgl_paper_new ()

    +
    lglPaper *          lgl_paper_new                       (gchar *id,
    +                                                         gchar *name,
    +                                                         gdouble width,
    +                                                         gdouble height,
    +                                                         gchar *pwg_size);
    +

    +Allocates and constructs a new lglPaper structure.

    +

    +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + +

    id :

    Id of paper definition. (E.g. US-Letter, A4, etc.) Should be + unique. +

    name :

    Localized name of paper. +

    width :

    Width of paper in points. +

    height :

    Height of paper in points. +

    pwg_size :

    PWG 5101.1-2002 size name. +

    Returns :

    a pointer to a newly allocated lglPaper structure. + +
    +
    +
    +
    +

    lgl_paper_dup ()

    +
    lglPaper *          lgl_paper_dup                       (const lglPaper *orig);
    +

    +Duplicates an existing lglPaper structure.

    +

    +

    +
    ++ + + + + + + + + + +

    orig :

    lglPaper structure to be duplicated. +

    Returns :

    a pointer to a newly allocated lglPaper structure. + +
    +
    +
    +
    +

    lgl_paper_free ()

    +
    void                lgl_paper_free                      (lglPaper *paper);
    +

    +Free all memory associated with an existing lglPaper structure.

    +

    +

    +
    ++ + + + +

    paper :

    pointer to lglPaper structure to be freed. +
    +
    +
    +
    + + + diff --git a/docs/libglabels/html/libglabels-str.html b/docs/libglabels/html/libglabels-str.html new file mode 100644 index 00000000..12af9dcb --- /dev/null +++ b/docs/libglabels/html/libglabels-str.html @@ -0,0 +1,112 @@ + + + + +String Utility Functions + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    String Utility Functions

    +

    String Utility Functions — String utility functions provided by libglabels

    +
    +
    +

    Synopsis

    +
    +
    +#include <libglabels/str.h>
    +
    +gint                lgl_str_utf8_casecmp                (const gchar *s1,
    +                                                         const gchar *s2);
    +
    +
    +
    +

    Description

    +

    +This section defines string utility functions used by libglabels and of +possible use to a user of libglabels. +

    +
    +
    +

    Details

    +
    +

    lgl_str_utf8_casecmp ()

    +
    gint                lgl_str_utf8_casecmp                (const gchar *s1,
    +                                                         const gchar *s2);
    +

    +Compare two UTF-8 strings, ignoring the case of characters. +

    +

    +This function should be used only on strings that are known to be encoded +in UTF-8 or a compatible UTF-8 subset.

    +

    +

    +
    ++ + + + + + + + + + + + + + +

    s1 :

    string to compare with s2. +

    s2 :

    string to compare with s1. +

    Returns :

    0 if the strings match, a negative value if s1 < s2, + or a positive value if s1 > s2. + +
    +
    +
    +
    + + + diff --git a/docs/libglabels/html/libglabels-template.html b/docs/libglabels/html/libglabels-template.html new file mode 100644 index 00000000..3f019331 --- /dev/null +++ b/docs/libglabels/html/libglabels-template.html @@ -0,0 +1,2229 @@ + + + + +The lglTemplate Structure + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    The lglTemplate Structure

    +

    The lglTemplate Structure — How templates are represented in memory

    +
    +
    +

    Synopsis

    +
    +
    +#include <libglabels/template.h>
    +
    +                    lglTemplate;
    +
    +                    lglTemplateAlias;
    +
    +enum                lglTemplateFrameShape;
    +union               lglTemplateFrame;
    +                    lglTemplateFrameAll;
    +                    lglTemplateFrameRect;
    +                    lglTemplateFrameRound;
    +                    lglTemplateFrameCD;
    +
    +                    lglTemplateLayout;
    +
    +enum                lglTemplateMarkupType;
    +union               lglTemplateMarkup;
    +                    lglTemplateMarkupMargin;
    +                    lglTemplateMarkupLine;
    +                    lglTemplateMarkupCircle;
    +                    lglTemplateMarkupRect;
    +
    +                    lglTemplateOrigin;
    +
    +lglTemplate *       lgl_template_new                    (const gchar *brand,
    +                                                         const gchar *part,
    +                                                         const gchar *description,
    +                                                         const gchar *paper_id,
    +                                                         gdouble page_width,
    +                                                         gdouble page_height);
    +lglTemplate *       lgl_template_dup                    (const lglTemplate *orig_template);
    +void                lgl_template_free                   (lglTemplate *template);
    +void                lgl_template_add_category           (lglTemplate *template,
    +                                                         const gchar *category_id);
    +void                lgl_template_add_frame              (lglTemplate *template,
    +                                                         lglTemplateFrame *frame);
    +void                lgl_template_add_alias              (lglTemplate *template,
    +                                                         lglTemplateAlias *alias);
    +
    +gchar *             lgl_template_get_name               (const lglTemplate *template);
    +gboolean            lgl_template_do_templates_match     (const lglTemplate *template1,
    +                                                         const lglTemplate *template2);
    +gboolean            lgl_template_does_brand_match       (const lglTemplate *template,
    +                                                         const gchar *brand);
    +gboolean            lgl_template_does_page_size_match   (const lglTemplate *template,
    +                                                         const gchar *paper_id);
    +gboolean            lgl_template_does_category_match    (const lglTemplate *template,
    +                                                         const gchar *category_id);
    +
    +lglTemplateAlias *  lgl_template_alias_new              (const gchar *brand,
    +                                                         const gchar *part);
    +lglTemplateAlias *  lgl_template_alias_dup              (const lglTemplateAlias *orig_alias);
    +void                lgl_template_alias_free             (lglTemplateAlias *alias);
    +
    +lglTemplateFrame *  lgl_template_frame_rect_new         (const gchar *id,
    +                                                         gdouble w,
    +                                                         gdouble h,
    +                                                         gdouble r,
    +                                                         gdouble x_waste,
    +                                                         gdouble y_waste);
    +lglTemplateFrame *  lgl_template_frame_round_new        (const gchar *id,
    +                                                         gdouble r,
    +                                                         gdouble waste);
    +lglTemplateFrame *  lgl_template_frame_cd_new           (const gchar *id,
    +                                                         gdouble r1,
    +                                                         gdouble r2,
    +                                                         gdouble w,
    +                                                         gdouble h,
    +                                                         gdouble waste);
    +lglTemplateFrame *  lgl_template_frame_dup              (const lglTemplateFrame *orig_frame);
    +void                lgl_template_frame_free             (lglTemplateFrame *frame);
    +void                lgl_template_frame_add_layout       (lglTemplateFrame *frame,
    +                                                         lglTemplateLayout *layout);
    +void                lgl_template_frame_add_markup       (lglTemplateFrame *frame,
    +                                                         lglTemplateMarkup *markup);
    +
    +void                lgl_template_frame_get_size         (const lglTemplateFrame *frame,
    +                                                         gdouble *w,
    +                                                         gdouble *h);
    +gint                lgl_template_frame_get_n_labels     (const lglTemplateFrame *frame);
    +lglTemplateOrigin * lgl_template_frame_get_origins      (const lglTemplateFrame *frame);
    +
    +lglTemplateLayout * lgl_template_layout_new             (gint nx,
    +                                                         gint ny,
    +                                                         gdouble x0,
    +                                                         gdouble y0,
    +                                                         gdouble dx,
    +                                                         gdouble dy);
    +lglTemplateLayout * lgl_template_layout_dup             (const lglTemplateLayout *orig_layout);
    +void                lgl_template_layout_free            (lglTemplateLayout *layout);
    +
    +lglTemplateMarkup * lgl_template_markup_margin_new      (gdouble size);
    +lglTemplateMarkup * lgl_template_markup_line_new        (gdouble x1,
    +                                                         gdouble y1,
    +                                                         gdouble x2,
    +                                                         gdouble y2);
    +lglTemplateMarkup * lgl_template_markup_circle_new      (gdouble x0,
    +                                                         gdouble y0,
    +                                                         gdouble r);
    +lglTemplateMarkup * lgl_template_markup_rect_new        (gdouble x1,
    +                                                         gdouble y1,
    +                                                         gdouble w,
    +                                                         gdouble h,
    +                                                         gdouble r);
    +lglTemplateMarkup * lgl_template_markup_dup             (const lglTemplateMarkup *orig_markup);
    +void                lgl_template_markup_free            (lglTemplateMarkup *markup);
    +
    +
    +
    +

    Description

    +

    +This section describes a set of structures that represent a template in memory. It also +describes functions to help create and interpret these structures. +

    +
    +
    +

    Details

    +
    +

    lglTemplate

    +
    typedef struct {
    +	gchar               *brand;
    +        gchar               *part;
    +	gchar               *description;
    +	gchar               *paper_id;
    +	gdouble              page_width;
    +	gdouble              page_height;
    +
    +	/* List of (lglTemplateAlias *) aliase structures. */
    +	GList               *aliases;
    +
    +        /* List of (gchar *) category ids. */
    +	GList               *category_ids;
    +
    +	/* List of (lglTemplateFrame *) label frame structures.
    +	 * Currently glabels only supports a single label frame per
    +	 * template. */
    +	GList               *frames;
    +} lglTemplate;
    +
    +

    +This is the main structure of a libglabels template. A template represents a single sheet +of peel-off labels or cards. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    gchar *brand;

    Brand name of label or card. E.g. "Avery." +

    gchar *part;

    Part name or number of label or card. E.g. "8160." +

    gchar *description;

    A description of the template. E.g. "Mailing labels." +

    gchar *paper_id;

    A paper ID. E.g. "A4" or "US-Letter." +

    gdouble page_width;

    Page width in points. Used only if paper_id is "Other." +

    gdouble page_height;

    Page height in points. Used only if paper_id is "Other." +

    GList *aliases;

    A list of alternate names for this template. Often a single template can be used for +multiple products. +

    GList *category_ids;

    A list of category IDs that this template belongs to. +

    GList *frames;

    A list of (lglTemplateFrame *) structures. GLabels currently only supports one frame +per template -- future versions may support multiple frames per template. +
    +
    +
    +
    +

    lglTemplateAlias

    +
    typedef struct {
    +	gchar               *brand;
    +        gchar               *part;
    +} lglTemplateAlias;
    +
    +

    +This structure defines an alias for the parent template structure. An alias is used for +different products that can use the same template. +

    +
    ++ + + + + + + + + + +

    gchar *brand;

    Brand name of label or card. E.g. "Avery." +

    gchar *part;

    Part name or number of label or card. E.g. "8160." +
    +
    +
    +
    +

    enum lglTemplateFrameShape

    +
    typedef enum {
    +	LGL_TEMPLATE_FRAME_SHAPE_RECT,
    +	LGL_TEMPLATE_FRAME_SHAPE_ROUND,
    +	LGL_TEMPLATE_FRAME_SHAPE_CD,
    +} lglTemplateFrameShape;
    +
    +

    +This enumeration defines frame types that are supported by libglabels +

    +
    ++ + + + + + + + + + + + + + +

    LGL_TEMPLATE_FRAME_SHAPE_RECT

    A rectangular frame. (May have rounded corners.) +

    LGL_TEMPLATE_FRAME_SHAPE_ROUND

    A round frame. +

    LGL_TEMPLATE_FRAME_SHAPE_CD

    A CD or DVD frame. (Includes credit-card style CDs.) +
    +
    +
    +
    +

    union lglTemplateFrame

    +
    union lglTemplateFrame{
    +
    +	lglTemplateFrameShape shape;
    +
    +	lglTemplateFrameAll   all;
    +	lglTemplateFrameRect  rect;
    +	lglTemplateFrameRound round;
    +	lglTemplateFrameCD    cd;
    +};
    +
    +

    +A union of all possible frame structures. The type of structure is indicated by the shape +member, which overlays the first field of all other member structures. +

    +
    +
    +
    +

    lglTemplateFrameAll

    +
    typedef struct {
    +        /* Begin Common Fields */
    +	lglTemplateFrameShape shape;
    +
    +	gchar                *id;       /* Id, currently always "0" */
    +	GList                *layouts;  /* List of lglTemplateLayouts */
    +	GList                *markups;  /* List of lglTemplateMarkups */
    +        /* End Common Fields */
    +} lglTemplateFrameAll;
    +
    +

    +This structure is composed of a set of fields common to all frame structures. All frame types +can be cast to this structure. +

    +
    ++ + + + + + + + + + + + + + + + + + +

    lglTemplateFrameShape shape;

    The shape of the frame. +

    gchar *id;

    Reserved for future use. Should always be zero. +

    GList *layouts;

    A list of (lglTemplateLayout *) structures. Typically a frame will have a single +layout, representing a simple grid of labels or cards. If the layout of labels or cards is +more complex, multiple (lglTemplateLayout *) structures may be needed. +

    GList *markups;

    A list of (lglTemplateMarkup *) structures, which represent non-printing markup lines. +
    +
    +
    +
    +

    lglTemplateFrameRect

    +
    typedef struct {
    +        /* Begin Common Fields */
    +	lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_RECT. */
    +
    +	gchar                *id;       /* Id, currently always "0" */
    +	GList                *layouts;  /* List of lglTemplateLayouts */
    +	GList                *markups;  /* List of lglTemplateMarkups */
    +        /* End Common Fields */
    +
    +        gdouble               w;        /* Width */
    +        gdouble               h;        /* Height */
    +        gdouble               r;        /* Corner radius */
    +        gdouble               x_waste;  /* Amount of horiz overprint allowed. */
    +        gdouble               y_waste;  /* Amount of vert overprint allowed. */
    +} lglTemplateFrameRect;
    +
    +

    +This structure defines the frame for a rectangular label or card. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    lglTemplateFrameShape shape;

    Common field. Always LGL_TEMPLATE_FRAME_SHAPE_RECT for lglTemplateFrameRect. +

    gchar *id;

    Common field. See lglTemplateFrameAll. +

    GList *layouts;

    Common field. See lglTemplateFrameAll. +

    GList *markups;

    Common field. See lglTemplateFrameAll. +

    gdouble w;

    Width of label or card in points. +

    gdouble h;

    Height of label or card in points. +

    gdouble r;

    Radius of corners in points. +

    gdouble x_waste;

    Amount of horizontal over-print to allow in points. +

    gdouble y_waste;

    Amount of vertical over-print to allow in points. +
    +
    +
    +
    +

    lglTemplateFrameRound

    +
    typedef struct {
    +        /* Begin Common Fields */
    +	lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_ROUND. */
    +
    +	gchar                *id;       /* Id, currently always "0" */
    +	GList                *layouts;  /* List of lglTemplateLayouts */
    +	GList                *markups;  /* List of lglTemplateMarkups */
    +        /* End Common Fields */
    +
    +        gdouble               r;      /* Radius */
    +        gdouble               waste;  /* Amount of overprint allowed. */
    +} lglTemplateFrameRound;
    +
    +

    +This structure defines the frame for a round label or card. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + +

    lglTemplateFrameShape shape;

    Common field. Always LGL_TEMPLATE_FRAME_SHAPE_ROUND for lglTemplateFrameRound. +

    gchar *id;

    Common field. See lglTemplateFrameAll. +

    GList *layouts;

    Common field. See lglTemplateFrameAll. +

    GList *markups;

    Common field. See lglTemplateFrameAll. +

    gdouble r;

    Radius of label or card in points. +

    gdouble waste;

    Amount of over-print to allow in points. +
    +
    +
    +
    +

    lglTemplateFrameCD

    +
    typedef struct {
    +        /* Begin Common Fields */
    +	lglTemplateFrameShape shape;    /* Always LGL_TEMPLATE_FRAME_SHAPE_CD. */
    +
    +	gchar                *id;       /* Id, currently always "0" */
    +	GList                *layouts;  /* List of lglTemplateLayouts */
    +	GList                *markups;  /* List of lglTemplateMarkups */
    +        /* End Common Fields */
    +
    +        gdouble               r1;     /* Outer radius */
    +        gdouble               r2;     /* Inner radius (hole) */
    +        gdouble               w;      /* Clip width, business card CDs */
    +        gdouble               h;      /* Clip height, business card CDs */
    +        gdouble               waste;  /* Amount of overprint allowed. */
    +} lglTemplateFrameCD;
    +
    +

    +This structure defines the frame for a CD or DVD label. This structure also supports +credit-card CD labels. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    lglTemplateFrameShape shape;

    Common field. Always LGL_TEMPLATE_FRAME_SHAPE_CD for lglTemplateFrameCD. +

    gchar *id;

    Common field. See lglTemplateFrameAll. +

    GList *layouts;

    Common field. See lglTemplateFrameAll. +

    GList *markups;

    Common field. See lglTemplateFrameAll. +

    gdouble r1;

    Outer radius of label in points. +

    gdouble r2;

    Radius of center hole in points. +

    gdouble w;

    Clip width in points. Used for credit-card CD labels. This field is ignored if zero. +

    gdouble h;

    Clip height in points. Used for credit-card CD labels. This field is ignored if zero. +

    gdouble waste;

    Amount of over-print to allow in points. +
    +
    +
    +
    +

    lglTemplateLayout

    +
    typedef struct {
    +	gint                  nx;  /* Number of labels across */
    +	gint                  ny;  /* Number of labels up and down */
    +
    +	gdouble               x0;  /* Left of grid from left edge of paper */
    +	gdouble               y0;  /* Top of grid from top edge of paper */
    +
    +	gdouble               dx;  /* Horizontal pitch of grid */
    +	gdouble               dy;  /* Vertical pitch of grid */
    +} lglTemplateLayout;
    +
    +

    +This structure defines a simple grid layout of labels or cards. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + +

    gint nx;

    Number of labels or cards across in the grid (horizontal). +

    gint ny;

    Number of labels or cards down in the grid (vertical). +

    gdouble x0;

    Distance (in points) from the left edge of page to the left edge of the left column of +cards or labels in the layout. +

    gdouble y0;

    Distance (in points) from the top edge of page to the top edge of the top row of +cards or labels in the layout. +

    gdouble dx;

    Horizontal pitch of grid in points. This is the distance from left edge to left edge +(not the gap between labels or cards). +

    gdouble dy;

    Vertical pitch of grid in points. This is the distance from top edge to top edge +(not the gap between labels or cards). +
    +
    +
    +
    +

    enum lglTemplateMarkupType

    +
    typedef enum {
    +	LGL_TEMPLATE_MARKUP_MARGIN,
    +	LGL_TEMPLATE_MARKUP_LINE,
    +	LGL_TEMPLATE_MARKUP_CIRCLE,
    +	LGL_TEMPLATE_MARKUP_RECT,
    +} lglTemplateMarkupType;
    +
    +

    +This enumeration defines markup types that are supported by libglabels +

    +
    ++ + + + + + + + + + + + + + + + + + +

    LGL_TEMPLATE_MARKUP_MARGIN

    A margin line around perimeter of label or card. +

    LGL_TEMPLATE_MARKUP_LINE

    A simple line segment. +

    LGL_TEMPLATE_MARKUP_CIRCLE

    A circle. +

    LGL_TEMPLATE_MARKUP_RECT

    A rectangle. Possibly with rounded corners. +
    +
    +
    +
    +

    union lglTemplateMarkup

    +
    union lglTemplateMarkup {
    +
    +	lglTemplateMarkupType   type;
    +
    +	lglTemplateMarkupMargin margin;
    +	lglTemplateMarkupLine   line;
    +	lglTemplateMarkupCircle circle;
    +	lglTemplateMarkupRect   rect;
    +};
    +
    +

    +A union of all possible markup structures. The type of structure is indicated by the type +member, which overlays the first field of all other member structures. +

    +
    +
    +
    +

    lglTemplateMarkupMargin

    +
    typedef struct {
    +	lglTemplateMarkupType  type;  /* Always LGL_TEMPLATE_MARKUP_MARGIN */
    +
    +        gdouble                size;  /* Margin size */
    +} lglTemplateMarkupMargin;
    +
    +

    +This structure defines a simple margin markup around the perimeter of a label or card. +

    +
    ++ + + + + + + + + + +

    lglTemplateMarkupType type;

    Common field. Always LGL_TEMPLATE_MARKUP_MARGIN for lglTemplateMarkupMargin. +

    gdouble size;

    Distance of margin from edge of label or card. +
    +
    +
    +
    +

    lglTemplateMarkupLine

    +
    typedef struct {
    +	lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_LINE */
    +
    +        gdouble                x1, y1; /* 1st endpoint */
    +        gdouble                x2, y2; /* 2nd endpoint */
    +} lglTemplateMarkupLine;
    +
    +

    +This structure defines a simple line segment markup. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + +

    lglTemplateMarkupType type;

    Common field. Always LGL_TEMPLATE_MARKUP_LINE for lglTemplateMarkupLine. +

    gdouble x1;

    Distance (in points) of first endpoint from left edge of label or card. +

    gdouble y1;

    Distance (in points) of first endpoint from top edge of label or card. +

    gdouble x2;

    Distance (in points) of second endpoint from left edge of label or card. +

    gdouble y2;

    Distance (in points) of second endpoint from top edge of label or card. +
    +
    +
    +
    +

    lglTemplateMarkupCircle

    +
    typedef struct {
    +	lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_CIRCLE */
    +
    +        gdouble                x0, y0; /* Center of circle */
    +        gdouble                r;      /* Radius of circle */
    +} lglTemplateMarkupCircle;
    +
    +

    +This structure defines a simple circle markup. +

    +
    ++ + + + + + + + + + + + + + + + + + +

    lglTemplateMarkupType type;

    Common field. Always LGL_TEMPLATE_MARKUP_CIRCLE for lglTemplateMarkupCircle. +

    gdouble x0;

    Distance (in points) of vertex from left edge of label or card. +

    gdouble y0;

    Distance (in points) of vertex from top edge of label or card. +

    gdouble r;

    Radius of circle in points. +
    +
    +
    +
    +

    lglTemplateMarkupRect

    +
    typedef struct {
    +	lglTemplateMarkupType  type;   /* Always LGL_TEMPLATE_MARKUP_RECT */
    +
    +        gdouble                x1, y1; /* Upper left corner */
    +        gdouble                w, h;   /* Width and height. */
    +        gdouble                r;      /* Radius of corners. */
    +} lglTemplateMarkupRect;
    +
    +

    +This structure defines a simple rectangle markup. The rectangle can have rounded corners. +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + +

    lglTemplateMarkupType type;

    Common field. Always LGL_TEMPLATE_MARKUP_RECT for lglTemplateMarkupRect. +

    gdouble x1;

    Distance (in points) of left edge of markup from left edge of label or card. +

    gdouble y1;

    Distance (in points) of top edge of markup from top edge of label or card. +

    gdouble w;

    Width of rectangle in points. +

    gdouble h;

    Height of rectangle in points. +

    gdouble r;

    Radius of corners in points. Should be zero for sharp corners. +
    +
    +
    +
    +

    lglTemplateOrigin

    +
    typedef struct {
    +	gdouble               x, y; /* Label origin relative to upper 
    +				     * upper left hand corner of paper */
    +} lglTemplateOrigin;
    +
    +

    +This structure represents the cartesian coordinates of the origin of a label or card on the page. +The orign is the upper left corner of the extent of the label or card. These coordinates are +relative to the upper left corner of the page. +

    +
    ++ + + + + + + + + + +

    gdouble x;

    Distance in points from top edge of page. +

    gdouble y;

    Distance in points from left edge of page. +
    +
    +
    +
    +

    lgl_template_new ()

    +
    lglTemplate *       lgl_template_new                    (const gchar *brand,
    +                                                         const gchar *part,
    +                                                         const gchar *description,
    +                                                         const gchar *paper_id,
    +                                                         gdouble page_width,
    +                                                         gdouble page_height);
    +

    +Create a new template structure, with the given top-level attributes. The +created template will have no initial aliases, categories, or frames +associated with it. See lgl_template_add_alias(), lgl_template_add_category(), +and lgl_template_add_frame() to add these.

    +

    +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    brand :

    Template brand +

    part :

    Template part name/number +

    description :

    Template descriptions +

    paper_id :

    Page size id +

    page_width :

    Page width in points, set to zero unless paper_id="Other" +

    page_height :

    Page height in points, set to zero unless paper_id="Other" +

    Returns :

    pointer to a newly allocated lglTemplate structure. + +
    +
    +
    +
    +

    lgl_template_dup ()

    +
    lglTemplate *       lgl_template_dup                    (const lglTemplate *orig_template);
    +

    +This function duplicates a template structure.

    +

    +

    +
    ++ + + + + + + + + + +

    orig_template :

    Template to duplicate. +

    Returns :

    a newly allocated lglTemplate structure. + +
    +
    +
    +
    +

    lgl_template_free ()

    +
    void                lgl_template_free                   (lglTemplate *template);
    +

    +This function frees all memory associated with given template structure.

    +

    +

    +
    ++ + + + +

    template :

    Template to free. +
    +
    +
    +
    +

    lgl_template_add_category ()

    +
    void                lgl_template_add_category           (lglTemplate *template,
    +                                                         const gchar *category_id);
    +

    +This function adds the given category ID to a templates category list.

    +

    +

    +
    ++ + + + + + + + + + +

    template :

    Pointer to template structure +

    category_id :

    Category ID string +
    +
    +
    +
    +

    lgl_template_add_frame ()

    +
    void                lgl_template_add_frame              (lglTemplate *template,
    +                                                         lglTemplateFrame *frame);
    +

    +This function adds the given frame structure to the template. Once added, +the frame structure belongs to the given template; do not attempt to free +it. +

    +

    +Note: Currently glabels only supports a single frame per template.

    +

    +

    +
    ++ + + + + + + + + + +

    template :

    Pointer to template structure +

    frame :

    Pointer to frame structure +
    +
    +
    +
    +

    lgl_template_add_alias ()

    +
    void                lgl_template_add_alias              (lglTemplate *template,
    +                                                         lglTemplateAlias *alias);
    +

    +This function adds the given alias to a templates list of aliases.

    +

    +

    +
    ++ + + + + + + + + + +

    template :

    Pointer to template structure +

    alias :

    Alias string +
    +
    +
    +
    +

    lgl_template_get_name ()

    +
    gchar *             lgl_template_get_name               (const lglTemplate *template);
    +

    +This function returns the name of the given template. The name is the concetenation +of the brand and part name/number.

    +

    +

    +
    ++ + + + + + + + + + +

    template :

    Pointer to template structure to test +

    Returns :

    A pointer to a newly allocated name string. Should be freed with g_free(). + +
    +
    +
    +
    +

    lgl_template_do_templates_match ()

    +
    gboolean            lgl_template_do_templates_match     (const lglTemplate *template1,
    +                                                         const lglTemplate *template2);
    +

    +This function tests if the given templates match. This is a simple test that only tests +the brand and part name/number. It does not test if they are actually identical.

    +

    +

    +
    ++ + + + + + + + + + + + + + +

    template1 :

    Pointer to 1st template structure to test +

    template2 :

    Pointer to 2nd template structure to test +

    Returns :

    TRUE if the two template matche. + +
    +
    +
    +
    +

    lgl_template_does_brand_match ()

    +
    gboolean            lgl_template_does_brand_match       (const lglTemplate *template,
    +                                                         const gchar *brand);
    +

    +This function tests if the brand of the template matches the given brand.

    +

    +

    +
    ++ + + + + + + + + + + + + + +

    template :

    Pointer to template structure to test +

    brand :

    Brand string +

    Returns :

    TRUE if the template matches the given brand. + +
    +
    +
    +
    +

    lgl_template_does_page_size_match ()

    +
    gboolean            lgl_template_does_page_size_match   (const lglTemplate *template,
    +                                                         const gchar *paper_id);
    +

    +This function tests if the page size of the template matches the given ID.

    +

    +

    +
    ++ + + + + + + + + + + + + + +

    template :

    Pointer to template structure to test +

    paper_id :

    Page size ID string +

    Returns :

    TRUE if the template matches the given page size ID. + +
    +
    +
    +
    +

    lgl_template_does_category_match ()

    +
    gboolean            lgl_template_does_category_match    (const lglTemplate *template,
    +                                                         const gchar *category_id);
    +

    +This function tests if the given template belongs to the given category ID.

    +

    +

    +
    ++ + + + + + + + + + + + + + +

    template :

    Pointer to template structure to test +

    category_id :

    Category ID string +

    Returns :

    TRUE if the template matches the given category ID. + +
    +
    +
    +
    +

    lgl_template_alias_new ()

    +
    lglTemplateAlias *  lgl_template_alias_new              (const gchar *brand,
    +                                                         const gchar *part);
    +

    +Create a new template alias structure, with the given brand and part number.

    +

    +

    +
    ++ + + + + + + + + + + + + + +

    brand :

    Alias brand +

    part :

    Alias part name/number +

    Returns :

    pointer to a newly allocated lglTemplateAlias structure. + +
    +
    +
    +
    +

    lgl_template_alias_dup ()

    +
    lglTemplateAlias *  lgl_template_alias_dup              (const lglTemplateAlias *orig_alias);
    +

    +This function duplicates a template alias structure.

    +

    +

    +
    ++ + + + + + + + + + +

    orig_alias :

    Alias to duplicate. +

    Returns :

    a newly allocated lglTemplateAlias structure. + +
    +
    +
    +
    +

    lgl_template_alias_free ()

    +
    void                lgl_template_alias_free             (lglTemplateAlias *alias);
    +

    +This function frees all memory associated with given template alias structure.

    +

    +

    +
    ++ + + + +

    alias :

    Alias to free. +
    +
    +
    +
    +

    lgl_template_frame_rect_new ()

    +
    lglTemplateFrame *  lgl_template_frame_rect_new         (const gchar *id,
    +                                                         gdouble w,
    +                                                         gdouble h,
    +                                                         gdouble r,
    +                                                         gdouble x_waste,
    +                                                         gdouble y_waste);
    +

    +This function creates a new template frame for a rectangular label or card.

    +

    +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    id :

    ID of frame. (This should currently always be "0"). +

    w :

    width of frame in points. +

    h :

    height of frame in points. +

    r :

    radius of rounded corners in points. (Should be 0 for square corners.) +

    x_waste :

    Amount of overprint to allow in the horizontal direction. +

    y_waste :

    Amount of overprint to allow in the vertical direction. +

    Returns :

    Pointer to newly allocated lglTemplateFrame structure. + +
    +
    +
    +
    +

    lgl_template_frame_round_new ()

    +
    lglTemplateFrame *  lgl_template_frame_round_new        (const gchar *id,
    +                                                         gdouble r,
    +                                                         gdouble waste);
    +

    +This function creates a new template frame for a round label.

    +

    +

    +
    ++ + + + + + + + + + + + + + + + + + +

    id :

    ID of frame. (This should currently always be "0"). +

    r :

    radius of label in points. +

    waste :

    Amount of overprint to allow. +

    Returns :

    Pointer to newly allocated lglTemplateFrame structure. + +
    +
    +
    +
    +

    lgl_template_frame_cd_new ()

    +
    lglTemplateFrame *  lgl_template_frame_cd_new           (const gchar *id,
    +                                                         gdouble r1,
    +                                                         gdouble r2,
    +                                                         gdouble w,
    +                                                         gdouble h,
    +                                                         gdouble waste);
    +

    +This function creates a new template frame for a CD/DVD label.

    +

    +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    id :

    ID of frame. (This should currently always be "0"). +

    r1 :

    outer radius of label in points. +

    r2 :

    radius of center hole in points. +

    w :

    clip width of frame in points for business card CDs. Should be 0 for no clipping. +

    h :

    clip height of frame in points for business card CDs. Should be 0 for no clipping. +

    waste :

    Amount of overprint to allow. +

    Returns :

    Pointer to newly allocated lglTemplateFrame structure. + +
    +
    +
    +
    +

    lgl_template_frame_dup ()

    +
    lglTemplateFrame *  lgl_template_frame_dup              (const lglTemplateFrame *orig_frame);
    +

    +This function duplicates a template frame structure.

    +

    +

    +
    ++ + + + + + + + + + +

    orig_frame :

    Frame to duplicate. +

    Returns :

    a newly allocated lglTemplateFrame structure. + +
    +
    +
    +
    +

    lgl_template_frame_free ()

    +
    void                lgl_template_frame_free             (lglTemplateFrame *frame);
    +

    +This function frees all memory associated with given template frame structure.

    +

    +

    +
    ++ + + + +

    frame :

    Frame to free. +
    +
    +
    +
    +

    lgl_template_frame_add_layout ()

    +
    void                lgl_template_frame_add_layout       (lglTemplateFrame *frame,
    +                                                         lglTemplateLayout *layout);
    +

    +This function adds a layout structure to the given template frame.

    +

    +

    +
    ++ + + + + + + + + + +

    frame :

    Pointer to template frame to add layout to. +

    layout :

    Pointer to layout structure to add to frame. +
    +
    +
    +
    +

    lgl_template_frame_add_markup ()

    +
    void                lgl_template_frame_add_markup       (lglTemplateFrame *frame,
    +                                                         lglTemplateMarkup *markup);
    +

    +This function adds a markup structure to the given template frame.

    +

    +

    +
    ++ + + + + + + + + + +

    frame :

    Pointer to template frame to add markup to. +

    markup :

    Pointer to markup structure to add to frame. +
    +
    +
    +
    +

    lgl_template_frame_get_size ()

    +
    void                lgl_template_frame_get_size         (const lglTemplateFrame *frame,
    +                                                         gdouble *w,
    +                                                         gdouble *h);
    +

    +Get size (width and height) of given lglTemplateFrame in points.

    +

    +

    +
    ++ + + + + + + + + + + + + + +

    frame :

    lglTemplateFrame structure to query +

    w :

    pointer to location to receive width of frame +

    h :

    pointer to location to receive height of frame +
    +
    +
    +
    +

    lgl_template_frame_get_n_labels ()

    +
    gint                lgl_template_frame_get_n_labels     (const lglTemplateFrame *frame);
    +

    +Get total number of labels per sheet corresponding to the given frame.

    +

    +

    +
    ++ + + + + + + + + + +

    frame :

    lglTemplateFrame structure to query +

    Returns :

    number of labels per sheet. + +
    +
    +
    +
    +

    lgl_template_frame_get_origins ()

    +
    lglTemplateOrigin * lgl_template_frame_get_origins      (const lglTemplateFrame *frame);
    +

    +Get an array of label origins for the given frame. These origins represent the +upper left hand corner of each label on a page corresponding to the given frame. +The origins will be ordered geometrically left to right and then top to bottom. +The array should be freed using g_free().

    +

    +

    +
    ++ + + + + + + + + + +

    frame :

    lglTemplateFrame structure to query +

    Returns :

    A newly allocated array of lglTemplateOrigin structures. + +
    +
    +
    +
    +

    lgl_template_layout_new ()

    +
    lglTemplateLayout * lgl_template_layout_new             (gint nx,
    +                                                         gint ny,
    +                                                         gdouble x0,
    +                                                         gdouble y0,
    +                                                         gdouble dx,
    +                                                         gdouble dy);
    +

    +This function creates a new layout structure with the given parameters.

    +

    +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    nx :

    Number of labels across. +

    ny :

    Number of labels down. +

    x0 :

    X coordinate of the top-left corner of the top-left label in the layout in points. +

    y0 :

    Y coordinate of the top-left corner of the top-left label in the layout in points. +

    dx :

    Horizontal pitch in points. This is the distance from left-edge to left-edge. +

    dy :

    Vertical pitch in points. This is the distance from top-edge to top-edge. +

    Returns :

    a newly allocated lglTemplateLayout structure. + +
    +
    +
    +
    +

    lgl_template_layout_dup ()

    +
    lglTemplateLayout * lgl_template_layout_dup             (const lglTemplateLayout *orig_layout);
    +

    +This function duplicates a template layout structure.

    +

    +

    +
    ++ + + + + + + + + + +

    orig_layout :

    Layout to duplicate. +

    Returns :

    a newly allocated lglTemplateLayout structure. + +
    +
    +
    +
    +

    lgl_template_layout_free ()

    +
    void                lgl_template_layout_free            (lglTemplateLayout *layout);
    +

    +This function frees all memory associated with given template layout structure.

    +

    +

    +
    ++ + + + +

    layout :

    Layout to free. +
    +
    +
    +
    +

    lgl_template_markup_margin_new ()

    +
    lglTemplateMarkup * lgl_template_markup_margin_new      (gdouble size);
    +

    +This function creates a new margin markup structure.

    +

    +

    +
    ++ + + + + + + + + + +

    size :

    margin size in points. +

    Returns :

    a newly allocated lglTemplateMarkup structure. + +
    +
    +
    +
    +

    lgl_template_markup_line_new ()

    +
    lglTemplateMarkup * lgl_template_markup_line_new        (gdouble x1,
    +                                                         gdouble y1,
    +                                                         gdouble x2,
    +                                                         gdouble y2);
    +

    +This function creates a new line markup structure.

    +

    +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + +

    x1 :

    x coordinate of first endpoint. +

    y1 :

    y coordinate of first endpoint. +

    x2 :

    x coordinate of second endpoint. +

    y2 :

    y coordinate of second endpoint. +

    Returns :

    a newly allocated lglTemplateMarkup structure. + +
    +
    +
    +
    +

    lgl_template_markup_circle_new ()

    +
    lglTemplateMarkup * lgl_template_markup_circle_new      (gdouble x0,
    +                                                         gdouble y0,
    +                                                         gdouble r);
    +

    +This function creates a new circle markup structure.

    +

    +

    +
    ++ + + + + + + + + + + + + + + + + + +

    x0 :

    x coordinate of center of circle. +

    y0 :

    y coordinate of center of circle. +

    r :

    radius of circle. +

    Returns :

    a newly allocated lglTemplateMarkup structure. + +
    +
    +
    +
    +

    lgl_template_markup_rect_new ()

    +
    lglTemplateMarkup * lgl_template_markup_rect_new        (gdouble x1,
    +                                                         gdouble y1,
    +                                                         gdouble w,
    +                                                         gdouble h,
    +                                                         gdouble r);
    +

    +This function creates a new rectangle markup structure.

    +

    +

    +
    ++ + + + + + + + + + + + + + + + + + + + + + + + + + +

    x1 :

    x coordinate of top-left corner of rectangle. +

    y1 :

    y coordinate of top-left corner of rectangle. +

    w :

    width of rectangle. +

    h :

    height of rectangle. +

    r :

    radius of rounded corner. +

    Returns :

    a newly allocated lglTemplateMarkup structure. + +
    +
    +
    +
    +

    lgl_template_markup_dup ()

    +
    lglTemplateMarkup * lgl_template_markup_dup             (const lglTemplateMarkup *orig_markup);
    +

    +This function duplicates a template markup structure.

    +

    +

    +
    ++ + + + + + + + + + +

    orig_markup :

    Markup to duplicate. +

    Returns :

    a newly allocated lglTemplateMarkup structure. + +
    +
    +
    +
    +

    lgl_template_markup_free ()

    +
    void                lgl_template_markup_free            (lglTemplateMarkup *markup);
    +

    +This function frees all memory associated with given template markup structure.

    +

    +

    +
    ++ + + + +

    markup :

    Markup to free. +
    +
    +
    +
    + + + diff --git a/docs/libglabels/html/libglabels-xml-category.html b/docs/libglabels/html/libglabels-xml-category.html new file mode 100644 index 00000000..42a1e535 --- /dev/null +++ b/docs/libglabels/html/libglabels-xml-category.html @@ -0,0 +1,160 @@ + + + + +XML Category Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    XML Category Functions

    +

    XML Category Functions — Functions to parse glabels XML category definition files

    +
    +
    +

    Synopsis

    +
    +
    +#include <libglabels/xml-category.h>
    +
    +GList *             lgl_xml_category_read_categories_from_file
    +                                                        (gchar *utf8_filename);
    +GList *             lgl_xml_category_parse_categories_doc
    +                                                        (xmlDocPtr categories_doc);
    +lglCategory *       lgl_xml_category_parse_category_node
    +                                                        (xmlNodePtr category_node);
    +
    +
    +
    +

    Description

    +

    +This section describes a number of functions for parsing glabels +XML category definition files. +

    +
    +
    +

    Details

    +
    +

    lgl_xml_category_read_categories_from_file ()

    +
    GList *             lgl_xml_category_read_categories_from_file
    +                                                        (gchar *utf8_filename);
    +

    +Read category definitions from a file.

    +

    +

    +
    ++ + + + + + + + + + +

    utf8_filename :

    Filename of categories file (name encoded as UTF-8) +

    Returns :

    a list of lglCategory structures. + +
    +
    +
    +
    +

    lgl_xml_category_parse_categories_doc ()

    +
    GList *             lgl_xml_category_parse_categories_doc
    +                                                        (xmlDocPtr categories_doc);
    +

    +Read category definitions from a libxml xmlDocPtr tree.

    +

    +

    +
    ++ + + + + + + + + + +

    categories_doc :

    libxml xmlDocPtr tree, representing a categories +definition file. +

    Returns :

    a list of lglCategory structures. + +
    +
    +
    +
    +

    lgl_xml_category_parse_category_node ()

    +
    lglCategory *       lgl_xml_category_parse_category_node
    +                                                        (xmlNodePtr category_node);
    +

    +Read a single category definition from a libxml xmlNodePtr node.

    +

    +

    +
    ++ + + + + + + + + + +

    category_node :

    libxml xmlNodePtr category node from a xmlDocPtr tree. +

    Returns :

    a pointer to a newly created lglCategory structure. + +
    +
    +
    +
    + + + diff --git a/docs/libglabels/html/libglabels-xml-paper.html b/docs/libglabels/html/libglabels-xml-paper.html new file mode 100644 index 00000000..e368aeac --- /dev/null +++ b/docs/libglabels/html/libglabels-xml-paper.html @@ -0,0 +1,153 @@ + + + + +XML Paper Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    XML Paper Functions

    +

    XML Paper Functions — Functions to parse glabels XML paper definition files

    +
    +
    +

    Synopsis

    +
    +
    +#include <libglabels/xml-paper.h>
    +
    +GList *             lgl_xml_paper_read_papers_from_file (gchar *utf8_filename);
    +GList *             lgl_xml_paper_parse_papers_doc      (xmlDocPtr papers_doc);
    +lglPaper *          lgl_xml_paper_parse_paper_node      (xmlNodePtr paper_node);
    +
    +
    +
    +

    Description

    +

    +This section describes a number of functions for parsing glabels +XML paper definition files. +

    +
    +
    +

    Details

    +
    +

    lgl_xml_paper_read_papers_from_file ()

    +
    GList *             lgl_xml_paper_read_papers_from_file (gchar *utf8_filename);
    +

    +Read paper definitions from a file.

    +

    +

    +
    ++ + + + + + + + + + +

    utf8_filename :

    Filename of papers file (name encoded as UTF-8) +

    Returns :

    a list of lglPaper structures. + +
    +
    +
    +
    +

    lgl_xml_paper_parse_papers_doc ()

    +
    GList *             lgl_xml_paper_parse_papers_doc      (xmlDocPtr papers_doc);
    +

    +Read paper definitions from a libxml xmlDocPtr tree.

    +

    +

    +
    ++ + + + + + + + + + +

    papers_doc :

    libxml xmlDocPtr tree, representing a papers definition file. +

    Returns :

    a list of lglPaper structures. + +
    +
    +
    +
    +

    lgl_xml_paper_parse_paper_node ()

    +
    lglPaper *          lgl_xml_paper_parse_paper_node      (xmlNodePtr paper_node);
    +

    +Read a single paper definition from a libxml xmlNodePtr node.

    +

    +

    +
    ++ + + + + + + + + + +

    paper_node :

    libxml xmlNodePtr paper node from a xmlDocPtr tree. +

    Returns :

    a pointer to a newly created lglPaper structure. + +
    +
    +
    +
    + + + diff --git a/docs/libglabels/html/libglabels-xml-template.html b/docs/libglabels/html/libglabels-xml-template.html new file mode 100644 index 00000000..732d4301 --- /dev/null +++ b/docs/libglabels/html/libglabels-xml-template.html @@ -0,0 +1,286 @@ + + + + +XML Template Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    XML Template Functions

    +

    XML Template Functions — Functions to create and parse glabels XML template nodes and files

    +
    +
    +

    Synopsis

    +
    +
    +#include <libglabels/xml-templates.h>
    +
    +GList *             lgl_xml_template_read_templates_from_file
    +                                                        (const gchar *utf8_filename);
    +GList *             lgl_xml_template_parse_templates_doc
    +                                                        (const xmlDocPtr templates_doc);
    +lglTemplate *       lgl_xml_template_parse_template_node
    +                                                        (const xmlNodePtr template_node);
    +gint                lgl_xml_template_write_templates_to_file
    +                                                        (GList *templates,
    +                                                         const gchar *utf8_filename);
    +gint                lgl_xml_template_write_template_to_file
    +                                                        (const lglTemplate *template,
    +                                                         const gchar *utf8_filename);
    +void                lgl_xml_template_create_template_node
    +                                                        (const lglTemplate *template,
    +                                                         xmlNodePtr root,
    +                                                         const xmlNsPtr ns);
    +
    +
    +
    +

    Description

    +

    +This section describes a number of functions for creating and parsing +glabels XML template nodes and files. Template nodes are used in both +template files and document files. +

    +
    +
    +

    Details

    +
    +

    lgl_xml_template_read_templates_from_file ()

    +
    GList *             lgl_xml_template_read_templates_from_file
    +                                                        (const gchar *utf8_filename);
    +

    +Read glabels templates from template file.

    +

    +

    +
    ++ + + + + + + + + + +

    utf8_filename :

    Filename of papers file (name encoded as UTF-8) +

    Returns :

    a list of lglTemplate structures. + +
    +
    +
    +
    +

    lgl_xml_template_parse_templates_doc ()

    +
    GList *             lgl_xml_template_parse_templates_doc
    +                                                        (const xmlDocPtr templates_doc);
    +

    +Read glabels templates from a libxml xmlDocPtr tree.

    +

    +

    +
    ++ + + + + + + + + + +

    templates_doc :

    libxml xmlDocPtr tree, representing template file. +

    Returns :

    a list of lglTemplate structures. + +
    +
    +
    +
    +

    lgl_xml_template_parse_template_node ()

    +
    lglTemplate *       lgl_xml_template_parse_template_node
    +                                                        (const xmlNodePtr template_node);
    +

    +Read a single glabels template from a libxml xmlNodePtr node.

    +

    +

    +
    ++ + + + + + + + + + +

    template_node :

    libxml xmlNodePtr template node from a xmlDocPtr tree. +

    Returns :

    a pointer to a newly created lglTemplate structure. + +
    +
    +
    +
    +

    lgl_xml_template_write_templates_to_file ()

    +
    gint                lgl_xml_template_write_templates_to_file
    +                                                        (GList *templates,
    +                                                         const gchar *utf8_filename);
    +

    +Write a list of lglTemplate structures to a glabels XML template file.

    +

    +

    +
    ++ + + + + + + + + + + + + + +

    templates :

    List of lglTemplate structures +

    utf8_filename :

    Filename of templates file (name encoded as UTF-8) +

    Returns :

    the number of bytes written or -1 in case of failure + +
    +
    +
    +
    +

    lgl_xml_template_write_template_to_file ()

    +
    gint                lgl_xml_template_write_template_to_file
    +                                                        (const lglTemplate *template,
    +                                                         const gchar *utf8_filename);
    +

    +Write a single lglTemplate structures to a glabels XML template file.

    +

    +

    +
    ++ + + + + + + + + + + + + + +

    template :

    lglTemplate structure to be written +

    utf8_filename :

    Filename of templates file (name encoded as UTF-8) +

    Returns :

    the number of bytes written or -1 in case of failure + +
    +
    +
    +
    +

    lgl_xml_template_create_template_node ()

    +
    void                lgl_xml_template_create_template_node
    +                                                        (const lglTemplate *template,
    +                                                         xmlNodePtr root,
    +                                                         const xmlNsPtr ns);
    +

    +Add a single lglTemplate child node to given xmlNodePtr.

    +

    +

    +
    ++ + + + + + + + + + + + + + +

    template :

    lglTemplate structure to be written +

    root :

    parent node to receive new child node +

    ns :

    a libxml xmlNsPtr +
    +
    +
    +
    + + + diff --git a/docs/libglabels/html/libglabels-xml.html b/docs/libglabels/html/libglabels-xml.html new file mode 100644 index 00000000..02347b9c --- /dev/null +++ b/docs/libglabels/html/libglabels-xml.html @@ -0,0 +1,801 @@ + + + + +XML Helper Functions + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    +

    XML Helper Functions

    +

    XML Helper Functions — Functions to help format and parse glabels XML properties

    +
    +
    +

    Synopsis

    +
    +
    +#include <libglabels/xml.h>
    +
    +#define             LGL_XML_NAME_SPACE
    +
    +gchar *             lgl_xml_get_prop_string             (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         const gchar *default_val);
    +gchar *             lgl_xml_get_prop_i18n_string        (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         const gchar *default_val);
    +gdouble             lgl_xml_get_prop_double             (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gdouble default_val);
    +gboolean            lgl_xml_get_prop_boolean            (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gboolean default_val);
    +gint                lgl_xml_get_prop_int                (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gint default_val);
    +guint               lgl_xml_get_prop_uint               (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         guint default_val);
    +gdouble             lgl_xml_get_prop_length             (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gdouble default_val);
    +
    +void                lgl_xml_set_prop_string             (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         const gchar *val);
    +void                lgl_xml_set_prop_double             (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gdouble val);
    +void                lgl_xml_set_prop_boolean            (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gboolean val);
    +void                lgl_xml_set_prop_int                (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gint val);
    +void                lgl_xml_set_prop_uint_hex           (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         guint val);
    +void                lgl_xml_set_prop_length             (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gdouble val);
    +
    +gboolean            lgl_xml_is_node                     (xmlNodePtr node,
    +                                                         const gchar *name);
    +gchar *             lgl_xml_get_node_content            (xmlNodePtr node);
    +
    +void                lgl_xml_set_default_units           (lglUnitsType units);
    +
    +
    +
    +

    Description

    +

    +This section describes a number of "helper" functions for formatting and +parsing various types of properties for tags in glabels XML file formats. +

    +

    +These functions are basically wrappers to functions from libxml2. +

    +
    +
    +

    Details

    +
    +

    LGL_XML_NAME_SPACE

    +
    #define LGL_XML_NAME_SPACE "http://snaught.com/glabels/2.2/"
    +
    +

    +

    +
    +
    +
    +

    lgl_xml_get_prop_string ()

    +
    gchar *             lgl_xml_get_prop_string             (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         const gchar *default_val);
    +

    +Return value of property as a string.

    +

    +

    +
    ++ + + + + + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node +

    property :

    the property name +

    default_val :

    a default value to return if property not found +

    Returns :

    the property as a pointer to a gchar string. This string should + be freed with g_free(). + +
    +
    +
    +
    +

    lgl_xml_get_prop_i18n_string ()

    +
    gchar *             lgl_xml_get_prop_i18n_string        (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         const gchar *default_val);
    +

    +Return value of a translatable property as a string.

    +

    +

    +
    ++ + + + + + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node +

    property :

    the property name +

    default_val :

    a default value to return if property not found +

    Returns :

    the property as a pointer to a gchar string. This string should + be freed with g_free(). + +
    +
    +
    +
    +

    lgl_xml_get_prop_double ()

    +
    gdouble             lgl_xml_get_prop_double             (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gdouble default_val);
    +

    +Return value of property as a double.

    +

    +

    +
    ++ + + + + + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node +

    property :

    the property name +

    default_val :

    a default value to return if property not found +

    Returns :

    the property as a double. + +
    +
    +
    +
    +

    lgl_xml_get_prop_boolean ()

    +
    gboolean            lgl_xml_get_prop_boolean            (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gboolean default_val);
    +

    +Return value of property as a boolean.

    +

    +

    +
    ++ + + + + + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node +

    property :

    the property name +

    default_val :

    a default value to return if property not found +

    Returns :

    the property as a boolean. + +
    +
    +
    +
    +

    lgl_xml_get_prop_int ()

    +
    gint                lgl_xml_get_prop_int                (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gint default_val);
    +

    +Return value of property as an integer.

    +

    +

    +
    ++ + + + + + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node +

    property :

    the property name +

    default_val :

    a default value to return if property not found +

    Returns :

    the property as an integer. + +
    +
    +
    +
    +

    lgl_xml_get_prop_uint ()

    +
    guint               lgl_xml_get_prop_uint               (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         guint default_val);
    +

    +Return value of property (usually formatted in hex) as an unsigned integer.

    +

    +

    +
    ++ + + + + + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node +

    property :

    the property name +

    default_val :

    a default value to return if property not found +

    Returns :

    the property as an unsigned integer. + +
    +
    +
    +
    +

    lgl_xml_get_prop_length ()

    +
    gdouble             lgl_xml_get_prop_length             (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gdouble default_val);
    +

    +Return value of a length property as a double, converting to internal +units (points). The property is expected to be formatted as a number +followed by a units string. If there is no units string, the length +is assumed to be in points. Valid units strings are "pt" for points, +"in" for inches, "mm" for millimeters, "cm" for centimeters, and +"pc" for picas.

    +

    +

    +
    ++ + + + + + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node +

    property :

    the property name +

    default_val :

    a default value to return if property not found +

    Returns :

    the length in points. + +
    +
    +
    +
    +

    lgl_xml_set_prop_string ()

    +
    void                lgl_xml_set_prop_string             (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         const gchar *val);
    +

    +Set a property from a string.

    +

    +

    +
    ++ + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node +

    property :

    the property name +

    val :

    the value to set +
    +
    +
    +
    +

    lgl_xml_set_prop_double ()

    +
    void                lgl_xml_set_prop_double             (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gdouble val);
    +

    +Set a property from a double.

    +

    +

    +
    ++ + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node +

    property :

    the property name +

    val :

    the value to set +
    +
    +
    +
    +

    lgl_xml_set_prop_boolean ()

    +
    void                lgl_xml_set_prop_boolean            (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gboolean val);
    +

    +Set a property from a boolean.

    +

    +

    +
    ++ + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node +

    property :

    the property name +

    val :

    the value to set +
    +
    +
    +
    +

    lgl_xml_set_prop_int ()

    +
    void                lgl_xml_set_prop_int                (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gint val);
    +

    +Set a property from an integer.

    +

    +

    +
    ++ + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node +

    property :

    the property name +

    val :

    the value to set +
    +
    +
    +
    +

    lgl_xml_set_prop_uint_hex ()

    +
    void                lgl_xml_set_prop_uint_hex           (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         guint val);
    +

    +Set a property from an unsigned integer and format in hex.

    +

    +

    +
    ++ + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node +

    property :

    the property name +

    val :

    the value to set +
    +
    +
    +
    +

    lgl_xml_set_prop_length ()

    +
    void                lgl_xml_set_prop_length             (xmlNodePtr node,
    +                                                         const gchar *property,
    +                                                         gdouble val);
    +

    +Set a property from a length, performing any necessary conversion. +Length properties are formatted as a number followed by a units string. +The units of the formatted property is determined by the most recent call to +lgl_xml_set_default_units().

    +

    +

    +
    ++ + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node +

    property :

    the property name +

    val :

    the length to set in internal units (points) +
    +
    +
    +
    +

    lgl_xml_is_node ()

    +
    gboolean            lgl_xml_is_node                     (xmlNodePtr node,
    +                                                         const gchar *name);
    +

    +Test if a node name matches given name.

    +

    +

    +
    ++ + + + + + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node +

    name :

    the node name +

    Returns :

    TRUE if the name of the node matches. Otherwise FALSE. + +
    +
    +
    +
    +

    lgl_xml_get_node_content ()

    +
    gchar *             lgl_xml_get_node_content            (xmlNodePtr node);
    +

    +Get the content of a node.

    +

    +

    +
    ++ + + + + + + + + + +

    node :

    the libxml2 xmlNodePtr of the node +

    Returns :

    the property as a pointer to a gchar string. This string should + be freed with g_free(). +
    +
    +
    +
    +

    lgl_xml_set_default_units ()

    +
    void                lgl_xml_set_default_units           (lglUnitsType units);
    +

    +Set the default units when formatting lengths. See +lgl_xml_set_prop_length().

    +

    +

    +
    ++ + + + +

    units :

    default units selection (lglUnitsType) +
    +
    +
    +
    + + + diff --git a/docs/libglabels/html/libglabels.devhelp b/docs/libglabels/html/libglabels.devhelp new file mode 100644 index 00000000..dd43881c --- /dev/null +++ b/docs/libglabels/html/libglabels.devhelp @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/libglabels/html/libglabels.devhelp2 b/docs/libglabels/html/libglabels.devhelp2 new file mode 100644 index 00000000..1e9cf7dd --- /dev/null +++ b/docs/libglabels/html/libglabels.devhelp2 @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/libglabels/html/right.png b/docs/libglabels/html/right.png new file mode 100644 index 0000000000000000000000000000000000000000..92832e3a4566e59d6e4092010e08d28f3be3a68d GIT binary patch literal 472 zcmV;}0Vn>6P)Cd4HCN^TYHBC0dz3r5|}*T3c5!K}0^NPTey!^rYo;W&eW{b1SE%dR-1ljcju- zJITo5P_e{cPDWDszO|97o#m$fni3V4d%~7^?0HU4-k!+X`e~w55Q}HA=c?CM9`EK` z^o5GF_RsnG`ey+9wOf8O4bzg>7W*;jU~M?g`OZAA$mNp|Lz<$s+~N9!2`ir8RcClo$(Q~19INM~9}j;&*|enC yGd}kJak0wj?aUKd8;%}`i}SSew>!A-2iw}^5}Rh(M>+vRkipZ{&t;ucLK6U4uc96R literal 0 HcmV?d00001 diff --git a/docs/libglabels/libglabels-docs.sgml b/docs/libglabels/libglabels-docs.sgml new file mode 100644 index 00000000..a4b5b381 --- /dev/null +++ b/docs/libglabels/libglabels-docs.sgml @@ -0,0 +1,33 @@ + + + + + + + LibGlabels Reference Manual + + + + Basic LibGlabels Usage + + + + + + + + Working Directly With LibGlabels XML + + + + + + + + Miscellaneous + + + + + diff --git a/docs/libglabels/libglabels-overrides.txt b/docs/libglabels/libglabels-overrides.txt new file mode 100644 index 00000000..e69de29b diff --git a/docs/libglabels/libglabels-sections.txt b/docs/libglabels/libglabels-sections.txt new file mode 100644 index 00000000..658d109c --- /dev/null +++ b/docs/libglabels/libglabels-sections.txt @@ -0,0 +1,194 @@ +
    +db +libglabels/db.h +lglDbRegStatus + +lgl_db_init + +lgl_db_get_paper_id_list +lgl_db_free_paper_id_list +lgl_db_get_paper_name_list +lgl_db_free_paper_name_list +lgl_db_lookup_paper_from_id +lgl_db_lookup_paper_from_name +lgl_db_lookup_paper_id_from_name +lgl_db_lookup_paper_name_from_id +lgl_db_is_paper_id_known +lgl_db_is_paper_id_other + +lgl_db_get_category_id_list +lgl_db_free_category_id_list +lgl_db_get_category_name_list +lgl_db_free_category_name_list +lgl_db_lookup_category_from_id +lgl_db_lookup_category_from_name +lgl_db_lookup_category_id_from_name +lgl_db_lookup_category_name_from_id +lgl_db_is_category_id_known + +lgl_db_get_brand_list +lgl_db_free_brand_list + +lgl_db_register_template +lgl_db_does_template_exist +lgl_db_does_template_name_exist +lgl_db_get_template_name_list_unique +lgl_db_get_template_name_list_all +lgl_db_free_template_name_list +lgl_db_lookup_template_from_name + +lgl_db_print_known_papers +lgl_db_print_known_categories +lgl_db_print_known_templates +lgl_db_print_aliases +
    + +
    +template +libglabels/template.h +lglTemplate + +lglTemplateAlias + +lglTemplateFrameShape +lglTemplateFrame +lglTemplateFrameAll +lglTemplateFrameRect +lglTemplateFrameRound +lglTemplateFrameCD + +lglTemplateLayout + +lglTemplateMarkupType +lglTemplateMarkup +lglTemplateMarkupMargin +lglTemplateMarkupLine +lglTemplateMarkupCircle +lglTemplateMarkupRect + +lglTemplateOrigin + +lgl_template_new +lgl_template_dup +lgl_template_free +lgl_template_add_category +lgl_template_add_frame +lgl_template_add_alias + +lgl_template_get_name +lgl_template_do_templates_match +lgl_template_does_brand_match +lgl_template_does_page_size_match +lgl_template_does_category_match + +lgl_template_alias_new +lgl_template_alias_dup +lgl_template_alias_free + +lgl_template_frame_rect_new +lgl_template_frame_round_new +lgl_template_frame_cd_new +lgl_template_frame_dup +lgl_template_frame_free +lgl_template_frame_add_layout +lgl_template_frame_add_markup + +lgl_template_frame_get_size +lgl_template_frame_get_n_labels +lgl_template_frame_get_origins + +lgl_template_layout_new +lgl_template_layout_dup +lgl_template_layout_free + +lgl_template_markup_margin_new +lgl_template_markup_line_new +lgl_template_markup_circle_new +lgl_template_markup_rect_new +lgl_template_markup_dup +lgl_template_markup_free +
    + +
    +paper +libglabels/paper.h +lglPaper +lgl_paper_new +lgl_paper_dup +lgl_paper_free +
    + +
    +category +libglabels/category.h +lglCategory +lgl_category_new +lgl_category_dup +lgl_category_free +
    + +
    +xml-paper +libglabels/xml-paper.h +lgl_xml_paper_read_papers_from_file +lgl_xml_paper_parse_papers_doc +lgl_xml_paper_parse_paper_node +
    + +
    +xml-category +libglabels/xml-category.h +lgl_xml_category_read_categories_from_file +lgl_xml_category_parse_categories_doc +lgl_xml_category_parse_category_node +
    + +
    +xml-template +libglabels/xml-templates.h +lgl_xml_template_read_templates_from_file +lgl_xml_template_parse_templates_doc +lgl_xml_template_parse_template_node +lgl_xml_template_write_templates_to_file +lgl_xml_template_write_template_to_file +lgl_xml_template_create_template_node +
    + +
    +xml +libglabels/xml.h +LGL_XML_NAME_SPACE + +lgl_xml_get_prop_string +lgl_xml_get_prop_i18n_string +lgl_xml_get_prop_double +lgl_xml_get_prop_boolean +lgl_xml_get_prop_int +lgl_xml_get_prop_uint +lgl_xml_get_prop_length + +lgl_xml_set_prop_string +lgl_xml_set_prop_double +lgl_xml_set_prop_boolean +lgl_xml_set_prop_int +lgl_xml_set_prop_uint_hex +lgl_xml_set_prop_length + +lgl_xml_is_node +lgl_xml_get_node_content + +lgl_xml_set_default_units +
    + +
    +enums +libglabels/enums.h +lglUnitsType +
    + +
    +str +libglabels/str.h +lgl_str_utf8_casecmp +
    + diff --git a/docs/libglabels/libglabels.types b/docs/libglabels/libglabels.types new file mode 100644 index 00000000..e69de29b diff --git a/docs/libglabels/tmpl/category.sgml b/docs/libglabels/tmpl/category.sgml new file mode 100644 index 00000000..2143fd19 --- /dev/null +++ b/docs/libglabels/tmpl/category.sgml @@ -0,0 +1,55 @@ + +The lglCategory Structure + + +Template category definitions + + + +This section describes a structure for representing a category of stationary and related +functions. + + + + + + + + + + + + +This structure defines a category. + + +@id: Category ID. +@name: Localized category name. + + + + + + +@id: +@name: +@Returns: + + + + + + + +@orig: +@Returns: + + + + + + + +@category: + + diff --git a/docs/libglabels/tmpl/db.sgml b/docs/libglabels/tmpl/db.sgml new file mode 100644 index 00000000..3d5d2de3 --- /dev/null +++ b/docs/libglabels/tmpl/db.sgml @@ -0,0 +1,314 @@ + +Database + + +Database of pre-defined templates + + + +This section describes a set of functions to locate and add templates and related information in +the LibGlabels template database. + + + + + + + + + + + + +This enumeration defines a set of possible return values for lgl_db_register_template(). + + +@LGL_DB_REG_OK: Registration successful. +@LGL_DB_REG_BAD_PAPER_ID: Registration failed because paper id is unknown. +@LGL_DB_REG_BRAND_PART_EXISTS: Registration failed because template with same brand and part name/number already exists. +@LGL_DB_REG_FILE_WRITE_ERROR: Registration failed because an error while writing to disk. + + + + + + + + + + + + + +@Returns: + + + + + + + +@ids: + + + + + + + +@Returns: + + + + + + + +@names: + + + + + + + +@id: +@Returns: + + + + + + + +@name: +@Returns: + + + + + + + +@name: +@Returns: + + + + + + + +@id: +@Returns: + + + + + + + +@id: +@Returns: + + + + + + + +@id: +@Returns: + + + + + + + +@Returns: + + + + + + + +@ids: + + + + + + + +@Returns: + + + + + + + +@names: + + + + + + + +@id: +@Returns: + + + + + + + +@name: +@Returns: + + + + + + + +@name: +@Returns: + + + + + + + +@id: +@Returns: + + + + + + + +@id: +@Returns: + + + + + + + +@paper_id: +@category_id: +@Returns: + + + + + + + +@brands: + + + + + + + +@template: +@Returns: + + + + + + + +@brand: +@part: +@Returns: + + + + + + + +@name: +@Returns: + + + + + + + +@brand: +@paper_id: +@category_id: +@Returns: + + + + + + + +@brand: +@paper_id: +@category_id: +@Returns: + + + + + + + +@names: + + + + + + + +@name: +@Returns: + + + + + + + + + + + + + + + + + + + + + + + + + + + + +@template: + + diff --git a/docs/libglabels/tmpl/enums.sgml b/docs/libglabels/tmpl/enums.sgml new file mode 100644 index 00000000..b74f00d1 --- /dev/null +++ b/docs/libglabels/tmpl/enums.sgml @@ -0,0 +1,33 @@ + +Enumerations + + +Common enumerations used by libglabels + + + +This section defines enumerations used to interact with libglabels. + + + + + + + + + + + + +This enumeration defines a set of units of distance supported by the libglabels XML distance +attributes. + + +@LGL_UNITS_POINT: Points. Encoded as "pt" in XML distance attributes. +@LGL_UNITS_INCH: Inches. Encoded as "in" in XML distance attributes. +@LGL_UNITS_MM: Millmeters. Encoded as "mm" in XML distance attributes. +@LGL_UNITS_CM: Centimeters. Encoded as "cm" in XML distance attributes. +@LGL_UNITS_PICA: Picas. Encoded as "pc" in XML distance attributes. +@LGL_UNITS_FIRST: First enumeration. Used for generic iteration through supported units.. +@LGL_UNITS_LAST: Last enumeration. Used for generic iteration through supported units. + diff --git a/docs/libglabels/tmpl/libglabels-unused.sgml b/docs/libglabels/tmpl/libglabels-unused.sgml new file mode 100644 index 00000000..dc089b42 --- /dev/null +++ b/docs/libglabels/tmpl/libglabels-unused.sgml @@ -0,0 +1,1519 @@ + + + + + + + + + + + + + + + + + + + + + +init + + + + + + + + + + + + + + + + + + + + + + + +libglabels + + + + +This section describes a set of functions for constructing new template structures. + + + + + + + + + + +Functions to help create new templates + + + + + + + +Construction Functions + + + + +This section describes a set of functions to locate pre-defined templates and add templates +to the LibGlabels template database. + + + + + + + + + + +Database of pre-defined templates + + + + + + + +Database + + + + +This section describes miscellaneous template functions. + + + + + + + + + + +Miscellaneous template functions + + + + + + + +Miscellaneous Functions + + + + + + + + + + + + + + + + + + + + + + + +template2 + + + + + + + + + + + + + + + + + + + + + + + +template3 + + + + + + + + + + + + + +@id: +@name: + + + + + + +@id: +@name: +@width: +@height: + + + + + + +@name: +@description: +@page_size: +@page_width: +@page_height: +@categories: +@frames: +@aliases: + + + + + + + + + + + + +@shape: +@id: +@layouts: +@markups: + + + + + + +@shape: +@id: +@layouts: +@markups: +@r1: +@r2: +@w: +@h: +@waste: + + + + + + +@shape: +@id: +@layouts: +@markups: +@w: +@h: +@r: +@x_waste: +@y_waste: + + + + + + +@shape: +@id: +@layouts: +@markups: +@r: +@waste: + + + + + + +@GL_TEMPLATE_FRAME_SHAPE_RECT: +@GL_TEMPLATE_FRAME_SHAPE_ROUND: +@GL_TEMPLATE_FRAME_SHAPE_CD: + + + + + + +@GL_TEMPLATE_SHAPE_RECT: +@GL_TEMPLATE_SHAPE_ROUND: +@GL_TEMPLATE_SHAPE_CD: + + + + + + +@id: +@layouts: +@markups: +@shape: + + + + + + +@nx: +@ny: +@x0: +@y0: +@dx: +@dy: + + + + + + + + + + + + +@type: +@x0: +@y0: +@r: + + + + + + +@type: +@x1: +@y1: +@x2: +@y2: + + + + + + +@type: +@size: + + + + + + +@type: +@x1: +@y1: +@w: +@h: +@r: + + + + + + +@GL_TEMPLATE_MARKUP_MARGIN: +@GL_TEMPLATE_MARKUP_LINE: +@GL_TEMPLATE_MARKUP_CIRCLE: +@GL_TEMPLATE_MARKUP_RECT: + + + + + + +@x: +@y: + + + +Enumerations for the units of length supported by libglabels. Internally +all lengths are in points. Externally libglabels supports points ("pt"), +inches ("in"), millimeters ("mm"), centimeters ("cm"), and picas ("pc"). +These units are identical to the absolute length units supported in +the CSS2 Specification (Section 4.3.2). + + +@GL_UNITS_POINT: +@GL_UNITS_INCH: +@GL_UNITS_MM: +@GL_UNITS_CM: +@GL_UNITS_PICA: +@GL_UNITS_FIRST: +@GL_UNITS_LAST: + + + + + + +@orig: +@Returns: + + + + + + +@category: + + + + + + +@names: + + + + + + +@id: +@Returns: + + + + + + +@name: +@Returns: + + + + + + +@Returns: + + + + + + + + + + + + +@name: +@Returns: + + + + + + +@id: +@Returns: + + + + + + +@id: +@name: +@Returns: + + + + + + +@orig: +@Returns: + + + + + + +@paper: + + + + + + +@ids: + + + + + + +@names: + + + + + + +@id: +@Returns: + + + + + + +@name: +@Returns: + + + + + + +@Returns: + + + + + + +@Returns: + + + + + + + + + + + + +@id: +@Returns: + + + + + + +@id: +@Returns: + + + + + + +@name: +@Returns: + + + + + + +@id: +@Returns: + + + + + + +@id: +@name: +@width: +@height: +@Returns: + + + + + + + + + + + + +@template: +@alias: + + + + + + +@template: +@category: + + + + + + +@template: +@frame: + + + + + + +@template: +@label_type: + + + + + + +@frame: +@layout: + + + + + + +@frame: +@markup: + + + + + + +@id: +@r1: +@r2: +@w: +@h: +@waste: +@Returns: + + + + + + +@template: +@category: +@Returns: + + + + + + +@template: +@page_size: +@Returns: + + + + + + +@orig: +@Returns: + + + + + + +@id: +@r1: +@r2: +@w: +@h: +@waste: +@Returns: + + + + + + +@orig_frame: +@Returns: + + + + + + +@frame: + + + + + + +@frame: +@Returns: + + + + + + +@frame: +@Returns: + + + + + + +@frame: +@w: +@h: + + + + + + +@id: +@w: +@h: +@r: +@x_waste: +@y_waste: +@Returns: + + + + + + +@id: +@r: +@waste: +@Returns: + + + + + + +@template: + + + + + + +@names: + + + + + + +@name: +@Returns: + + + + + + +@template: +@Returns: + + + + + + +@template: +@Returns: + + + + + + +@label_type: +@w: +@h: + + + + + + +@label_type: +@Returns: + + + + + + +@page_size: +@Returns: + + + + + + +@page_size: +@category: +@Returns: + + + + + + +@page_size: +@category: +@Returns: + + + + + + +@template: +@Returns: + + + + + + +@label_type: +@Returns: + + + + + + + + + + + + +@orig_ltype: +@Returns: + + + + + + +@ltype: + + + + + + +@orig_layout: +@Returns: + + + + + + +@layout: + + + + + + +@nx: +@ny: +@x0: +@y0: +@dx: +@dy: +@Returns: + + + + + + +@x0: +@y0: +@r: +@Returns: + + + + + + +@orig_markup: +@Returns: + + + + + + +@markup: + + + + + + +@x1: +@y1: +@x2: +@y2: +@Returns: + + + + + + +@size: +@Returns: + + + + + + +@x1: +@y1: +@w: +@h: +@r: +@Returns: + + + + + + +@name: +@description: +@page_size: +@page_width: +@page_height: +@Returns: + + + + + + +@template: + + + + + + + + + + + + +@id: +@w: +@h: +@r: +@x_waste: +@y_waste: +@Returns: + + + + + + +@template: + + + + + + +@id: +@r: +@waste: +@Returns: + + + + + + +@categories_doc: +@Returns: + + + + + + +@category_node: +@Returns: + + + + + + +@utf8_filename: +@Returns: + + + + + + +@node: +@Returns: + + + + + + +@node: +@property: +@default_val: +@Returns: + + + + + + +@node: +@property: +@default_val: +@Returns: + + + + + + +@node: +@property: +@default_val: +@Returns: + + + + + + +@node: +@property: +@default_val: +@Returns: + + + + + + +@node: +@property: +@default_val: +@Returns: + + + + + + +@node: +@property: +@default_val: +@Returns: + + + + + + +@node: +@property: +@default_val: +@Returns: + + + + + + +@node: +@name: +@Returns: + + + + + + +@paper_node: +@Returns: + + + + + + +@papers_doc: +@Returns: + + + + + + +@utf8_filename: +@Returns: + + + + + + +@units: + + + + + + +@node: +@property: +@val: + + + + + + +@node: +@property: +@val: + + + + + + +@node: +@property: +@val: + + + + + + +@node: +@property: +@val: + + + + + + +@node: +@property: +@val: + + + + + + +@node: +@property: +@val: + + + + + + +@template: +@root: +@ns: + + + + + + +@templates: +@Returns: + + + + + + +@template_node: +@Returns: + + + + + + +@templates_doc: +@Returns: + + + + + + +@utf8_filename: +@Returns: + + + + + + +@template: +@utf8_filename: + + + + + + +@templates: +@utf8_filename: + + + + + + +@ids: + + + + + + +@names: + + + + + + +@id: +@Returns: + + + + + + +@name: +@Returns: + + + + + + +@Returns: + + + + + + +@Returns: + + + + + + + + + + + + +@name: +@Returns: + + + + + + +@id: +@Returns: + + + + + + + + + + + + +@ids: + + + + + + +@names: + + + + + + +@id: +@Returns: + + + + + + +@name: +@Returns: + + + + + + +@Returns: + + + + + + +@Returns: + + + + + + + + + + + + +@id: +@Returns: + + + + + + +@id: +@Returns: + + + + + + +@name: +@Returns: + + + + + + +@id: +@Returns: + + + + + + + + + + + + +@frame: +@layout: + + + + + + +@frame: +@markup: + + + + + + +@brands: + + + + + + +@names: + + + + + + +@name: +@Returns: + + + + + + +@page_size: +@category: +@Returns: + + + + + + +@template: +@Returns: + + + + + + +@brand: +@page_size: +@category: +@Returns: + + + + + + +@brand: +@page_size: +@category: +@Returns: + + + + + + + + + + + + +@template: + + + + + + + + + + + + +@template: + + + + + + +@templates: +@Returns: + diff --git a/docs/libglabels/tmpl/libglabels.sgml b/docs/libglabels/tmpl/libglabels.sgml new file mode 100644 index 00000000..0552a20b --- /dev/null +++ b/docs/libglabels/tmpl/libglabels.sgml @@ -0,0 +1,19 @@ + +libglabels + + + + + + + + + + + + + + + + + diff --git a/docs/libglabels/tmpl/paper.sgml b/docs/libglabels/tmpl/paper.sgml new file mode 100644 index 00000000..dc69d746 --- /dev/null +++ b/docs/libglabels/tmpl/paper.sgml @@ -0,0 +1,61 @@ + +The lglPaper Structure + + +Paper size definitions + + + +This section describes a structure for representing a paper size definition +and related functions. + + + + + + + + + + + + +This structure defines a paper (page) size. + + +@id: Paper size ID. +@name: Localized paper size name. +@width: Width of paper in points. +@height: Height of paper in points. +@pwg_size: PWG 5101.1-2002 size name. + + + + + + +@id: +@name: +@width: +@height: +@pwg_size: +@Returns: + + + + + + + +@orig: +@Returns: + + + + + + + +@paper: + + diff --git a/docs/libglabels/tmpl/str.sgml b/docs/libglabels/tmpl/str.sgml new file mode 100644 index 00000000..53cbd3b9 --- /dev/null +++ b/docs/libglabels/tmpl/str.sgml @@ -0,0 +1,30 @@ + +String Utility Functions + + +String utility functions provided by libglabels + + + +This section defines string utility functions used by libglabels and of +possible use to a user of libglabels. + + + + + + + + + + + + + + + +@s1: +@s2: +@Returns: + + diff --git a/docs/libglabels/tmpl/template.sgml b/docs/libglabels/tmpl/template.sgml new file mode 100644 index 00000000..e7a58879 --- /dev/null +++ b/docs/libglabels/tmpl/template.sgml @@ -0,0 +1,532 @@ + +The lglTemplate Structure + + +How templates are represented in memory + + + +This section describes a set of structures that represent a template in memory. It also +describes functions to help create and interpret these structures. + + + + + + + + + + + + +This is the main structure of a libglabels template. A template represents a single sheet +of peel-off labels or cards. + + +@brand: Brand name of label or card. E.g. "Avery." +@part: Part name or number of label or card. E.g. "8160." +@description: A description of the template. E.g. "Mailing labels." +@paper_id: A paper ID. E.g. "A4" or "US-Letter." +@page_width: Page width in points. Used only if paper_id is "Other." +@page_height: Page height in points. Used only if paper_id is "Other." +@aliases: A list of alternate names for this template. Often a single template can be used for +multiple products. +@category_ids: A list of category IDs that this template belongs to. +@frames: A list of (#lglTemplateFrame *) structures. GLabels currently only supports one frame +per template -- future versions may support multiple frames per template. + + + +This structure defines an alias for the parent template structure. An alias is used for +different products that can use the same template. + + +@brand: Brand name of label or card. E.g. "Avery." +@part: Part name or number of label or card. E.g. "8160." + + + +This enumeration defines frame types that are supported by libglabels + + +@LGL_TEMPLATE_FRAME_SHAPE_RECT: A rectangular frame. (May have rounded corners.) +@LGL_TEMPLATE_FRAME_SHAPE_ROUND: A round frame. +@LGL_TEMPLATE_FRAME_SHAPE_CD: A CD or DVD frame. (Includes credit-card style CDs.) + + + +A union of all possible frame structures. The type of structure is indicated by the shape +member, which overlays the first field of all other member structures. + + + + + +This structure is composed of a set of fields common to all frame structures. All frame types +can be cast to this structure. + + +@shape: The shape of the frame. +@id: Reserved for future use. Should always be zero. +@layouts: A list of (#lglTemplateLayout *) structures. Typically a frame will have a single +layout, representing a simple grid of labels or cards. If the layout of labels or cards is +more complex, multiple (#lglTemplateLayout *) structures may be needed. +@markups: A list of (#lglTemplateMarkup *) structures, which represent non-printing markup lines. + + + +This structure defines the frame for a rectangular label or card. + + +@shape: Common field. Always #LGL_TEMPLATE_FRAME_SHAPE_RECT for #lglTemplateFrameRect. +@id: Common field. See #lglTemplateFrameAll. +@layouts: Common field. See #lglTemplateFrameAll. +@markups: Common field. See #lglTemplateFrameAll. +@w: Width of label or card in points. +@h: Height of label or card in points. +@r: Radius of corners in points. +@x_waste: Amount of horizontal over-print to allow in points. +@y_waste: Amount of vertical over-print to allow in points. + + + +This structure defines the frame for a round label or card. + + +@shape: Common field. Always #LGL_TEMPLATE_FRAME_SHAPE_ROUND for #lglTemplateFrameRound. +@id: Common field. See #lglTemplateFrameAll. +@layouts: Common field. See #lglTemplateFrameAll. +@markups: Common field. See #lglTemplateFrameAll. +@r: Radius of label or card in points. +@waste: Amount of over-print to allow in points. + + + +This structure defines the frame for a CD or DVD label. This structure also supports +credit-card CD labels. + + +@shape: Common field. Always #LGL_TEMPLATE_FRAME_SHAPE_CD for #lglTemplateFrameCD. +@id: Common field. See #lglTemplateFrameAll. +@layouts: Common field. See #lglTemplateFrameAll. +@markups: Common field. See #lglTemplateFrameAll. +@r1: Outer radius of label in points. +@r2: Radius of center hole in points. +@w: Clip width in points. Used for credit-card CD labels. This field is ignored if zero. +@h: Clip height in points. Used for credit-card CD labels. This field is ignored if zero. +@waste: Amount of over-print to allow in points. + + + +This structure defines a simple grid layout of labels or cards. + + +@nx: Number of labels or cards across in the grid (horizontal). +@ny: Number of labels or cards down in the grid (vertical). +@x0: Distance (in points) from the left edge of page to the left edge of the left column of +cards or labels in the layout. +@y0: Distance (in points) from the top edge of page to the top edge of the top row of +cards or labels in the layout. +@dx: Horizontal pitch of grid in points. This is the distance from left edge to left edge +(not the gap between labels or cards). +@dy: Vertical pitch of grid in points. This is the distance from top edge to top edge +(not the gap between labels or cards). + + + +This enumeration defines markup types that are supported by libglabels + + +@LGL_TEMPLATE_MARKUP_MARGIN: A margin line around perimeter of label or card. +@LGL_TEMPLATE_MARKUP_LINE: A simple line segment. +@LGL_TEMPLATE_MARKUP_CIRCLE: A circle. +@LGL_TEMPLATE_MARKUP_RECT: A rectangle. Possibly with rounded corners. + + + +A union of all possible markup structures. The type of structure is indicated by the type +member, which overlays the first field of all other member structures. + + + + + +This structure defines a simple margin markup around the perimeter of a label or card. + + +@type: Common field. Always #LGL_TEMPLATE_MARKUP_MARGIN for #lglTemplateMarkupMargin. +@size: Distance of margin from edge of label or card. + + + +This structure defines a simple line segment markup. + + +@type: Common field. Always #LGL_TEMPLATE_MARKUP_LINE for #lglTemplateMarkupLine. +@x1: Distance (in points) of first endpoint from left edge of label or card. +@y1: Distance (in points) of first endpoint from top edge of label or card. +@x2: Distance (in points) of second endpoint from left edge of label or card. +@y2: Distance (in points) of second endpoint from top edge of label or card. + + + +This structure defines a simple circle markup. + + +@type: Common field. Always #LGL_TEMPLATE_MARKUP_CIRCLE for #lglTemplateMarkupCircle. +@x0: Distance (in points) of vertex from left edge of label or card. +@y0: Distance (in points) of vertex from top edge of label or card. +@r: Radius of circle in points. + + + +This structure defines a simple rectangle markup. The rectangle can have rounded corners. + + +@type: Common field. Always #LGL_TEMPLATE_MARKUP_RECT for #lglTemplateMarkupRect. +@x1: Distance (in points) of left edge of markup from left edge of label or card. +@y1: Distance (in points) of top edge of markup from top edge of label or card. +@w: Width of rectangle in points. +@h: Height of rectangle in points. +@r: Radius of corners in points. Should be zero for sharp corners. + + + +This structure represents the cartesian coordinates of the origin of a label or card on the page. +The orign is the upper left corner of the extent of the label or card. These coordinates are +relative to the upper left corner of the page. + + +@x: Distance in points from top edge of page. +@y: Distance in points from left edge of page. + + + + + + +@brand: +@part: +@description: +@paper_id: +@page_width: +@page_height: +@Returns: + + + + + + + +@orig_template: +@Returns: + + + + + + + +@template: + + + + + + + +@template: +@category_id: + + + + + + + +@template: +@frame: + + + + + + + +@template: +@alias: + + + + + + + +@template: +@Returns: + + + + + + + +@template1: +@template2: +@Returns: + + + + + + + +@template: +@brand: +@Returns: + + + + + + + +@template: +@paper_id: +@Returns: + + + + + + + +@template: +@category_id: +@Returns: + + + + + + + +@brand: +@part: +@Returns: + + + + + + + +@orig_alias: +@Returns: + + + + + + + +@alias: + + + + + + + +@id: +@w: +@h: +@r: +@x_waste: +@y_waste: +@Returns: + + + + + + + +@id: +@r: +@waste: +@Returns: + + + + + + + +@id: +@r1: +@r2: +@w: +@h: +@waste: +@Returns: + + + + + + + +@orig_frame: +@Returns: + + + + + + + +@frame: + + + + + + + +@frame: +@layout: + + + + + + + +@frame: +@markup: + + + + + + + +@frame: +@w: +@h: + + + + + + + +@frame: +@Returns: + + + + + + + +@frame: +@Returns: + + + + + + + +@nx: +@ny: +@x0: +@y0: +@dx: +@dy: +@Returns: + + + + + + + +@orig_layout: +@Returns: + + + + + + + +@layout: + + + + + + + +@size: +@Returns: + + + + + + + +@x1: +@y1: +@x2: +@y2: +@Returns: + + + + + + + +@x0: +@y0: +@r: +@Returns: + + + + + + + +@x1: +@y1: +@w: +@h: +@r: +@Returns: + + + + + + + +@orig_markup: +@Returns: + + + + + + + +@markup: + + diff --git a/docs/libglabels/tmpl/xml-category.sgml b/docs/libglabels/tmpl/xml-category.sgml new file mode 100644 index 00000000..f22b59ed --- /dev/null +++ b/docs/libglabels/tmpl/xml-category.sgml @@ -0,0 +1,47 @@ + +XML Category Functions + + +Functions to parse glabels XML category definition files + + + +This section describes a number of functions for parsing glabels +XML category definition files. + + + + + + + + + + + + + + + +@utf8_filename: +@Returns: + + + + + + + +@categories_doc: +@Returns: + + + + + + + +@category_node: +@Returns: + + diff --git a/docs/libglabels/tmpl/xml-paper.sgml b/docs/libglabels/tmpl/xml-paper.sgml new file mode 100644 index 00000000..0909d2cf --- /dev/null +++ b/docs/libglabels/tmpl/xml-paper.sgml @@ -0,0 +1,47 @@ + +XML Paper Functions + + +Functions to parse glabels XML paper definition files + + + +This section describes a number of functions for parsing glabels +XML paper definition files. + + + + + + + + + + + + + + + +@utf8_filename: +@Returns: + + + + + + + +@papers_doc: +@Returns: + + + + + + + +@paper_node: +@Returns: + + diff --git a/docs/libglabels/tmpl/xml-template.sgml b/docs/libglabels/tmpl/xml-template.sgml new file mode 100644 index 00000000..071a08ab --- /dev/null +++ b/docs/libglabels/tmpl/xml-template.sgml @@ -0,0 +1,78 @@ + +XML Template Functions + + +Functions to create and parse glabels XML template nodes and files + + + +This section describes a number of functions for creating and parsing +glabels XML template nodes and files. Template nodes are used in both +template files and document files. + + + + + + + + + + + + + + + +@utf8_filename: +@Returns: + + + + + + + +@templates_doc: +@Returns: + + + + + + + +@template_node: +@Returns: + + + + + + + +@templates: +@utf8_filename: +@Returns: + + + + + + + +@template: +@utf8_filename: +@Returns: + + + + + + + +@template: +@root: +@ns: + + diff --git a/docs/libglabels/tmpl/xml.sgml b/docs/libglabels/tmpl/xml.sgml new file mode 100644 index 00000000..e0803379 --- /dev/null +++ b/docs/libglabels/tmpl/xml.sgml @@ -0,0 +1,194 @@ + +XML Helper Functions + + +Functions to help format and parse glabels XML properties + + + +This section describes a number of "helper" functions for formatting and +parsing various types of properties for tags in glabels XML file formats. + + +These functions are basically wrappers to functions from libxml2. + + + + + + + + + + + + + + + + + + + + + + +@node: +@property: +@default_val: +@Returns: + + + + + + + +@node: +@property: +@default_val: +@Returns: + + + + + + + +@node: +@property: +@default_val: +@Returns: + + + + + + + +@node: +@property: +@default_val: +@Returns: + + + + + + + +@node: +@property: +@default_val: +@Returns: + + + + + + + +@node: +@property: +@default_val: +@Returns: + + + + + + + +@node: +@property: +@default_val: +@Returns: + + + + + + + +@node: +@property: +@val: + + + + + + + +@node: +@property: +@val: + + + + + + + +@node: +@property: +@val: + + + + + + + +@node: +@property: +@val: + + + + + + + +@node: +@property: +@val: + + + + + + + +@node: +@property: +@val: + + + + + + + +@node: +@name: +@Returns: + + + + + + + +@node: +@Returns: + + + + + + + +@units: + + diff --git a/docs/libglabels/xml/api-index-deprecated.xml b/docs/libglabels/xml/api-index-deprecated.xml new file mode 100644 index 00000000..3041b733 --- /dev/null +++ b/docs/libglabels/xml/api-index-deprecated.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/docs/libglabels/xml/api-index-full.xml b/docs/libglabels/xml/api-index-full.xml new file mode 100644 index 00000000..23d767e5 --- /dev/null +++ b/docs/libglabels/xml/api-index-full.xml @@ -0,0 +1,130 @@ + + + + +L +lglCategory +lglDbRegStatus +lglPaper +lglTemplate +lglTemplateAlias +lglTemplateFrame +lglTemplateFrameAll +lglTemplateFrameCD +lglTemplateFrameRect +lglTemplateFrameRound +lglTemplateFrameShape +lglTemplateLayout +lglTemplateMarkup +lglTemplateMarkupCircle +lglTemplateMarkupLine +lglTemplateMarkupMargin +lglTemplateMarkupRect +lglTemplateMarkupType +lglTemplateOrigin +lglUnitsType +lgl_category_dup +lgl_category_free +lgl_category_new +lgl_db_does_template_exist +lgl_db_does_template_name_exist +lgl_db_free_brand_list +lgl_db_free_category_id_list +lgl_db_free_category_name_list +lgl_db_free_paper_id_list +lgl_db_free_paper_name_list +lgl_db_free_template_name_list +lgl_db_get_brand_list +lgl_db_get_category_id_list +lgl_db_get_category_name_list +lgl_db_get_paper_id_list +lgl_db_get_paper_name_list +lgl_db_get_template_name_list_all +lgl_db_get_template_name_list_unique +lgl_db_init +lgl_db_is_category_id_known +lgl_db_is_paper_id_known +lgl_db_is_paper_id_other +lgl_db_lookup_category_from_id +lgl_db_lookup_category_from_name +lgl_db_lookup_category_id_from_name +lgl_db_lookup_category_name_from_id +lgl_db_lookup_paper_from_id +lgl_db_lookup_paper_from_name +lgl_db_lookup_paper_id_from_name +lgl_db_lookup_paper_name_from_id +lgl_db_lookup_template_from_name +lgl_db_print_aliases +lgl_db_print_known_categories +lgl_db_print_known_papers +lgl_db_print_known_templates +lgl_db_register_template +lgl_paper_dup +lgl_paper_free +lgl_paper_new +lgl_str_utf8_casecmp +lgl_template_add_alias +lgl_template_add_category +lgl_template_add_frame +lgl_template_alias_dup +lgl_template_alias_free +lgl_template_alias_new +lgl_template_does_brand_match +lgl_template_does_category_match +lgl_template_does_page_size_match +lgl_template_do_templates_match +lgl_template_dup +lgl_template_frame_add_layout +lgl_template_frame_add_markup +lgl_template_frame_cd_new +lgl_template_frame_dup +lgl_template_frame_free +lgl_template_frame_get_n_labels +lgl_template_frame_get_origins +lgl_template_frame_get_size +lgl_template_frame_rect_new +lgl_template_frame_round_new +lgl_template_free +lgl_template_get_name +lgl_template_layout_dup +lgl_template_layout_free +lgl_template_layout_new +lgl_template_markup_circle_new +lgl_template_markup_dup +lgl_template_markup_free +lgl_template_markup_line_new +lgl_template_markup_margin_new +lgl_template_markup_rect_new +lgl_template_new +lgl_xml_category_parse_categories_doc +lgl_xml_category_parse_category_node +lgl_xml_category_read_categories_from_file +lgl_xml_get_node_content +lgl_xml_get_prop_boolean +lgl_xml_get_prop_double +lgl_xml_get_prop_i18n_string +lgl_xml_get_prop_int +lgl_xml_get_prop_length +lgl_xml_get_prop_string +lgl_xml_get_prop_uint +lgl_xml_is_node +LGL_XML_NAME_SPACE +lgl_xml_paper_parse_papers_doc +lgl_xml_paper_parse_paper_node +lgl_xml_paper_read_papers_from_file +lgl_xml_set_default_units +lgl_xml_set_prop_boolean +lgl_xml_set_prop_double +lgl_xml_set_prop_int +lgl_xml_set_prop_length +lgl_xml_set_prop_string +lgl_xml_set_prop_uint_hex +lgl_xml_template_create_template_node +lgl_xml_template_parse_templates_doc +lgl_xml_template_parse_template_node +lgl_xml_template_read_templates_from_file +lgl_xml_template_write_templates_to_file +lgl_xml_template_write_template_to_file + + diff --git a/docs/libglabels/xml/category.xml b/docs/libglabels/xml/category.xml new file mode 100644 index 00000000..0ec3249e --- /dev/null +++ b/docs/libglabels/xml/category.xml @@ -0,0 +1,121 @@ + + + + + +The lglCategory Structure +3 +LIBGLABELS Library + + + +The lglCategory Structure +Template category definitions + + + +Synopsis + + + +#include <libglabels/category.h> + + lglCategory; +lglCategory * lgl_category_new (gchar *id, + gchar *name); +lglCategory * lgl_category_dup (const lglCategory *orig); +void lgl_category_free (lglCategory *category); + + + + + + + + + + + + +Description + +This section describes a structure for representing a category of stationary and related +functions. + + + + +Details + +lglCategory +lglCategorytypedef struct { + gchar *id; /* Unique ID of category */ + gchar *name; /* Localized name of category */ +} lglCategory; + + +This structure defines a category. + + +gchar *id; +Category ID. + + + +gchar *name; +Localized category name. + + + + +lgl_category_new () +lgl_category_newlglCategory * lgl_category_new (gchar *id, + gchar *name); + +Allocates and constructs a new lglCategory structure. + + +id : + Id of category definition. (E.g. label, card, etc.) Should be + unique. + +name : + Localized name of category. + +Returns : a pointer to a newly allocated lglCategory structure. + + + + +lgl_category_dup () +lgl_category_duplglCategory * lgl_category_dup (const lglCategory *orig); + +Duplicates an existing lglCategory structure. + + +orig : + lglCategory structure to be duplicated. + +Returns : a pointer to a newly allocated lglCategory structure. + + + + +lgl_category_free () +lgl_category_freevoid lgl_category_free (lglCategory *category); + +Free all memory associated with an existing lglCategory structure. + + +category : + pointer to lglCategory structure to be freed. + + + + + + + + + diff --git a/docs/libglabels/xml/db.xml b/docs/libglabels/xml/db.xml new file mode 100644 index 00000000..eff5a295 --- /dev/null +++ b/docs/libglabels/xml/db.xml @@ -0,0 +1,587 @@ + + + + + +Database +3 +LIBGLABELS Library + + + +Database +Database of pre-defined templates + + + +Synopsis + + + +#include <libglabels/db.h> + +enum lglDbRegStatus; + +void lgl_db_init (void); + +GList * lgl_db_get_paper_id_list (void); +void lgl_db_free_paper_id_list (GList *ids); +GList * lgl_db_get_paper_name_list (void); +void lgl_db_free_paper_name_list (GList *names); +lglPaper * lgl_db_lookup_paper_from_id (const gchar *id); +lglPaper * lgl_db_lookup_paper_from_name (const gchar *name); +gchar * lgl_db_lookup_paper_id_from_name (const gchar *name); +gchar * lgl_db_lookup_paper_name_from_id (const gchar *id); +gboolean lgl_db_is_paper_id_known (const gchar *id); +gboolean lgl_db_is_paper_id_other (const gchar *id); + +GList * lgl_db_get_category_id_list (void); +void lgl_db_free_category_id_list (GList *ids); +GList * lgl_db_get_category_name_list (void); +void lgl_db_free_category_name_list (GList *names); +lglCategory * lgl_db_lookup_category_from_id (const gchar *id); +lglCategory * lgl_db_lookup_category_from_name (const gchar *name); +gchar * lgl_db_lookup_category_id_from_name (const gchar *name); +gchar * lgl_db_lookup_category_name_from_id (const gchar *id); +gboolean lgl_db_is_category_id_known (const gchar *id); + +GList * lgl_db_get_brand_list (const gchar *paper_id, + const gchar *category_id); +void lgl_db_free_brand_list (GList *brands); + +lglDbRegStatus lgl_db_register_template (const lglTemplate *template); +gboolean lgl_db_does_template_exist (const gchar *brand, + const gchar *part); +gboolean lgl_db_does_template_name_exist (const gchar *name); +GList * lgl_db_get_template_name_list_unique + (const gchar *brand, + const gchar *paper_id, + const gchar *category_id); +GList * lgl_db_get_template_name_list_all (const gchar *brand, + const gchar *paper_id, + const gchar *category_id); +void lgl_db_free_template_name_list (GList *names); +lglTemplate * lgl_db_lookup_template_from_name (const gchar *name); + +void lgl_db_print_known_papers (void); +void lgl_db_print_known_categories (void); +void lgl_db_print_known_templates (void); +void lgl_db_print_aliases (const lglTemplate *template); + + + + + + + + + + + + +Description + +This section describes a set of functions to locate and add templates and related information in +the LibGlabels template database. + + + + +Details + +enum lglDbRegStatus +lglDbRegStatustypedef enum +{ + LGL_DB_REG_OK = 0, + LGL_DB_REG_BAD_PAPER_ID = -1, + LGL_DB_REG_BRAND_PART_EXISTS = -2, + LGL_DB_REG_FILE_WRITE_ERROR = -3 +} lglDbRegStatus; + + +This enumeration defines a set of possible return values for lgl_db_register_template(). + + +LGL_DB_REG_OK +Registration successful. + + + +LGL_DB_REG_BAD_PAPER_ID + Registration failed because paper id is unknown. + + + +LGL_DB_REG_BRAND_PART_EXISTS +Registration failed because template with same brand and part name/number already exists. + + + +LGL_DB_REG_FILE_WRITE_ERROR +Registration failed because an error while writing to disk. + + + + +lgl_db_init () +lgl_db_initvoid lgl_db_init (void); + +Initialize all libglabels subsystems. It is not necessary for an application to call +lgl_db_init(), because libglabels will initialize on demand. An application programmer may +choose to call lgl_db_init() at startup to minimize the impact of the first libglabels call +on GUI response time. + + +This function initializes its paper definitions, category definitions, and its template +database.. It will search both system and user template directories to locate +this data. + + + +lgl_db_get_paper_id_list () +lgl_db_get_paper_id_listGList * lgl_db_get_paper_id_list (void); + +Get a list of all paper ids known to libglabels. + + +Returns : a list of paper ids. + + + + +lgl_db_free_paper_id_list () +lgl_db_free_paper_id_listvoid lgl_db_free_paper_id_list (GList *ids); + +Free up all storage associated with an id list obtained with +lgl_db_get_paper_id_list(). + + +ids : + List of id strings to be freed. + + + +lgl_db_get_paper_name_list () +lgl_db_get_paper_name_listGList * lgl_db_get_paper_name_list (void); + +Get a list of all localized paper names known to libglabels. + + +Returns : a list of localized paper names. + + + + +lgl_db_free_paper_name_list () +lgl_db_free_paper_name_listvoid lgl_db_free_paper_name_list (GList *names); + +Free up all storage associated with a name list obtained with +lgl_db_get_paper_name_list(). + + +names : + List of localized paper name strings to be freed. + + + +lgl_db_lookup_paper_from_id () +lgl_db_lookup_paper_from_idlglPaper * lgl_db_lookup_paper_from_id (const gchar *id); + +Lookup paper definition from id string. + + +id : + paper id string + +Returns : pointer to a newly allocated lglPaper structure. + + + + +lgl_db_lookup_paper_from_name () +lgl_db_lookup_paper_from_namelglPaper * lgl_db_lookup_paper_from_name (const gchar *name); + +Lookup paper definition from localized paper name string. + + +name : + localized paper name string + +Returns : pointer to a newly allocated lglPaper structure. + + + + +lgl_db_lookup_paper_id_from_name () +lgl_db_lookup_paper_id_from_namegchar * lgl_db_lookup_paper_id_from_name (const gchar *name); + +Lookup paper name string from localized paper name string. + + +name : + localized paper name stringp + +Returns : pointer to a newly allocated id string. + + + + +lgl_db_lookup_paper_name_from_id () +lgl_db_lookup_paper_name_from_idgchar * lgl_db_lookup_paper_name_from_id (const gchar *id); + +Lookup localized paper name string from paper id string. + + +id : + paper id string + +Returns : pointer to a newly allocated localized paper name string. + + + + +lgl_db_is_paper_id_known () +lgl_db_is_paper_id_knowngboolean lgl_db_is_paper_id_known (const gchar *id); + +Determine if given paper id is known to libglabels. + + +id : + paper id to test + +Returns : TRUE if id is known, otherwise FALSE. + + + + +lgl_db_is_paper_id_other () +lgl_db_is_paper_id_othergboolean lgl_db_is_paper_id_other (const gchar *id); + +Determine if given paper id is the special id "Other." + + +id : + paper id to test + +Returns : TRUE if id is "Other", otherwise FALSE. + + + + +lgl_db_get_category_id_list () +lgl_db_get_category_id_listGList * lgl_db_get_category_id_list (void); + +Get a list of all category ids known to libglabels. + + +Returns : a list of category ids. + + + + +lgl_db_free_category_id_list () +lgl_db_free_category_id_listvoid lgl_db_free_category_id_list (GList *ids); + +Free up all storage associated with an id list obtained with +lgl_db_get_category_id_list(). + + +ids : + List of id strings to be freed. + + + +lgl_db_get_category_name_list () +lgl_db_get_category_name_listGList * lgl_db_get_category_name_list (void); + +Get a list of all localized category names known to libglabels. + + +Returns : a list of localized category names. + + + + +lgl_db_free_category_name_list () +lgl_db_free_category_name_listvoid lgl_db_free_category_name_list (GList *names); + +Free up all storage associated with a name list obtained with +lgl_db_get_category_name_list(). + + +names : + List of localized category name strings to be freed. + + + +lgl_db_lookup_category_from_id () +lgl_db_lookup_category_from_idlglCategory * lgl_db_lookup_category_from_id (const gchar *id); + +Lookup category definition from id string. + + +id : + category id string + +Returns : pointer to a newly allocated lglCategory structure. + + + + +lgl_db_lookup_category_from_name () +lgl_db_lookup_category_from_namelglCategory * lgl_db_lookup_category_from_name (const gchar *name); + +Lookup category definition from localized category name string. + + +name : + localized category name string + +Returns : pointer to a newly allocated lglCategory structure. + + + + +lgl_db_lookup_category_id_from_name () +lgl_db_lookup_category_id_from_namegchar * lgl_db_lookup_category_id_from_name (const gchar *name); + +Lookup category name string from localized category name string. + + +name : + localized category name stringp + +Returns : pointer to a newly allocated id string. + + + + +lgl_db_lookup_category_name_from_id () +lgl_db_lookup_category_name_from_idgchar * lgl_db_lookup_category_name_from_id (const gchar *id); + +Lookup localized category name string from category id string. + + +id : + category id string + +Returns : pointer to a newly allocated localized category name string. + + + + +lgl_db_is_category_id_known () +lgl_db_is_category_id_knowngboolean lgl_db_is_category_id_known (const gchar *id); + +Determine if given category id is known to libglabels. + + +id : + category id to test + +Returns : TRUE if id is known, otherwise FALSE. + + + + +lgl_db_get_brand_list () +lgl_db_get_brand_listGList * lgl_db_get_brand_list (const gchar *paper_id, + const gchar *category_id); + +Get a list of all valid brands of templates in the template database. +Results can be filtered by page size and/or template category. A list of valid page +sizes can be obtained using lgl_db_get_paper_id_list(). A list of valid template +categories can be obtained using lgl_db_get_category_id_list(). + + +paper_id : + If non NULL, limit results to given page size. + +category_id : + If non NULL, limit results to given template category. + +Returns : a list of brands + + + +lgl_db_free_brand_list () +lgl_db_free_brand_listvoid lgl_db_free_brand_list (GList *brands); + +Free up all storage associated with a list of template names obtained with +lgl_db_get_brand_list(). + + +brands : + List of template brand strings to be freed. + + + +lgl_db_register_template () +lgl_db_register_templatelglDbRegStatus lgl_db_register_template (const lglTemplate *template); + +Register a template. This function adds a template to the template database. +The template will be stored in an individual XML file in the user template directory. + + +template : + Pointer to a template structure to add to database. + +Returns : Status of registration attempt (lglDbRegStatus) + + + +lgl_db_does_template_exist () +lgl_db_does_template_existgboolean lgl_db_does_template_exist (const gchar *brand, + const gchar *part); + +This function tests whether a template with the given brand and part name/number exists. + + +brand : + Brand name. + +part : + Part name/number. + +Returns : TRUE if such a template exists in the database. + + + +lgl_db_does_template_name_exist () +lgl_db_does_template_name_existgboolean lgl_db_does_template_name_exist (const gchar *name); + +This function test whether a template with the given name exists. + + +name : + name string + +Returns : TRUE if such a template exists in the database. + + + + +lgl_db_get_template_name_list_unique () +lgl_db_get_template_name_list_uniqueGList * lgl_db_get_template_name_list_unique + (const gchar *brand, + const gchar *paper_id, + const gchar *category_id); + +Get a list of valid names of unique templates in the template database. Results +can be filtered by page size and/or template category. A list of valid page sizes +can be obtained using lgl_db_get_paper_id_list(). A list of valid template categories +can be obtained using lgl_db_get_category_id_list(). + + +This function differs from lgl_db_get_template_name_list_all(), because it does not +return multiple names for the same template. + + +brand : + If non NULL, limit results to given brand + +paper_id : + If non NULL, limit results to given page size. + +category_id : + If non NULL, limit results to given template category. + +Returns : a list of template names. + + + +lgl_db_get_template_name_list_all () +lgl_db_get_template_name_list_allGList * lgl_db_get_template_name_list_all (const gchar *brand, + const gchar *paper_id, + const gchar *category_id); + +Get a list of all valid names and aliases of templates in the template database. +Results can be filtered by page size and/or template category. A list of valid page +sizes can be obtained using lgl_db_get_paper_id_list(). A list of valid template +categories can be obtained using lgl_db_get_category_id_list(). + + +This function differs from lgl_db_get_template_name_list_unique(), because it will +return multiple names for the same template. + + +brand : + If non NULL, limit results to given brand + +paper_id : + If non NULL, limit results to given page size. + +category_id : + If non NULL, limit results to given template category. + +Returns : a list of template names and aliases. + + + +lgl_db_free_template_name_list () +lgl_db_free_template_name_listvoid lgl_db_free_template_name_list (GList *names); + +Free up all storage associated with a list of template names obtained with +lgl_db_get_template_name_list_all() or lgl_db_get_template_name_list_unique(). + + +names : + List of template name strings to be freed. + + + +lgl_db_lookup_template_from_name () +lgl_db_lookup_template_from_namelglTemplate * lgl_db_lookup_template_from_name (const gchar *name); + +Lookup template in template database from name string. + + +name : + name string + +Returns : pointer to a newly allocated lglTemplate structure. + + + + +lgl_db_print_known_papers () +lgl_db_print_known_papersvoid lgl_db_print_known_papers (void); + +For debugging purposes: print a list of all paper definitions known to +libglabels. + + + +lgl_db_print_known_categories () +lgl_db_print_known_categoriesvoid lgl_db_print_known_categories (void); + +For debugging purposes: print a list of all category definitions known to +libglabels. + + + +lgl_db_print_known_templates () +lgl_db_print_known_templatesvoid lgl_db_print_known_templates (void); + +Print all known templates (for debugging purposes). + + + +lgl_db_print_aliases () +lgl_db_print_aliasesvoid lgl_db_print_aliases (const lglTemplate *template); + +Print all aliases of a template (for debugging purposes). + + +template : + template + + + + + + + + + diff --git a/docs/libglabels/xml/enums.xml b/docs/libglabels/xml/enums.xml new file mode 100644 index 00000000..55a90008 --- /dev/null +++ b/docs/libglabels/xml/enums.xml @@ -0,0 +1,104 @@ + + + + + +Enumerations +3 +LIBGLABELS Library + + + +Enumerations +Common enumerations used by libglabels + + + +Synopsis + + + +#include <libglabels/enums.h> + +enum lglUnitsType; + + + + + + + + + + + + +Description + +This section defines enumerations used to interact with libglabels. + + + + +Details + +enum lglUnitsType +lglUnitsTypetypedef enum { + LGL_UNITS_POINT, /* encoded as "pt" */ + LGL_UNITS_INCH, /* encoded as "in" */ + LGL_UNITS_MM, /* encoded as "mm" */ + LGL_UNITS_CM, /* encoded as "cm" */ + LGL_UNITS_PICA, /* encoded as "pc" */ + + LGL_UNITS_FIRST = LGL_UNITS_POINT, + LGL_UNITS_LAST = LGL_UNITS_PICA, +} lglUnitsType; + + +This enumeration defines a set of units of distance supported by the libglabels XML distance +attributes. + + +LGL_UNITS_POINT +Points. Encoded as "pt" in XML distance attributes. + + + +LGL_UNITS_INCH +Inches. Encoded as "in" in XML distance attributes. + + + +LGL_UNITS_MM +Millmeters. Encoded as "mm" in XML distance attributes. + + + +LGL_UNITS_CM +Centimeters. Encoded as "cm" in XML distance attributes. + + + +LGL_UNITS_PICA +Picas. Encoded as "pc" in XML distance attributes. + + + +LGL_UNITS_FIRST +First enumeration. Used for generic iteration through supported units.. + + + +LGL_UNITS_LAST +Last enumeration. Used for generic iteration through supported units. + + + + + + + + + + diff --git a/docs/libglabels/xml/paper.xml b/docs/libglabels/xml/paper.xml new file mode 100644 index 00000000..1a1abcf7 --- /dev/null +++ b/docs/libglabels/xml/paper.xml @@ -0,0 +1,154 @@ + + + + + +The lglPaper Structure +3 +LIBGLABELS Library + + + +The lglPaper Structure +Paper size definitions + + + +Synopsis + + + +#include <libglabels/paper.h> + + lglPaper; +lglPaper * lgl_paper_new (gchar *id, + gchar *name, + gdouble width, + gdouble height, + gchar *pwg_size); +lglPaper * lgl_paper_dup (const lglPaper *orig); +void lgl_paper_free (lglPaper *paper); + + + + + + + + + + + + +Description + +This section describes a structure for representing a paper size definition +and related functions. + + + + +Details + +lglPaper +lglPapertypedef struct { + gchar *id; /* Unique ID of paper definition */ + gchar *name; /* Localized name of paper */ + gdouble width; /* Width (in points) */ + gdouble height; /* Height (in points) */ + gchar *pwg_size; /* PWG 5101.1-2002 size name */ +} lglPaper; + + +This structure defines a paper (page) size. + + +gchar *id; +Paper size ID. + + + +gchar *name; +Localized paper size name. + + + +gdouble width; +Width of paper in points. + + + +gdouble height; +Height of paper in points. + + + +gchar *pwg_size; +PWG 5101.1-2002 size name. + + + + +lgl_paper_new () +lgl_paper_newlglPaper * lgl_paper_new (gchar *id, + gchar *name, + gdouble width, + gdouble height, + gchar *pwg_size); + +Allocates and constructs a new lglPaper structure. + + +id : + Id of paper definition. (E.g. US-Letter, A4, etc.) Should be + unique. + +name : + Localized name of paper. + +width : + Width of paper in points. + +height : + Height of paper in points. + +pwg_size : + PWG 5101.1-2002 size name. + +Returns : a pointer to a newly allocated lglPaper structure. + + + + +lgl_paper_dup () +lgl_paper_duplglPaper * lgl_paper_dup (const lglPaper *orig); + +Duplicates an existing lglPaper structure. + + +orig : + lglPaper structure to be duplicated. + +Returns : a pointer to a newly allocated lglPaper structure. + + + + +lgl_paper_free () +lgl_paper_freevoid lgl_paper_free (lglPaper *paper); + +Free all memory associated with an existing lglPaper structure. + + +paper : + pointer to lglPaper structure to be freed. + + + + + + + + + diff --git a/docs/libglabels/xml/str.xml b/docs/libglabels/xml/str.xml new file mode 100644 index 00000000..7071c107 --- /dev/null +++ b/docs/libglabels/xml/str.xml @@ -0,0 +1,76 @@ + + + + + +String Utility Functions +3 +LIBGLABELS Library + + + +String Utility Functions +String utility functions provided by libglabels + + + +Synopsis + + + +#include <libglabels/str.h> + +gint lgl_str_utf8_casecmp (const gchar *s1, + const gchar *s2); + + + + + + + + + + + + +Description + +This section defines string utility functions used by libglabels and of +possible use to a user of libglabels. + + + + +Details + +lgl_str_utf8_casecmp () +lgl_str_utf8_casecmpgint lgl_str_utf8_casecmp (const gchar *s1, + const gchar *s2); + +Compare two UTF-8 strings, ignoring the case of characters. + + +This function should be used only on strings that are known to be encoded +in UTF-8 or a compatible UTF-8 subset. + + +s1 : + string to compare with s2. + +s2 : + string to compare with s1. + +Returns : 0 if the strings match, a negative value if s1 < s2, + or a positive value if s1 > s2. + + + + + + + + + + diff --git a/docs/libglabels/xml/template.xml b/docs/libglabels/xml/template.xml new file mode 100644 index 00000000..6e81f96d --- /dev/null +++ b/docs/libglabels/xml/template.xml @@ -0,0 +1,1391 @@ + + + + + +The lglTemplate Structure +3 +LIBGLABELS Library + + + +The lglTemplate Structure +How templates are represented in memory + + + +Synopsis + + + +#include <libglabels/template.h> + + lglTemplate; + + lglTemplateAlias; + +enum lglTemplateFrameShape; +union lglTemplateFrame; + lglTemplateFrameAll; + lglTemplateFrameRect; + lglTemplateFrameRound; + lglTemplateFrameCD; + + lglTemplateLayout; + +enum lglTemplateMarkupType; +union lglTemplateMarkup; + lglTemplateMarkupMargin; + lglTemplateMarkupLine; + lglTemplateMarkupCircle; + lglTemplateMarkupRect; + + lglTemplateOrigin; + +lglTemplate * lgl_template_new (const gchar *brand, + const gchar *part, + const gchar *description, + const gchar *paper_id, + gdouble page_width, + gdouble page_height); +lglTemplate * lgl_template_dup (const lglTemplate *orig_template); +void lgl_template_free (lglTemplate *template); +void lgl_template_add_category (lglTemplate *template, + const gchar *category_id); +void lgl_template_add_frame (lglTemplate *template, + lglTemplateFrame *frame); +void lgl_template_add_alias (lglTemplate *template, + lglTemplateAlias *alias); + +gchar * lgl_template_get_name (const lglTemplate *template); +gboolean lgl_template_do_templates_match (const lglTemplate *template1, + const lglTemplate *template2); +gboolean lgl_template_does_brand_match (const lglTemplate *template, + const gchar *brand); +gboolean lgl_template_does_page_size_match (const lglTemplate *template, + const gchar *paper_id); +gboolean lgl_template_does_category_match (const lglTemplate *template, + const gchar *category_id); + +lglTemplateAlias * lgl_template_alias_new (const gchar *brand, + const gchar *part); +lglTemplateAlias * lgl_template_alias_dup (const lglTemplateAlias *orig_alias); +void lgl_template_alias_free (lglTemplateAlias *alias); + +lglTemplateFrame * lgl_template_frame_rect_new (const gchar *id, + gdouble w, + gdouble h, + gdouble r, + gdouble x_waste, + gdouble y_waste); +lglTemplateFrame * lgl_template_frame_round_new (const gchar *id, + gdouble r, + gdouble waste); +lglTemplateFrame * lgl_template_frame_cd_new (const gchar *id, + gdouble r1, + gdouble r2, + gdouble w, + gdouble h, + gdouble waste); +lglTemplateFrame * lgl_template_frame_dup (const lglTemplateFrame *orig_frame); +void lgl_template_frame_free (lglTemplateFrame *frame); +void lgl_template_frame_add_layout (lglTemplateFrame *frame, + lglTemplateLayout *layout); +void lgl_template_frame_add_markup (lglTemplateFrame *frame, + lglTemplateMarkup *markup); + +void lgl_template_frame_get_size (const lglTemplateFrame *frame, + gdouble *w, + gdouble *h); +gint lgl_template_frame_get_n_labels (const lglTemplateFrame *frame); +lglTemplateOrigin * lgl_template_frame_get_origins (const lglTemplateFrame *frame); + +lglTemplateLayout * lgl_template_layout_new (gint nx, + gint ny, + gdouble x0, + gdouble y0, + gdouble dx, + gdouble dy); +lglTemplateLayout * lgl_template_layout_dup (const lglTemplateLayout *orig_layout); +void lgl_template_layout_free (lglTemplateLayout *layout); + +lglTemplateMarkup * lgl_template_markup_margin_new (gdouble size); +lglTemplateMarkup * lgl_template_markup_line_new (gdouble x1, + gdouble y1, + gdouble x2, + gdouble y2); +lglTemplateMarkup * lgl_template_markup_circle_new (gdouble x0, + gdouble y0, + gdouble r); +lglTemplateMarkup * lgl_template_markup_rect_new (gdouble x1, + gdouble y1, + gdouble w, + gdouble h, + gdouble r); +lglTemplateMarkup * lgl_template_markup_dup (const lglTemplateMarkup *orig_markup); +void lgl_template_markup_free (lglTemplateMarkup *markup); + + + + + + + + + + + + +Description + +This section describes a set of structures that represent a template in memory. It also +describes functions to help create and interpret these structures. + + + + +Details + +lglTemplate +lglTemplatetypedef struct { + gchar *brand; + gchar *part; + gchar *description; + gchar *paper_id; + gdouble page_width; + gdouble page_height; + + /* List of (lglTemplateAlias *) aliase structures. */ + GList *aliases; + + /* List of (gchar *) category ids. */ + GList *category_ids; + + /* List of (lglTemplateFrame *) label frame structures. + * Currently glabels only supports a single label frame per + * template. */ + GList *frames; +} lglTemplate; + + +This is the main structure of a libglabels template. A template represents a single sheet +of peel-off labels or cards. + + +gchar *brand; +Brand name of label or card. E.g. "Avery." + + + +gchar *part; +Part name or number of label or card. E.g. "8160." + + + +gchar *description; +A description of the template. E.g. "Mailing labels." + + + +gchar *paper_id; +A paper ID. E.g. "A4" or "US-Letter." + + + +gdouble page_width; +Page width in points. Used only if paper_id is "Other." + + + +gdouble page_height; +Page height in points. Used only if paper_id is "Other." + + + +GList *aliases; +A list of alternate names for this template. Often a single template can be used for +multiple products. + + + +GList *category_ids; +A list of category IDs that this template belongs to. + + + +GList *frames; +A list of (lglTemplateFrame *) structures. GLabels currently only supports one frame +per template -- future versions may support multiple frames per template. + + + + +lglTemplateAlias +lglTemplateAliastypedef struct { + gchar *brand; + gchar *part; +} lglTemplateAlias; + + +This structure defines an alias for the parent template structure. An alias is used for +different products that can use the same template. + + +gchar *brand; +Brand name of label or card. E.g. "Avery." + + + +gchar *part; +Part name or number of label or card. E.g. "8160." + + + + +enum lglTemplateFrameShape +lglTemplateFrameShapetypedef enum { + LGL_TEMPLATE_FRAME_SHAPE_RECT, + LGL_TEMPLATE_FRAME_SHAPE_ROUND, + LGL_TEMPLATE_FRAME_SHAPE_CD, +} lglTemplateFrameShape; + + +This enumeration defines frame types that are supported by libglabels + + +LGL_TEMPLATE_FRAME_SHAPE_RECT +A rectangular frame. (May have rounded corners.) + + + +LGL_TEMPLATE_FRAME_SHAPE_ROUND +A round frame. + + + +LGL_TEMPLATE_FRAME_SHAPE_CD +A CD or DVD frame. (Includes credit-card style CDs.) + + + + +union lglTemplateFrame +lglTemplateFrameunion lglTemplateFrame{ + + lglTemplateFrameShape shape; + + lglTemplateFrameAll all; + lglTemplateFrameRect rect; + lglTemplateFrameRound round; + lglTemplateFrameCD cd; +}; + + +A union of all possible frame structures. The type of structure is indicated by the shape +member, which overlays the first field of all other member structures. + + +lglTemplateFrameAll +lglTemplateFrameAlltypedef struct { + /* Begin Common Fields */ + lglTemplateFrameShape shape; + + gchar *id; /* Id, currently always "0" */ + GList *layouts; /* List of lglTemplateLayouts */ + GList *markups; /* List of lglTemplateMarkups */ + /* End Common Fields */ +} lglTemplateFrameAll; + + +This structure is composed of a set of fields common to all frame structures. All frame types +can be cast to this structure. + + +lglTemplateFrameShape shape; +The shape of the frame. + + + +gchar *id; +Reserved for future use. Should always be zero. + + + +GList *layouts; +A list of (lglTemplateLayout *) structures. Typically a frame will have a single +layout, representing a simple grid of labels or cards. If the layout of labels or cards is +more complex, multiple (lglTemplateLayout *) structures may be needed. + + + +GList *markups; +A list of (lglTemplateMarkup *) structures, which represent non-printing markup lines. + + + + +lglTemplateFrameRect +lglTemplateFrameRecttypedef struct { + /* Begin Common Fields */ + lglTemplateFrameShape shape; /* Always LGL_TEMPLATE_FRAME_SHAPE_RECT. */ + + gchar *id; /* Id, currently always "0" */ + GList *layouts; /* List of lglTemplateLayouts */ + GList *markups; /* List of lglTemplateMarkups */ + /* End Common Fields */ + + gdouble w; /* Width */ + gdouble h; /* Height */ + gdouble r; /* Corner radius */ + gdouble x_waste; /* Amount of horiz overprint allowed. */ + gdouble y_waste; /* Amount of vert overprint allowed. */ +} lglTemplateFrameRect; + + +This structure defines the frame for a rectangular label or card. + + +lglTemplateFrameShape shape; +Common field. Always LGL_TEMPLATE_FRAME_SHAPE_RECT for lglTemplateFrameRect. + + + +gchar *id; +Common field. See lglTemplateFrameAll. + + + +GList *layouts; + Common field. See lglTemplateFrameAll. + + + +GList *markups; + Common field. See lglTemplateFrameAll. + + + +gdouble w; +Width of label or card in points. + + + +gdouble h; +Height of label or card in points. + + + +gdouble r; +Radius of corners in points. + + + +gdouble x_waste; +Amount of horizontal over-print to allow in points. + + + +gdouble y_waste; +Amount of vertical over-print to allow in points. + + + + +lglTemplateFrameRound +lglTemplateFrameRoundtypedef struct { + /* Begin Common Fields */ + lglTemplateFrameShape shape; /* Always LGL_TEMPLATE_FRAME_SHAPE_ROUND. */ + + gchar *id; /* Id, currently always "0" */ + GList *layouts; /* List of lglTemplateLayouts */ + GList *markups; /* List of lglTemplateMarkups */ + /* End Common Fields */ + + gdouble r; /* Radius */ + gdouble waste; /* Amount of overprint allowed. */ +} lglTemplateFrameRound; + + +This structure defines the frame for a round label or card. + + +lglTemplateFrameShape shape; +Common field. Always LGL_TEMPLATE_FRAME_SHAPE_ROUND for lglTemplateFrameRound. + + + +gchar *id; +Common field. See lglTemplateFrameAll. + + + +GList *layouts; +Common field. See lglTemplateFrameAll. + + + +GList *markups; +Common field. See lglTemplateFrameAll. + + + +gdouble r; +Radius of label or card in points. + + + +gdouble waste; +Amount of over-print to allow in points. + + + + +lglTemplateFrameCD +lglTemplateFrameCDtypedef struct { + /* Begin Common Fields */ + lglTemplateFrameShape shape; /* Always LGL_TEMPLATE_FRAME_SHAPE_CD. */ + + gchar *id; /* Id, currently always "0" */ + GList *layouts; /* List of lglTemplateLayouts */ + GList *markups; /* List of lglTemplateMarkups */ + /* End Common Fields */ + + gdouble r1; /* Outer radius */ + gdouble r2; /* Inner radius (hole) */ + gdouble w; /* Clip width, business card CDs */ + gdouble h; /* Clip height, business card CDs */ + gdouble waste; /* Amount of overprint allowed. */ +} lglTemplateFrameCD; + + +This structure defines the frame for a CD or DVD label. This structure also supports +credit-card CD labels. + + +lglTemplateFrameShape shape; +Common field. Always LGL_TEMPLATE_FRAME_SHAPE_CD for lglTemplateFrameCD. + + + +gchar *id; +Common field. See lglTemplateFrameAll. + + + +GList *layouts; +Common field. See lglTemplateFrameAll. + + + +GList *markups; +Common field. See lglTemplateFrameAll. + + + +gdouble r1; +Outer radius of label in points. + + + +gdouble r2; +Radius of center hole in points. + + + +gdouble w; +Clip width in points. Used for credit-card CD labels. This field is ignored if zero. + + + +gdouble h; +Clip height in points. Used for credit-card CD labels. This field is ignored if zero. + + + +gdouble waste; +Amount of over-print to allow in points. + + + + +lglTemplateLayout +lglTemplateLayouttypedef struct { + gint nx; /* Number of labels across */ + gint ny; /* Number of labels up and down */ + + gdouble x0; /* Left of grid from left edge of paper */ + gdouble y0; /* Top of grid from top edge of paper */ + + gdouble dx; /* Horizontal pitch of grid */ + gdouble dy; /* Vertical pitch of grid */ +} lglTemplateLayout; + + +This structure defines a simple grid layout of labels or cards. + + +gint nx; +Number of labels or cards across in the grid (horizontal). + + + +gint ny; +Number of labels or cards down in the grid (vertical). + + + +gdouble x0; +Distance (in points) from the left edge of page to the left edge of the left column of +cards or labels in the layout. + + + +gdouble y0; +Distance (in points) from the top edge of page to the top edge of the top row of +cards or labels in the layout. + + + +gdouble dx; +Horizontal pitch of grid in points. This is the distance from left edge to left edge +(not the gap between labels or cards). + + + +gdouble dy; +Vertical pitch of grid in points. This is the distance from top edge to top edge +(not the gap between labels or cards). + + + + +enum lglTemplateMarkupType +lglTemplateMarkupTypetypedef enum { + LGL_TEMPLATE_MARKUP_MARGIN, + LGL_TEMPLATE_MARKUP_LINE, + LGL_TEMPLATE_MARKUP_CIRCLE, + LGL_TEMPLATE_MARKUP_RECT, +} lglTemplateMarkupType; + + +This enumeration defines markup types that are supported by libglabels + + +LGL_TEMPLATE_MARKUP_MARGIN +A margin line around perimeter of label or card. + + + +LGL_TEMPLATE_MARKUP_LINE +A simple line segment. + + + +LGL_TEMPLATE_MARKUP_CIRCLE +A circle. + + + +LGL_TEMPLATE_MARKUP_RECT +A rectangle. Possibly with rounded corners. + + + + +union lglTemplateMarkup +lglTemplateMarkupunion lglTemplateMarkup { + + lglTemplateMarkupType type; + + lglTemplateMarkupMargin margin; + lglTemplateMarkupLine line; + lglTemplateMarkupCircle circle; + lglTemplateMarkupRect rect; +}; + + +A union of all possible markup structures. The type of structure is indicated by the type +member, which overlays the first field of all other member structures. + + +lglTemplateMarkupMargin +lglTemplateMarkupMargintypedef struct { + lglTemplateMarkupType type; /* Always LGL_TEMPLATE_MARKUP_MARGIN */ + + gdouble size; /* Margin size */ +} lglTemplateMarkupMargin; + + +This structure defines a simple margin markup around the perimeter of a label or card. + + +lglTemplateMarkupType type; +Common field. Always LGL_TEMPLATE_MARKUP_MARGIN for lglTemplateMarkupMargin. + + + +gdouble size; +Distance of margin from edge of label or card. + + + + +lglTemplateMarkupLine +lglTemplateMarkupLinetypedef struct { + lglTemplateMarkupType type; /* Always LGL_TEMPLATE_MARKUP_LINE */ + + gdouble x1, y1; /* 1st endpoint */ + gdouble x2, y2; /* 2nd endpoint */ +} lglTemplateMarkupLine; + + +This structure defines a simple line segment markup. + + +lglTemplateMarkupType type; +Common field. Always LGL_TEMPLATE_MARKUP_LINE for lglTemplateMarkupLine. + + + +gdouble x1; +Distance (in points) of first endpoint from left edge of label or card. + + + +gdouble y1; +Distance (in points) of first endpoint from top edge of label or card. + + + +gdouble x2; +Distance (in points) of second endpoint from left edge of label or card. + + + +gdouble y2; +Distance (in points) of second endpoint from top edge of label or card. + + + + +lglTemplateMarkupCircle +lglTemplateMarkupCircletypedef struct { + lglTemplateMarkupType type; /* Always LGL_TEMPLATE_MARKUP_CIRCLE */ + + gdouble x0, y0; /* Center of circle */ + gdouble r; /* Radius of circle */ +} lglTemplateMarkupCircle; + + +This structure defines a simple circle markup. + + +lglTemplateMarkupType type; +Common field. Always LGL_TEMPLATE_MARKUP_CIRCLE for lglTemplateMarkupCircle. + + + +gdouble x0; +Distance (in points) of vertex from left edge of label or card. + + + +gdouble y0; +Distance (in points) of vertex from top edge of label or card. + + + +gdouble r; +Radius of circle in points. + + + + +lglTemplateMarkupRect +lglTemplateMarkupRecttypedef struct { + lglTemplateMarkupType type; /* Always LGL_TEMPLATE_MARKUP_RECT */ + + gdouble x1, y1; /* Upper left corner */ + gdouble w, h; /* Width and height. */ + gdouble r; /* Radius of corners. */ +} lglTemplateMarkupRect; + + +This structure defines a simple rectangle markup. The rectangle can have rounded corners. + + +lglTemplateMarkupType type; +Common field. Always LGL_TEMPLATE_MARKUP_RECT for lglTemplateMarkupRect. + + + +gdouble x1; +Distance (in points) of left edge of markup from left edge of label or card. + + + +gdouble y1; +Distance (in points) of top edge of markup from top edge of label or card. + + + +gdouble w; +Width of rectangle in points. + + + +gdouble h; +Height of rectangle in points. + + + +gdouble r; +Radius of corners in points. Should be zero for sharp corners. + + + + +lglTemplateOrigin +lglTemplateOrigintypedef struct { + gdouble x, y; /* Label origin relative to upper + * upper left hand corner of paper */ +} lglTemplateOrigin; + + +This structure represents the cartesian coordinates of the origin of a label or card on the page. +The orign is the upper left corner of the extent of the label or card. These coordinates are +relative to the upper left corner of the page. + + +gdouble x; +Distance in points from top edge of page. + + + +gdouble y; +Distance in points from left edge of page. + + + + +lgl_template_new () +lgl_template_newlglTemplate * lgl_template_new (const gchar *brand, + const gchar *part, + const gchar *description, + const gchar *paper_id, + gdouble page_width, + gdouble page_height); + +Create a new template structure, with the given top-level attributes. The +created template will have no initial aliases, categories, or frames +associated with it. See lgl_template_add_alias(), lgl_template_add_category(), +and lgl_template_add_frame() to add these. + + +brand : + Template brand + +part : + Template part name/number + +description : + Template descriptions + +paper_id : + Page size id + +page_width : + Page width in points, set to zero unless paper_id="Other" + +page_height : + Page height in points, set to zero unless paper_id="Other" + +Returns : pointer to a newly allocated lglTemplate structure. + + + + +lgl_template_dup () +lgl_template_duplglTemplate * lgl_template_dup (const lglTemplate *orig_template); + +This function duplicates a template structure. + + +orig_template : + Template to duplicate. + +Returns : a newly allocated lglTemplate structure. + + + + +lgl_template_free () +lgl_template_freevoid lgl_template_free (lglTemplate *template); + +This function frees all memory associated with given template structure. + + +template : + Template to free. + + + +lgl_template_add_category () +lgl_template_add_categoryvoid lgl_template_add_category (lglTemplate *template, + const gchar *category_id); + +This function adds the given category ID to a templates category list. + + +template : + Pointer to template structure + +category_id : + Category ID string + + + +lgl_template_add_frame () +lgl_template_add_framevoid lgl_template_add_frame (lglTemplate *template, + lglTemplateFrame *frame); + +This function adds the given frame structure to the template. Once added, +the frame structure belongs to the given template; do not attempt to free +it. + + +Note: Currently glabels only supports a single frame per template. + + +template : + Pointer to template structure + +frame : + Pointer to frame structure + + + +lgl_template_add_alias () +lgl_template_add_aliasvoid lgl_template_add_alias (lglTemplate *template, + lglTemplateAlias *alias); + +This function adds the given alias to a templates list of aliases. + + +template : + Pointer to template structure + +alias : + Alias string + + + +lgl_template_get_name () +lgl_template_get_namegchar * lgl_template_get_name (const lglTemplate *template); + +This function returns the name of the given template. The name is the concetenation +of the brand and part name/number. + + +template : + Pointer to template structure to test + +Returns : A pointer to a newly allocated name string. Should be freed with g_free(). + + + + +lgl_template_do_templates_match () +lgl_template_do_templates_matchgboolean lgl_template_do_templates_match (const lglTemplate *template1, + const lglTemplate *template2); + +This function tests if the given templates match. This is a simple test that only tests +the brand and part name/number. It does not test if they are actually identical. + + +template1 : + Pointer to 1st template structure to test + +template2 : + Pointer to 2nd template structure to test + +Returns : TRUE if the two template matche. + + + + +lgl_template_does_brand_match () +lgl_template_does_brand_matchgboolean lgl_template_does_brand_match (const lglTemplate *template, + const gchar *brand); + +This function tests if the brand of the template matches the given brand. + + +template : + Pointer to template structure to test + +brand : + Brand string + +Returns : TRUE if the template matches the given brand. + + + + +lgl_template_does_page_size_match () +lgl_template_does_page_size_matchgboolean lgl_template_does_page_size_match (const lglTemplate *template, + const gchar *paper_id); + +This function tests if the page size of the template matches the given ID. + + +template : + Pointer to template structure to test + +paper_id : + Page size ID string + +Returns : TRUE if the template matches the given page size ID. + + + + +lgl_template_does_category_match () +lgl_template_does_category_matchgboolean lgl_template_does_category_match (const lglTemplate *template, + const gchar *category_id); + +This function tests if the given template belongs to the given category ID. + + +template : + Pointer to template structure to test + +category_id : + Category ID string + +Returns : TRUE if the template matches the given category ID. + + + + +lgl_template_alias_new () +lgl_template_alias_newlglTemplateAlias * lgl_template_alias_new (const gchar *brand, + const gchar *part); + +Create a new template alias structure, with the given brand and part number. + + +brand : + Alias brand + +part : + Alias part name/number + +Returns : pointer to a newly allocated lglTemplateAlias structure. + + + + +lgl_template_alias_dup () +lgl_template_alias_duplglTemplateAlias * lgl_template_alias_dup (const lglTemplateAlias *orig_alias); + +This function duplicates a template alias structure. + + +orig_alias : + Alias to duplicate. + +Returns : a newly allocated lglTemplateAlias structure. + + + + +lgl_template_alias_free () +lgl_template_alias_freevoid lgl_template_alias_free (lglTemplateAlias *alias); + +This function frees all memory associated with given template alias structure. + + +alias : + Alias to free. + + + +lgl_template_frame_rect_new () +lgl_template_frame_rect_newlglTemplateFrame * lgl_template_frame_rect_new (const gchar *id, + gdouble w, + gdouble h, + gdouble r, + gdouble x_waste, + gdouble y_waste); + +This function creates a new template frame for a rectangular label or card. + + +id : + ID of frame. (This should currently always be "0"). + +w : + width of frame in points. + +h : + height of frame in points. + +r : + radius of rounded corners in points. (Should be 0 for square corners.) + +x_waste : + Amount of overprint to allow in the horizontal direction. + +y_waste : + Amount of overprint to allow in the vertical direction. + +Returns : Pointer to newly allocated lglTemplateFrame structure. + + + + +lgl_template_frame_round_new () +lgl_template_frame_round_newlglTemplateFrame * lgl_template_frame_round_new (const gchar *id, + gdouble r, + gdouble waste); + +This function creates a new template frame for a round label. + + +id : + ID of frame. (This should currently always be "0"). + +r : + radius of label in points. + +waste : + Amount of overprint to allow. + +Returns : Pointer to newly allocated lglTemplateFrame structure. + + + + +lgl_template_frame_cd_new () +lgl_template_frame_cd_newlglTemplateFrame * lgl_template_frame_cd_new (const gchar *id, + gdouble r1, + gdouble r2, + gdouble w, + gdouble h, + gdouble waste); + +This function creates a new template frame for a CD/DVD label. + + +id : + ID of frame. (This should currently always be "0"). + +r1 : + outer radius of label in points. + +r2 : + radius of center hole in points. + +w : + clip width of frame in points for business card CDs. Should be 0 for no clipping. + +h : + clip height of frame in points for business card CDs. Should be 0 for no clipping. + +waste : + Amount of overprint to allow. + +Returns : Pointer to newly allocated lglTemplateFrame structure. + + + + +lgl_template_frame_dup () +lgl_template_frame_duplglTemplateFrame * lgl_template_frame_dup (const lglTemplateFrame *orig_frame); + +This function duplicates a template frame structure. + + +orig_frame : + Frame to duplicate. + +Returns : a newly allocated lglTemplateFrame structure. + + + + +lgl_template_frame_free () +lgl_template_frame_freevoid lgl_template_frame_free (lglTemplateFrame *frame); + +This function frees all memory associated with given template frame structure. + + +frame : + Frame to free. + + + +lgl_template_frame_add_layout () +lgl_template_frame_add_layoutvoid lgl_template_frame_add_layout (lglTemplateFrame *frame, + lglTemplateLayout *layout); + +This function adds a layout structure to the given template frame. + + +frame : + Pointer to template frame to add layout to. + +layout : + Pointer to layout structure to add to frame. + + + +lgl_template_frame_add_markup () +lgl_template_frame_add_markupvoid lgl_template_frame_add_markup (lglTemplateFrame *frame, + lglTemplateMarkup *markup); + +This function adds a markup structure to the given template frame. + + +frame : + Pointer to template frame to add markup to. + +markup : + Pointer to markup structure to add to frame. + + + +lgl_template_frame_get_size () +lgl_template_frame_get_sizevoid lgl_template_frame_get_size (const lglTemplateFrame *frame, + gdouble *w, + gdouble *h); + +Get size (width and height) of given lglTemplateFrame in points. + + +frame : + lglTemplateFrame structure to query + +w : + pointer to location to receive width of frame + +h : + pointer to location to receive height of frame + + + +lgl_template_frame_get_n_labels () +lgl_template_frame_get_n_labelsgint lgl_template_frame_get_n_labels (const lglTemplateFrame *frame); + +Get total number of labels per sheet corresponding to the given frame. + + +frame : + lglTemplateFrame structure to query + +Returns : number of labels per sheet. + + + + +lgl_template_frame_get_origins () +lgl_template_frame_get_originslglTemplateOrigin * lgl_template_frame_get_origins (const lglTemplateFrame *frame); + +Get an array of label origins for the given frame. These origins represent the +upper left hand corner of each label on a page corresponding to the given frame. +The origins will be ordered geometrically left to right and then top to bottom. +The array should be freed using g_free(). + + +frame : + lglTemplateFrame structure to query + +Returns : A newly allocated array of lglTemplateOrigin structures. + + + + +lgl_template_layout_new () +lgl_template_layout_newlglTemplateLayout * lgl_template_layout_new (gint nx, + gint ny, + gdouble x0, + gdouble y0, + gdouble dx, + gdouble dy); + +This function creates a new layout structure with the given parameters. + + +nx : + Number of labels across. + +ny : + Number of labels down. + +x0 : + X coordinate of the top-left corner of the top-left label in the layout in points. + +y0 : + Y coordinate of the top-left corner of the top-left label in the layout in points. + +dx : + Horizontal pitch in points. This is the distance from left-edge to left-edge. + +dy : + Vertical pitch in points. This is the distance from top-edge to top-edge. + +Returns : a newly allocated lglTemplateLayout structure. + + + + +lgl_template_layout_dup () +lgl_template_layout_duplglTemplateLayout * lgl_template_layout_dup (const lglTemplateLayout *orig_layout); + +This function duplicates a template layout structure. + + +orig_layout : + Layout to duplicate. + +Returns : a newly allocated lglTemplateLayout structure. + + + + +lgl_template_layout_free () +lgl_template_layout_freevoid lgl_template_layout_free (lglTemplateLayout *layout); + +This function frees all memory associated with given template layout structure. + + +layout : + Layout to free. + + + +lgl_template_markup_margin_new () +lgl_template_markup_margin_newlglTemplateMarkup * lgl_template_markup_margin_new (gdouble size); + +This function creates a new margin markup structure. + + +size : + margin size in points. + +Returns : a newly allocated lglTemplateMarkup structure. + + + + +lgl_template_markup_line_new () +lgl_template_markup_line_newlglTemplateMarkup * lgl_template_markup_line_new (gdouble x1, + gdouble y1, + gdouble x2, + gdouble y2); + +This function creates a new line markup structure. + + +x1 : + x coordinate of first endpoint. + +y1 : + y coordinate of first endpoint. + +x2 : + x coordinate of second endpoint. + +y2 : + y coordinate of second endpoint. + +Returns : a newly allocated lglTemplateMarkup structure. + + + + +lgl_template_markup_circle_new () +lgl_template_markup_circle_newlglTemplateMarkup * lgl_template_markup_circle_new (gdouble x0, + gdouble y0, + gdouble r); + +This function creates a new circle markup structure. + + +x0 : + x coordinate of center of circle. + +y0 : + y coordinate of center of circle. + +r : + radius of circle. + +Returns : a newly allocated lglTemplateMarkup structure. + + + + +lgl_template_markup_rect_new () +lgl_template_markup_rect_newlglTemplateMarkup * lgl_template_markup_rect_new (gdouble x1, + gdouble y1, + gdouble w, + gdouble h, + gdouble r); + +This function creates a new rectangle markup structure. + + +x1 : + x coordinate of top-left corner of rectangle. + +y1 : + y coordinate of top-left corner of rectangle. + +w : + width of rectangle. + +h : + height of rectangle. + +r : + radius of rounded corner. + +Returns : a newly allocated lglTemplateMarkup structure. + + + + +lgl_template_markup_dup () +lgl_template_markup_duplglTemplateMarkup * lgl_template_markup_dup (const lglTemplateMarkup *orig_markup); + +This function duplicates a template markup structure. + + +orig_markup : + Markup to duplicate. + +Returns : a newly allocated lglTemplateMarkup structure. + + + + +lgl_template_markup_free () +lgl_template_markup_freevoid lgl_template_markup_free (lglTemplateMarkup *markup); + +This function frees all memory associated with given template markup structure. + + +markup : + Markup to free. + + + + + + + + + diff --git a/docs/libglabels/xml/xml-category.xml b/docs/libglabels/xml/xml-category.xml new file mode 100644 index 00000000..d5a8d8ee --- /dev/null +++ b/docs/libglabels/xml/xml-category.xml @@ -0,0 +1,103 @@ + + + + + +XML Category Functions +3 +LIBGLABELS Library + + + +XML Category Functions +Functions to parse glabels XML category definition files + + + +Synopsis + + + +#include <libglabels/xml-category.h> + +GList * lgl_xml_category_read_categories_from_file + (gchar *utf8_filename); +GList * lgl_xml_category_parse_categories_doc + (xmlDocPtr categories_doc); +lglCategory * lgl_xml_category_parse_category_node + (xmlNodePtr category_node); + + + + + + + + + + + + +Description + +This section describes a number of functions for parsing glabels +XML category definition files. + + + + +Details + +lgl_xml_category_read_categories_from_file () +lgl_xml_category_read_categories_from_fileGList * lgl_xml_category_read_categories_from_file + (gchar *utf8_filename); + +Read category definitions from a file. + + +utf8_filename : + Filename of categories file (name encoded as UTF-8) + +Returns : a list of lglCategory structures. + + + + +lgl_xml_category_parse_categories_doc () +lgl_xml_category_parse_categories_docGList * lgl_xml_category_parse_categories_doc + (xmlDocPtr categories_doc); + +Read category definitions from a libxml xmlDocPtr tree. + + +categories_doc : + libxml xmlDocPtr tree, representing a categories +definition file. + +Returns : a list of lglCategory structures. + + + + +lgl_xml_category_parse_category_node () +lgl_xml_category_parse_category_nodelglCategory * lgl_xml_category_parse_category_node + (xmlNodePtr category_node); + +Read a single category definition from a libxml xmlNodePtr node. + + +category_node : + libxml xmlNodePtr category node from a xmlDocPtr tree. + +Returns : a pointer to a newly created lglCategory structure. + + + + + + + + + + diff --git a/docs/libglabels/xml/xml-paper.xml b/docs/libglabels/xml/xml-paper.xml new file mode 100644 index 00000000..8097f4a8 --- /dev/null +++ b/docs/libglabels/xml/xml-paper.xml @@ -0,0 +1,96 @@ + + + + + +XML Paper Functions +3 +LIBGLABELS Library + + + +XML Paper Functions +Functions to parse glabels XML paper definition files + + + +Synopsis + + + +#include <libglabels/xml-paper.h> + +GList * lgl_xml_paper_read_papers_from_file (gchar *utf8_filename); +GList * lgl_xml_paper_parse_papers_doc (xmlDocPtr papers_doc); +lglPaper * lgl_xml_paper_parse_paper_node (xmlNodePtr paper_node); + + + + + + + + + + + + +Description + +This section describes a number of functions for parsing glabels +XML paper definition files. + + + + +Details + +lgl_xml_paper_read_papers_from_file () +lgl_xml_paper_read_papers_from_fileGList * lgl_xml_paper_read_papers_from_file (gchar *utf8_filename); + +Read paper definitions from a file. + + +utf8_filename : + Filename of papers file (name encoded as UTF-8) + +Returns : a list of lglPaper structures. + + + + +lgl_xml_paper_parse_papers_doc () +lgl_xml_paper_parse_papers_docGList * lgl_xml_paper_parse_papers_doc (xmlDocPtr papers_doc); + +Read paper definitions from a libxml xmlDocPtr tree. + + +papers_doc : + libxml xmlDocPtr tree, representing a papers definition file. + +Returns : a list of lglPaper structures. + + + + +lgl_xml_paper_parse_paper_node () +lgl_xml_paper_parse_paper_nodelglPaper * lgl_xml_paper_parse_paper_node (xmlNodePtr paper_node); + +Read a single paper definition from a libxml xmlNodePtr node. + + +paper_node : + libxml xmlNodePtr paper node from a xmlDocPtr tree. + +Returns : a pointer to a newly created lglPaper structure. + + + + + + + + + + diff --git a/docs/libglabels/xml/xml-template.xml b/docs/libglabels/xml/xml-template.xml new file mode 100644 index 00000000..b8e88e3b --- /dev/null +++ b/docs/libglabels/xml/xml-template.xml @@ -0,0 +1,171 @@ + + + + + +XML Template Functions +3 +LIBGLABELS Library + + + +XML Template Functions +Functions to create and parse glabels XML template nodes and files + + + +Synopsis + + + +#include <libglabels/xml-templates.h> + +GList * lgl_xml_template_read_templates_from_file + (const gchar *utf8_filename); +GList * lgl_xml_template_parse_templates_doc + (const xmlDocPtr templates_doc); +lglTemplate * lgl_xml_template_parse_template_node + (const xmlNodePtr template_node); +gint lgl_xml_template_write_templates_to_file + (GList *templates, + const gchar *utf8_filename); +gint lgl_xml_template_write_template_to_file + (const lglTemplate *template, + const gchar *utf8_filename); +void lgl_xml_template_create_template_node + (const lglTemplate *template, + xmlNodePtr root, + const xmlNsPtr ns); + + + + + + + + + + + + +Description + +This section describes a number of functions for creating and parsing +glabels XML template nodes and files. Template nodes are used in both +template files and document files. + + + + +Details + +lgl_xml_template_read_templates_from_file () +lgl_xml_template_read_templates_from_fileGList * lgl_xml_template_read_templates_from_file + (const gchar *utf8_filename); + +Read glabels templates from template file. + + +utf8_filename : + Filename of papers file (name encoded as UTF-8) + +Returns : a list of lglTemplate structures. + + + + +lgl_xml_template_parse_templates_doc () +lgl_xml_template_parse_templates_docGList * lgl_xml_template_parse_templates_doc + (const xmlDocPtr templates_doc); + +Read glabels templates from a libxml xmlDocPtr tree. + + +templates_doc : + libxml xmlDocPtr tree, representing template file. + +Returns : a list of lglTemplate structures. + + + + +lgl_xml_template_parse_template_node () +lgl_xml_template_parse_template_nodelglTemplate * lgl_xml_template_parse_template_node + (const xmlNodePtr template_node); + +Read a single glabels template from a libxml xmlNodePtr node. + + +template_node : + libxml xmlNodePtr template node from a xmlDocPtr tree. + +Returns : a pointer to a newly created lglTemplate structure. + + + + +lgl_xml_template_write_templates_to_file () +lgl_xml_template_write_templates_to_filegint lgl_xml_template_write_templates_to_file + (GList *templates, + const gchar *utf8_filename); + +Write a list of lglTemplate structures to a glabels XML template file. + + +templates : + List of lglTemplate structures + +utf8_filename : + Filename of templates file (name encoded as UTF-8) + +Returns : the number of bytes written or -1 in case of failure + + + + +lgl_xml_template_write_template_to_file () +lgl_xml_template_write_template_to_filegint lgl_xml_template_write_template_to_file + (const lglTemplate *template, + const gchar *utf8_filename); + +Write a single lglTemplate structures to a glabels XML template file. + + +template : + lglTemplate structure to be written + +utf8_filename : + Filename of templates file (name encoded as UTF-8) + +Returns : the number of bytes written or -1 in case of failure + + + + +lgl_xml_template_create_template_node () +lgl_xml_template_create_template_nodevoid lgl_xml_template_create_template_node + (const lglTemplate *template, + xmlNodePtr root, + const xmlNsPtr ns); + +Add a single lglTemplate child node to given xmlNodePtr. + + +template : + lglTemplate structure to be written + +root : + parent node to receive new child node + +ns : + a libxml xmlNsPtr + + + + + + + + + diff --git a/docs/libglabels/xml/xml.xml b/docs/libglabels/xml/xml.xml new file mode 100644 index 00000000..ad1919a7 --- /dev/null +++ b/docs/libglabels/xml/xml.xml @@ -0,0 +1,430 @@ + + + + + +XML Helper Functions +3 +LIBGLABELS Library + + + +XML Helper Functions +Functions to help format and parse glabels XML properties + + + +Synopsis + + + +#include <libglabels/xml.h> + +#define LGL_XML_NAME_SPACE + +gchar * lgl_xml_get_prop_string (xmlNodePtr node, + const gchar *property, + const gchar *default_val); +gchar * lgl_xml_get_prop_i18n_string (xmlNodePtr node, + const gchar *property, + const gchar *default_val); +gdouble lgl_xml_get_prop_double (xmlNodePtr node, + const gchar *property, + gdouble default_val); +gboolean lgl_xml_get_prop_boolean (xmlNodePtr node, + const gchar *property, + gboolean default_val); +gint lgl_xml_get_prop_int (xmlNodePtr node, + const gchar *property, + gint default_val); +guint lgl_xml_get_prop_uint (xmlNodePtr node, + const gchar *property, + guint default_val); +gdouble lgl_xml_get_prop_length (xmlNodePtr node, + const gchar *property, + gdouble default_val); + +void lgl_xml_set_prop_string (xmlNodePtr node, + const gchar *property, + const gchar *val); +void lgl_xml_set_prop_double (xmlNodePtr node, + const gchar *property, + gdouble val); +void lgl_xml_set_prop_boolean (xmlNodePtr node, + const gchar *property, + gboolean val); +void lgl_xml_set_prop_int (xmlNodePtr node, + const gchar *property, + gint val); +void lgl_xml_set_prop_uint_hex (xmlNodePtr node, + const gchar *property, + guint val); +void lgl_xml_set_prop_length (xmlNodePtr node, + const gchar *property, + gdouble val); + +gboolean lgl_xml_is_node (xmlNodePtr node, + const gchar *name); +gchar * lgl_xml_get_node_content (xmlNodePtr node); + +void lgl_xml_set_default_units (lglUnitsType units); + + + + + + + + + + + + +Description + +This section describes a number of "helper" functions for formatting and +parsing various types of properties for tags in glabels XML file formats. + + +These functions are basically wrappers to functions from libxml2. + + + + +Details + +LGL_XML_NAME_SPACE +LGL_XML_NAME_SPACE#define LGL_XML_NAME_SPACE "http://snaught.com/glabels/2.2/" + + + + +lgl_xml_get_prop_string () +lgl_xml_get_prop_stringgchar * lgl_xml_get_prop_string (xmlNodePtr node, + const gchar *property, + const gchar *default_val); + +Return value of property as a string. + + +node : + the libxml2 xmlNodePtr of the node + +property : + the property name + +default_val : + a default value to return if property not found + +Returns : the property as a pointer to a gchar string. This string should + be freed with g_free(). + + + + +lgl_xml_get_prop_i18n_string () +lgl_xml_get_prop_i18n_stringgchar * lgl_xml_get_prop_i18n_string (xmlNodePtr node, + const gchar *property, + const gchar *default_val); + +Return value of a translatable property as a string. + + +node : + the libxml2 xmlNodePtr of the node + +property : + the property name + +default_val : + a default value to return if property not found + +Returns : the property as a pointer to a gchar string. This string should + be freed with g_free(). + + + + +lgl_xml_get_prop_double () +lgl_xml_get_prop_doublegdouble lgl_xml_get_prop_double (xmlNodePtr node, + const gchar *property, + gdouble default_val); + +Return value of property as a double. + + +node : + the libxml2 xmlNodePtr of the node + +property : + the property name + +default_val : + a default value to return if property not found + +Returns : the property as a double. + + + + +lgl_xml_get_prop_boolean () +lgl_xml_get_prop_booleangboolean lgl_xml_get_prop_boolean (xmlNodePtr node, + const gchar *property, + gboolean default_val); + +Return value of property as a boolean. + + +node : + the libxml2 xmlNodePtr of the node + +property : + the property name + +default_val : + a default value to return if property not found + +Returns : the property as a boolean. + + + + +lgl_xml_get_prop_int () +lgl_xml_get_prop_intgint lgl_xml_get_prop_int (xmlNodePtr node, + const gchar *property, + gint default_val); + +Return value of property as an integer. + + +node : + the libxml2 xmlNodePtr of the node + +property : + the property name + +default_val : + a default value to return if property not found + +Returns : the property as an integer. + + + + +lgl_xml_get_prop_uint () +lgl_xml_get_prop_uintguint lgl_xml_get_prop_uint (xmlNodePtr node, + const gchar *property, + guint default_val); + +Return value of property (usually formatted in hex) as an unsigned integer. + + +node : + the libxml2 xmlNodePtr of the node + +property : + the property name + +default_val : + a default value to return if property not found + +Returns : the property as an unsigned integer. + + + + +lgl_xml_get_prop_length () +lgl_xml_get_prop_lengthgdouble lgl_xml_get_prop_length (xmlNodePtr node, + const gchar *property, + gdouble default_val); + +Return value of a length property as a double, converting to internal +units (points). The property is expected to be formatted as a number +followed by a units string. If there is no units string, the length +is assumed to be in points. Valid units strings are "pt" for points, +"in" for inches, "mm" for millimeters, "cm" for centimeters, and +"pc" for picas. + + +node : + the libxml2 xmlNodePtr of the node + +property : + the property name + +default_val : + a default value to return if property not found + +Returns : the length in points. + + + + +lgl_xml_set_prop_string () +lgl_xml_set_prop_stringvoid lgl_xml_set_prop_string (xmlNodePtr node, + const gchar *property, + const gchar *val); + +Set a property from a string. + + +node : + the libxml2 xmlNodePtr of the node + +property : + the property name + +val : + the value to set + + + +lgl_xml_set_prop_double () +lgl_xml_set_prop_doublevoid lgl_xml_set_prop_double (xmlNodePtr node, + const gchar *property, + gdouble val); + +Set a property from a double. + + +node : + the libxml2 xmlNodePtr of the node + +property : + the property name + +val : + the value to set + + + +lgl_xml_set_prop_boolean () +lgl_xml_set_prop_booleanvoid lgl_xml_set_prop_boolean (xmlNodePtr node, + const gchar *property, + gboolean val); + +Set a property from a boolean. + + +node : + the libxml2 xmlNodePtr of the node + +property : + the property name + +val : + the value to set + + + +lgl_xml_set_prop_int () +lgl_xml_set_prop_intvoid lgl_xml_set_prop_int (xmlNodePtr node, + const gchar *property, + gint val); + +Set a property from an integer. + + +node : + the libxml2 xmlNodePtr of the node + +property : + the property name + +val : + the value to set + + + +lgl_xml_set_prop_uint_hex () +lgl_xml_set_prop_uint_hexvoid lgl_xml_set_prop_uint_hex (xmlNodePtr node, + const gchar *property, + guint val); + +Set a property from an unsigned integer and format in hex. + + +node : + the libxml2 xmlNodePtr of the node + +property : + the property name + +val : + the value to set + + + +lgl_xml_set_prop_length () +lgl_xml_set_prop_lengthvoid lgl_xml_set_prop_length (xmlNodePtr node, + const gchar *property, + gdouble val); + +Set a property from a length, performing any necessary conversion. +Length properties are formatted as a number followed by a units string. +The units of the formatted property is determined by the most recent call to +lgl_xml_set_default_units(). + + +node : + the libxml2 xmlNodePtr of the node + +property : + the property name + +val : + the length to set in internal units (points) + + + +lgl_xml_is_node () +lgl_xml_is_nodegboolean lgl_xml_is_node (xmlNodePtr node, + const gchar *name); + +Test if a node name matches given name. + + +node : + the libxml2 xmlNodePtr of the node + +name : + the node name + +Returns : TRUE if the name of the node matches. Otherwise FALSE. + + + + +lgl_xml_get_node_content () +lgl_xml_get_node_contentgchar * lgl_xml_get_node_content (xmlNodePtr node); + +Get the content of a node. + + +node : + the libxml2 xmlNodePtr of the node + +Returns : the property as a pointer to a gchar string. This string should + be freed with g_free(). + + + +lgl_xml_set_default_units () +lgl_xml_set_default_unitsvoid lgl_xml_set_default_units (lglUnitsType units); + +Set the default units when formatting lengths. See +lgl_xml_set_prop_length(). + + +units : + default units selection (lglUnitsType) + + + + + + + + + diff --git a/glabels.spec b/glabels.spec new file mode 100644 index 00000000..f4df384f --- /dev/null +++ b/glabels.spec @@ -0,0 +1,106 @@ +Summary: glabels is a GNOME program to create labels and business cards +Name: glabels +Version: 2.2.8 +Release: 1 +License: GPL +Group: Applications/Publishing +URL: http://glabels.sourceforge.net/ + +Source: %{name}-%{version}.tar.gz +BuildRoot: %{_tmppath}/root-%{name}-%{version} +Prefix: %{_prefix} + +BuildRequires: gtk2-devel >= 2.10.0 +BuildRequires: libxml2-devel >= 2.6.0 +BuildRequires: libgnomeui-devel >= 2.16.0 +BuildRequires: libglade2-devel >= 2.6.0 + +Requires: gtk2 >= 2.10.0 +Requires: libxml2 >= 2.6.0 +Requires: libgnomeui >= 2.16.0 +Requires: libglade2 >= 2.6.0 + +%description +gLabels is a lightweight program for creating labels and +business cards for the GNOME desktop environment. +It is designed to work with various laser/ink-jet peel-off +label and business card sheets that you'll find at most office +supply stores. + +%prep +%setup + +%build +%configure +%{__make} %{?_smp_mflags} + +%install +%{__rm} -rf %{buildroot} +%makeinstall +%find_lang %{name} + +desktop-file-install --vendor gnome --delete-original \ + --add-category X-Red-Hat-Base \ + --dir %{buildroot}%{_datadir}/applications \ + %{buildroot}%{_datadir}/applications/%{name}.desktop + +%{__rm} -rf %{buildroot}/var/scrollkeeper +%{__rm} -f %{buildroot}%{_datadir}/mime/XMLnamespaces +%{__rm} -f %{buildroot}%{_datadir}/mime/globs +%{__rm} -f %{buildroot}%{_datadir}/mime/magic +%{__rm} -f %{buildroot}%{_datadir}/mime/mime.cache +%{__rm} -rf %{buildroot}%{_datadir}/mime/application +%{__rm} -rf %{buildroot}%{_datadir}/mime/aliases +%{__rm} -rf %{buildroot}%{_datadir}/mime/subclasses + + +%clean +%{__rm} -rf %{buildroot} + +%post +scrollkeeper-update +if (update-mime-database -v &> /dev/null); then + update-mime-database "%{_datadir}/mime" > /dev/null +fi + +%postun +scrollkeeper-update +if (update-mime-database -v &> /dev/null); then + update-mime-database "%{_datadir}/mime" > /dev/null +fi + +%files -f %{name}.lang +%defattr(-, root, root) +%doc README COPYING.README_FIRST COPYING COPYING-DOCS COPYING-LIBGLABELS ChangeLog NEWS AUTHORS INSTALL +%doc %{_datadir}/gnome/help/glabels/ +%{_bindir}/glabels +%{_bindir}/glabels-batch +%{_libdir}/libglabels.* +%{_libdir}/pkgconfig/libglabels.pc +%{_includedir}/libglabels/* +%{_datadir}/glabels/ +%{_datadir}/pixmaps/* +%{_datadir}/omf/ +%{_datadir}/applications/*.desktop +%{_datadir}/application-registry/* +%{_datadir}/mime-info/* +%{_datadir}/mime/packages/* +%{_datadir}/man/* +%{_datadir}/gtk-doc/html/libglabels/* + +%changelog +* Sun Aug 8 2004 Jim Evins +- Added support for freedesktop.org mime database registration + +* Sat Feb 21 2004 Jim Evins +- Added libglabels related files + +* Tue Dec 23 2003 Jim Evins +- Added support for scrollkeeper + +* Sat Oct 18 2003 Jim Evins +- Updated, based largely on Dag Wieers glabels.spec + +* Sat May 19 2001 Jim Evins +- Created + diff --git a/glabels.spec.in b/glabels.spec.in new file mode 100644 index 00000000..6050b0d6 --- /dev/null +++ b/glabels.spec.in @@ -0,0 +1,106 @@ +Summary: glabels is a GNOME program to create labels and business cards +Name: glabels +Version: @VERSION@ +Release: 1 +License: GPL +Group: Applications/Publishing +URL: http://glabels.sourceforge.net/ + +Source: %{name}-%{version}.tar.gz +BuildRoot: %{_tmppath}/root-%{name}-%{version} +Prefix: %{_prefix} + +BuildRequires: gtk2-devel >= @GTK_REQUIRED@ +BuildRequires: libxml2-devel >= @LIBXML_REQUIRED@ +BuildRequires: libgnomeui-devel >= @LIBGNOMEUI_REQUIRED@ +BuildRequires: libglade2-devel >= @LIBGLADE_REQUIRED@ + +Requires: gtk2 >= @GTK_REQUIRED@ +Requires: libxml2 >= @LIBXML_REQUIRED@ +Requires: libgnomeui >= @LIBGNOMEUI_REQUIRED@ +Requires: libglade2 >= @LIBGLADE_REQUIRED@ + +%description +gLabels is a lightweight program for creating labels and +business cards for the GNOME desktop environment. +It is designed to work with various laser/ink-jet peel-off +label and business card sheets that you'll find at most office +supply stores. + +%prep +%setup + +%build +%configure +%{__make} %{?_smp_mflags} + +%install +%{__rm} -rf %{buildroot} +%makeinstall +%find_lang %{name} + +desktop-file-install --vendor gnome --delete-original \ + --add-category X-Red-Hat-Base \ + --dir %{buildroot}%{_datadir}/applications \ + %{buildroot}%{_datadir}/applications/%{name}.desktop + +%{__rm} -rf %{buildroot}/var/scrollkeeper +%{__rm} -f %{buildroot}%{_datadir}/mime/XMLnamespaces +%{__rm} -f %{buildroot}%{_datadir}/mime/globs +%{__rm} -f %{buildroot}%{_datadir}/mime/magic +%{__rm} -f %{buildroot}%{_datadir}/mime/mime.cache +%{__rm} -rf %{buildroot}%{_datadir}/mime/application +%{__rm} -rf %{buildroot}%{_datadir}/mime/aliases +%{__rm} -rf %{buildroot}%{_datadir}/mime/subclasses + + +%clean +%{__rm} -rf %{buildroot} + +%post +scrollkeeper-update +if (update-mime-database -v &> /dev/null); then + update-mime-database "%{_datadir}/mime" > /dev/null +fi + +%postun +scrollkeeper-update +if (update-mime-database -v &> /dev/null); then + update-mime-database "%{_datadir}/mime" > /dev/null +fi + +%files -f %{name}.lang +%defattr(-, root, root) +%doc README COPYING.README_FIRST COPYING COPYING-DOCS COPYING-LIBGLABELS ChangeLog NEWS AUTHORS INSTALL +%doc %{_datadir}/gnome/help/glabels/ +%{_bindir}/glabels +%{_bindir}/glabels-batch +%{_libdir}/libglabels.* +%{_libdir}/pkgconfig/libglabels.pc +%{_includedir}/libglabels/* +%{_datadir}/glabels/ +%{_datadir}/pixmaps/* +%{_datadir}/omf/ +%{_datadir}/applications/*.desktop +%{_datadir}/application-registry/* +%{_datadir}/mime-info/* +%{_datadir}/mime/packages/* +%{_datadir}/man/* +%{_datadir}/gtk-doc/html/libglabels/* + +%changelog +* Sun Aug 8 2004 Jim Evins +- Added support for freedesktop.org mime database registration + +* Sat Feb 21 2004 Jim Evins +- Added libglabels related files + +* Tue Dec 23 2003 Jim Evins +- Added support for scrollkeeper + +* Sat Oct 18 2003 Jim Evins +- Updated, based largely on Dag Wieers glabels.spec + +* Sat May 19 2001 Jim Evins +- Created + diff --git a/gnome-doc-utils.make b/gnome-doc-utils.make new file mode 100644 index 00000000..ec8f6983 --- /dev/null +++ b/gnome-doc-utils.make @@ -0,0 +1,639 @@ +# gnome-doc-utils.make - make magic for building documentation +# Copyright (C) 2004-2005 Shaun McCance +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +################################################################################ +## @@ Generating Header Files + +## @ DOC_H_FILE +## The name of the header file to generate +DOC_H_FILE ?= + +## @ DOC_H_DOCS +## The input DocBook files for generating the header file +DOC_H_DOCS ?= + +$(DOC_H_FILE): $(DOC_H_DOCS); + @rm -f $@.tmp; touch $@.tmp; + echo 'const gchar* documentation_credits[] = {' >> $@.tmp + list='$(DOC_H_DOCS)'; for doc in $$list; do \ + xmlpath="`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`:$(srcdir)/`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`"; \ + if ! test -f "$$doc"; then doc="$(srcdir)/$$doc"; fi; \ + xsltproc --path "$$xmlpath" $(_credits) $$doc; \ + done | sort | uniq \ + | awk 'BEGIN{s=""}{n=split($$0,w,"<");if(s!=""&&s!=substr(w[1],1,length(w[1])-1)){print s};if(n>1){print $$0;s=""}else{s=$$0}};END{if(s!=""){print s}}' \ + | sed -e 's/\\/\\\\/' -e 's/"/\\"/' -e 's/\(.*\)/\t"\1",/' >> $@.tmp + echo ' NULL' >> $@.tmp + echo '};' >> $@.tmp + echo >> $@.tmp + list='$(DOC_H_DOCS)'; for doc in $$list; do \ + xmlpath="`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`:$(srcdir)/`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`"; \ + if ! test -f "$$doc"; then doc="$(srcdir)/$$doc"; fi; \ + docid=`echo "$$doc" | sed -e 's/.*\/\([^/]*\)\.xml/\1/' \ + | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`; \ + echo $$xmlpath; \ + ids=`xsltproc --xinclude --path "$$xmlpath" $(_ids) $$doc`; \ + for id in $$ids; do \ + echo '#define HELP_'`echo $$docid`'_'`echo $$id \ + | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`' "'$$id'"' >> $@.tmp; \ + done; \ + echo >> $@.tmp; \ + done; + cp $@.tmp $@ && rm -f $@.tmp + +dist-check-gdu: +if !HAVE_GNOME_DOC_UTILS + @echo "*** GNOME Doc Utils must be installed in order to make dist" + @false +endif + +.PHONY: dist-doc-header +dist-doc-header: $(DOC_H_FILE) + @if test -f "$(DOC_H_FILE)"; then d=; else d="$(srcdir)/"; fi; \ + echo "$(INSTALL_DATA) $${d}$(DOC_H_FILE) $(distdir)/$(DOC_H_FILE)"; \ + $(INSTALL_DATA) "$${d}$(DOC_H_FILE)" "$(distdir)/$(DOC_H_FILE)"; + +doc-dist-hook: dist-check-gdu $(if $(DOC_H_FILE),dist-doc-header) + +.PHONY: clean-doc-header +_clean_doc_header = $(if $(DOC_H_FILE),clean-doc-header) +clean-local: $(_clean_doc_header) +distclean-local: $(_clean_doc_header) +mostlyclean-local: $(_clean_doc_header) +maintainer-clean-local: $(_clean_doc_header) +clean-doc-header: + rm -f $(DOC_H_FILE) + +all: $(DOC_H_FILE) + + +################################################################################ +## @@ Generating Documentation Files + +## @ DOC_MODULE +## The name of the document being built +DOC_MODULE ?= + +## @ DOC_ID +## The unique identifier for a Mallard document +DOC_ID ?= + +## @ DOC_PAGES +## Page files in a Mallard document +DOC_PAGES ?= + +## @ DOC_ENTITIES +## Files included with a SYSTEM entity +DOC_ENTITIES ?= + +## @ DOC_INCLUDES +## Files included with XInclude +DOC_INCLUDES ?= + +## @ DOC_FIGURES +## Figures and other external data +DOC_FIGURES ?= + +## @ DOC_FORMATS +## The default formats to be built and installed +DOC_FORMATS ?= docbook +_DOC_REAL_FORMATS = $(if $(DOC_USER_FORMATS),$(DOC_USER_FORMATS),$(DOC_FORMATS)) + +## @ DOC_LINGUAS +## The languages this document is translated into +DOC_LINGUAS ?= +_DOC_REAL_LINGUAS = $(if $(filter environment,$(origin LINGUAS)), \ + $(filter $(LINGUAS),$(DOC_LINGUAS)), \ + $(DOC_LINGUAS)) + +_DOC_ABS_SRCDIR = @abs_srcdir@ + + +################################################################################ +## Variables for Bootstrapping + +_xml2po ?= `which xml2po` +_xml2po_mode = $(if $(DOC_ID),mallard,docbook) + +_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils` +_db2omf ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils` +_malrng ?= `$(PKG_CONFIG) --variable malrng gnome-doc-utils` +_chunks ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl +_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl +_ids ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl + +if ENABLE_SK +_ENABLE_SK = true +_skpkgdatadir ?= `scrollkeeper-config --pkgdatadir` +_sklocalstatedir ?= `scrollkeeper-config --pkglocalstatedir` +_skcontentslist ?= $(_skpkgdatadir)/Templates/C/scrollkeeper_cl.xml +endif + + +################################################################################ +## @@ Rules for OMF Files + +db2omf_args = \ + --stringparam db2omf.basename $(DOC_MODULE) \ + --stringparam db2omf.format $(3) \ + --stringparam db2omf.dtd \ + $(shell xmllint --format $(2) | grep -h PUBLIC | head -n 1 \ + | sed -e 's/.*PUBLIC \(\"[^\"]*\"\).*/\1/') \ + --stringparam db2omf.lang $(notdir $(patsubst %/$(notdir $(2)),%,$(2))) \ + --stringparam db2omf.omf_dir "$(OMF_DIR)" \ + --stringparam db2omf.help_dir "$(HELP_DIR)" \ + --stringparam db2omf.omf_in "$(_DOC_OMF_IN)" \ + $(if $(_ENABLE_SK), \ + --stringparam db2omf.scrollkeeper_cl "$(_skcontentslist)") \ + $(_db2omf) $(2) + +## @ _DOC_OMF_IN +## The OMF input file +_DOC_OMF_IN = $(if $(DOC_MODULE),$(wildcard $(_DOC_ABS_SRCDIR)/$(DOC_MODULE).omf.in)) + +## @ _DOC_OMF_DB +## The OMF files for DocBook output +_DOC_OMF_DB = $(if $(_DOC_OMF_IN), \ + $(foreach lc,C $(_DOC_REAL_LINGUAS),$(DOC_MODULE)-$(lc).omf)) + +$(_DOC_OMF_DB) : $(_DOC_OMF_IN) +$(_DOC_OMF_DB) : $(DOC_MODULE)-%.omf : %/$(DOC_MODULE).xml + @test "x$(_ENABLE_SK)" != "xtrue" -o -f "$(_skcontentslist)" || { \ + echo "The file '$(_skcontentslist)' does not exist." >&2; \ + echo "Please check your ScrollKeeper installation." >&2; \ + exit 1; } + xsltproc -o $@ $(call db2omf_args,$@,$<,'docbook') || { rm -f "$@"; exit 1; } + +## @ _DOC_OMF_HTML +## The OMF files for HTML output +_DOC_OMF_HTML = $(if $(_DOC_OMF_IN), \ + $(foreach lc,C $(_DOC_REAL_LINGUAS),$(DOC_MODULE)-html-$(lc).omf)) + +$(_DOC_OMF_HTML) : $(_DOC_OMF_IN) +$(_DOC_OMF_HTML) : $(DOC_MODULE)-html-%.omf : %/$(DOC_MODULE).xml +if ENABLE_SK + @test "x$(_ENABLE_SK)" != "xtrue" -o -f "$(_skcontentslist)" || { \ + echo "The file '$(_skcontentslist)' does not exist" >&2; \ + echo "Please check your ScrollKeeper installation." >&2; \ + exit 1; } +endif + xsltproc -o $@ $(call db2omf_args,$@,$<,'xhtml') || { rm -f "$@"; exit 1; } + +## @ _DOC_OMF_ALL +## All OMF output files to be built +# FIXME +_DOC_OMF_ALL = \ + $(if $(filter docbook,$(_DOC_REAL_FORMATS)),$(_DOC_OMF_DB)) \ + $(if $(filter html HTML,$(_DOC_REAL_FORMATS)),$(_DOC_OMF_HTML)) + +.PHONY: omf +omf: $(_DOC_OMF_ALL) + + +################################################################################ +## @@ C Locale Documents + +## @ _DOC_C_MODULE +## The top-level documentation file in the C locale +_DOC_C_MODULE = $(if $(DOC_MODULE),C/$(DOC_MODULE).xml) + +## @ _DOC_C_PAGES +## Page files in a Mallard document in the C locale +_DOC_C_PAGES = $(foreach page,$(DOC_PAGES),C/$(page)) + +## @ _DOC_C_ENTITIES +## Files included with a SYSTEM entity in the C locale +_DOC_C_ENTITIES = $(foreach ent,$(DOC_ENTITIES),C/$(ent)) + +## @ _DOC_C_XINCLUDES +## Files included with XInclude in the C locale +_DOC_C_INCLUDES = $(foreach inc,$(DOC_INCLUDES),C/$(inc)) + +## @ _DOC_C_DOCS +## All documentation files in the C locale +_DOC_C_DOCS = \ + $(_DOC_C_ENTITIES) $(_DOC_C_INCLUDES) \ + $(_DOC_C_PAGES) $(_DOC_C_MODULE) + +## @ _DOC_C_DOCS_NOENT +## All documentation files in the C locale, +## except files included with a SYSTEM entity +_DOC_C_DOCS_NOENT = \ + $(_DOC_C_MODULE) $(_DOC_C_INCLUDES) \ + $(_DOC_C_PAGES) + +## @ _DOC_C_FIGURES +## All figures and other external data in the C locale +_DOC_C_FIGURES = $(if $(DOC_FIGURES), \ + $(foreach fig,$(DOC_FIGURES),C/$(fig)), \ + $(patsubst $(srcdir)/%,%,$(wildcard $(srcdir)/C/figures/*.png))) + +## @ _DOC_C_HTML +## All HTML documentation in the C locale +# FIXME: probably have to shell escape to determine the file names +_DOC_C_HTML = $(foreach f, \ + $(shell xsltproc --xinclude \ + --stringparam db.chunk.basename "$(DOC_MODULE)" \ + $(_chunks) "C/$(DOC_MODULE).xml"), \ + C/$(f).xhtml) + +############################################################################### +## @@ Other Locale Documentation + +## @ _DOC_POFILES +## The .po files used for translating the document +_DOC_POFILES = $(if $(DOC_MODULE)$(DOC_ID), \ + $(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(lc).po)) + +.PHONY: po +po: $(_DOC_POFILES) + +## @ _DOC_LC_MODULES +## The top-level documentation files in all other locales +_DOC_LC_MODULES = $(if $(DOC_MODULE), \ + $(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xml)) + +## @ _DOC_LC_PAGES +## Page files in a Mallard document in all other locales +_DOC_LC_PAGES = \ + $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach page,$(_DOC_C_PAGES), \ + $(lc)/$(notdir $(page)) )) + +## @ _DOC_LC_XINCLUDES +## Files included with XInclude in all other locales +_DOC_LC_INCLUDES = \ + $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach inc,$(_DOC_C_INCLUDES), \ + $(lc)/$(notdir $(inc)) )) + +## @ _DOC_LC_HTML +## All HTML documentation in all other locales +# FIXME: probably have to shell escape to determine the file names +_DOC_LC_HTML = \ + $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach doc,$(_DOC_C_HTML), \ + $(lc)/$(notdir $(doc)) )) + +## @ _DOC_LC_DOCS +## All documentation files in all other locales +_DOC_LC_DOCS = \ + $(_DOC_LC_MODULES) $(_DOC_LC_INCLUDES) $(_DOC_LC_PAGES) \ + $(if $(filter html HTML,$(_DOC_REAL_FORMATS)),$(_DOC_LC_HTML)) + +## @ _DOC_LC_FIGURES +## All figures and other external data in all other locales +_DOC_LC_FIGURES = $(foreach lc,$(_DOC_REAL_LINGUAS), \ + $(patsubst C/%,$(lc)/%,$(_DOC_C_FIGURES)) ) + +_DOC_SRC_FIGURES = \ + $(foreach fig,$(_DOC_C_FIGURES), $(foreach lc,C $(_DOC_REAL_LINGUAS), \ + $(wildcard $(srcdir)/$(lc)/$(patsubst C/%,%,$(fig))) )) + +$(_DOC_POFILES): + @if ! test -d $(dir $@); then \ + echo "mkdir $(dir $@)"; \ + mkdir "$(dir $@)"; \ + fi + @if test ! -f $@ -a -f $(srcdir)/$@; then \ + echo "cp $(srcdir)/$@ $@"; \ + cp "$(srcdir)/$@" "$@"; \ + fi; + @docs=; \ + list='$(_DOC_C_DOCS_NOENT)'; for doc in $$list; do \ + docs="$$docs $(_DOC_ABS_SRCDIR)/$$doc"; \ + done; \ + if ! test -f $@; then \ + echo "(cd $(dir $@) && \ + $(_xml2po) -m $(_xml2po_mode) -e $$docs > $(notdir $@).tmp && \ + cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp)"; \ + (cd $(dir $@) && \ + $(_xml2po) -m $(_xml2po_mode) -e $$docs > $(notdir $@).tmp && \ + cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp); \ + else \ + echo "(cd $(dir $@) && \ + $(_xml2po) -m $(_xml2po_mode) -e -u $(notdir $@) $$docs)"; \ + (cd $(dir $@) && \ + $(_xml2po) -m $(_xml2po_mode) -e -u $(notdir $@) $$docs); \ + fi + +# FIXME: fix the dependancy +# FIXME: hook xml2po up +$(_DOC_LC_DOCS) : $(_DOC_POFILES) +$(_DOC_LC_DOCS) : $(_DOC_C_DOCS) + if ! test -d $(dir $@); then mkdir $(dir $@); fi + if [ -f "C/$(notdir $@)" ]; then d="../"; else d="$(_DOC_ABS_SRCDIR)/"; fi; \ + po="$(dir $@)$(patsubst %/$(notdir $@),%,$@).po"; \ + if [ -f "$${po}" ]; then po="../$${po}"; else po="$(_DOC_ABS_SRCDIR)/$${po}"; fi; \ + (cd $(dir $@) && \ + $(_xml2po) -m $(_xml2po_mode) -e -p "$${po}" \ + "$${d}C/$(notdir $@)" > $(notdir $@).tmp && \ + cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp) + +## @ _DOC_POT +## A pot file +_DOC_POT = $(if $(DOC_MODULE),$(DOC_MODULE).pot) +.PHONY: pot +pot: $(_DOC_POT) +$(_DOC_POT): $(_DOC_C_DOCS_NOENT) + $(_xml2po) -m $(_xml2po_mode) -e -o $@ $^ + + +################################################################################ +## @@ All Documentation + +## @ _DOC_HTML_ALL +## All HTML documentation, only if it's built +_DOC_HTML_ALL = $(if $(filter html HTML,$(_DOC_REAL_FORMATS)), \ + $(_DOC_C_HTML) $(_DOC_LC_HTML)) + +_DOC_HTML_TOPS = $(foreach lc,C $(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xhtml) + +$(_DOC_HTML_TOPS): $(_DOC_C_DOCS) $(_DOC_LC_DOCS) + xsltproc -o $@ --xinclude --param db.chunk.chunk_top "false()" --stringparam db.chunk.basename "$(DOC_MODULE)" --stringparam db.chunk.extension ".xhtml" $(_db2html) $(patsubst %.xhtml,%.xml,$@) + + +################################################################################ +## All + +all: \ + $(_DOC_C_DOCS) $(_DOC_LC_DOCS) \ + $(_DOC_OMF_ALL) $(_DOC_DSK_ALL) \ + $(_DOC_HTML_ALL) $(_DOC_POFILES) + + +################################################################################ +## Clean + +.PHONY: clean-doc-omf clean-doc-dsk clean-doc-lc clean-doc-dir + +clean-doc-omf: ; rm -f $(_DOC_OMF_DB) $(_DOC_OMF_HTML) +clean-doc-dsk: ; rm -f $(_DOC_DSK_DB) $(_DOC_DSK_HTML) +clean-doc-lc: + rm -f $(_DOC_LC_DOCS) + @list='$(_DOC_POFILES)'; for po in $$list; do \ + if ! test "$$po" -ef "$(srcdir)/$$po"; then \ + echo "rm -f $$po"; \ + rm -f "$$po"; \ + fi; \ + done + @for lc in C $(_DOC_REAL_LINGUAS); do \ + if test -f "$$lc/.xml2po.mo"; then \ + echo "rm -f $$lc/.xml2po.mo"; \ + rm -f "$$lc/.xml2po.mo"; \ + fi; \ + done +clean-doc-dir: clean-doc-lc + @for lc in C $(_DOC_REAL_LINGUAS); do \ + for dir in `find $$lc -depth -type d`; do \ + if ! test $$dir -ef $(srcdir)/$$dir; then \ + echo "rmdir $$dir"; \ + rmdir "$$dir"; \ + fi; \ + done; \ + done + +_clean_omf = $(if $(_DOC_OMF_IN),clean-doc-omf) +_clean_dsk = $(if $(_DOC_DSK_IN),clean-doc-dsk) +_clean_lc = $(if $(_DOC_REAL_LINGUAS),clean-doc-lc) +_clean_dir = $(if $(DOC_MODULE)$(DOC_ID),clean-doc-dir) + +clean-local: \ + $(_clean_omf) $(_clean_dsk) \ + $(_clean_lc) $(_clean_dir) +distclean-local: \ + $(_clean_omf) $(_clean_dsk) \ + $(_clean_lc) $(_clean_dir) +mostlyclean-local: \ + $(_clean_omf) $(_clean_dsk) \ + $(_clean_lc) $(_clean_dir) +maintainer-clean-local: \ + $(_clean_omf) $(_clean_dsk) \ + $(_clean_lc) $(_clean_dir) + + + +################################################################################ +## Dist + +.PHONY: dist-doc-docs dist-doc-pages dist-doc-figs dist-doc-omf dist-doc-dsk +doc-dist-hook: \ + $(if $(DOC_MODULE)$(DOC_ID),dist-doc-docs) \ + $(if $(_DOC_C_FIGURES),dist-doc-figs) \ + $(if $(_DOC_OMF_IN),dist-doc-omf) +# $(if $(_DOC_DSK_IN),dist-doc-dsk) + +dist-doc-docs: $(_DOC_C_DOCS) $(_DOC_LC_DOCS) $(_DOC_POFILES) + @for lc in C $(_DOC_REAL_LINGUAS); do \ + echo " $(mkinstalldirs) $(distdir)/$$lc"; \ + $(mkinstalldirs) "$(distdir)/$$lc"; \ + done + @list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS) $(_DOC_POFILES)'; \ + for doc in $$list; do \ + if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \ + docdir=`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \ + if ! test -d "$(distdir)/$$docdir"; then \ + echo "$(mkinstalldirs) $(distdir)/$$docdir"; \ + $(mkinstalldirs) "$(distdir)/$$docdir"; \ + fi; \ + echo "$(INSTALL_DATA) $$d$$doc $(distdir)/$$doc"; \ + $(INSTALL_DATA) "$$d$$doc" "$(distdir)/$$doc"; \ + done + +dist-doc-figs: $(_DOC_SRC_FIGURES) + @list='$(_DOC_C_FIGURES) $(_DOC_LC_FIGURES)'; \ + for fig in $$list; do \ + if test -f "$$fig"; then d=; else d="$(srcdir)/"; fi; \ + if test -f "$$d$$fig"; then \ + figdir=`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \ + if ! test -d "$(distdir)/$$figdir"; then \ + echo "$(mkinstalldirs) $(distdir)/$$figdir"; \ + $(mkinstalldirs) "$(distdir)/$$figdir"; \ + fi; \ + echo "$(INSTALL_DATA) $$d$$fig $(distdir)/$$fig"; \ + $(INSTALL_DATA) "$$d$$fig" "$(distdir)/$$fig"; \ + fi; \ + done; + +dist-doc-omf: + @if test -f "$(_DOC_OMF_IN)"; then d=; else d="$(srcdir)/"; fi; \ + echo "$(INSTALL_DATA) $$d$(_DOC_OMF_IN) $(distdir)/$(notdir $(_DOC_OMF_IN))"; \ + $(INSTALL_DATA) "$$d$(_DOC_OMF_IN)" "$(distdir)/$(notdir $(_DOC_OMF_IN))" + +dist-doc-dsk: + @if test -f "$(_DOC_DSK_IN)"; then d=; else d="$(srcdir)/"; fi; \ + echo "$(INSTALL_DATA) $$d$(_DOC_DSK_IN) $(distdir)/$(notdir $(_DOC_DSK_IN))"; \ + $(INSTALL_DATA) "$$d$(_DOC_DSK_IN)" "$(distdir)/$(notdir $(_DOC_DSK_IN))" + + + +################################################################################ +## Check + +.PHONY: check-doc-docs check-doc-omf +check: \ + $(if $(DOC_MODULE),check-doc-docs) \ + $(if $(DOC_ID),check-doc-pages) \ + $(if $(_DOC_OMF_IN),check-doc-omf) + +check-doc-docs: $(_DOC_C_DOCS) $(_DOC_LC_DOCS) + @for lc in C $(_DOC_REAL_LINGUAS); do \ + if test -f "$$lc"; \ + then d=; \ + xmlpath="$$lc"; \ + else \ + d="$(srcdir)/"; \ + xmlpath="$$lc:$(srcdir)/$$lc"; \ + fi; \ + echo "xmllint --noout --noent --path $$xmlpath --xinclude --postvalid $$d$$lc/$(DOC_MODULE).xml"; \ + xmllint --noout --noent --path "$$xmlpath" --xinclude --postvalid "$$d$$lc/$(DOC_MODULE).xml"; \ + done + +check-doc-pages: $(_DOC_C_PAGES) $(_DOC_LC_PAGES) + for lc in C $(_DOC_REAL_LINGUAS); do \ + if test -f "$$lc"; \ + then d=; \ + xmlpath="$$lc"; \ + else \ + d="$(srcdir)/"; \ + xmlpath="$$lc:$(srcdir)/$$lc"; \ + fi; \ + for page in $(DOC_PAGES); do \ + echo "xmllint --noout --noent --path $$xmlpath --xinclude --relaxng $(_malrng) $$d$$lc/$$page"; \ + xmllint --noout --noent --path "$$xmlpath" --xinclude --relaxng "$(_malrng)" "$$d$$lc/$$page"; \ + done; \ + done + +check-doc-omf: $(_DOC_OMF_ALL) + @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \ + echo "xmllint --noout --xinclude --dtdvalid 'http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd' $$omf"; \ + xmllint --noout --xinclude --dtdvalid 'http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd' $$omf; \ + done + + + +################################################################################ +## Install + +.PHONY: install-doc-docs install-doc-html install-doc-figs install-doc-omf install-doc-dsk + +_doc_install_dir = $(if $(DOC_ID),$(DOC_ID),$(DOC_MODULE)) + +install-data-local: \ + $(if $(DOC_MODULE)$(DOC_ID),install-doc-docs) \ + $(if $(_DOC_HTML_ALL),install-doc-html) \ + $(if $(_DOC_C_FIGURES),install-doc-figs) \ + $(if $(_DOC_OMF_IN),install-doc-omf) +# $(if $(_DOC_DSK_IN),install-doc-dsk) + +install-doc-docs: + @for lc in C $(_DOC_REAL_LINGUAS); do \ + echo "$(mkinstalldirs) $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$lc"; \ + $(mkinstalldirs) $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$lc; \ + done + @list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS)'; for doc in $$list; do \ + if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \ + docdir="$$lc/"`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \ + docdir="$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$docdir"; \ + if ! test -d "$$docdir"; then \ + echo "$(mkinstalldirs) $$docdir"; \ + $(mkinstalldirs) "$$docdir"; \ + fi; \ + echo "$(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \ + $(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc; \ + done + +install-doc-figs: + @list='$(patsubst C/%,%,$(_DOC_C_FIGURES))'; for fig in $$list; do \ + for lc in C $(_DOC_REAL_LINGUAS); do \ + figsymlink=false; \ + if test -f "$$lc/$$fig"; then \ + figfile="$$lc/$$fig"; \ + elif test -f "$(srcdir)/$$lc/$$fig"; then \ + figfile="$(srcdir)/$$lc/$$fig"; \ + else \ + figsymlink=true; \ + fi; \ + figdir="$$lc/"`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \ + figdir="$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$figdir"; \ + if ! test -d "$$figdir"; then \ + echo "$(mkinstalldirs) $$figdir"; \ + $(mkinstalldirs) "$$figdir"; \ + fi; \ + figbase=`echo $$fig | sed -e 's/^.*\///'`; \ + if $$figsymlink; then \ + echo "cd $$figdir && $(LN_S) -f ../../C/$$fig $$figbase"; \ + ( cd "$$figdir" && $(LN_S) -f "../../C/$$fig" "$$figbase" ); \ + else \ + echo "$(INSTALL_DATA) $$figfile $$figdir$$figbase"; \ + $(INSTALL_DATA) "$$figfile" "$$figdir$$figbase"; \ + fi; \ + done; \ + done + +install-doc-html: + echo install-html + +install-doc-omf: + $(mkinstalldirs) $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir) + @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \ + echo "$(INSTALL_DATA) $$omf $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \ + $(INSTALL_DATA) $$omf $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf; \ + done + @if test "x$(_ENABLE_SK)" = "xtrue"; then \ + echo "scrollkeeper-update -p $(DESTDIR)$(_sklocalstatedir) -o $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)"; \ + scrollkeeper-update -p "$(DESTDIR)$(_sklocalstatedir)" -o "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)"; \ + fi; + +install-doc-dsk: + echo install-dsk + + + +################################################################################ +## Uninstall + +.PHONY: uninstall-doc-docs uninstall-doc-html uninstall-doc-figs uninstall-doc-omf uninstall-doc-dsk +uninstall-local: \ + $(if $(DOC_MODULE)$(DOC_ID),uninstall-doc-docs) \ + $(if $(_DOC_HTML_ALL),uninstall-doc-html) \ + $(if $(_DOC_C_FIGURES),uninstall-doc-figs) \ + $(if $(_DOC_OMF_IN),uninstall-doc-omf) +# $(if $(_DOC_DSK_IN),uninstall-doc-dsk) + +uninstall-doc-docs: + @list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS)'; for doc in $$list; do \ + echo " rm -f $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \ + rm -f "$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \ + done + +uninstall-doc-figs: + @list='$(_DOC_C_FIGURES) $(_DOC_LC_FIGURES)'; for fig in $$list; do \ + echo "rm -f $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$fig"; \ + rm -f "$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$fig"; \ + done; + +uninstall-doc-omf: + @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \ + if test "x$(_ENABLE_SK)" = "xtrue"; then \ + echo "scrollkeeper-uninstall -p $(_sklocalstatedir) $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \ + scrollkeeper-uninstall -p "$(_sklocalstatedir)" "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \ + fi; \ + echo "rm -f $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \ + rm -f "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \ + done diff --git a/gtk-doc.make b/gtk-doc.make new file mode 100644 index 00000000..0f87cc79 --- /dev/null +++ b/gtk-doc.make @@ -0,0 +1,196 @@ +# -*- mode: makefile -*- + +#################################### +# Everything below here is generic # +#################################### + +if GTK_DOC_USE_LIBTOOL +GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +GTKDOC_RUN = $(LIBTOOL) --mode=execute +else +GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +GTKDOC_RUN = sh -c +endif + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) + +TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) + +EXTRA_DIST = \ + $(content_files) \ + $(HTML_IMAGES) \ + $(DOC_MAIN_SGML_FILE) \ + $(DOC_MODULE)-sections.txt \ + $(DOC_MODULE)-overrides.txt + +DOC_STAMPS=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \ + $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp + +SCANOBJ_FILES = \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) + +if ENABLE_GTK_DOC +all-local: html-build.stamp +else +all-local: +endif + +docs: html-build.stamp + +$(REPORT_FILES): sgml-build.stamp + +#### scan #### + +scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) + @echo 'gtk-doc: Scanning header files' + @-chmod -R u+w $(srcdir) + cd $(srcdir) && \ + gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES) + if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; then \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \ + else \ + cd $(srcdir) ; \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ + fi + touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +#### templates #### + +tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt + @echo 'gtk-doc: Rebuilding template files' + @-chmod -R u+w $(srcdir) + cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS) + touch tmpl-build.stamp + +tmpl.stamp: tmpl-build.stamp + @true + +tmpl/*.sgml: + @true + + +#### xml #### + +sgml-build.stamp: tmpl.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files) + @echo 'gtk-doc: Building XML' + @-chmod -R u+w $(srcdir) + cd $(srcdir) && \ + gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $(MKDB_OPTIONS) + touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +#### html #### + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @echo 'gtk-doc: Building HTML' + @-chmod -R u+w $(srcdir) + rm -rf $(srcdir)/html + mkdir $(srcdir)/html + mkhtml_options=""; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ + if test "$(?)" = "0"; then \ + mkhtml_options=--path="$(srcdir)"; \ + fi + cd $(srcdir)/html && gtkdoc-mkhtml $(mkhtml_options) $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) + test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html ) + @echo 'gtk-doc: Fixing cross-references' + cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) + touch html-build.stamp + +############## + +clean-local: + rm -f *~ *.bak + rm -rf .libs + +distclean-local: + cd $(srcdir) && \ + rm -rf xml $(REPORT_FILES) \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + +maintainer-clean-local: clean + cd $(srcdir) && rm -rf xml html + +install-data-local: + installfiles=`echo $(srcdir)/html/*`; \ + if test "$$installfiles" = '$(srcdir)/html/*'; \ + then echo '-- Nothing to install' ; \ + else \ + if test -n "$(DOC_MODULE_VERSION)"; then \ + installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ + else \ + installdir="$(DESTDIR)$(TARGET_DIR)"; \ + fi; \ + $(mkinstalldirs) $${installdir} ; \ + for i in $$installfiles; do \ + echo '-- Installing '$$i ; \ + $(INSTALL_DATA) $$i $${installdir}; \ + done; \ + if test -n "$(DOC_MODULE_VERSION)"; then \ + mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ + $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ + mv -f $${installdir}/$(DOC_MODULE).devhelp \ + $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp; \ + fi; \ + ! which gtkdoc-rebase >/dev/null 2>&1 || \ + gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir} ; \ + fi + +uninstall-local: + if test -n "$(DOC_MODULE_VERSION)"; then \ + installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ + else \ + installdir="$(DESTDIR)$(TARGET_DIR)"; \ + fi; \ + rm -rf $${installdir} + +# +# Require gtk-doc when making dist +# +if ENABLE_GTK_DOC +dist-check-gtkdoc: +else +dist-check-gtkdoc: + @echo "*** gtk-doc must be installed and enabled in order to make dist" + @false +endif + +dist-hook: dist-check-gtkdoc dist-hook-local + mkdir $(distdir)/tmpl + mkdir $(distdir)/xml + mkdir $(distdir)/html + -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl + -cp $(srcdir)/xml/*.xml $(distdir)/xml + cp $(srcdir)/html/* $(distdir)/html + -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/ + -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/ + cd $(distdir) && rm -f $(DISTCLEANFILES) + ! which gtkdoc-rebase >/dev/null 2>&1 || \ + gtkdoc-rebase --online --relative --html-dir=$(distdir)/html + +.PHONY : dist-hook-local docs diff --git a/help/C/figures/glabels-template-cd.png b/help/C/figures/glabels-template-cd.png new file mode 100644 index 0000000000000000000000000000000000000000..0a3de3bfaf31c0e831f7232e93c963acfda8e347 GIT binary patch literal 9930 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 literal 0 HcmV?d00001 diff --git a/help/C/figures/glabels-template-label.png b/help/C/figures/glabels-template-label.png new file mode 100644 index 0000000000000000000000000000000000000000..87a724b9dcba29b59f807007af9f7469b82033b3 GIT binary patch literal 3115 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 literal 0 HcmV?d00001 diff --git a/help/C/figures/glabels-template-layout.png b/help/C/figures/glabels-template-layout.png new file mode 100644 index 0000000000000000000000000000000000000000..c71279520eb56db0701e359666bfb403f1b3e953 GIT binary patch literal 6012 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

    gxaaBQ_DhtxKsm=Y>HdbU|+Q)K^@Sx)Y1 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

    jWc-^8lOu9=%_a(6?8wQ}ShTs#(5l*%Qk9 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 literal 0 HcmV?d00001 diff --git a/help/C/figures/merge-ex2-1.png b/help/C/figures/merge-ex2-1.png new file mode 100644 index 0000000000000000000000000000000000000000..a41e3d6755e263975e0f3f98ee5b9b680711d49b GIT binary patch literal 41226 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

    U-_&lgjM~RotMURRHH8e=7S-TBMphqQ(Hkjg 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 o|Nk%4&nZA`|2^Xauu;8u(gS$g;26q?+ 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 YHtTInmoWk2?=)KK`cEnzKYRV(08d~UW&i*H literal 0 HcmV?d00001 diff --git a/help/C/figures/merge-ex2-4.png b/help/C/figures/merge-ex2-4.png new file mode 100644 index 0000000000000000000000000000000000000000..73996dd983515cdb81a670e297d5ea84b795df56 GIT binary patch literal 59967 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 literal 0 HcmV?d00001 diff --git a/help/C/figures/merge-ex3-1.png b/help/C/figures/merge-ex3-1.png new file mode 100644 index 0000000000000000000000000000000000000000..6395cd036d4e345e9b210c9f22f1b97b8e222057 GIT binary patch literal 50907 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.H6z8O-K=2*Wf`}Paj1t zvx9d^k}#>Jtya8J!0EI10SeC8d_*s)=%Jup68C;tz-R3sO@A>M6UZQ@xHi@#H0eYb zkF~0$sA@3*A{9;zfxWlPse3EmWErfm#3?G8LV5h7pg_Y19M-M=tuKrIiYtanm@qnR z7wrgZp8kcJzy!no9J?hyRyj^4@Gvi3DtV-n#|V-U5{W3Ogr7uou;G+*7S@@UR|ZSK zfr^$P#98Jhcb>|L0GDr9Ng~^DGD?)PU9V8L*|Xcyv9$`zjex@vASho-Ix7tZ>Q7zt z|Fm}H;ZW{xU)drOB2M--vSk-h9SvDhPKn5jU9yuc8d4#92o2h3BV-(MY=i6}Stn#S z3S-MM8Roqo=e>T{`#bOTUf27_&sF(Lp68kG^ZnlUXS=zkr>8Hw>cL=%@1eGkLIUwk zMo460F{bWj!siZfbgMpAy}p+KIb^W&G1Ecc2aF=(l?6{L5a68~vmc_P4Shy@Sy)fO z{lY8&X2ennD)T9T`dxsxuAnoxWIu*m7Mu`Ig;j-XM4+syAZjG4t;+g zG-HnyYi+uqcc4H>V=w?m{;;Fv4thq67BpH1Spw1r-YtOUpv43Mj&W#c)oSml91Fn; z+KC63Yk^t@pXY8YG~m0TbA0hy#vz3^OTl^Y9AQ917X*pyV`F1LW~X)rDI|8RQQ~dG zzkhWGG96ApC?R@4wMANox)nD4WrK$gHFA!XXPQU>0VRa|1#^@sXeX_zHfeuf*s$*D ziWPdy*18~km~u$O8&n9OoR}CuZ$ON$CKC8-ufzv!hGXw*5}&%eCV;lXVH+ckF4jnd zEx_20pE5|T+44X$H@;m24inx?=(tqjdO*VGw?1zL($?Q$<%MUhae|cTa=tDoTl?W5 z%7V)4l^Hk)EaiBS$Ug-6f|nc;_6k*U+8rvXl=vNysuEK`p@c$<_rEaE>w?Y(j%y51 z>Q%r>u?e2YO$yo>hTb=z%$*Vg-|f|{5hD~hntG6ZI^TD{#L+_Z92+~ksL0d3inTiN zaDKum1R*QWfEfiUu*oVAXq`*154M17EO;hUG^4{Ada<)m&lYXY>5+mjuI+(JEfP|E z;f0nE9oGc*1F3X7SDro;P@(P&{^8r2U3gGQh&fY+ad z_~m!+#-2|(=&8ecmE}XOuCxF-g%V{I%H|8&XY7~=GNMCUpuBWyq0zsFcAH9VNB3>P zAv1RsIb;Zb^MbP$8K-^5iieD~ewxC^%Yw_t93zvG?4Ji)|`%v{^*1PrwuR z6b^N;0BGGJ%kf0YK7zAUT4ou5MP`hu&GxpCTA3s%1la(otsdNmUexJd8u^R*b23rY z^D9I=i%ZGzJKxNj|-wobVbTeg@3WfFT@9m|LfO9)`d4VM7s6mgX8EX6e@lUe!KT;%lV)3Uy z1((_3+~8S0UObmDu5qW%mEfvsulg8tL-+b`YL3~w&7Sf9$`N@fPy+^$p8F>y_?w>mOrz z#YGG}8j%tsqao8alnzyueX#J4-hGnQ=8SI{)7)8~LF1dtFzBJ)nWNQ^urRcF3#YDs zDLThwlQv7tWJxnu+vnwsq~Js=Juqq&noK^Zbv znx3%MNNT)9C}*Sae->QjjIoVprm_R=l&uGUZf{(AYniO9t4rxOHNoSz2#Y^wKPPGD zGmcIfdYSRYW`+b>G`g#XPOb;=K6v*>J#_{QEvT z^}z-G^LytUtpu}7jGmz^8*zL@bc5h{nr3F|nMdy&2iA}-P)1Z8XZniAD7?|W)hcxU z=qCM_aXMT_;j-c$-dKKI$9d5P?C-OO5~B@S{A?P$R{U@peiN%*=cr`shk*-H+S^=A zFF0ve)!uwA;Ys^iD)|#lYooZ`I|RBAw9#(Aq+xGr?9hyF(5ji|etVyh%i_Jj&BYt~ znRI$3JqkX{CS0w0VXfb2@{@$Qp6ly0-H!&Zl83)x`xl+pn{mZo7skBDyu%~2KECQuWoObT5i(|fHZ-?$;~K*I4g@gUn3O9oET|b> zSV0!TM|PXI*vZPy?AM1cr#+2s)4ZM7ketKjOfQwPCz7+JDtz(_>DVqLp z`Fe5zJXv2&fwQ{v>PK)wVRu{Hcv$wy#;&Em<1l!lzA?I$+FVv( zJhPr)8#flUAs``D6U4(3-D&Qt7%-9dZ-lfq+X))LGdF z#@m`;!RihzfrDG$dB0IN4HTTNW)JysAFQM=2q-4jxoKeV4V3*9^!PgDp}vB#OHdq} zzcfLj^$~5Nj7;Gg&|h)Tv#6={Rd~Ru4RoFggxNp*K5GiXQ2pFPL=_d{)~N-dzJ{sh*LY?=FSrviHkMu_(Xt#AyeoN z#J>Y`#G+x+3$XaZAUc3!>6!l4#+BrpIy#3?V|HiN}kTXP5#f)m+p9Y99<19B_AvRH}W?>X41% zqaF(vClv)4gq%qDd1-H3u%GAZjLsGx_#F`KKNx`!Z7e9l5DpxmW*U?&S!)0o8A0|u zG$z1*u6*P+L#D2SsBKko4ba<%K($m=S0l-fkW%AYGwNBca-(04{MVcU@JgnC=G?4Boh#R}!YW0mc+e%Rl z@zpi`)imKvzyr$Y zu`cW{-PD#tSN)WmHtKKuxW(77_%Yxo-Srp34W5BxEn&I2=KVuwCIXL)SCFz6UO@yk zSOP$Xl)ktF)}O^tPheLd@23KQIHb2kC=@W!+5;EZc>)oLgGd7zt^hf_pm}Hl;+!r6 zl88W8jMOs-#Rts@qFN{2LI+RtAah@kU{Azf3jyw{svm(r_nQ6iP0o5V}|n+N(sjnltJjRukUfsjeEt2_A+B*GOS8U=x`3KIOYvXXdsO2 zfGP?m_d~cq2cnJr;BA+aSp+8T`_SrTA!s##d&8+U>8ik2h~>==Z;VcQsAG&x_f*nX z3bLseXP<1mS0lJ=ot2WCYDJZ2;xKbJ;7Iy)$-v#E6H^{BlC$can>Vp=gwX9VWb>5< zOC0KTSOJwSmj7&~Y`9XPwdsZgV>(1N3v41CNcS+{XhSkqql9k{5>c=K|L<0=T9P|; zV}Lxd{byzH2Z#Nk)$QK1`m#dKgBx3nI-i*2P{kQ_J?;d1<+1B+!Gabtbof?6-6sAn z1Eo?ztfDy|5=ALwJp9{fmES(P0s0Ma6cC1_wD#=Y{15Xpdv~O`*FU*$ifbL`^A+mv zdG$ea#fM5;6@>d1u*%HU+0ZQejhDN((iM2DV)8wkif&vqlEm6_S;Q0ZDDFtW; z9zFw*B0yE>6Vc+8gcfCLm{oYrpgB%54BDQeY z0~Te|=%}7q#fYb0S$bO9Ig3Ym#dh*#&zophogAGa>E}TRiICXsDo<9{gy71*TY^aF&3fQ{V zKpG$euoZzAM-#iFgUFk}G6d?gNa)RXx})?Cqh`u2zl?hy zTO3J0DPT!6Jn9jk&5P&Md!ih=IqmsX?d^>F0BC0sX}!j1D0k%uxugr2G@#u+0tb}g zA_rI^f(HR=2CVOi3OU<;F)L2aR)g`{&)dJLi>%e3ofqXPc3{fqiK3V7qR|=0KXw#8 zK_HSh?9FsKGRYfUKgUnVskw0#k2#zV@LV%6r?;#!#J}W%lQL(!8k9JtURaKi%8fA? z!VN%T94P#CX`yOx)H_2!2OQt_pcn%ImYGg>RP`;a9n7KDI_a(Hty!cI5Ny9fQiljP zL|W?C6<_bF`sIU<0}{vqG5oWjasa+OPUz$V#Qp|jk79WP0iNpstqy2kL_j&&8YnDz za%bShhTacfm%bH~;0^7se@4#~eijK3I`{J0wo!&DM*X*9>T(g$k>Jjd!uds|KtL<= z6V#A(<#G2E-jRJ{mea1h>@K`^3r1?zL4+|2%bR)-QD%a<0k{ju{LvY8z$j<#&TRs2 z63`a_)cU|{kZw5Y#f0o9lCNKLSQm|9+E6IpUsL?DOcwP4vU{TF3rL;G@5A=Hg)e&4Z9`ldMfKSY>&@Z6cv=pbOpZ&Y7EU60Y_mt}kK}>jnm*;0KWW zR*(c%hnyrA=mBXDzybl9`JkCh7bRQ=;wsb)3prep_)w5G*H;j*@4dM8%5c@1#ITj&1afC6Y0W#KF( zjQuJ6i$h@EM*2chZzMCNuy6GBWyyo>d4~**eQf3XT~$w!|2nj}`c*n1%ZrLB!4#OM zp%b!a64GB?{L>|oYZ0d%6u3<5rtEAjuPQ$AqU79_+o@bPuod)0Cr@IR)%)XLDT8JB*>>=0phefN5%!^LzBLBRyTESu9ylbL$jRybO3 zGraAa(>_@=X9{s2(F&whN|thbCr|neic;)l4Z5V0&1-cZ>4s@O4$U!+;s8TrTv5@Y z>5rjzPiL2FEr8tvLW3l}adTTqI0sv--U?XjLI7-7Qh5GVVV0Oi`#M0v-&++wE{IuKc3z#N!2jFs0YdzzrY)_q%5dyp=D#`%Ppb>H?SQ&s7 zSe1&dcy-f6iW`-}(j$EC9Qlo)U=j82ejveK;Y+Ed9BiYIm<*ULFJQCa8%Rk`K8*s4 zO=cz_hG1fVeG;zfVp)MAl=VSDREjBU*kFY$eE3D}+zIW826p}htUv(k=So~_Krive zGGei`P(_v}iwZwaUn%CYl{hAe_yrAFj%UW@=Do!9?rk~J=8WfoATmsgAnj6|)JWen zs)RV7VS-|%l>KD?8xi?$TniVJ@ZdC$v3AxF?_?b?<`TpP0u6qS*`sm7W@21@3S))I$M~RX<2@!C^>ay+SO7!%PT-&(%%{TJLA7&kB0l{=bUlSQ_JJxq~%VxyS*-d+K500XY?!L?YmB3!pC!F`#~ zoNh^+HAh-pN-aya)auIEzWE zA_G4@$fgm%|F|yVnl361<}U6=PG)cx_6~MtjLs%bW@h%zmJTjwFTp}^a3pZjpG8$Y zvQO6BeXz`)eqBu1D%O&Aa3hC^1cVTYe4{EQiF!Ms;&0JarJ-uO&v^}DIPi3*JIXm_ zu-ImZC<&+0B*~|f*Crtqq#!k`%VK1|f|=CG4paTG$M9Ka-s>|TX5ZM)SX#2k^WDQm zA;#9d4mh&uBtZ`P_j+o8G=vw;U%8Au^X!KWsH&*)E$H*i_$#6O=kuV+s_#3r*4q~^ zeeS#0)`#1hF#N~g#+Nm%ekFt}nw$4SR(yvb`uDZ0p=Q%ZNx!zNUNZOYJq8cWOo#Q* z8$+akqq4!{-=>J2&9(VD{O|vBa7d@BnoUt_RiLlVg1ZeYhW1Jct3f{0o8^a&lF3WM z{&vbq)r1B3^nz*lFKSaC^#5}W98J)%t?InyBKYz3UY_^+Lun(udC-Lq5qKshz^J(i;7}>aIyXn$p z@)gZ?4m#gf(YG@?*2w$17xX&fEw?*;tX{b65^$m7?3Rf1Vh$voR=A>+Yg;Yo&5+PV z!F&C8e(m#iqnkaF%rAfE*|<4<|5>5(AroT1uwZqk*O&qY#LoJyv$lU zT-0!Lxj4ts%S(+cETlYhnq9MLZd&A>GJkMxc*9+^TLwjIbjh+&k926OFRqPwc*)P- zP`Fbs*IkI&`r!u&^2^xeF^KEhT2=MTWm8q()15{OBYl#15e0QKebT3}bY71NRJdrp z{?diF!%l}Z@q*;zyrQ?PlTy@@nyRf@wD!5F`yCMawT5HxsVZOee%@4(OIFF6*UHUa zlR^`(1Eu~&&H2F-Vf$@K7Q8#<#=?$M%NMm2sL*YCw@f7Id&iQ&S`y?Zbxqa&nk{AB zS}_+>9(XEpNz^E~bZ#5#tZOwjaV52*BSr!~<%l`!9?B8R2E4HJu{Xr2Qa^c1$K1?5 zr0nc|%%8EAQivcg(<(1!px+^;&u_0qZR?2?t)}Lp%Qm7#vE;}^GvV>s!MVn!M}23= z@eZ3WPYmtcLV{8 z2U2X)Djf^Qr%VKZXa6FIudJNh=Os1&?t!>6*?{vB0 zb#ND4z}mW$i_4p$q9S013JMC4QQ7KF3a&h%!ZtLepH+7djo_BtN#albAp80Dk;zFA zX1RS((pH-=uy<^V(*HWKV%Mk?xXkxDHq{!^=0q2%^a+{mu!dKcfUaVzLD7BNrLh7o z^9`S$+c?hnpj^QeWJ?&|kHp=d2=}lj!7MbV4eGR6!C`JDPvIj4$BE64@3wQ*#qFJu z&Re{Oa|9Y`*^jafqYlZRlTyvL{0;lGTQM|bValHZQaNR2VTmxS3wNB~xwBo;=&mF7 zn`oXQU#fldUVnI0mO~$z8z`^QwhMVRxa!`g8b;mhAU8}e)TNVmwreT+@>9~b zZ~s%@f{u2*!1EW~{!Q`$zU)^&eTEQHnKLH07VFokXoXS>2ci^l7t%JeV>ZWJy(6Mo z*nMru+`>okk8i$y|DJ9%B>0Tj(6+C6Jdx9S-{n1y5;WQ51*YuWKWx+o(;q%PR$aCD z?nfme=tDn;iWu_+bxe`oXLE590|PGQcZh#+|q8BJNmzK8tF z$f-{_dDtTnydvR1;-J`+_kZatY&R|K8%SO*$Nu+HTTCC(bjQ1G7{y0Xq*Smcr4=cHi z@gJ!2C4@N4g>TduNeWrWE0}c;YM#Vqm6cW)cMswK(?2gky>gSr>T~<0`z4m2_n0jO z3Z2dB#3YU&N8*N_JC(o31wCE4jZgpjl4n;J1j0t1M7}z35|V;>%|)>~a&*jS*T}2y zTQK6tn3dKQc`uR86#A|%AuCm3XKz3_zYAL-U}&d~fWMIX-`sck{G0jAxk&GP%3O2C zz0;E8GSjBLGM6U1$TOZb#JUnkAPm}9nyT72IxoqwM|0;!UIH3Y{MAAV64ua9MAvfV|%1S6`Tr-nj20r-T2J}l%)4jta8hj1S4(I*# zYjKu_>x}l&UPV)BKybnjK5;nDAzRYR31NRiZoldIA@e=Tr$L!$Q8lB!nPVPh<(|pr zFHiR)br~5My(`C1r*6qNv2L%Xj37){#D2a33qmWg2tWG6S-HsHs;Motc>716hEY

    {YW|zgzrgshohN`tAR8 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

    otHqY|DClI>XYKK_iG3Vn?~_hjU@`LXQ2;Um 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 Y6iFPbbYE4ty&Iq`uP#?1V;=Iq0C`4wbpQYW literal 0 HcmV?d00001 diff --git a/help/C/figures/print-copies.png b/help/C/figures/print-copies.png new file mode 100644 index 0000000000000000000000000000000000000000..029add8013324f5b531fa8784cd91085d713a4f1 GIT binary patch literal 10945 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 literal 0 HcmV?d00001 diff --git a/help/C/figures/print-merge.png b/help/C/figures/print-merge.png new file mode 100644 index 0000000000000000000000000000000000000000..86f2e929f80bb611e0a1f5ce3c8515a4ccfc6fd3 GIT binary patch literal 11307 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 + + + + + gLabels"> + +]> + + + + + +
    + + + + &app; Manual V&manrevision; + + + User manual for the &app; label and business card creation program + + + + 2003-2009 + Jim Evins + + + Jim Evins + + + &legal; + + + + + Jim + Evins + + + + + + + + + + + + + + + + + + + + + gLabels Manual V2.2.6 + October 2009 + + Mario Blättermann + mariobl@gnome.org + + Jim Evins + + + + gLabels Manual V2.2 + December 2007 + + Jim Evins + evins@snaught.com + + Jim Evins + + + + + This manual describes version &appversion; of &app;. + + + Feedback + To report a bug or make a suggestion regarding the &app; application or + this manual, follow the directions in the &app; Contact Page. + + + + + + + gLabels + + + glabels + + + + + + + + + + Introduction + + The &app; application is a lightweight program for creating labels + and business cards for the GNOME desktop + environment. It is designed to work with various laser/ink-jet + peel-off label and business card sheets that you'll find at most + office supply stores. + + + + + + + + + + + Getting Started + + + To Start &app; + You can start &app; in the following ways: + + + + Applications menu + + Choose + + Office + gLabels + . + + + + Command line + + Type glabels, + then press Return: + + + + + + + When You Start &app; + When you start &app;, the following window is displayed. + + +
    + &app; Start Up Window + + + + + + +
    + + + + + + The &app; window contains the following elements: + + + + Menubar. + + The menus on the menubar contain all of the commands you + need to create and edit labels and business cards in + &app;. + + + + Main toolbar. + + The main toolbar contains a subset of common File and Edit + commands that you can access from the menubar. + + + + Drawing toolbar. + + The drawing toolbar contains a subset of commands for + editing the current &app; document. + + + + Display area. + + The display area is the main drawing interface to + &app;. + + + + Object sidebar. + + The object sidebar provides an interface for viewing and + editing all properties of an individual object. + + + + Properties toolbar. + + The properties toolbar contains a set of tools to + manipulate the properties of selected objects and set default + properties for new objects. + + + + Statusbar. + + The statusbar displays information about current + &app; activity and contextual + information about the menu items. + + + +
    +
    + + + + + + + + Usage + + + + To Create a New Label or Card + + To create a new label or business card, choose + File New + + to display the New Label or Card dialog. Select + the media type and orientation for the new document, + then click OK. A new document is + displayed in the display area of the &app; + window. + + If your particular media type is missing from this dialog, + see + + + + + + To Open a File + + To open a file, choose + File Open + to display the Open File dialog. + Select the file that you want to open, then click + OK. The file is displayed in the display area + of the &app; window. + + You can also open multiple files in + &app;. The application creates a separate + application window for each open file. + + The application records the paths and filenames of the + most recent files that you have edited and displays the files as menu + items on the + FileRecent Files + menu. + + + + + + To Open Multiple Files from a Command Line + + You can run &app; from a command line + and open a single file or multiple files. To open multiple files from + a command line, type the following command, then press + Return: + + glabels + file1.glabels file2.glabels file3.glabels + + + When the application starts, the files that you specify are + displayed in separate &app; windows. + + + + + + To Save a File + + You can save files in the following ways: + + + + + To save changes to an existing file, choose + File + Save . + + + + + To save a new file or to save an existing file under a new + filename, choose File + Save As . Enter a name + for the file in the Save As dialog box, + then click OK. + + + + + + + + + To Change Label Properties + + To change the media type and/or orientation of a label, choose + File + Properties to display the + Label properties dialog. Select the + new media type and orientation for the document, then click + OK. + + + + + + To Create a Custom Template + + To create a new custom template, choose + File + Template Designer ... + to display the Template Designer dialog. + This dialog will assist you in creating a custom template for + most types of label or card stationery that you may encounter. + + If you prefer, you can create your templates manually. + For this option see + + + + + + + To Close a File + + To close the current document, choose + File + Close to close the application + window. If the current document is modified, a confirmation dialog + will be presented, allowing you to save the document or cancel + the command. If the window being closed is the only open window, + &app; will exit. + + + + + + To Quit &app; + + To quit &app;, choose + File + Quit . This is equivalent + to closing all open windows. See + . + + + + + + To Print Labels or Cards + + To print labels or cards, choose + File Print + to display the Print dialog. + Once print options have been selected, click Print + to print the labels or cards. To simply preview the results, + click Print Preview instead. + + The Print dialog allows you to specify the + following print options: + + + The Labels Tab of the Print Dialog + + + + + Print control (Simple) + + + For simple labels or cards (no document merge), the labels + tabbed section contains the following copy controls. + + + + + + The number of copies of the label can be selected by + choosing the number of full sheets to print, or a specific + subset of labels on a single sheet. + + The mini-preview can also be used to graphically select + the subset of labels by clicking the first label on the + mini-preview and dragging to the last label. + + + + + + Print control (Merge) + + + For labels or cards using the document merge (also known + as "mail merge") capability, the labels tabbed section contains + the following merge controls instead of copy controls. + + + + + + The total number of labels or cards printed is the + product of the number of records in the merge source and + the number of copies selected. If multiple copies are + selected, these can be either collated (copies of the + same record grouped together) or un-collated (one copy + each record is printed before next copy). + + Printing can begin on any label on the first sheet. + This can be selected with the Start on + label spinbutton. + + The mini-preview can also be used to graphically select + this first label, by clicking on the desired label in the + mini-preview. + + + + + Options + + The following options can also be selected. + + + print outlines + Print outlines of labels. This option is useful for + dry-runs, to test printer alignment. + + + print in reverse + Prints the labels as mirror images. This option is + useful for printing on clear labels that will be viewed + from the reverse side (e.g. in a car window). + + + print crop marks + Prints crop marks along the edge of the sheet. + This option is useful for printing on blank stock, to + be cut after printing. This option does not work well + with all templates. + + + + + + + + + + + + To Create New Objects + + Objects are created by choosing the appropriate selection under + the Objects + Create Object submenu or + the Drawing Toolbar. This will place the + display area into object creation mode as indicated by its cursor. + To return to the default object selection mode without creating + an object, choose Objects + Select Mode . This will + return the display area's cursor to the default selection arrow. + + The following describes the object creation mode for each object + type: + + + + + Text + + Click the desired location of the upper left corner of the + text object. New text objects are initialized with the + string "Text." To change this text, or other properties, see + . + + + + + Box + + Click the desired location of the upper left corner of the + box object and drag to the desired location of the lower right + corner. If you simply click in a single location, a square + box will be created. To change properties of the box object, see + . + + + + + Line + + Click the desired location of one end of the + line object and drag to the desired location of the other end. + If you simply click in a single location, a diagonal line + will be created. To change properties of the line object, see + . + + + + + Ellipse + + Click the desired location of the upper left corner of the + ellipse object and drag to the desired location of the lower + right corner. If you simply click in a single location, a circle + will be created. To change properties of the ellipse object, see + . + + + + + Image + + Click the desired location of the upper left corner of the + image object and drag to the desired location of the lower + right corner. If you simply click in a single location, a square + will be created. New image objects are initialized with a + simple checkerboard image. To change this image, or other + properties of the image object, see + . + + + + + Barcode + + Click the desired location of the upper left corner of the + barcode object. New barcode objects are initialized to a + POSTNET barcode with representative data. To change data + and properties of the barcode object, see + . + + + + + + + + + + + To Select Objects + + A prerequisite for performing operations on objects is the + selection of individual objects or groups of objects. The + display area must be in the object selection mode to create new + selections, as indicated by an arrow cursor. The object + selection mode is selected by the + Objects + Select Mode menu item, + or the corresponding command on the Drawing + Toolbar. + + + + + Selecting a single object + + A single object can be selected simply by clicking + on the desired object in the display area. + Once selected the object will be highlighted with a set of + resizing handles. + + + + + Aggregate object selections + + Multiple objects can be selected by first selecting the first + object as above and then by holding the Ctrl + key while selecting additional objects. + Individual objects can be added to an existing selection + at any time by holding the Ctrl key while + selecting the desired objects. All objects can also be + selected by using the Edit + Select All + menu item. All objects in an aggregate object selection will be + highlighted. + + + + + Area selections + + Multiple objects can also be selected by clicking an empty + area and dragging to form a rectangular area. When released, + all objects contained in the area will form an aggregate + selection. An area selection can be used to add to an existing + selection by holding the Ctrl key while + performing the selection. + + + + + Unselecting objects + + Individual objects can be removed from an existing + selection by holding the Ctrl key while + clicking on a previously selected object. An entire selection + can be dismissed by using the + Edit Un-select All + menu item + or by simply clicking any empty space in the display area. + Once an object is unselected its highlight is removed. + + + + + + + + + + Clipboard Commands + + Object selections can be manipulated using the standard clipboard + operations Cut, + Copy, Paste, + and Delete. + + + + + + + + CtrlX + + Cut + + + + Moves selected objects to the clipboard. The objects are + then available for pasting back into the current document or + another document. + + + + + + + + CtrlC + + Copy + + + + Copies selected objects to the clipboard without deleting + them. The objects are then available for pasting back into + the current document or another document. + + + + + + + + CtrlV + + Paste + + + + Pastes objects from the clipboard into the current document. + &app; can only paste objects from + another &app; document. + + + + + + + + Delete + + Delete + + + + Deletes selected objects without placing them on the + clipboard. + + + + + + + + + + To Edit Object Properties + + Most object properties can be modified through the object + editor sidebar, illustrated below. To use the object editor, + a single object must first be selected. See + . + + +
    + Object Editor Sidebar + + + + + + +
    + + + The object editor will contain a subset of the following + tabbed sections, depending on object type: + + + Text Tabbed Section (Text objects) + + This section contains a small editor for changing the content + of a text object. It also contains a dropdown menu of available + document merge keys, that can be inserted into text. + + + + + Image Tabbed Section (Image objecs) + + This section contains a file entry with preview to select + image files. The browse button can be used to easily locate + image files. Alternatively, a document merge key can be used + instead to provide a filename at print time. + + + + + Data Tabbed Section (Barcode objecs) + + This section contains a text entry to enter literal barcode + data. Alternatively, a document merge key can be used to + provide this data at print time. + + + + + Style Tabbed Section (Text objects) + + This section contains controls to select text properties, + including font family, font size, font weight, color, and + text justification. + + + + + Style Tabbed Section (Barcode objecs) + + This section contains controls to select barcode properties, + including barcode style, color, whether to print text, and whether + to include a checksum digit. + + + + + Line Tabbed Section + + This section contains controls to select properties of lines + and outlines. These properties include line width and color. + + + + + Fill Tabbed Section + + This section contains controls to select fill properties of box + and ellipse objects. Currently the only fill property is fill + color. + + + + + Size Tabbed Section (All except line objects) + + This section contains controls to select the width and height + of an object. A checkbox is provided, so that the current aspect + ratio can be locked while manipulating the width and height controls. + Image objects also provide a button to reset the size to the + image's natural size (Assumes 72DPI). + + + + + Size Tabbed Section (Line objects) + + This section contains controls to select the length and angle + of a line object. + + + + + Position Tabbed Section + + This section contains controls to change the position of an + object. + + + + + + Shadow Tabbed Section (All except image and barcode objects) + + This section contains controls to add a shadow to an object. + + + + +
    + + + + Other Manipulations of Objects + + Objects can also be manipulated in the following ways. + + + Moving and Resizing Objects + + Objects can be moved by simply clicking on a selected + object and dragging the object to its new location. If the object + is part of an aggregate selection, all objects in the selection + will move with the object being dragged, maintaining their relative + positions to one another. If no object is selected, clicking on + an object will create a new selection containing that object. + See . + + A selected object can be resized by clicking one of its resize + handle and dragging it to obtain the new size. + + + + + Changing Stacking Order + + Stacking order refers to relative position in the z-axis of + objects. That is when objects overlap, which object will appear + on top of the other. By default, newer objects will appear above + older objects. To change this order, select one or more objects + and choose Objects + Order + Bring to Front + to raise the selection to the top of the stacking + order, or choose Objects + Order + Send to Back + to lower the selection to the bottom of the + stacking order. These menuitems are also available by right-clicking + the display area when there is a non-empty selection. + + + + + Rotating and Flipping Objects + + Objects can be rotated 90 degrees in either direction, or flipped + horizontally or vertically, by choosing the appropriate menuitem + in the Objects + Rotate/Flip sub-menu. These + menuitems are also available by right-clicking + the display area when there is a non-empty selection. + + + + + Aligning Objects + + Objects can be aligned horizontally or vertically, relative to + one another, or relative to the center line of the label, by + choosing the appropriate menuitem from the + Objects + Align Horizontal + or Objects + Align Horizontal sub-menus. + These menuitems are also available by right-clicking + the display area when there is a non-empty selection. + + + + + Using the Property Bar + + The property bar can be used to change some common properties + of objects en-masse. These properties include font family, font + size, font weight, text alignment, text color, fill color, line + or outline color, and line width. The property bar also controls + the defaults for these properties for any newly created objects. + + + + + + + + + + + Performing a Document Merge + + Document Merge (sometimes called "Mail Merge") is a powerful + feature that allows a unique label or card to be printed for each + record in an external data source. + + The first step to performing a document merge is to prepare + a source document that contains your merge data. This data could + be mailing addresses or any other data that you wish to create + unique labels or cards for. Currently back-ends only exist for + text files and the evolution data server -- others are planned. The currently + supported text-file format is very simple: each line is a record; + fields are delimited by commas (CSV), tabs, or colons; and newlines + can be embedded into fields by using the "\n" entity. This file + could be created using any text editor or could be created by + another program or script. A common way of creating CSV files is + to export them from a spreadsheet program. + + A label must then be configured to "point at" this data file. + To configure the merge properties of a document, choose + Objects + Merge Properties menu item + to display the merge properties dialog. This + dialog is used to select the exact data file format and file + name (location) of the merge data. + + Finally, once the label has been configured for a data file, + field keys can be inserted into text objects and used as source + or data for barcode objects and image filenames for image objects. + See for more information + on using merge data for these object types. + + Now that your label is configured, &app; will print a unique + label for each record in your source document -- substituting fields + from each record for field keys in the all text, barcode, and + image objects. + + See for a detailed + tutorial on the document merge feature. + + + + + +
    + + + + + + + + Settings + To configure &app;, choose + + Settings + Preferences + . The + Preferences dialog contains the following tabbed + sections: + + + + + + + + + + + + + + Locale + + + + Units + + Use this radio button group to specify your preferred units. + Select one of the following options: + + + + Points + Use points (1 point = 1/72 in = 0.352778 mm). + + + + Inches + Use inches. + + + + Millimeters + Use millimeters. + + + Default: + Inches. + + + + + Default page size + + Use this radio button group to specify your preferred page size. + This will make it quicker for you to locate media types when creating a new + label or card. + + + + US Letter + Most of your media will be of the US Letter page size (8.5 x 11 inches). + + + + ISO A4 + Most of your media will be of the ISO A4 page size (210 x 297 mm). + + + Default: + US Letter. + + + + + + + + Object defaults + + + + Text + + Use these controls to set the default properties of new text objects. + These properties are + + + + Font + These controls are used to select font family and font size, and + whether the font should bold or in italics. + + + + Color + This control selects the default text color. + + + + Alignment + These controls are used to select the default text alignment (left, center or right). + + + + + + + Line + + Use these controls to set the default properties of lines and outlines of + new objects. These properties are + + + + Width + This control selects the default line width. + + + + Color + This control selects the default line color. + + + + + + + Fill + + Use these controls to set the default fill properties of + new objects. These properties are + + + + Color + This control selects the default fill color. + + + + + + + + + + + + + + Document Merge Tutorial + + Document Merge (sometimes called "Mail Merge") is a powerful + feature that allows a unique label or card to be printed for each + record in an external data source. It is however, the most mis-understood + feature of &app;. The following examples + will step through a couple of common tasks using the document merge + feature. + + + Example 1: Name Tags Using a CSV File + + In this example we are organizing an orientation party for the new + crew members of our ship. We have a list of freshman crew members that we + created in gnumeric and exported as the following + CSV file. We could have created this file by using a text editor, but heck it + is the 23rd century. + + +Name,Department,SN +"Jim Kirk",Management,"SC937-0176 CEC" +"Mr. Spock",Sciences,S179-276SP +"Leonard McCoy",Medicine,unknown +"Montgomery Scott",Engineering,SE-197-54T + + + In &app; we have created a new &app; + document using the Avery 5395 "Name Badge Labels" template. Next we use the + Objects + Merge Properties menu item to display + the merge properties dialog. We use this dialog to + select the source type (in our case CSV) and the merge source (filename) as + shown. + + +
    + Merge properties dialog + + + + + + +
    + + + Before applying the merge source, we uncheck the first record since it is only + column headers from our original gnumeric spreadsheet + and would simply waste our first label. We could also unselect any other records + that we didn't want to print a label for. + + We can also view each record in more detail by clicking on the appropriate + expander (the little triangles) as shown. Once we are satisfied with the + selections in this dialog we click OK to accept the + changes. + + Now we start adding objects to our &app; document as shown. + + +
    + Adding objects + + + + + + +
    + + + In this example we have added three text objects and a barcode object. The + first text object contains only simple literal text ("Hello, my name is"). The + second text object contains a single merge field ("${1}") corresponding to the + first field of a record (first column of a line) which contains the new crew + member's full name. The third text field contains both literal text + ("Department: ") followed by a single merge field ("${2}") corresponding to + the second field or the crew member's department. The barcode object is + configured to use field (or key) "3" which contains our crew member's + starfleet serial number. + + Now we can print our name tags by selecting the + File + Print menu item. This will display + print dialog as shown below. + + +
    + Printing name tags + + + + + + +
    + + + Just to make sure our labels are going to look okay, we select the + Print outlines option and click + Print Preview. This will display a print preview dialog + as shown below. + + +
    + Name tags preview + + + + + + +
    + + + Everything looks good, so we can now load up our printer with + the appropriate label stock, print our name tags and start beaming our guests + aboard. + +
    + + + Example 2: Address Labels Using a CSV File + + In this example we are going to throw a party and need to print mailing + address labels for our invitations. We have a list of our closest friends + that we created in gnumeric and exported as the + following CSV file. It should be noted that not everyone has a middle initial or + a two line address. + + +LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP +,,,,,,, +Critter,Ess,S,"123 Faux St.",,Alexandria,VA,22310 +Doe,John,,"Apt 1X","451 Mystery St.",Trenton,NJ,08601 +Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037 +McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813 +Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207 + + + In &app; we have created a new &app; + document using the Avery 5512 "Address Labels" template. Next we use the + Objects + Merge Properties menu item to display + the merge properties dialog. We use this dialog to + select the source type (in our case CSV) and the merge source (filename) as + shown. + + +
    + Merge properties dialog + + + + + + +
    + + + Before applying the merge source, we uncheck the first record since it is only + column headers from our original gnumeric spreadsheet + and would simply waste our first label. We also unselect the second record + which is empty (an artifact of our original spreadsheet). We could also unselect + any other records that we didn't want to print a label for. + + We can also view each record in more detail by clicking on the appropriate + expander (the little triangles) as shown. Once we are satisfied with the + selections in this dialog we click OK to accept the + changes. + + Now we start adding objects to our &app; document as shown. + + +
    + Adding objects + + + + + + +
    + + + In this example we have a single text object. This text object contains + all of our merge fields organized on multiple lines as a mailing address. + Notice that fields ${4} and ${5} (corresponding to ADDR1 and ADDR2) are each + located with no other text on their own lines. When + &app; encounters a field as the only text on + a line, it will not expand the line if the field is empty. + + Now we can print our address labels by selecting the + File + Print menu item. This will display + print dialog as shown below. + + +
    + Printing address labels + + + + + + +
    + + + Just to make sure our labels are going to look okay, we select the + Print outlines option and click + Print Preview. This will display a print preview dialog + as shown below. + + +
    + Address labels preview + + + + + + +
    + + + Everything looks good, so we can now load up our printer with + the appropriate label stock, print our address labels and start mailing + our party invitations. + +
    + + + Example 3: Address Labels Using the <application>Evolution</application> Addressbook + + Our last party was a great success, and now we need to print mailing + address labels for the invitations to a new one. To simplify this, we can use + the Evolution addressbook, because the address + data of all our friends is stored there. + + + Depending on how your copy of &app; was packaged, this option could be unavailable. + Support for the Evolution addressbook will only be available + if the evolution-data-server and its development files + were present when &app; was built. Please keep this in mind if you build &app; + directly from source. + + If the &app; package from your distribution lacks this support, + you may wish to contact the package maintainer or file a bug against the package + to request it. + + + In glabels we have created a new &app; + document using the Avery 5512 "Address Labels" template. Next we use the + Objects + Merge Properties menu item to display + the Merge properties dialog. We use this dialog to + select the source type (in our case Data from default Evolution + addressbook) as shown. + + +
    + Merge properties dialog + + + + + + +
    + + + Once we have chosen Data from default Evolution addressbook + as our merge source, we will get a full list of its content. Initially, + all entries are checked. Assuming we were planning a really big party, we could + leave this selection untouched (but let's keep our budget in mind). We will now select or + unselect certain entries by clicking on the appropriate checkboxes, or we could use + the Select all and Unselect all + buttons to activate or deactivate all entries in the address book. + + We can also view each entry in more detail by clicking on the appropriate + expander (the little triangles) as shown. Once we are satisfied with the + selections in this dialog, we will click the OK button to + accept the changes. + + Now we start adding objects to our glabels document as shown. + + +
    + Adding objects + + + + + + +
    + + + In this example we have a single text object again. This text object contains + all of our merge fields organized on multiple lines as a mailing address. + + Now we can print our address labels by selecting the + File + Print menu item. This will display + the print dialog as shown below. + + +
    + Printing address labels + + + + + + +
    + + + Just to make sure our labels are going to look okay, we select the + Print outlines option and click + Print Preview. This will display a print preview dialog + as shown below. + + +
    + Address labels preview + + + + + + +
    + + + Everything looks good, so we can now load up our printer with + the appropriate label stock, print our address labels and start mailing + our party invitations. + +
    + +
    + + + + + + + Manually Creating New Templates + + Predefined templates are defined by XML files located in + ${prefix}/share/glabels/, + where ${prefix} is usually something like + /usr/local or /usr depending + on the configuration option prefix. &app; will + use all files of the form *-templates.xml + or *.template, that it finds in + ${prefix}/share/glabels/ and + ${HOME}/.glabels/. + Additional templates can be added by creating additional + *.template files in either of these directories. + + + The format for these files is defined in the DTD: + glabels-2.2.dtd. (This DTD also describes other + XML formats used by &app;.) + + + Assumptions/caveats + + + A sheet contains only one size of label or card (if a sheet + contains more than one size of item, it can be split into + multiple templates for multiple pass printing) + + + Distances can be expressed in units of pt, + in, mm, + cm, or pc. For example: + "1.0in" or "2.54cm". If no + units are specified, computer points (pt) will + be assumed (1 pt = + 1/72 in = 0.352778 mm). + + + + + + + Template Files + + +<?xml version="1.0"?> +<Glabels-templates> + + ...templates... + +</Glabels-templates> + + + + + + Example Template + + <Template brand="Avery" part="8160" size="US-Letter" description="Mailing Labels"> + <Label-rectangle id="0" width="189pt" height="72pt" round="5pt"> + <Markup-margin size="5pt"/> + <Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/> + </Label-rectangle> + <Alias brand="Avery" part="5160"/> + <Alias brand="Avery" part="6233"/> + </Template> + + + + + Template Node + + A Template node describes a single stationary + product. It must contain one instance of any type of Label node + (Label-rectangle, + Label-round, or Label-cd). + This node can be followed by zero or more + Alias nodes. + + + + + + + + + Property + + + Description + + + + + + brand + + Brand or manufacturer of stationary product. + E.g. "Avery" + + + + part + + Part number or name of stationary product. + E.g. "8160" + + + + size + + Size of sheet. E.g., "US-Letter," "A4", ... + + + + description + + Description of stationary product. E.g, + "Mailing Labels." + + + + _description + + Translatable description of stationary product. + E.g, "Mailing Labels." (Only useful for predefined + templates) + + + + width + + Page width. Only valid if size="Other" + + + + height + + Page height. Only valid if size="Other" + + + + + + + + + + Label-rectangle Node + + A Label-rectangle node describes the + dimensions of a single label or business card that is rectangular + in shape (may have rounded edges). + + + + + + + + + Property + + + Description + + + + + + id + + Reserved for future use. Should always be 0. + + + + width + Width of label/card + + + height + Height of label/card + + + round + + Radius of corners. For items with square edges + (business cards), the radius should be 0. + + + + x_waste + + Amount of horizontal waste (over-print) to allow. This is useful + for minimizing alignment problems when using non-white + backgrounds (e.g. images). + + + + y_waste + + Amount of vertical waste (over-print) to allow. This is useful + for minimizing alignment problems when using non-white + backgrounds (e.g. images). + + + + + + + +
    + Label-rectangle Parameters + + + + + + +
    + + +
    + + + Label-round Node + + A Label-round node describes the dimensions + of a simple round label (not a CD). + + + + + + + + + Property + + + Description + + + + + + id + + Reserved for future use. Should always be 0. + + + + radius + Radius (1/2 diameter) of label + + + waste + + Amount of waste (over-print) to allow. This is useful + for minimizing alignment problems when using non-white + backgrounds (e.g. images). + + + + + + + + + + Label-cd Node + + A Label-cd node describes the dimensions + of a CD, DVD, or business card CD. + + + + + + + + + Property + + + Description + + + + + + id + + Reserved for future use. Should always be 0. + + + + radius + Outer radius of label + + + hole + Radius of concentric hole + + + width + + If present, the label is clipped to the given width. + (Useful for "business card CDs"). + + + + height + + If present, the label is clipped to the given height. + (Useful for "business card CDs"). + + + + waste + + Amount of waste (over-print) to allow. This is useful + for minimizing alignment problems when using non-white + backgrounds (e.g. images). + + + + + + + +
    + CD Label Parameters + + + + + + +
    + + +
    + + + Markup-margin Node + + A Markup-margin describes a margin along + all edges of a label. + + + + + + + + + Property + + + Description + + + + + + size + + Size of the margin. I.e. the distance of the margin + line from the edge of the card/label. + + + + + + + + + + Markup-line Node + + A Markup-line describes a markup line. + + + + + + + + + Property + + + Description + + + + + + x1 + + x coordinate of 1st endpoint of the line segment. + + + + y1 + + y coordinate of 1st endpoint of the line segment. + + + + x2 + + x coordinate of 2nd endpoint of the line segment. + + + + y2 + + y coordinate of 2nd endpoint of the line segment. + + + + + + + + + + Markup-circle Node + + A Markup-circle describes a markup circle. + + + + + + + + + + Property + + + Description + + + + + + x0 + + x coordinate of circle origin (center). + + + + y0 + + y coordinate of circle origin (center). + + + + radius + Radius of circle. + + + + + + + + + Markup-rect Node + + A Markup-rect describes a markup rectangle. + + + + + + + + + + Property + + + Description + + + + + + x1 + + x coordinate of upper left corner of rectangle. + + + + y1 + + y coordinate of upper left corner of rectangle. + + + + w + + Width of rectangle. + + + + h + + Height of rectangle. + + + + r + Radius of rounded corners of rectangle. + + + + + + + + + Layout Node + + A label node may contain multiple Layout + children. If labels are arranged in a simple grid pattern, only + one layout is needed. However, if labels are arranged in multiple + grids, such as a running bond pattern, multiple + layout tags can be used. Note: a single label + can always be treated as a grid of one. + + + + + + + + + Property + + + Description + + + + + + nx + + Number of labels/cards across in the grid + (horizontal) + + + + ny + + Number of labels/cards up and down in the grid + (vertical) + + + + x0 + + Distance from left edge of sheet to the left edge of + the left column of cards/labels in the layout. + + + + y0 + + Distance from the top edge of sheet to the top edge of + the top row of labels/cards in the layout. + + + + dx + Horizontal pitch of grid. + + + dy + Vertical pitch of grid. + + + + + + +
    + Layout Parameters + + + + + + +
    + + +
    + + + Alias Node + + An Alias node provides the name of a + product with the same size and layout characteristics as the + parent template. + + + + + + + + + Property + + + Description + + + + + + brand + + The brand or manufacturer of the equivalent product. + + + + part + + The part number or name of the equivalent product. + + + + + + + + +
    + + + + + + + + + + + + + + About &app; + &app; was written by Jim Evins + (evins@snaught.com). To find more information about + &app;, please visit the + gLabels Web + page. + + To report a bug or make a suggestion regarding this application or + this manual, follow the directions at the + &app; Contact Page. + + + This program is distributed under the terms of the GNU + General Public license as published by the Free Software + Foundation; either version 2 of the License, or (at your option) + any later version. A copy of this license can be found at this + link, or in the file + COPYING included with the source code of this program. + + + + + + + +
    diff --git a/help/C/legal.xml b/help/C/legal.xml new file mode 100644 index 00000000..ac97e1de --- /dev/null +++ b/help/C/legal.xml @@ -0,0 +1,76 @@ + + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation + License (GFDL), Version 1.1 or any later version published + by the Free Software Foundation with no Invariant Sections, + no Front-Cover Texts, and no Back-Cover Texts. You can find + a copy of the GFDL at this link or in the file COPYING-DOCS + distributed with this manual. + + This manual is part of a collection of GNOME manuals + distributed under the GFDL. If you want to distribute this + manual separately from the collection, you can do so by + adding a copy of the license to the manual, as described in + section 6 of the license. + + + + Many of the names used by companies to distinguish their + products and services are claimed as trademarks. Where those + names appear in any GNOME documentation, and the members of + the GNOME Documentation Project are made aware of those + trademarks, then the names are in capital letters or initial + capital letters. + + + + DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED + UNDER THE TERMS OF THE GNU FREE DOCUMENTATION LICENSE + WITH THE FURTHER UNDERSTANDING THAT: + + + + DOCUMENT IS PROVIDED ON AN "AS IS" BASIS, + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR + IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES + THAT THE DOCUMENT OR MODIFIED VERSION OF THE + DOCUMENT IS FREE OF DEFECTS MERCHANTABLE, FIT FOR + A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE + RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE + OF THE DOCUMENT OR MODIFIED VERSION OF THE + DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR + MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, + YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY + CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY + SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER + OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS + LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED + VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER + EXCEPT UNDER THIS DISCLAIMER; AND + + + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL + THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), + CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, + INITIAL WRITER, ANY CONTRIBUTOR, OR ANY + DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION + OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH + PARTIES, BE LIABLE TO ANY PERSON FOR ANY + DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR + CONSEQUENTIAL DAMAGES OF ANY CHARACTER + INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS + OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR + MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR + LOSSES ARISING OUT OF OR RELATING TO USE OF THE + DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT, + EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF + THE POSSIBILITY OF SUCH DAMAGES. + + + + + + diff --git a/help/Makefile.am b/help/Makefile.am new file mode 100644 index 00000000..3ed935f6 --- /dev/null +++ b/help/Makefile.am @@ -0,0 +1,26 @@ +include $(top_srcdir)/gnome-doc-utils.make + +dist-hook: doc-dist-hook + +DOC_MODULE = glabels +DOC_ENTITIES = legal.xml +DOC_INCLUDES = +DOC_FIGURES = figures/glabels-template-cd.png \ + figures/glabels-template-label.png \ + figures/glabels-template-layout.png \ + figures/main-window-empty.png \ + figures/merge-ex1-1.png \ + figures/merge-ex1-2.png \ + figures/merge-ex1-3.png \ + figures/merge-ex1-4.png \ + figures/merge-ex2-1.png \ + figures/merge-ex2-2.png \ + figures/merge-ex2-3.png \ + figures/merge-ex2-4.png \ + figures/merge-ex3-1.png \ + figures/merge-ex3-2.png \ + figures/object-editor-sidebar.png \ + figures/print-copies.png \ + figures/print-merge.png + +DOC_LINGUAS = cs de es fr diff --git a/help/Makefile.in b/help/Makefile.in new file mode 100644 index 00000000..c8b57ac2 --- /dev/null +++ b/help/Makefile.in @@ -0,0 +1,969 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# gnome-doc-utils.make - make magic for building documentation +# Copyright (C) 2004-2005 Shaun McCance +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +################################################################################ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/gnome-doc-utils.make +subdir = help +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CATALOGS = @CATALOGS@ +CATOBJEXT = @CATOBJEXT@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLABELS_CFLAGS = @GLABELS_CFLAGS@ +GLABELS_LIBS = @GLABELS_LIBS@ +GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ +GLIB_REQUIRED = @GLIB_REQUIRED@ +GMOFILES = @GMOFILES@ +GMSGFMT = @GMSGFMT@ +GREP = @GREP@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_REQUIRED = @GTK_REQUIRED@ +HAVE_XML_PARSE_HUGE = @HAVE_XML_PARSE_HUGE@ +HELP_DIR = @HELP_DIR@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTOBJEXT = @INSTOBJEXT@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBEBOOK_CFLAGS = @LIBEBOOK_CFLAGS@ +LIBEBOOK_LIBS = @LIBEBOOK_LIBS@ +LIBEBOOK_REQUIRED = @LIBEBOOK_REQUIRED@ +LIBGLABELS_CFLAGS = @LIBGLABELS_CFLAGS@ +LIBGLABELS_LIBS = @LIBGLABELS_LIBS@ +LIBGLABELS_VERSION_INFO = @LIBGLABELS_VERSION_INFO@ +LIBGLADE_REQUIRED = @LIBGLADE_REQUIRED@ +LIBGNOMEUI_REQUIRED = @LIBGNOMEUI_REQUIRED@ +LIBGNOME_REQUIRED = @LIBGNOME_REQUIRED@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBXML_REQUIRED = @LIBXML_REQUIRED@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MKINSTALLDIRS = @MKINSTALLDIRS@ +MSGFMT = @MSGFMT@ +MSGFMT_OPTS = @MSGFMT_OPTS@ +MSGMERGE = @MSGMERGE@ +MYGAL_CFLAGS = @MYGAL_CFLAGS@ +MYGAL_LIBS = @MYGAL_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +POFILES = @POFILES@ +POSUB = @POSUB@ +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +UPDATE_DESKTOP_DATABASE = @UPDATE_DESKTOP_DATABASE@ +UPDATE_MIME_DATABASE = @UPDATE_MIME_DATABASE@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +XGETTEXT = @XGETTEXT@ +XML_PARSE_HUGE_CFLAGS = @XML_PARSE_HUGE_CFLAGS@ +XML_PARSE_HUGE_LIBS = @XML_PARSE_HUGE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +_clean_doc_header = $(if $(DOC_H_FILE),clean-doc-header) +_DOC_REAL_FORMATS = $(if $(DOC_USER_FORMATS),$(DOC_USER_FORMATS),$(DOC_FORMATS)) +_DOC_REAL_LINGUAS = $(if $(filter environment,$(origin LINGUAS)), \ + $(filter $(LINGUAS),$(DOC_LINGUAS)), \ + $(DOC_LINGUAS)) + +_DOC_ABS_SRCDIR = @abs_srcdir@ +_xml2po_mode = $(if $(DOC_ID),mallard,docbook) +@ENABLE_SK_TRUE@_ENABLE_SK = true + +################################################################################ +db2omf_args = \ + --stringparam db2omf.basename $(DOC_MODULE) \ + --stringparam db2omf.format $(3) \ + --stringparam db2omf.dtd \ + $(shell xmllint --format $(2) | grep -h PUBLIC | head -n 1 \ + | sed -e 's/.*PUBLIC \(\"[^\"]*\"\).*/\1/') \ + --stringparam db2omf.lang $(notdir $(patsubst %/$(notdir $(2)),%,$(2))) \ + --stringparam db2omf.omf_dir "$(OMF_DIR)" \ + --stringparam db2omf.help_dir "$(HELP_DIR)" \ + --stringparam db2omf.omf_in "$(_DOC_OMF_IN)" \ + $(if $(_ENABLE_SK), \ + --stringparam db2omf.scrollkeeper_cl "$(_skcontentslist)") \ + $(_db2omf) $(2) + +_DOC_OMF_IN = $(if $(DOC_MODULE),$(wildcard $(_DOC_ABS_SRCDIR)/$(DOC_MODULE).omf.in)) +_DOC_OMF_DB = $(if $(_DOC_OMF_IN), \ + $(foreach lc,C $(_DOC_REAL_LINGUAS),$(DOC_MODULE)-$(lc).omf)) + +_DOC_OMF_HTML = $(if $(_DOC_OMF_IN), \ + $(foreach lc,C $(_DOC_REAL_LINGUAS),$(DOC_MODULE)-html-$(lc).omf)) + + +# FIXME +_DOC_OMF_ALL = \ + $(if $(filter docbook,$(_DOC_REAL_FORMATS)),$(_DOC_OMF_DB)) \ + $(if $(filter html HTML,$(_DOC_REAL_FORMATS)),$(_DOC_OMF_HTML)) + + +################################################################################ +_DOC_C_MODULE = $(if $(DOC_MODULE),C/$(DOC_MODULE).xml) +_DOC_C_PAGES = $(foreach page,$(DOC_PAGES),C/$(page)) +_DOC_C_ENTITIES = $(foreach ent,$(DOC_ENTITIES),C/$(ent)) +_DOC_C_INCLUDES = $(foreach inc,$(DOC_INCLUDES),C/$(inc)) +_DOC_C_DOCS = \ + $(_DOC_C_ENTITIES) $(_DOC_C_INCLUDES) \ + $(_DOC_C_PAGES) $(_DOC_C_MODULE) + +_DOC_C_DOCS_NOENT = \ + $(_DOC_C_MODULE) $(_DOC_C_INCLUDES) \ + $(_DOC_C_PAGES) + +_DOC_C_FIGURES = $(if $(DOC_FIGURES), \ + $(foreach fig,$(DOC_FIGURES),C/$(fig)), \ + $(patsubst $(srcdir)/%,%,$(wildcard $(srcdir)/C/figures/*.png))) + + +# FIXME: probably have to shell escape to determine the file names +_DOC_C_HTML = $(foreach f, \ + $(shell xsltproc --xinclude \ + --stringparam db.chunk.basename "$(DOC_MODULE)" \ + $(_chunks) "C/$(DOC_MODULE).xml"), \ + C/$(f).xhtml) + + +############################################################################### +_DOC_POFILES = $(if $(DOC_MODULE)$(DOC_ID), \ + $(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(lc).po)) + +_DOC_LC_MODULES = $(if $(DOC_MODULE), \ + $(foreach lc,$(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xml)) + +_DOC_LC_PAGES = \ + $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach page,$(_DOC_C_PAGES), \ + $(lc)/$(notdir $(page)) )) + +_DOC_LC_INCLUDES = \ + $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach inc,$(_DOC_C_INCLUDES), \ + $(lc)/$(notdir $(inc)) )) + + +# FIXME: probably have to shell escape to determine the file names +_DOC_LC_HTML = \ + $(foreach lc,$(_DOC_REAL_LINGUAS),$(foreach doc,$(_DOC_C_HTML), \ + $(lc)/$(notdir $(doc)) )) + +_DOC_LC_DOCS = \ + $(_DOC_LC_MODULES) $(_DOC_LC_INCLUDES) $(_DOC_LC_PAGES) \ + $(if $(filter html HTML,$(_DOC_REAL_FORMATS)),$(_DOC_LC_HTML)) + +_DOC_LC_FIGURES = $(foreach lc,$(_DOC_REAL_LINGUAS), \ + $(patsubst C/%,$(lc)/%,$(_DOC_C_FIGURES)) ) + +_DOC_SRC_FIGURES = \ + $(foreach fig,$(_DOC_C_FIGURES), $(foreach lc,C $(_DOC_REAL_LINGUAS), \ + $(wildcard $(srcdir)/$(lc)/$(patsubst C/%,%,$(fig))) )) + +_DOC_POT = $(if $(DOC_MODULE),$(DOC_MODULE).pot) + +################################################################################ +_DOC_HTML_ALL = $(if $(filter html HTML,$(_DOC_REAL_FORMATS)), \ + $(_DOC_C_HTML) $(_DOC_LC_HTML)) + +_DOC_HTML_TOPS = $(foreach lc,C $(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xhtml) +_clean_omf = $(if $(_DOC_OMF_IN),clean-doc-omf) +_clean_dsk = $(if $(_DOC_DSK_IN),clean-doc-dsk) +_clean_lc = $(if $(_DOC_REAL_LINGUAS),clean-doc-lc) +_clean_dir = $(if $(DOC_MODULE)$(DOC_ID),clean-doc-dir) +_doc_install_dir = $(if $(DOC_ID),$(DOC_ID),$(DOC_MODULE)) +DOC_MODULE = glabels +DOC_ENTITIES = legal.xml +DOC_INCLUDES = +DOC_FIGURES = figures/glabels-template-cd.png \ + figures/glabels-template-label.png \ + figures/glabels-template-layout.png \ + figures/main-window-empty.png \ + figures/merge-ex1-1.png \ + figures/merge-ex1-2.png \ + figures/merge-ex1-3.png \ + figures/merge-ex1-4.png \ + figures/merge-ex2-1.png \ + figures/merge-ex2-2.png \ + figures/merge-ex2-3.png \ + figures/merge-ex2-4.png \ + figures/merge-ex3-1.png \ + figures/merge-ex3-2.png \ + figures/object-editor-sidebar.png \ + figures/print-copies.png \ + figures/print-merge.png + +DOC_LINGUAS = cs de es fr +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/gnome-doc-utils.make $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu help/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu help/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-local + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-data-local + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic \ + maintainer-clean-local + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool \ + mostlyclean-local + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-local + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + clean-local dist-hook distclean distclean-generic \ + distclean-libtool distclean-local distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-data-local install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic maintainer-clean-local mostlyclean \ + mostlyclean-generic mostlyclean-libtool mostlyclean-local pdf \ + pdf-am ps ps-am uninstall uninstall-am uninstall-local + + +DOC_H_FILE ?= + +DOC_H_DOCS ?= + +$(DOC_H_FILE): $(DOC_H_DOCS); + @rm -f $@.tmp; touch $@.tmp; + echo 'const gchar* documentation_credits[] = {' >> $@.tmp + list='$(DOC_H_DOCS)'; for doc in $$list; do \ + xmlpath="`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`:$(srcdir)/`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`"; \ + if ! test -f "$$doc"; then doc="$(srcdir)/$$doc"; fi; \ + xsltproc --path "$$xmlpath" $(_credits) $$doc; \ + done | sort | uniq \ + | awk 'BEGIN{s=""}{n=split($$0,w,"<");if(s!=""&&s!=substr(w[1],1,length(w[1])-1)){print s};if(n>1){print $$0;s=""}else{s=$$0}};END{if(s!=""){print s}}' \ + | sed -e 's/\\/\\\\/' -e 's/"/\\"/' -e 's/\(.*\)/\t"\1",/' >> $@.tmp + echo ' NULL' >> $@.tmp + echo '};' >> $@.tmp + echo >> $@.tmp + list='$(DOC_H_DOCS)'; for doc in $$list; do \ + xmlpath="`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`:$(srcdir)/`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`"; \ + if ! test -f "$$doc"; then doc="$(srcdir)/$$doc"; fi; \ + docid=`echo "$$doc" | sed -e 's/.*\/\([^/]*\)\.xml/\1/' \ + | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`; \ + echo $$xmlpath; \ + ids=`xsltproc --xinclude --path "$$xmlpath" $(_ids) $$doc`; \ + for id in $$ids; do \ + echo '#define HELP_'`echo $$docid`'_'`echo $$id \ + | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`' "'$$id'"' >> $@.tmp; \ + done; \ + echo >> $@.tmp; \ + done; + cp $@.tmp $@ && rm -f $@.tmp + +dist-check-gdu: +@HAVE_GNOME_DOC_UTILS_FALSE@ @echo "*** GNOME Doc Utils must be installed in order to make dist" +@HAVE_GNOME_DOC_UTILS_FALSE@ @false + +.PHONY: dist-doc-header +dist-doc-header: $(DOC_H_FILE) + @if test -f "$(DOC_H_FILE)"; then d=; else d="$(srcdir)/"; fi; \ + echo "$(INSTALL_DATA) $${d}$(DOC_H_FILE) $(distdir)/$(DOC_H_FILE)"; \ + $(INSTALL_DATA) "$${d}$(DOC_H_FILE)" "$(distdir)/$(DOC_H_FILE)"; + +doc-dist-hook: dist-check-gdu $(if $(DOC_H_FILE),dist-doc-header) + +.PHONY: clean-doc-header +clean-local: $(_clean_doc_header) +distclean-local: $(_clean_doc_header) +mostlyclean-local: $(_clean_doc_header) +maintainer-clean-local: $(_clean_doc_header) +clean-doc-header: + rm -f $(DOC_H_FILE) + +all: $(DOC_H_FILE) + +################################################################################ + +DOC_MODULE ?= + +DOC_ID ?= + +DOC_PAGES ?= + +DOC_ENTITIES ?= + +DOC_INCLUDES ?= + +DOC_FIGURES ?= + +DOC_FORMATS ?= docbook + +DOC_LINGUAS ?= + +################################################################################ + +_xml2po ?= `which xml2po` + +_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils` +_db2omf ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils` +_malrng ?= `$(PKG_CONFIG) --variable malrng gnome-doc-utils` +_chunks ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl +_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl +_ids ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl +@ENABLE_SK_TRUE@_skpkgdatadir ?= `scrollkeeper-config --pkgdatadir` +@ENABLE_SK_TRUE@_sklocalstatedir ?= `scrollkeeper-config --pkglocalstatedir` +@ENABLE_SK_TRUE@_skcontentslist ?= $(_skpkgdatadir)/Templates/C/scrollkeeper_cl.xml + +$(_DOC_OMF_DB) : $(_DOC_OMF_IN) +$(_DOC_OMF_DB) : $(DOC_MODULE)-%.omf : %/$(DOC_MODULE).xml + @test "x$(_ENABLE_SK)" != "xtrue" -o -f "$(_skcontentslist)" || { \ + echo "The file '$(_skcontentslist)' does not exist." >&2; \ + echo "Please check your ScrollKeeper installation." >&2; \ + exit 1; } + xsltproc -o $@ $(call db2omf_args,$@,$<,'docbook') || { rm -f "$@"; exit 1; } + +$(_DOC_OMF_HTML) : $(_DOC_OMF_IN) +$(_DOC_OMF_HTML) : $(DOC_MODULE)-html-%.omf : %/$(DOC_MODULE).xml +@ENABLE_SK_TRUE@ @test "x$(_ENABLE_SK)" != "xtrue" -o -f "$(_skcontentslist)" || { \ +@ENABLE_SK_TRUE@ echo "The file '$(_skcontentslist)' does not exist" >&2; \ +@ENABLE_SK_TRUE@ echo "Please check your ScrollKeeper installation." >&2; \ +@ENABLE_SK_TRUE@ exit 1; } + xsltproc -o $@ $(call db2omf_args,$@,$<,'xhtml') || { rm -f "$@"; exit 1; } + +.PHONY: omf +omf: $(_DOC_OMF_ALL) + +.PHONY: po +po: $(_DOC_POFILES) + +$(_DOC_POFILES): + @if ! test -d $(dir $@); then \ + echo "mkdir $(dir $@)"; \ + mkdir "$(dir $@)"; \ + fi + @if test ! -f $@ -a -f $(srcdir)/$@; then \ + echo "cp $(srcdir)/$@ $@"; \ + cp "$(srcdir)/$@" "$@"; \ + fi; + @docs=; \ + list='$(_DOC_C_DOCS_NOENT)'; for doc in $$list; do \ + docs="$$docs $(_DOC_ABS_SRCDIR)/$$doc"; \ + done; \ + if ! test -f $@; then \ + echo "(cd $(dir $@) && \ + $(_xml2po) -m $(_xml2po_mode) -e $$docs > $(notdir $@).tmp && \ + cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp)"; \ + (cd $(dir $@) && \ + $(_xml2po) -m $(_xml2po_mode) -e $$docs > $(notdir $@).tmp && \ + cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp); \ + else \ + echo "(cd $(dir $@) && \ + $(_xml2po) -m $(_xml2po_mode) -e -u $(notdir $@) $$docs)"; \ + (cd $(dir $@) && \ + $(_xml2po) -m $(_xml2po_mode) -e -u $(notdir $@) $$docs); \ + fi + +# FIXME: fix the dependancy +# FIXME: hook xml2po up +$(_DOC_LC_DOCS) : $(_DOC_POFILES) +$(_DOC_LC_DOCS) : $(_DOC_C_DOCS) + if ! test -d $(dir $@); then mkdir $(dir $@); fi + if [ -f "C/$(notdir $@)" ]; then d="../"; else d="$(_DOC_ABS_SRCDIR)/"; fi; \ + po="$(dir $@)$(patsubst %/$(notdir $@),%,$@).po"; \ + if [ -f "$${po}" ]; then po="../$${po}"; else po="$(_DOC_ABS_SRCDIR)/$${po}"; fi; \ + (cd $(dir $@) && \ + $(_xml2po) -m $(_xml2po_mode) -e -p "$${po}" \ + "$${d}C/$(notdir $@)" > $(notdir $@).tmp && \ + cp $(notdir $@).tmp $(notdir $@) && rm -f $(notdir $@).tmp) +.PHONY: pot +pot: $(_DOC_POT) +$(_DOC_POT): $(_DOC_C_DOCS_NOENT) + $(_xml2po) -m $(_xml2po_mode) -e -o $@ $^ + +$(_DOC_HTML_TOPS): $(_DOC_C_DOCS) $(_DOC_LC_DOCS) + xsltproc -o $@ --xinclude --param db.chunk.chunk_top "false()" --stringparam db.chunk.basename "$(DOC_MODULE)" --stringparam db.chunk.extension ".xhtml" $(_db2html) $(patsubst %.xhtml,%.xml,$@) + +################################################################################ + +all: \ + $(_DOC_C_DOCS) $(_DOC_LC_DOCS) \ + $(_DOC_OMF_ALL) $(_DOC_DSK_ALL) \ + $(_DOC_HTML_ALL) $(_DOC_POFILES) + +################################################################################ + +.PHONY: clean-doc-omf clean-doc-dsk clean-doc-lc clean-doc-dir + +clean-doc-omf: ; rm -f $(_DOC_OMF_DB) $(_DOC_OMF_HTML) +clean-doc-dsk: ; rm -f $(_DOC_DSK_DB) $(_DOC_DSK_HTML) +clean-doc-lc: + rm -f $(_DOC_LC_DOCS) + @list='$(_DOC_POFILES)'; for po in $$list; do \ + if ! test "$$po" -ef "$(srcdir)/$$po"; then \ + echo "rm -f $$po"; \ + rm -f "$$po"; \ + fi; \ + done + @for lc in C $(_DOC_REAL_LINGUAS); do \ + if test -f "$$lc/.xml2po.mo"; then \ + echo "rm -f $$lc/.xml2po.mo"; \ + rm -f "$$lc/.xml2po.mo"; \ + fi; \ + done +clean-doc-dir: clean-doc-lc + @for lc in C $(_DOC_REAL_LINGUAS); do \ + for dir in `find $$lc -depth -type d`; do \ + if ! test $$dir -ef $(srcdir)/$$dir; then \ + echo "rmdir $$dir"; \ + rmdir "$$dir"; \ + fi; \ + done; \ + done + +clean-local: \ + $(_clean_omf) $(_clean_dsk) \ + $(_clean_lc) $(_clean_dir) +distclean-local: \ + $(_clean_omf) $(_clean_dsk) \ + $(_clean_lc) $(_clean_dir) +mostlyclean-local: \ + $(_clean_omf) $(_clean_dsk) \ + $(_clean_lc) $(_clean_dir) +maintainer-clean-local: \ + $(_clean_omf) $(_clean_dsk) \ + $(_clean_lc) $(_clean_dir) + +################################################################################ + +.PHONY: dist-doc-docs dist-doc-pages dist-doc-figs dist-doc-omf dist-doc-dsk +doc-dist-hook: \ + $(if $(DOC_MODULE)$(DOC_ID),dist-doc-docs) \ + $(if $(_DOC_C_FIGURES),dist-doc-figs) \ + $(if $(_DOC_OMF_IN),dist-doc-omf) +# $(if $(_DOC_DSK_IN),dist-doc-dsk) + +dist-doc-docs: $(_DOC_C_DOCS) $(_DOC_LC_DOCS) $(_DOC_POFILES) + @for lc in C $(_DOC_REAL_LINGUAS); do \ + echo " $(mkinstalldirs) $(distdir)/$$lc"; \ + $(mkinstalldirs) "$(distdir)/$$lc"; \ + done + @list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS) $(_DOC_POFILES)'; \ + for doc in $$list; do \ + if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \ + docdir=`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \ + if ! test -d "$(distdir)/$$docdir"; then \ + echo "$(mkinstalldirs) $(distdir)/$$docdir"; \ + $(mkinstalldirs) "$(distdir)/$$docdir"; \ + fi; \ + echo "$(INSTALL_DATA) $$d$$doc $(distdir)/$$doc"; \ + $(INSTALL_DATA) "$$d$$doc" "$(distdir)/$$doc"; \ + done + +dist-doc-figs: $(_DOC_SRC_FIGURES) + @list='$(_DOC_C_FIGURES) $(_DOC_LC_FIGURES)'; \ + for fig in $$list; do \ + if test -f "$$fig"; then d=; else d="$(srcdir)/"; fi; \ + if test -f "$$d$$fig"; then \ + figdir=`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \ + if ! test -d "$(distdir)/$$figdir"; then \ + echo "$(mkinstalldirs) $(distdir)/$$figdir"; \ + $(mkinstalldirs) "$(distdir)/$$figdir"; \ + fi; \ + echo "$(INSTALL_DATA) $$d$$fig $(distdir)/$$fig"; \ + $(INSTALL_DATA) "$$d$$fig" "$(distdir)/$$fig"; \ + fi; \ + done; + +dist-doc-omf: + @if test -f "$(_DOC_OMF_IN)"; then d=; else d="$(srcdir)/"; fi; \ + echo "$(INSTALL_DATA) $$d$(_DOC_OMF_IN) $(distdir)/$(notdir $(_DOC_OMF_IN))"; \ + $(INSTALL_DATA) "$$d$(_DOC_OMF_IN)" "$(distdir)/$(notdir $(_DOC_OMF_IN))" + +dist-doc-dsk: + @if test -f "$(_DOC_DSK_IN)"; then d=; else d="$(srcdir)/"; fi; \ + echo "$(INSTALL_DATA) $$d$(_DOC_DSK_IN) $(distdir)/$(notdir $(_DOC_DSK_IN))"; \ + $(INSTALL_DATA) "$$d$(_DOC_DSK_IN)" "$(distdir)/$(notdir $(_DOC_DSK_IN))" + +################################################################################ + +.PHONY: check-doc-docs check-doc-omf +check: \ + $(if $(DOC_MODULE),check-doc-docs) \ + $(if $(DOC_ID),check-doc-pages) \ + $(if $(_DOC_OMF_IN),check-doc-omf) + +check-doc-docs: $(_DOC_C_DOCS) $(_DOC_LC_DOCS) + @for lc in C $(_DOC_REAL_LINGUAS); do \ + if test -f "$$lc"; \ + then d=; \ + xmlpath="$$lc"; \ + else \ + d="$(srcdir)/"; \ + xmlpath="$$lc:$(srcdir)/$$lc"; \ + fi; \ + echo "xmllint --noout --noent --path $$xmlpath --xinclude --postvalid $$d$$lc/$(DOC_MODULE).xml"; \ + xmllint --noout --noent --path "$$xmlpath" --xinclude --postvalid "$$d$$lc/$(DOC_MODULE).xml"; \ + done + +check-doc-pages: $(_DOC_C_PAGES) $(_DOC_LC_PAGES) + for lc in C $(_DOC_REAL_LINGUAS); do \ + if test -f "$$lc"; \ + then d=; \ + xmlpath="$$lc"; \ + else \ + d="$(srcdir)/"; \ + xmlpath="$$lc:$(srcdir)/$$lc"; \ + fi; \ + for page in $(DOC_PAGES); do \ + echo "xmllint --noout --noent --path $$xmlpath --xinclude --relaxng $(_malrng) $$d$$lc/$$page"; \ + xmllint --noout --noent --path "$$xmlpath" --xinclude --relaxng "$(_malrng)" "$$d$$lc/$$page"; \ + done; \ + done + +check-doc-omf: $(_DOC_OMF_ALL) + @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \ + echo "xmllint --noout --xinclude --dtdvalid 'http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd' $$omf"; \ + xmllint --noout --xinclude --dtdvalid 'http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd' $$omf; \ + done + +################################################################################ + +.PHONY: install-doc-docs install-doc-html install-doc-figs install-doc-omf install-doc-dsk + +install-data-local: \ + $(if $(DOC_MODULE)$(DOC_ID),install-doc-docs) \ + $(if $(_DOC_HTML_ALL),install-doc-html) \ + $(if $(_DOC_C_FIGURES),install-doc-figs) \ + $(if $(_DOC_OMF_IN),install-doc-omf) +# $(if $(_DOC_DSK_IN),install-doc-dsk) + +install-doc-docs: + @for lc in C $(_DOC_REAL_LINGUAS); do \ + echo "$(mkinstalldirs) $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$lc"; \ + $(mkinstalldirs) $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$lc; \ + done + @list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS)'; for doc in $$list; do \ + if test -f "$$doc"; then d=; else d="$(srcdir)/"; fi; \ + docdir="$$lc/"`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \ + docdir="$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$docdir"; \ + if ! test -d "$$docdir"; then \ + echo "$(mkinstalldirs) $$docdir"; \ + $(mkinstalldirs) "$$docdir"; \ + fi; \ + echo "$(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \ + $(INSTALL_DATA) $$d$$doc $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc; \ + done + +install-doc-figs: + @list='$(patsubst C/%,%,$(_DOC_C_FIGURES))'; for fig in $$list; do \ + for lc in C $(_DOC_REAL_LINGUAS); do \ + figsymlink=false; \ + if test -f "$$lc/$$fig"; then \ + figfile="$$lc/$$fig"; \ + elif test -f "$(srcdir)/$$lc/$$fig"; then \ + figfile="$(srcdir)/$$lc/$$fig"; \ + else \ + figsymlink=true; \ + fi; \ + figdir="$$lc/"`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \ + figdir="$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$figdir"; \ + if ! test -d "$$figdir"; then \ + echo "$(mkinstalldirs) $$figdir"; \ + $(mkinstalldirs) "$$figdir"; \ + fi; \ + figbase=`echo $$fig | sed -e 's/^.*\///'`; \ + if $$figsymlink; then \ + echo "cd $$figdir && $(LN_S) -f ../../C/$$fig $$figbase"; \ + ( cd "$$figdir" && $(LN_S) -f "../../C/$$fig" "$$figbase" ); \ + else \ + echo "$(INSTALL_DATA) $$figfile $$figdir$$figbase"; \ + $(INSTALL_DATA) "$$figfile" "$$figdir$$figbase"; \ + fi; \ + done; \ + done + +install-doc-html: + echo install-html + +install-doc-omf: + $(mkinstalldirs) $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir) + @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \ + echo "$(INSTALL_DATA) $$omf $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \ + $(INSTALL_DATA) $$omf $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf; \ + done + @if test "x$(_ENABLE_SK)" = "xtrue"; then \ + echo "scrollkeeper-update -p $(DESTDIR)$(_sklocalstatedir) -o $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)"; \ + scrollkeeper-update -p "$(DESTDIR)$(_sklocalstatedir)" -o "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)"; \ + fi; + +install-doc-dsk: + echo install-dsk + +################################################################################ + +.PHONY: uninstall-doc-docs uninstall-doc-html uninstall-doc-figs uninstall-doc-omf uninstall-doc-dsk +uninstall-local: \ + $(if $(DOC_MODULE)$(DOC_ID),uninstall-doc-docs) \ + $(if $(_DOC_HTML_ALL),uninstall-doc-html) \ + $(if $(_DOC_C_FIGURES),uninstall-doc-figs) \ + $(if $(_DOC_OMF_IN),uninstall-doc-omf) +# $(if $(_DOC_DSK_IN),uninstall-doc-dsk) + +uninstall-doc-docs: + @list='$(_DOC_C_DOCS) $(_DOC_LC_DOCS)'; for doc in $$list; do \ + echo " rm -f $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \ + rm -f "$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$doc"; \ + done + +uninstall-doc-figs: + @list='$(_DOC_C_FIGURES) $(_DOC_LC_FIGURES)'; for fig in $$list; do \ + echo "rm -f $(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$fig"; \ + rm -f "$(DESTDIR)$(HELP_DIR)/$(_doc_install_dir)/$$fig"; \ + done; + +uninstall-doc-omf: + @list='$(_DOC_OMF_ALL)'; for omf in $$list; do \ + if test "x$(_ENABLE_SK)" = "xtrue"; then \ + echo "scrollkeeper-uninstall -p $(_sklocalstatedir) $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \ + scrollkeeper-uninstall -p "$(_sklocalstatedir)" "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \ + fi; \ + echo "rm -f $(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \ + rm -f "$(DESTDIR)$(OMF_DIR)/$(_doc_install_dir)/$$omf"; \ + done + +dist-hook: doc-dist-hook + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/help/cs/cs.po b/help/cs/cs.po new file mode 100644 index 00000000..86f22876 --- /dev/null +++ b/help/cs/cs.po @@ -0,0 +1,2787 @@ +# Czech translation for glabels help. +# Copyright (C) 2010 glabels's COPYRIGHT HOLDER +# This file is distributed under the same license as the glabels help. +# Marek Černocký , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: glabels glabels_2_2\n" +"POT-Creation-Date: 2010-02-19 11:58+0000\n" +"PO-Revision-Date: 2010-02-19 21:31+0100\n" +"Last-Translator: Marek Černocký \n" +"Language-Team: Czech \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:195(None) +msgid "" +"@@image: 'figures/main-window-empty.png'; " +"md5=226b58f05f4171531066358a29cda1a7" +msgstr "" +"@@image: 'figures/main-window-empty.png'; " +"md5=226b58f05f4171531066358a29cda1a7" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:447(None) +msgid "" +"@@image: 'figures/print-copies.png'; md5=ebb4d08810a67cc9cd7ec6ddd7b52fb0" +msgstr "" +"@@image: 'figures/print-copies.png'; md5=ebb4d08810a67cc9cd7ec6ddd7b52fb0" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:479(None) +msgid "" +"@@image: 'figures/print-merge.png'; md5=ffe6027513a10f7ba940c350c1dc5717" +msgstr "" +"@@image: 'figures/print-merge.png'; md5=ffe6027513a10f7ba940c350c1dc5717" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:790(None) +msgid "" +"@@image: 'figures/object-editor-sidebar.png'; " +"md5=14eace177c1f5bfe36022acbbd6a9f0e" +msgstr "" +"@@image: 'figures/object-editor-sidebar.png'; " +"md5=14eace177c1f5bfe36022acbbd6a9f0e" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1231(None) +msgid "" +"@@image: 'figures/merge-ex1-1.png'; md5=55a97963022047cdad6aa198b5ed698e" +msgstr "" +"@@image: 'figures/merge-ex1-1.png'; md5=55a97963022047cdad6aa198b5ed698e" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1256(None) +msgid "" +"@@image: 'figures/merge-ex1-2.png'; md5=d03979f010e20e98532258edb20b1bc0" +msgstr "" +"@@image: 'figures/merge-ex1-2.png'; md5=d03979f010e20e98532258edb20b1bc0" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1284(None) +msgid "" +"@@image: 'figures/merge-ex1-3.png'; md5=94e382ccdfbc2fe5d320010d2ef10c61" +msgstr "" +"@@image: 'figures/merge-ex1-3.png'; md5=94e382ccdfbc2fe5d320010d2ef10c61" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1302(None) +msgid "" +"@@image: 'figures/merge-ex1-4.png'; md5=e72810bc3c191df6c8b2ad0cb1131021" +msgstr "" +"@@image: 'figures/merge-ex1-4.png'; md5=e72810bc3c191df6c8b2ad0cb1131021" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1348(None) +msgid "" +"@@image: 'figures/merge-ex2-1.png'; md5=4f062158be21bfadc4adfbdcf5d0206f" +msgstr "" +"@@image: 'figures/merge-ex2-1.png'; md5=4f062158be21bfadc4adfbdcf5d0206f" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1374(None) +msgid "" +"@@image: 'figures/merge-ex2-2.png'; md5=f69a7e0ae86f66b0d70d39a7757918fa" +msgstr "" +"@@image: 'figures/merge-ex2-2.png'; md5=f69a7e0ae86f66b0d70d39a7757918fa" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1399(None) C/glabels.xml:1513(None) +msgid "" +"@@image: 'figures/merge-ex2-3.png'; md5=f5134b9e911ebdd17d4a5b36a5ba56d0" +msgstr "" +"@@image: 'figures/merge-ex2-3.png'; md5=f5134b9e911ebdd17d4a5b36a5ba56d0" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1417(None) C/glabels.xml:1531(None) +msgid "" +"@@image: 'figures/merge-ex2-4.png'; md5=29a60e970cb026aecf75543203494b00" +msgstr "" +"@@image: 'figures/merge-ex2-4.png'; md5=29a60e970cb026aecf75543203494b00" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1464(None) +msgid "" +"@@image: 'figures/merge-ex3-1.png'; md5=b0c387b5fcfd730b2ae75172895ff5b8" +msgstr "" +"@@image: 'figures/merge-ex3-1.png'; md5=b0c387b5fcfd730b2ae75172895ff5b8" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1492(None) +msgid "" +"@@image: 'figures/merge-ex3-2.png'; md5=09f105e133657345e6e478a464e5b49f" +msgstr "" +"@@image: 'figures/merge-ex3-2.png'; md5=09f105e133657345e6e478a464e5b49f" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1767(None) +msgid "" +"@@image: 'figures/glabels-template-label.png'; " +"md5=b7db4090373462b8d45feb22d4cd5646" +msgstr "" +"@@image: 'figures/glabels-template-label.png'; " +"md5=b7db4090373462b8d45feb22d4cd5646" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1888(None) +msgid "" +"@@image: 'figures/glabels-template-cd.png'; " +"md5=145b49a5380de63ffa9451d2bbb81934" +msgstr "" +"@@image: 'figures/glabels-template-cd.png'; " +"md5=145b49a5380de63ffa9451d2bbb81934" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:2150(None) +msgid "" +"@@image: 'figures/glabels-template-layout.png'; " +"md5=a8adcff0584be1f0275bc2a169a580df" +msgstr "" +"@@image: 'figures/glabels-template-layout.png'; " +"md5=a8adcff0584be1f0275bc2a169a580df" + +#: C/glabels.xml:31(title) +msgid "gLabels Manual V2.2.6" +msgstr "Příručka V2.2.6 k aplikaci gLabels" + +#: C/glabels.xml:33(para) +msgid "" +"User manual for the gLabels label and business " +"card creation program" +msgstr "" +"Uživatelská příručka k aplikaci gLabels na " +"vytváření etiket a vizitek" + +#: C/glabels.xml:38(year) +msgid "2003-2009" +msgstr "2003-2009" + +#: C/glabels.xml:39(holder) C/glabels.xml:42(publishername) +#: C/glabels.xml:93(para) C/glabels.xml:103(para) +msgid "Jim Evins" +msgstr "Jim Evins" + +#: C/glabels.xml:2(para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " +"later version published by the Free Software Foundation with no Invariant " +"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " +"of the GFDL at this link or " +"in the file COPYING-DOCS distributed with this manual." +msgstr "" +"Je povoleno kopírovat, šířit a/nebo upravovat tento dokument za podmínek GNU " +"Free Documentation License, verze 1.1 nebo jakékoli další verze vydané " +"nadací Free Software Foundation; bez neměnných oddílů, bez textů předních " +"desek a bez textů zadních desek. Kopie této licence je zahrnuta v oddílu " +"jménem GNU Free Documentation " +"License nebo v souboru COPYING-DOCS dodávaném s touto příručkou." + +#: C/glabels.xml:12(para) +msgid "" +"This manual is part of a collection of GNOME manuals distributed under the " +"GFDL. If you want to distribute this manual separately from the collection, " +"you can do so by adding a copy of the license to the manual, as described in " +"section 6 of the license." +msgstr "" +"Tato příručka je součástí kolekce příruček GNOME, distribuovaných pod " +"licencí GNU FDL. Pokud chcete tento dokument šířit odděleně od kolekce, " +"musíte přiložit kopii licence dle popisu v sekci 6 dané licence." + +#: C/glabels.xml:19(para) +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any GNOME " +"documentation, and the members of the GNOME Documentation Project are made " +"aware of those trademarks, then the names are in capital letters or initial " +"capital letters." +msgstr "" +"Mnoho užívaných jmen určených k zviditelnění produktů nebo služeb jsou " +"ochranné známky. Na místech, kde jsou tato jména v dokumentaci užita a " +"členové Dokumentačního projektu GNOME jsou si vědomi skutečnosti, že se " +"jedná o ochrannou známku, je takové jméno psáno velkými písmeny celé nebo s " +"velkým písmenem na začátku." + +#: C/glabels.xml:35(para) +msgid "" +"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " +"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " +"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " +"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " +"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " +"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " +"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN " +"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION " +"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "" +"DOKUMENT JE POSKYTOVÁN V PODOBĚ „JAK JE“ BEZ ZÁRUKY V JAKÉKOLIV PODOBĚ, " +"NEPOSKYTUJÍ SE ANI ODVOZENÉ ZÁRUKY, ZÁRUKY, ŽE DOKUMENT, NEBO JEHO UPRAVENÁ " +"VERZE, JE BEZCHYBNÝ NEBO ZÁRUKY PRODEJNOSTI, VHODNOSTI PRO URČITÝ ÚČEL NEBO " +"NEPORUŠENOSTI. RIZIKO NEKVALITY, NEPŘESNOSTI A ŠPATNÉHO PROVEDENÍ DOKUMENTU, " +"NEBO JEHO UPRAVENÉ VERZE, LEŽÍ NA VÁS. POKUD KVŮLI TOMUTO DOKUMENTU, NEBO " +"JEHO UPRAVENÉ VERZI, NASTANE PROBLÉM, VY (NIKOLIV PŮVODNÍ AUTOR NEBO " +"JAKÝKOLIV PŘISPĚVATEL) PŘEBÍRÁTE JAKÉKOLIV NÁKLADY ZA NUTNÉ ÚPRAVY, OPRAVY " +"ČI SLUŽBY. TOTO PROHLÁŠENÍ O ZÁRUCE PŘEDSTAVUJE ZÁKLADNÍ SOUČÁST TÉTO " +"LICENCE. BEZ TOHOTO PROHLÁŠENÍ NENÍ, PODLE TÉTO DOHODY, POVOLENO UŽÍVÁNÍ ANI " +"ÚPRAVY TOHOTO DOKUMENTU; DÁLE" + +#: C/glabels.xml:55(para) +msgid "" +"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " +"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " +"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " +"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON " +"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF " +"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, " +"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES " +"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " +"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " +"POSSIBILITY OF SUCH DAMAGES." +msgstr "" +"ZA ŽÁDNÝCH OKOLNOSTÍ A ŽÁDNÝCH PRÁVNÍCH PŘEDPOKLADŮ, AŤ SE JEDNÁ O PŘEČIN " +"(VČETNĚ NEDBALOSTNÍCH), SMLOUVU NEBO JINÉ, NENÍ AUTOR, PŮVODNÍ PISATEL, " +"KTERÝKOLIV PŘISPĚVATEL NEBO KTERÝKOLIV DISTRIBUTOR TOHOTO DOKUMENTU NEBO " +"UPRAVENÉ VERZE DOKUMENTU NEBO KTERÝKOLIV DODAVATEL NĚKTERÉ Z TĚCHTO STRAN " +"ODPOVĚDNÝ NĚJAKÉ OSOBĚ ZA PŘÍMÉ, NEPŘÍMÉ, SPECIÁLNÍ, NAHODILÉ NEBO NÁSLEDNÉ " +"ŠKODY JAKÉHOKOLIV CHARAKTERU, VČETNĚ, ALE NEJEN, ZA POŠKOZENÍ ZE ZTRÁTY " +"DOBRÉHO JMÉNA, PŘERUŠENÍ PRÁCE, PORUCHY NEBO NESPRÁVNÉ FUNKCE POČÍTAČE NEBO " +"JINÉHO A VŠECH DALŠÍCH ŠKOD NEBO ZTRÁT VYVSTÁVAJÍCÍCH Z NEBO VZTAHUJÍCÍCH SE " +"K POUŽÍVÁNÍ TOHOTO DOKUMENTU NEBO UPRAVENÝCH VERZÍ DOKUMENTU, I KDYŽ BY " +"TAKOVÁTO STRANA BYLA INFORMOVANÁ O MOŽNOSTI TAKOVÉHOTO POŠKOZENÍ." + +#: C/glabels.xml:28(para) +msgid "" +"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " +"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " +"" +msgstr "" +"DOKUMENT A JEHO UPRAVENÉ VERZE JSOU ŠÍŘENY V SOULADU SE ZNĚNÍM LICENCE GNU " +"FREE DOCUMENTATION LICENSE S NÁSLEDUJÍCÍM USTANOVENÍM: " + +#: C/glabels.xml:52(firstname) +msgid "Jim" +msgstr "Jim" + +#: C/glabels.xml:53(surname) +msgid "Evins" +msgstr "Evins" + +#: C/glabels.xml:87(revnumber) +msgid "gLabels Manual V2.2.6" +msgstr "Příručka V2.2.6 k aplikaci gLabels" + +#: C/glabels.xml:88(date) +msgid "October 2009" +msgstr "Říjen 2009" + +#: C/glabels.xml:90(para) +msgid "Mario Blättermann mariobl@gnome.org" +msgstr "Mario Blättermann mariobl@gnome.org" + +#: C/glabels.xml:97(revnumber) +msgid "gLabels Manual V2.2" +msgstr "Příručka V2.2 k aplikaci gLabels" + +#: C/glabels.xml:98(date) +msgid "December 2007" +msgstr "Prosinec 2007" + +#: C/glabels.xml:100(para) +msgid "Jim Evins evins@snaught.com" +msgstr "Jim Evins evins@snaught.com" + +#: C/glabels.xml:108(releaseinfo) +msgid "" +"This manual describes version 2.2.6 of gLabels." +msgstr "" +"Tato příručka popisuje aplikaci gLabels ve verzi " +"2.2.6." + +#: C/glabels.xml:111(title) +msgid "Feedback" +msgstr "Ohlasy" + +#: C/glabels.xml:112(para) +msgid "" +"To report a bug or make a suggestion regarding the gLabels application or this manual, follow the directions in the gLabels Contact Page." +msgstr "" +"Pokud chcete oznámit chybu nebo navrhnout vylepšení vztahující se k aplikaci " +"gLabels nebo této příručce, postupujte dle " +"instrukcí na kontaktní stránce gLabels." + +#: C/glabels.xml:121(primary) +msgid "gLabels" +msgstr "gLabels" + +#: C/glabels.xml:124(primary) +msgid "glabels" +msgstr "glabels" + +#: C/glabels.xml:135(title) +msgid "Introduction" +msgstr "Úvod" + +#: C/glabels.xml:137(para) +msgid "" +"The gLabels application is a lightweight program " +"for creating labels and business cards for the GNOME desktop environment. It is designed to work with various laser/ink-jet " +"peel-off label and business card sheets that you'll find at most office " +"supply stores." +msgstr "" +"Aplikace gLabels je jednoduchý program na " +"vytváření etiket a vizitek pro pracovní prostředí GNOME. Je navržená pro práci s různými samolepicími etiketami a " +"vizitkami rozmístěnými na listech pro laserový/inkoustový tisk, které " +"najdete v každém obchodě s kancelářskými potřebami." + +#: C/glabels.xml:158(title) +msgid "Getting Started" +msgstr "Začínáme" + +#: C/glabels.xml:161(title) +msgid "To Start gLabels" +msgstr "Jak spustit aplikaci gLabels" + +#: C/glabels.xml:162(para) +msgid "You can start gLabels in the following ways:" +msgstr "" +"Aplikaci gLabels můžete spustit následujícími " +"způsoby:" + +#: C/glabels.xml:166(term) +msgid "Applications menu" +msgstr "Nabídka Aplikace" + +#: C/glabels.xml:168(para) +msgid "" +"Choose OfficegLabels." +msgstr "" +"Zvolte KancelářNávrhář " +"etiket gLabels." + +#: C/glabels.xml:176(term) +msgid "Command line" +msgstr "Příkazový řádek" + +#: C/glabels.xml:178(para) +msgid "Type glabels, then press Return:" +msgstr "" +"Napište příkaz glabels a zmáčkněte Enter:" + +#: C/glabels.xml:186(title) +msgid "When You Start gLabels" +msgstr "Když spustíte aplikaci gLabels" + +#: C/glabels.xml:187(para) +msgid "" +"When you start gLabels, the following window is " +"displayed." +msgstr "" +"Když spustíte aplikaci gLabels, zobrazí se " +"následující okno." + +#: C/glabels.xml:191(title) +msgid "gLabels Start Up Window" +msgstr "Okno gLabels po spuštění" + +#. for example, the items on the menubar and on the toolbar. This section is optional. +#: C/glabels.xml:205(para) +msgid "" +"The gLabels window contains the following " +"elements:" +msgstr "Okno gLabels obsahuje následující části:" + +#: C/glabels.xml:209(term) +msgid "Menubar." +msgstr "Panel nabídek." + +#: C/glabels.xml:211(para) +msgid "" +"The menus on the menubar contain all of the commands you need to create and " +"edit labels and business cards in gLabels." +msgstr "" +"Nabídky v panelu nabídek obsahují všechny příkazy potřebné k vytváření a " +"úpravám etiket a vizitek v aplikaci gLabels." + +#: C/glabels.xml:217(term) +msgid "Main toolbar." +msgstr "Hlavní panel nástrojů." + +#: C/glabels.xml:219(para) +msgid "" +"The main toolbar contains a subset of common File and Edit commands that you " +"can access from the menubar." +msgstr "" +"Hlavní panel nástrojů obsahuje podmnožinu běžných příkazů pro práci se " +"soubory a k úpravám z těch, které jsou dostupné v panelu nabídek." + +#: C/glabels.xml:224(term) +msgid "Drawing toolbar." +msgstr "Panel kreslení." + +#: C/glabels.xml:226(para) +msgid "" +"The drawing toolbar contains a subset of commands for editing the current " +"gLabels document." +msgstr "" +"Panel kreslení obsahuje podmnožinu běžných příkazů k úpravám aktuálního " +"dokumentu gLabels." + +#: C/glabels.xml:231(term) +msgid "Display area." +msgstr "Zobrazovací oblast" + +#: C/glabels.xml:233(para) +msgid "" +"The display area is the main drawing interface to gLabels." +msgstr "" +"Zobrazovací oblast je hlavní rozhraní aplikace gLabels sloužící ke kreslení." + +#: C/glabels.xml:238(term) +msgid "Object sidebar." +msgstr "Postranní panel objektů." + +#: C/glabels.xml:240(para) +msgid "" +"The object sidebar provides an interface for viewing and editing all " +"properties of an individual object." +msgstr "" +"Postranní panel objektů poskytuje rozhraní na prohlížení a úpravu všech " +"vlastností jednotlivých objektů." + +#: C/glabels.xml:245(term) +msgid "Properties toolbar." +msgstr "Panel vlastností." + +#: C/glabels.xml:247(para) +msgid "" +"The properties toolbar contains a set of tools to manipulate the properties " +"of selected objects and set default properties for new objects." +msgstr "" +"Panel vlastností obsahuje sadu nástrojů na úpravu vlastností vybraných " +"objektů a nastavení výchozích vlastností pro nové objekty." + +#: C/glabels.xml:253(term) +msgid "Statusbar." +msgstr "Stavový panel." + +#: C/glabels.xml:255(para) +msgid "" +"The statusbar displays information about current gLabels activity and contextual information about the menu items." +msgstr "" +"Stavový panel zobrazuje informace o aktuální činnosti aplikace " +"gLabels a kontextové informace o položkách " +"nabídky." + +#: C/glabels.xml:271(title) +msgid "Usage" +msgstr "Použití" + +#: C/glabels.xml:275(title) +msgid "To Create a New Label or Card" +msgstr "Jak vytvořit novou etiketu nebo vizitku" + +#: C/glabels.xml:277(para) +msgid "" +"To create a new label or business card, choose FileNew to display the " +"New Label or Card dialog. Select the media type and " +"orientation for the new document, then click OK. A " +"new document is displayed in the display area of the gLabels window." +msgstr "" +"Když chcete vytvořit novou etiketu nebo vizitku, zvolte " +"SouborNový a zobrazí se dialogové okno Nová etiketa či vizitka. Vyberte pro nový dokument typ média a orientaci a klikněte na " +"OK. Nový dokument se zobrazí v zobrazovací oblasti " +"okna gLabels." + +#: C/glabels.xml:286(para) +msgid "" +"If your particular media type is missing from this dialog, see " +msgstr "" +"V případě, že vaše konkrétní médium v tomto dialogovém okně schází, přečtěte " +"si ." + +#: C/glabels.xml:293(title) +msgid "To Open a File" +msgstr "Jak otevřít soubor" + +#: C/glabels.xml:295(para) +msgid "" +"To open a file, choose FileOpen to display the Open File " +"dialog. Select the file that you want to open, then click OK. The file is displayed in the display area of the " +"gLabels window." +msgstr "" +"Soubor otevřete pomocí volby SouborOtevřít, která zobrazí " +"dialogové okno Otevření souboru. Vyberte soubor, který " +"chcete otevřít a klikněte na OK. Soubor se zobrazí v " +"zobrazovací oblasti okna gLabels." + +#: C/glabels.xml:302(para) +msgid "" +"You can also open multiple files in gLabels. The " +"application creates a separate application window for each open file." +msgstr "" +"V aplikaci gLabels můžete otevřít i více souborů " +"naráz. Aplikace pro každý otevřený soubor vytvoří zvláštní okno." + +#: C/glabels.xml:306(para) +msgid "" +"The application records the paths and filenames of the most recent files " +"that you have edited and displays the files as menu items on the " +"FileRecent Files menu." +msgstr "" +"Pro soubory nedávno otevřené k úpravě si aplikace zaznamenává cesty a názvy " +"a tyto soubory potom zobrazuje v nabídce SouborOtevřít nedávné soubory." + +#: C/glabels.xml:316(title) +msgid "To Open Multiple Files from a Command Line" +msgstr "Jak otevřít více souborů z příkazové řádky" + +#: C/glabels.xml:318(para) +msgid "" +"You can run gLabels from a command line and open " +"a single file or multiple files. To open multiple files from a command line, " +"type the following command, then press Return:" +msgstr "" +"Aplikaci gLabels můžete spustit z příkazového " +"řádku a otevřít při tom jeden nebo více souborů. Pokud chcete otevřít z " +"příkazového řádku více souborů, napište následující příkaz a zmáčkněte " +"Enter:" + +#: C/glabels.xml:324(replaceable) +msgid "file1.glabels file2.glabels file3.glabels" +msgstr "soubor1.glabels soubor2.glabels soubor3.glabels" + +#: C/glabels.xml:323(command) +msgid "glabels " +msgstr "glabels " + +#: C/glabels.xml:327(para) +msgid "" +"When the application starts, the files that you specify are displayed in " +"separate gLabels windows." +msgstr "" +"Po spuštění aplikace se každý ze zadaných souborů zobrazí ve zvláštním okně " +"gLabels." + +#: C/glabels.xml:334(title) +msgid "To Save a File" +msgstr "Jak uložit soubor" + +#: C/glabels.xml:336(para) +msgid "You can save files in the following ways:" +msgstr "Soubory můžete uložit následujícími způsoby:" + +#: C/glabels.xml:341(para) +msgid "" +"To save changes to an existing file, choose FileSave." +msgstr "" +"Pro uložení změn do stávajícího souboru, zvolte SouborUložit." + +#: C/glabels.xml:348(para) +msgid "" +"To save a new file or to save an existing file under a new filename, choose " +"FileSave As. Enter a name for the file in the Save As " +"dialog box, then click OK." +msgstr "" +"Pro uložení nového souboru nebo uložení stávajícího souboru pod novým " +"názvem, zvolte SouborUložit " +"jako. V dialogovém okně Uložit jako zadejte pro soubor název a klikněte na OK." + +#: C/glabels.xml:361(title) +msgid "To Change Label Properties" +msgstr "Jak změnit vlastnosti etikety" + +#: C/glabels.xml:363(para) +msgid "" +"To change the media type and/or orientation of a label, choose " +"FileProperties to display the Label properties dialog. " +"Select the new media type and orientation for the document, then click " +"OK." +msgstr "" +"Pokud chcete změnit typ média a/nebo orientaci etiket, zvolte " +"SouborVlastnosti a zobrazí se dialogové okno Vlastnosti etikety. Zvolte pro dokument nový typ média a orientaci a klikněte na " +"OK." + +#: C/glabels.xml:374(title) +msgid "To Create a Custom Template" +msgstr "Jak vytvořit vlastní šablonu" + +#: C/glabels.xml:376(para) +msgid "" +"To create a new custom template, choose FileTemplate Designer ... to " +"display the Template Designer dialog. This dialog will " +"assist you in creating a custom template for most types of label or card " +"stationery that you may encounter." +msgstr "" +"Když chcete vytvořit novou vlastní šablonu, zvolte " +"SouborNávrhář šablon… a zobrazí se dialogové okno Návrhář " +"šablon gLabels. Toto dialogové okno vás provede vytvořením " +"vlastní šablony pro většinu typů etiket nebo vizitek, se kterými se můžete " +"setkat." + +#: C/glabels.xml:383(para) +msgid "" +"If you prefer, you can create your templates manually. For this option see " +"" +msgstr "" +"Pokud dáváte přednost ručnímu vytvoření šablon, přečtěte si " + +#: C/glabels.xml:391(title) +msgid "To Close a File" +msgstr "Jak zavřít soubor" + +#: C/glabels.xml:393(para) +msgid "" +"To close the current document, choose FileClose to close the " +"application window. If the current document is modified, a confirmation " +"dialog will be presented, allowing you to save the document or cancel the " +"command. If the window being closed is the only open window, " +"gLabels will exit." +msgstr "" +"Když chcete aktuální dokument zavřít, zvolte SouborZavřít a zavřete tím " +"aplikační okno. Pokud byl aktuální dokument změněn, zobrazí se potvrzovací " +"dialogové okno, kde můžete dokument uložit nebo příkaz zrušit. Pokud je " +"zavírané okno jediné otevřené, ukončí se celá aplikace gLabels." + +#: C/glabels.xml:405(title) +msgid "To Quit gLabels" +msgstr "Jak ukončit gLabels" + +#: C/glabels.xml:407(para) +msgid "" +"To quit gLabels, choose " +"FileQuit. This is equivalent to closing all open windows. See ." +msgstr "" +"Když chcete aplikaci gLabels ukončit, zvolte " +"SouborUkončit. Odpovídá to zavření všech otevřených oken. Viz ." + +#: C/glabels.xml:417(title) +msgid "To Print Labels or Cards" +msgstr "Jak vytisknout etikety nebo vizitky" + +#: C/glabels.xml:419(para) +msgid "" +"To print labels or cards, choose FilePrint to display the " +"Print dialog. Once print options have been selected, " +"click Print to print the labels or cards. To simply " +"preview the results, click Print Preview instead." +msgstr "" +"Když chcete vytisknout etikety nebo vizitky, zvolte " +"SouborTisk a zobrazí se dialogové okno Tisk. Až " +"nastavíte volby tisku, klikněte na Tisk a etikety nebo " +"vizitky se vytisknou. Pokud se chcete jen podívat na náhled, klikněte místo " +"toho na Náhled tisku." + +#: C/glabels.xml:426(para) +msgid "" +"The Print dialog allows you to specify the following " +"print options:" +msgstr "" +"V dialogovém okně Tisk můžete nastavit následující " +"volby tisku:" + +#: C/glabels.xml:430(title) +msgid "The Labels Tab of the Print Dialog" +msgstr "Karta Etikety v dialogovém okně Tisk" + +#: C/glabels.xml:435(guilabel) +msgid "Print control (Simple)" +msgstr "Ovládání tisku (jednoduchý)" + +#: C/glabels.xml:438(para) +msgid "" +"For simple labels or cards (no document merge), the labels tabbed section contains the following copy controls." +msgstr "" +"Pro jednoduché etikety nebo vizitky (bez slučování dokumentů), obsahuje " +"karta Etikety následující prvky." + +#: C/glabels.xml:443(title) +msgid "Print Copy Controls" +msgstr "Ovládací prvky tisku kopií" + +#. ==== End of Figure ==== +#: C/glabels.xml:454(para) +msgid "" +"The number of copies of the label can be selected by choosing the number of " +"full sheets to print, or a specific subset of labels on a single sheet." +msgstr "" +"Počet kopií etikety můžete vybrat zvolením počtu plných listů, které se mají " +"vytisknout, a nebo vybrat jen část etiket na jednom listu." + +#: C/glabels.xml:458(para) +msgid "" +"The mini-preview can also be used to graphically select the subset of labels " +"by clicking the first label on the mini-preview and dragging to the last " +"label." +msgstr "" +"Mini-náhled můžete také použít ke grafickému výběru části etiket tak, že " +"kliknete na první etiketu v mini-náhledu a táhnete až na poslední etiketu." + +#: C/glabels.xml:466(guilabel) +msgid "Print control (Merge)" +msgstr "Ovládání tisku (slučování)" + +#: C/glabels.xml:469(para) +msgid "" +"For labels or cards using the document merge (also known as \"mail merge\") " +"capability, the labels tabbed section contains the " +"following merge controls instead of copy controls." +msgstr "" +"Pro etikety nebo vizitky používající slučování dokumentů (někdy také " +"nazývané „hromadná korespondence“), obsahuje karta Etikety následující ovládací prvky slučování lišící se od ovládacích prvků " +"jednoduchého tisku." + +#: C/glabels.xml:475(title) +msgid "Print Document Merge Controls" +msgstr "Ovládací prvky tisku slučovaných dokumentů" + +#. ==== End of Figure ==== +#: C/glabels.xml:486(para) +msgid "" +"The total number of labels or cards printed is the product of the number of " +"records in the merge source and the number of copies selected. If multiple " +"copies are selected, these can be either collated (copies of the same record " +"grouped together) or un-collated (one copy each record is printed before " +"next copy)." +msgstr "" +"Celkový počet etiket nebo vizitek je dán počtem záznamů ve zdroji slučování " +"a počtem vybraných kopií. Jestliže je vybráno více kopií, mohou být také " +"uspořádané (kopie ze stejného záznamu seskupené spolu) nebo neuspořádané " +"(kopie jednotlivých záznamů za sebou)." + +#: C/glabels.xml:493(para) +msgid "" +"Printing can begin on any label on the first sheet. This can be selected " +"with the Start on label spinbutton." +msgstr "" +"Tisk může začínat na libovolné etiketě na prvním listu. Tu můžete vybrat " +"pomocí číselníku Začít na etiketě." + +#: C/glabels.xml:497(para) +msgid "" +"The mini-preview can also be used to graphically select this first label, by " +"clicking on the desired label in the mini-preview." +msgstr "" +"Mini-náhled můžete také použít ke grafickému výběru první etikety tak, že na " +"ni v mini-náhledu kliknete." + +#: C/glabels.xml:504(guilabel) +msgid "Options" +msgstr "Volby" + +#: C/glabels.xml:506(para) +msgid "The following options can also be selected." +msgstr "Můžete rovněž vybrat následující volby." + +#: C/glabels.xml:509(guilabel) +msgid "print outlines" +msgstr "tisk obrysů" + +#: C/glabels.xml:510(para) +msgid "" +"Print outlines of labels. This option is useful for dry-runs, to test " +"printer alignment." +msgstr "" +"Tisk obrysů etiket. Tato volba je použitelná k tisku nanečisto, k otestování " +"lícování." + +#: C/glabels.xml:514(guilabel) +msgid "print in reverse" +msgstr "obrácený tisk" + +#: C/glabels.xml:515(para) +msgid "" +"Prints the labels as mirror images. This option is useful for printing on " +"clear labels that will be viewed from the reverse side (e.g. in a car " +"window)." +msgstr "" +"Tisknout etikety zrcadlově. Tato volba je použitelná pro tisk na čiré " +"etikety, na které se bude dívat z druhé strany (např. na okně auta)." + +#: C/glabels.xml:520(guilabel) +msgid "print crop marks" +msgstr "tisknout značky pro ořez" + +#: C/glabels.xml:521(para) +msgid "" +"Prints crop marks along the edge of the sheet. This option is useful for " +"printing on blank stock, to be cut after printing. This option does not work " +"well with all templates." +msgstr "" +"Tisknout ořezové značky podél hran listu. Tato volba je použitelná pro tisk " +"na čisté listy, které se budou po tisku rozřezávat. Tato volba nepracuje " +"úplně správně se všemi šablonami." + +#: C/glabels.xml:536(title) +msgid "To Create New Objects" +msgstr "Jak vytvořit nový objekt" + +#: C/glabels.xml:538(para) +msgid "" +"Objects are created by choosing the appropriate selection under the " +"ObjectsCreate Object submenu or the Drawing Toolbar. This will place the display area into object creation mode as " +"indicated by its cursor. To return to the default object selection mode " +"without creating an object, choose ObjectsSelect Mode. This will " +"return the display area's cursor to the default selection arrow." +msgstr "" +"Objekty se vytvářejí příslušným výběrem v podnabídce " +"ObjektyVytvořit nebo na Panelu kreslení. Zobrazovací oblast " +"se přepne do režimu vytváření objektu, což je indikováno patřičným " +"ukazatelem. Do výchozího režimu výběru objektů se můžete vrátit, aniž byste " +"nějaký objekt vytvořili, volbou ObjektyRežim výběru. Ukazatel pro " +"zobrazovací oblast se změní zpět na výchozí šipku." + +#: C/glabels.xml:548(para) +msgid "The following describes the object creation mode for each object type:" +msgstr "Zde je popis režimu vytváření objektu pro jednotlivé typy objektů:" + +#: C/glabels.xml:554(term) C/glabels.xml:1123(guilabel) +msgid "Text" +msgstr "Text" + +#: C/glabels.xml:556(para) +msgid "" +"Click the desired location of the upper left corner of the text object. New " +"text objects are initialized with the string \"Text.\" To change this text, " +"or other properties, see ." +msgstr "" +"Klikněte na požadované umístění levého horního rohu objektu text. Nový " +"textový objekt se vytvoří s počátečním řetězcem „Text“. Jak tento text nebo " +"další vlastnosti změnit uvádí ." + +#: C/glabels.xml:564(term) +msgid "Box" +msgstr "Obdélník" + +#: C/glabels.xml:566(para) +msgid "" +"Click the desired location of the upper left corner of the box object and " +"drag to the desired location of the lower right corner. If you simply click " +"in a single location, a square box will be created. To change properties of " +"the box object, see ." +msgstr "" +"Klikněte na požadované umístění levého horního rohu objektu obdélník a " +"táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše " +"kliknete na jednom místě, vytvoří se čtverec. Jak změnit vlastnosti " +"obdélníku uvádí ." + +#: C/glabels.xml:575(term) C/glabels.xml:1149(guilabel) +msgid "Line" +msgstr "Čára" + +#: C/glabels.xml:577(para) +msgid "" +"Click the desired location of one end of the line object and drag to the " +"desired location of the other end. If you simply click in a single location, " +"a diagonal line will be created. To change properties of the line object, " +"see ." +msgstr "" +"Klikněte na požadované umístění levého horního konce objektu čára a táhněte " +"k požadovanému umístění pravého dolního konce. Když jednoduše kliknete na " +"jednom místě, vytvoří diagonální úsečka. Jak změnit vlastnosti čáry uvádí " +"." + +#: C/glabels.xml:586(term) +msgid "Ellipse" +msgstr "Elipsa" + +#: C/glabels.xml:588(para) +msgid "" +"Click the desired location of the upper left corner of the ellipse object " +"and drag to the desired location of the lower right corner. If you simply " +"click in a single location, a circle will be created. To change properties " +"of the ellipse object, see ." +msgstr "" +"Klikněte na požadované umístění levého horního rohu objektu elipsa a táhněte " +"k požadovanému umístění pravého dolního rohu. Když jednoduše kliknete na " +"jednom místě, vytvoří se kruh. Jak změnit vlastnosti elipsy uvádí ." + +#: C/glabels.xml:597(term) +msgid "Image" +msgstr "Obrázek" + +#: C/glabels.xml:599(para) +msgid "" +"Click the desired location of the upper left corner of the image object and " +"drag to the desired location of the lower right corner. If you simply click " +"in a single location, a square will be created. New image objects are " +"initialized with a simple checkerboard image. To change this image, or other " +"properties of the image object, see ." +msgstr "" +"Klikněte na požadované umístění levého horního rohu objektu obrázku a " +"táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše " +"kliknete na jednom místě, vytvoří se čtverec. Nový obrázkový objekt se " +"vytvoří s jednoduchým počátečním obrázkem šachovnice. Jak změnit tento " +"obrázek a další vlastnosti uvádí ." + +#: C/glabels.xml:610(term) +msgid "Barcode" +msgstr "Čárový kód" + +#: C/glabels.xml:612(para) +msgid "" +"Click the desired location of the upper left corner of the barcode object. " +"New barcode objects are initialized to a POSTNET barcode with representative " +"data. To change data and properties of the barcode object, see ." +msgstr "" +"Klikněte na požadované umístění levého horního rohu objektu čárového kódu. " +"Nový objekt čárového kódu se vytvoří jako čárový kód POSTNET s ukázkovými " +"daty. Jak tato data nebo další vlastnosti změnit uvádí ." + +#: C/glabels.xml:627(title) +msgid "To Select Objects" +msgstr "Jak vybrat objekty" + +#: C/glabels.xml:629(para) +msgid "" +"A prerequisite for performing operations on objects is the selection of " +"individual objects or groups of objects. The display area must be in the " +"object selection mode to create new selections, as indicated by an arrow " +"cursor. The object selection mode is selected by the " +"ObjectsSelect Mode menu item, or the corresponding command on the " +"Drawing Toolbar." +msgstr "" +"Předpokladem k provádění operací s objekty je výběr jednoho či skupiny více " +"objektů. Aby bylo možné výběr provést, musí být zobrazovací oblast v režimu " +"výběru objektů, což je indikováno kurzorem v podobě šipky. Režim výběru " +"objektů se zvolí pomocí ObjektyRežim výběru nebo " +"odpovídajícím příkazem na Panelu kreslení." + +#: C/glabels.xml:642(term) +msgid "Selecting a single object" +msgstr "Výběr jednoho objektu" + +#: C/glabels.xml:644(para) +msgid "" +"A single object can be selected simply by clicking on the desired object in " +"the display area. Once selected the object will be highlighted with a set of " +"resizing handles." +msgstr "" +"Jeden objekt vyberete prostým kliknutím na něj v zobrazovací oblasti. " +"Vybraný objekt bude zvýrazněný sadou úchopů sloužících ke změně velikosti" + +#: C/glabels.xml:652(term) +msgid "Aggregate object selections" +msgstr "Přidávání objektů do výběru" + +#: C/glabels.xml:654(para) +msgid "" +"Multiple objects can be selected by first selecting the first object as " +"above and then by holding the Ctrl key while selecting " +"additional objects. Individual objects can be added to an existing selection " +"at any time by holding the Ctrl key while selecting the " +"desired objects. All objects can also be selected by using the " +"EditSelect All menu item. All objects in an aggregate object selection will be " +"highlighted." +msgstr "" +"Více objektů můžete vybrat tak, že vyberete první dříve uvedeným způsobem a " +"po té budete držet klávesu Ctrl a vybírat další objekty. " +"Jednotlivé objekty lze přidat do stávajícího výběru kdykoliv držením klávesy " +"Ctrl během vybírání požadovaných objektů. Všechny objekty " +"můžete vybrat pomocí položky nabídky UpravitVybrat vše. Všechny objekty " +"ve výběru jsou zvýrazněné." + +#: C/glabels.xml:668(term) +msgid "Area selections" +msgstr "Výběr oblasti" + +#: C/glabels.xml:670(para) +msgid "" +"Multiple objects can also be selected by clicking an empty area and dragging " +"to form a rectangular area. When released, all objects contained in the area " +"will form an aggregate selection. An area selection can be used to add to an " +"existing selection by holding the Ctrl key while performing " +"the selection." +msgstr "" +"Více objektů lze rovněž vybrat zmáčknutím tlačítka myši na prázdném místě a " +"tažením obdélníkové oblasti. Po uvolnění tlačítka se všechny objekty " +"obsažené v takovéto oblasti naráz vyberou. Výběr pomocí oblasti lez použít k " +"přidání ke stávajícímu výběru podržením klávesy Ctrl během " +"provádění výběru." + +#: C/glabels.xml:680(term) +msgid "Unselecting objects" +msgstr "Zrušení výběru objektů" + +#: C/glabels.xml:682(para) +msgid "" +"Individual objects can be removed from an existing selection by holding the " +"Ctrl key while clicking on a previously selected object. An " +"entire selection can be dismissed by using the EditUn-select All menu item or " +"by simply clicking any empty space in the display area. Once an object is " +"unselected its highlight is removed." +msgstr "" +"Jednotlivé objekty lze z výběru odebrat podržením klávesy Ctrl a klikáním na označené objekty. Veškerý výběr můžete zrušit pomocí " +"nabídky UpravitZrušit výběr nebo jednoduchým kliknutím na prázdné místo v " +"zobrazovací oblasti. Jakmile je u objektu zrušen výběr, zmizí i jeho " +"zvýraznění." + +#: C/glabels.xml:699(title) +msgid "Clipboard Commands" +msgstr "Příkazy pro práci se schránkou" + +#: C/glabels.xml:701(para) +msgid "" +"Object selections can be manipulated using the standard clipboard operations " +"Cut, Copy, " +"Paste, and Delete." +msgstr "" +"S vybranými objekty lze manipulovat pomocí standardních operací se schránkou " +"Vyjmout, Kopírovat, " +"Vložit a Smazat." + +#: C/glabels.xml:712(keycap) C/glabels.xml:728(keycap) +#: C/glabels.xml:744(keycap) +msgid "Ctrl" +msgstr "Ctrl" + +#: C/glabels.xml:712(keycap) +msgid "X" +msgstr "X" + +#: C/glabels.xml:714(guimenuitem) +msgid "Cut" +msgstr "Vyjmout" + +#: C/glabels.xml:718(para) +msgid "" +"Moves selected objects to the clipboard. The objects are then available for " +"pasting back into the current document or another document." +msgstr "" +"Přesune vybrané objekty do schránky. Objekty jsou potom přístupné pro " +"vkládání zpátky do aktuálního dokumentu nebo jiného dokumentu." + +#: C/glabels.xml:728(keycap) +msgid "C" +msgstr "C" + +#: C/glabels.xml:730(guimenuitem) +msgid "Copy" +msgstr "Kopírovat" + +#: C/glabels.xml:734(para) +msgid "" +"Copies selected objects to the clipboard without deleting them. The objects " +"are then available for pasting back into the current document or another " +"document." +msgstr "" +"Zkopíruje vybrané objekty do schránky, aniž by byly vymazány. Objekty jsou " +"potom přístupné pro vkládání zpátky do aktuálního dokumentu nebo jiného " +"dokumentu." + +#: C/glabels.xml:744(keycap) +msgid "V" +msgstr "V" + +#: C/glabels.xml:746(guimenuitem) +msgid "Paste" +msgstr "Vložit" + +#: C/glabels.xml:750(para) +msgid "" +"Pastes objects from the clipboard into the current document. " +"gLabels can only paste objects from another " +"gLabels document." +msgstr "" +"Vloží objekty ze schránky do aktuálního dokumentu. Aplikace " +"gLabels umí vkládat pouze objekty z jiného " +"dokumentu gLabels." + +#: C/glabels.xml:760(keycap) C/glabels.xml:762(guimenuitem) +msgid "Delete" +msgstr "Smazat" + +#: C/glabels.xml:766(para) +msgid "Deletes selected objects without placing them on the clipboard." +msgstr "Smaže vybrané objekty, aniž by byly umístěny do schránky." + +#: C/glabels.xml:777(title) +msgid "To Edit Object Properties" +msgstr "Jak upravit vlastnosti objektu" + +#: C/glabels.xml:779(para) +msgid "" +"Most object properties can be modified through the object editor sidebar, " +"illustrated below. To use the object editor, a single object must first be " +"selected. See ." +msgstr "" +"Většinu vlastností objektů lze upravit přes editor objektů v postranním " +"panelu, který je vyobrazený níže. Abyste mohli editor objektů používat, " +"musíte nejdříve vybrat jeden objekt. Viz ." + +#: C/glabels.xml:786(title) +msgid "Object Editor Sidebar" +msgstr "Editor objektů z postranního panelu" + +#. ==== End of Figure ==== +#: C/glabels.xml:797(para) +msgid "" +"The object editor will contain a subset of the following tabbed sections, " +"depending on object type:" +msgstr "" +"Editor objektů bude obsahovat některé z následujících karet, které závisí na " +"typu objektu:" + +#: C/glabels.xml:801(title) +msgid "Text Tabbed Section (Text objects)" +msgstr "Karta Text (textové objekty)" + +#: C/glabels.xml:803(para) +msgid "" +"This section contains a small editor for changing the content of a text " +"object. It also contains a dropdown menu of available document merge keys, " +"that can be inserted into text." +msgstr "" +"Tato karta obsahuje malý editor na úpravu obsahu textového objektu. Rovněž " +"obsahuje vyskakovací nabídku dostupných klíčů slučování dokumentů, které lze " +"do textu vkládat." + +#: C/glabels.xml:810(title) +msgid "Image Tabbed Section (Image objecs)" +msgstr "Karta Obrázek (obrázkové objekty)" + +#: C/glabels.xml:812(para) +msgid "" +"This section contains a file entry with preview to select image files. The " +"browse button can be used to easily locate image files. Alternatively, a " +"document merge key can be used instead to provide a filename at print time." +msgstr "" +"Tato karta obsahuje pole na zadání souboru s obrázkem. Přes tlačítko " +"procházení můžete soubor snadno najít. Druhou možností je použití klíče pro " +"slučování dokumentů, který poskytne název souboru až během tisku." + +#: C/glabels.xml:820(title) +msgid "Data Tabbed Section (Barcode objecs)" +msgstr "Karta Data (objekty čárových kódů)" + +#: C/glabels.xml:822(para) +msgid "" +"This section contains a text entry to enter literal barcode data. " +"Alternatively, a document merge key can be used to provide this data at " +"print time." +msgstr "" +"Tato karta obsahuje textové pole na zadání dat pro čárový kód. Druhou " +"možností je použití klíče pro slučování dokumentů, přes který jsou data " +"poskytována až během tisku." + +#: C/glabels.xml:829(title) +msgid "Style Tabbed Section (Text objects)" +msgstr "Karta Styl (textové objekty)" + +#: C/glabels.xml:831(para) +msgid "" +"This section contains controls to select text properties, including font " +"family, font size, font weight, color, and text justification." +msgstr "" +"Tato karta obsahuje ovládací prvky na výběr vlastností textu, včetně typu " +"písma, velikosti písma, tloušťky písma, barvy a zarovnání textu." + +#: C/glabels.xml:838(title) +msgid "Style Tabbed Section (Barcode objecs)" +msgstr "Karta Styl (objekty čárových kódů)" + +#: C/glabels.xml:840(para) +msgid "" +"This section contains controls to select barcode properties, including " +"barcode style, color, whether to print text, and whether to include a " +"checksum digit." +msgstr "" +"Tato karta obsahuje ovládací prvky na výběr vlastností čárového kódu, včetně " +"stylu čárového kódu, barvy, zda tisknout text a zda vkládat číslo s " +"kontrolním součtem." + +#: C/glabels.xml:847(title) +msgid "Line Tabbed Section" +msgstr "Karta Čára" + +#: C/glabels.xml:849(para) +msgid "" +"This section contains controls to select properties of lines and outlines. " +"These properties include line width and color." +msgstr "" +"Tato karta obsahuje ovládací prvky na výběr vlastností čar a obrysů. Tyto " +"vlastnosti zahrnují tloušťku čáry a její barvu." + +#: C/glabels.xml:855(title) +msgid "Fill Tabbed Section" +msgstr "Karta Výplň" + +#: C/glabels.xml:857(para) +msgid "" +"This section contains controls to select fill properties of box and ellipse " +"objects. Currently the only fill property is fill color." +msgstr "" +"Tato karta obsahuje ovládací prvky na výběr vlastností výplně objektů " +"obdélníků a elips. V současnosti obsahuje pouze barvu výplně." + +#: C/glabels.xml:864(title) +msgid "Size Tabbed Section (All except line objects)" +msgstr "Karta Velikost (všechny objekty vyjma čar)" + +#: C/glabels.xml:866(para) +msgid "" +"This section contains controls to select the width and height of an object. " +"A checkbox is provided, so that the current aspect ratio can be locked while " +"manipulating the width and height controls. Image objects also provide a " +"button to reset the size to the image's natural size (Assumes 72DPI)." +msgstr "" +"Tato karta obsahuje ovládací prvky na výběr šířky a výšky objektu. K " +"dispozici je zaškrtávací pole, kterým můžete zamknout poměr stran během " +"úprav šířky a výšky. U obrázků je k dispozici rovněž tlačítko, kterým můžete " +"nastavit reálné rozměry obrázku (předpokládá se 72 DPI)." + +#: C/glabels.xml:875(title) +msgid "Size Tabbed Section (Line objects)" +msgstr "Karta Velikost (objekty čar)" + +#: C/glabels.xml:877(para) +msgid "" +"This section contains controls to select the length and angle of a line " +"object." +msgstr "Tato karta obsahuje ovládací prvky pro výběr délky a úhlu čáry." + +#: C/glabels.xml:883(title) +msgid "Position Tabbed Section" +msgstr "Karta Pozice" + +#: C/glabels.xml:885(para) +msgid "This section contains controls to change the position of an object." +msgstr "Tato karta obsahuje ovládací prvky pro změnu pozice objektu." + +#: C/glabels.xml:892(title) +msgid "Shadow Tabbed Section (All except image and barcode objects)" +msgstr "Karta Stín (všechny objekty vyjma obrázků a čárových kódů)" + +#: C/glabels.xml:894(para) +msgid "This section contains controls to add a shadow to an object." +msgstr "Tato karta obsahuje ovládací prvky pro přidání stínu k objektu." + +#: C/glabels.xml:903(title) +msgid "Other Manipulations of Objects" +msgstr "Ostatní manipulace s objekty" + +#: C/glabels.xml:905(para) +msgid "Objects can also be manipulated in the following ways." +msgstr "S objekty lze manipulovat ještě následujícími způsoby:" + +#: C/glabels.xml:908(title) +msgid "Moving and Resizing Objects" +msgstr "Přesouvání a změna velikosti objektů" + +#: C/glabels.xml:910(para) +msgid "" +"Objects can be moved by simply clicking on a selected object and dragging " +"the object to its new location. If the object is part of an aggregate " +"selection, all objects in the selection will move with the object being " +"dragged, maintaining their relative positions to one another. If no object " +"is selected, clicking on an object will create a new selection containing " +"that object. See ." +msgstr "" +"Objekty lze přesunout kliknutím na vybraný objekt a tažením objektu na nové " +"místo. Pokud je objekt součástí skupiny označených objektů, budou se s " +"objektem přesouvat všechny vybrané objekty, ale jejich vzájemná pozice " +"zůstane zachovaná. Pokud není žádný objekt vybraný, kliknutí na objekt " +"provede nový výběr tohoto objektu. Viz ." + +#: C/glabels.xml:918(para) +msgid "" +"A selected object can be resized by clicking one of its resize handle and " +"dragging it to obtain the new size." +msgstr "" +"U vybraných objektů můžete měnit jejich velikost kliknutím na úchop pro " +"změnu velikosti a jeho tažením tak, abyste dosáhli správné velikost." + +#: C/glabels.xml:924(title) +msgid "Changing Stacking Order" +msgstr "Změna pořadí objektů" + +#: C/glabels.xml:926(para) +msgid "" +"Stacking order refers to relative position in the z-axis of objects. That is " +"when objects overlap, which object will appear on top of the other. By " +"default, newer objects will appear above older objects. To change this " +"order, select one or more objects and choose ObjectsOrderBring to Front to raise the selection to the top of the stacking " +"order, or choose ObjectsOrderSend to Back to lower " +"the selection to the bottom of the stacking order. These menuitems are also " +"available by right-clicking the display area when there is a non-empty " +"selection." +msgstr "" +"Pořadí objektů představuje jejich relativní polohu v ose z. Prakticky to " +"určuje při překrývání objektů, který z nich bude nahoře a který vespod. " +"Standardně se nové objekty vytvářejí nad staršími objekty. Když chcete toto " +"pořadí změnit, jeden nebo více objektů vyberte a zvolte " +"ObjektyPořadíPřenést dopředu pro " +"vynesení výběru na nejvyšší pozici nebo ObjektyPořadíPřenést dozadu pro zatlačení výběru úplně dospod. Tyto položky " +"nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací oblasti " +"za předpokladu, že jsou vybrané nějaké objekty." + +#: C/glabels.xml:944(title) +msgid "Rotating and Flipping Objects" +msgstr "Otáčení a překlápění objektů" + +#: C/glabels.xml:946(para) +msgid "" +"Objects can be rotated 90 degrees in either direction, or flipped " +"horizontally or vertically, by choosing the appropriate menuitem in the " +"ObjectsRotate/Flip sub-menu. These menuitems are also available by " +"right-clicking the display area when there is a non-empty selection." +msgstr "" +"Objekty lze otáčet po 90stupňových krocích v obou směrech nebo je překlápět " +"svisle nebo vodorovně a to volbou příslušné položky v podnabídce " +"ObjektyOtočit/Překlopit. Tyto položky nabídky jsou přístupné i po kliknutí " +"pravým tlačítkem v zobrazovací oblasti za předpokladu, že jsou vybrané " +"nějaké objekty." + +#: C/glabels.xml:956(title) +msgid "Aligning Objects" +msgstr "Zarovnávání objektů" + +#: C/glabels.xml:958(para) +msgid "" +"Objects can be aligned horizontally or vertically, relative to one another, " +"or relative to the center line of the label, by choosing the appropriate " +"menuitem from the ObjectsAlign " +"Horizontal or ObjectsAlign Horizontal sub-menus. " +"These menuitems are also available by right-clicking the display area when " +"there is a non-empty selection." +msgstr "" +"Objekty lze zarovnávat vodorovně nebo svisle, relativně vůči sobě nebo " +"relativně ke středové čáře etikety, volbou příslušné položky z podnabídky " +"ObjektyZarovnat vodorovně nebo ObjektyZarovnat svisle. Tyto " +"položky nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací " +"oblasti za předpokladu, že jsou vybrané nějaké objekty." + +#: C/glabels.xml:971(title) +msgid "Using the Property Bar" +msgstr "Používání panelu vlastností" + +#: C/glabels.xml:973(para) +msgid "" +"The property bar can be used to change some common properties of objects en-" +"masse. These properties include font family, font size, font weight, text " +"alignment, text color, fill color, line or outline color, and line width. " +"The property bar also controls the defaults for these properties for any " +"newly created objects." +msgstr "" +"Panel vlastností lze použít ke změně některých běžných vlastností objektů " +"jako celku. Tyto vlastnosti zahrnují typ písma, velikost písma, tloušťku " +"písma, zarovnání textu, barvu textu, barvu výplně, barvu čáry nebo obrysu a " +"tloušťku čáry. Přes panel vlastností může také zadat výchozí hodnoty těchto " +"vlastností pro nově vytvářené objekty." + +#: C/glabels.xml:988(title) +msgid "Performing a Document Merge" +msgstr "Provádění slučování dokumentů" + +#: C/glabels.xml:990(para) +msgid "" +"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that " +"allows a unique label or card to be printed for each record in an external " +"data source." +msgstr "" +"Slučování dokumentů (někdy také nazývané „hromadná korespondence“) je mocná " +"funkce, která umožňuje vytisknout na etikety nebo vizitky různé texty podle " +"jednotlivých záznamů v externím zdroji dat." + +#: C/glabels.xml:994(para) +msgid "" +"The first step to performing a document merge is to prepare a source " +"document that contains your merge data. This data could be mailing addresses " +"or any other data that you wish to create unique labels or cards for. " +"Currently back-ends only exist for text files and the evolution data server " +"-- others are planned. The currently supported text-file format is very " +"simple: each line is a record; fields are delimited by commas (CSV), tabs, " +"or colons; and newlines can be embedded into fields by using the \"\\n\" " +"entity. This file could be created using any text editor or could be created " +"by another program or script. A common way of creating CSV files is to " +"export them from a spreadsheet program." +msgstr "" +"Prvním krokem při slučování dokumentů je příprava zdrojového dokumentu, " +"který má obsahovat slučovaná data. Tato data mohou být poštovní adresy nebo " +"jakákoliv jiná data, pro která si přejete vytvořit jedinečné etikety nebo " +"vizitky. V současnosti jsou zatím jako zdroje podporované pouze textové " +"soubory a datový server Evolution, jiné jsou v plánu. Současně podporovaný " +"formát textových souborů je velmi jednoduchý: co řádek, to záznam; pole jsou " +"oddělená čárkami (CSV), tabulátory nebo dvojtečkami; řádky jsou zakončené " +"pomocí znaku „\\n“. Takovýto soubor jde vytvořit v libovolném textovém " +"editoru nebo jiným programem nebo skriptem. Obvyklým způsobem vytváření " +"souborů CSV je jejich export z tabulkového kalkulátoru." + +#: C/glabels.xml:1006(para) +msgid "" +"A label must then be configured to \"point at\" this data file. To configure " +"the merge properties of a document, choose ObjectsMerge Properties menu item " +"to display the merge properties dialog. This dialog is " +"used to select the exact data file format and file name (location) of the " +"merge data." +msgstr "" +"Etiketa musí být nastavená tak, aby „ukazovala na“ takovýto datový soubor. " +"Abyste nastavili vlastnosti slučování dokumentu, zvolte položku nabídky " +"ObjektyVlastnosti slučování, zobrazí se dialogové okno vlastnosti " +"slučování. Toto dialogové okno slouží k výběru přesného formátu " +"datového souboru a názvu (umístění) souboru se slučovanými daty." + +#: C/glabels.xml:1014(para) +msgid "" +"Finally, once the label has been configured for a data file, field keys can " +"be inserted into text objects and used as source or data for barcode objects " +"and image filenames for image objects. See for more information on using merge data for these object " +"types." +msgstr "" +"Nakonec, až je etiketa nastavená pro datový soubor, je zapotřebí vložit " +"klíče polí do textových objektů a použít klíče polí jako zdroje nebo data " +"pro objekty čárových kódů a jako názvy souborů pro obrázkové objekty. Více " +"informací o použití slučovaných dat pro tyto typy objektů viz ." + +#: C/glabels.xml:1020(para) +msgid "" +"Now that your label is configured, gLabels will " +"print a unique label for each record in your source document -- substituting " +"fields from each record for field keys in the all text, barcode, and image " +"objects." +msgstr "" +"Nyní, když máte svoji etiketu nastavenou, bude aplikace " +"gLabels tisknout jednotlivé etikety odlišné pro " +"každý záznam ve vašem zdrojovém dokumentu - do klíčů polí se ve všech " +"textech budou dosazovat pole z jednotlivých záznamů." + +#: C/glabels.xml:1025(para) +msgid "" +"See for a detailed tutorial on " +"the document merge feature." +msgstr "" +"Podrobný průvodce funkcí slučování dokumentů viz ." + +#: C/glabels.xml:1040(title) +msgid "Settings" +msgstr "Nastavení" + +#: C/glabels.xml:1041(para) +msgid "" +"To configure gLabels, choose " +"SettingsPreferences. The Preferences dialog " +"contains the following tabbed sections:" +msgstr "" +"Když chcete v aplikaci gLabels změnit nastavení, " +"zvolte UpravitPředvolby. Dialogové okno Předvolby gLabels obsahuje následující karty:" + +#: C/glabels.xml:1062(title) +msgid "Locale" +msgstr "Národní prostředí" + +#: C/glabels.xml:1066(guilabel) +msgid "Units" +msgstr "Jednotky" + +#: C/glabels.xml:1068(para) +msgid "" +"Use this radio button group to specify your preferred units. Select one of " +"the following options:" +msgstr "" +"Tento skupinový přepínač použijte k určení svých upřednostňovaných jednotek. " +"Vyberte jednu z následujících možností:" + +#: C/glabels.xml:1073(guilabel) +msgid "Points" +msgstr "Body" + +#: C/glabels.xml:1074(para) +msgid "Use points (1 point = 1/72 in = 0.352778 mm)." +msgstr "Použít body (1 bod = 1/72 palce = 0,352778 mm)." + +#: C/glabels.xml:1078(guilabel) +msgid "Inches" +msgstr "Palce" + +#: C/glabels.xml:1079(para) +msgid "Use inches." +msgstr "Použít palce (1 palec = 25,4 mm)." + +#: C/glabels.xml:1083(guilabel) +msgid "Millimeters" +msgstr "Milimetry" + +#: C/glabels.xml:1084(para) +msgid "Use millimeters." +msgstr "Použít milimetry." + +#: C/glabels.xml:1087(para) +msgid "Default: Inches." +msgstr "Výchozí : Palce." + +#: C/glabels.xml:1093(guilabel) +msgid "Default page size" +msgstr "Výchozí velikost stránky" + +#: C/glabels.xml:1095(para) +msgid "" +"Use this radio button group to specify your preferred page size. This will " +"make it quicker for you to locate media types when creating a new label or " +"card." +msgstr "" +"Tento skupinový přepínač použijte k určení své upřednostňované velikosti " +"stránky. Urychlí vám to hledání typu média při vytváření nové etikety nebo " +"vizitky." + +#: C/glabels.xml:1101(guilabel) +msgid "US Letter" +msgstr "US Letter" + +#: C/glabels.xml:1102(para) +msgid "" +"Most of your media will be of the US Letter page size (8.5 x 11 inches)." +msgstr "Většina vašich médií má velikost stránky US Letter (8,5 × 11 palců)." + +#: C/glabels.xml:1106(guilabel) +msgid "ISO A4" +msgstr "ISO A4" + +#: C/glabels.xml:1107(para) +msgid "Most of your media will be of the ISO A4 page size (210 x 297 mm)." +msgstr "Většina vašich médií má velikost stránky ISO A4 (210 × 297 mm)." + +#: C/glabels.xml:1110(para) +msgid "Default: US Letter." +msgstr "Výchozí: US Letter." + +#: C/glabels.xml:1119(title) +msgid "Object defaults" +msgstr "Výchozí hodnoty objektu" + +#: C/glabels.xml:1125(para) +msgid "" +"Use these controls to set the default properties of new text objects. These " +"properties are" +msgstr "" +"Použijte tyto ovládací prvky k nastavení výchozích vlastností nových " +"textových objektů. Tyto vlastnosti jsou:" + +#: C/glabels.xml:1130(guilabel) +msgid "Font" +msgstr "Písmo" + +#: C/glabels.xml:1131(para) +msgid "" +"These controls are used to select font family and font size, and whether the " +"font should bold or in italics." +msgstr "" +"Tyto ovládací prvky slouží k nastavení rodiny písma a velikosti písma a zda " +"by mělo být písmo tučné nebo kurzívou." + +#: C/glabels.xml:1136(guilabel) C/glabels.xml:1161(guilabel) +#: C/glabels.xml:1176(guilabel) +msgid "Color" +msgstr "Barva" + +#: C/glabels.xml:1137(para) +msgid "This control selects the default text color." +msgstr "Tímto ovládacím prvkem se vybírá výchozí barva textu." + +#: C/glabels.xml:1141(guilabel) +msgid "Alignment" +msgstr "Zarovnání" + +#: C/glabels.xml:1142(para) +msgid "" +"These controls are used to select the default text alignment (left, center " +"or right)." +msgstr "" +"Tyto ovládací prvky slouží k výběru výchozího zarovnání textu (vlevo, na " +"střed nebo vpravo)." + +#: C/glabels.xml:1151(para) +msgid "" +"Use these controls to set the default properties of lines and outlines of " +"new objects. These properties are" +msgstr "" +"Použijte tyto ovládací prvky k nastavení výchozích vlastností čar a obrysů " +"nových objektů. Tyto vlastnosti jsou:" + +#: C/glabels.xml:1156(guilabel) +msgid "Width" +msgstr "Šířka" + +#: C/glabels.xml:1157(para) +msgid "This control selects the default line width." +msgstr "Tímto ovládacím prvkem se vybírá výchozí šířka čáry." + +#: C/glabels.xml:1162(para) +msgid "This control selects the default line color." +msgstr "Tímto ovládacím prvkem se vybírá výchozí barva čáry." + +#: C/glabels.xml:1169(guilabel) +msgid "Fill" +msgstr "Výplň" + +#: C/glabels.xml:1171(para) +msgid "" +"Use these controls to set the default fill properties of new objects. These " +"properties are" +msgstr "" +"Použijte tyto ovládací prvky k nastavení výchozích vlastností výplně nových " +"objektů. Tyto vlastnosti jsou:" + +#: C/glabels.xml:1177(para) +msgid "This control selects the default fill color." +msgstr "Tento ovládací prvek slouží k výběru výchozí barvy výplně." + +#: C/glabels.xml:1191(title) +msgid "Document Merge Tutorial" +msgstr "Průvodce slučováním dokumentů" + +#: C/glabels.xml:1193(para) +msgid "" +"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that " +"allows a unique label or card to be printed for each record in an external " +"data source. It is however, the most mis-understood feature of " +"gLabels. The following examples will step through " +"a couple of common tasks using the document merge feature." +msgstr "" +"Slučování dokumentů (někdy také nazývané „hromadná korespondence“) je mocná " +"funkce, díky které můžete tisknout odlišné etikety nebo vizitky pro každý " +"záznam v externím zdroji dat. Je však také ze všech funkcí aplikace " +"gLabels nejnáročnější na pochopení. Následující " +"příklady vás provedou dvojicí obvyklých úloh, které používají funkci " +"slučování dokumentů." + +#: C/glabels.xml:1201(title) +msgid "Example 1: Name Tags Using a CSV File" +msgstr "Příklad 1: Jmenovky s použitím souboru CSV" + +#: C/glabels.xml:1203(para) +msgid "" +"In this example we are organizing an orientation party for the new crew " +"members of our ship. We have a list of freshman crew members that we created " +"in gnumeric and exported as the following CSV " +"file. We could have created this file by using a text editor, but heck it is " +"the 23rd century." +msgstr "" +"V tomto příkladu pořádáme seznamovací párty pro nové členy osádky naší lodi. " +"Máme seznam nováčků v osádce, který jsme vytvořili v aplikaci " +"gnumeric a následně jej vyexportovali do souboru " +"CSV. Mohli bychom jej vytvořit i v textovém editoru, ale žijeme přece v 21. " +"století." + +#: C/glabels.xml:1209(programlisting) +#, no-wrap +msgid "" +"\n" +"Name,Department,SN\n" +"\"Jim Kirk\",Management,\"SC937-0176 CEC\"\n" +"\"Mr. Spock\",Sciences,S179-276SP\n" +"\"Leonard McCoy\",Medicine,unknown\n" +"\"Montgomery Scott\",Engineering,SE-197-54T\n" +" " +msgstr "" +"\n" +"jmeno,zarazeni,cislo\n" +"\"Jiří Kroupa\",vedení,\"SC937-0176 CEC\"\n" +"\"prof. Hrbolek\",vědec,S179-276SP\n" +"\"MUDr. Kroupová\",lékař,unknown\n" +"\"Viktor Hujer\",technik,SE-197-54T\n" +" " + +#: C/glabels.xml:1217(para) +msgid "" +"In gLabels we have created a new " +"gLabels document using the Avery 5395 \"Name " +"Badge Labels\" template. Next we use the ObjectsMerge Properties menu item " +"to display the merge properties dialog. We use this " +"dialog to select the source type (in our case CSV) and the merge source " +"(filename) as shown." +msgstr "" +"V aplikaci gLabels máme vytvořený dokument " +"vycházející ze šablony Avery 5395 „Etikety na jmenovky“. Nyní použijeme " +"položku nabídky ObjektyVlastnosti slučování a " +"zobrazí se nám dialogové okno vlastnosti slučování. " +"Toto dialogové okno použijeme k výběru typu zdroje (v našem případě CSV) a " +"vlastního zdroje (souboru), jak můžete vidět níže." + +#: C/glabels.xml:1227(title) C/glabels.xml:1344(title) +#: C/glabels.xml:1460(title) +msgid "Merge properties dialog" +msgstr "Dialogové okno vlastností slučování" + +#. ==== End of Figure ==== +#: C/glabels.xml:1238(para) +msgid "" +"Before applying the merge source, we uncheck the first record since it is " +"only column headers from our original gnumeric " +"spreadsheet and would simply waste our first label. We could also unselect " +"any other records that we didn't want to print a label for." +msgstr "" +"Před použitím zdroje slučování zrušíme zaškrtnutí prvního záznamu, protože " +"ten obsahuje pouze záhlaví sloupců z naší původní tabulky v " +"gnumeric a akorát bychom tím zničili první " +"etiketu. Stejným způsobem můžeme zrušit zaškrtnutí kteréhokoliv záznamu, " +"který nechceme vytisknout." + +#: C/glabels.xml:1243(para) C/glabels.xml:1361(para) +msgid "" +"We can also view each record in more detail by clicking on the appropriate " +"expander (the little triangles) as shown. Once we are satisfied with the " +"selections in this dialog we click OK to accept the " +"changes." +msgstr "" +"U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení " +"kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně " +"spokojení, klikneme na OK a změny se použijí." + +#: C/glabels.xml:1248(para) C/glabels.xml:1366(para) +msgid "" +"Now we start adding objects to our gLabels " +"document as shown." +msgstr "" +"Nyní můžeme začít s přidáváním objektů do svého dokumentu " +"gLabels, jak je zobrazeno níže." + +#: C/glabels.xml:1252(title) C/glabels.xml:1370(title) +#: C/glabels.xml:1488(title) +msgid "Adding objects" +msgstr "Přidávání objektů" + +#. ==== End of Figure ==== +#: C/glabels.xml:1263(para) +msgid "" +"In this example we have added three text objects and a barcode object. The " +"first text object contains only simple literal text (\"Hello, my name is\"). " +"The second text object contains a single merge field (\"${1}\") " +"corresponding to the first field of a record (first column of a line) which " +"contains the new crew member's full name. The third text field contains both " +"literal text (\"Department: \") followed by a single merge field (\"${2}\") " +"corresponding to the second field or the crew member's department. The " +"barcode object is configured to use field (or key) \"3\" which contains our " +"crew member's starfleet serial number." +msgstr "" +"V tomto příkladu máme přidané tři textové objekty a čárový kód. První " +"textový objekt obsahuje pouze prostý text („Ahoj, jmenuji se“). Druhý " +"textový objekt obsahuje jedno slučované pole („${1}“), které odpovídá " +"prvnímu poli v záznamu (první sloupec v řádku) a které obsahuje celé jméno " +"nového člena osádky. Třetí textové pole obsahuje jak text („Zařazení: “), " +"tak za ním následuje jedno slučované pole („${2}“), které odpovídá druhému " +"poli se zařazením člena posádky. Objekt s čárovým kódem je nastavený na " +"použití pole (klíče) „3“, které obsahuje identifikační číslo člena posádky." + +#: C/glabels.xml:1273(para) +msgid "" +"Now we can print our name tags by selecting the FilePrint menu item. This will " +"display print dialog as shown below." +msgstr "" +"Nyní můžeme své jmenovky vytisknout pomocí položky nabídky " +"SouborTisk. Zobrazí se dialogové okno jako na následujícím obrázku." + +#: C/glabels.xml:1280(title) +msgid "Printing name tags" +msgstr "Tisk jmenovek" + +#. ==== End of Figure ==== +#: C/glabels.xml:1291(para) C/glabels.xml:1406(para) C/glabels.xml:1520(para) +msgid "" +"Just to make sure our labels are going to look okay, we select the " +"Print outlines option and click Print " +"Preview. This will display a print preview dialog as shown below." +msgstr "" +"Nyní zkontrolujeme, zda vypadají etikety jak mají. Vybereme možnost " +"Tisk obrysů a klikneme na Náhled tisku. Zobrazí se dialogové okno s náhledem tisku, stejně jako na " +"následujícím obrázku." + +#: C/glabels.xml:1298(title) +msgid "Name tags preview" +msgstr "Náhled jmenovek" + +#. ==== End of Figure ==== +#: C/glabels.xml:1309(para) +msgid "" +"Everything looks good, so we can now load up our printer with the " +"appropriate label stock, print our name tags and start beaming our guests " +"aboard." +msgstr "" +"Vše vypadá v pořádku, takže můžeme do tiskárny vložit správný list s " +"etiketami, vytisknout jmenovky a vzhůru na palubu nalodit naše hosty." + +#: C/glabels.xml:1316(title) +msgid "Example 2: Address Labels Using a CSV File" +msgstr "Příklad 2: Adresní štítky s použitím souboru CSV" + +#: C/glabels.xml:1318(para) +msgid "" +"In this example we are going to throw a party and need to print mailing " +"address labels for our invitations. We have a list of our closest friends " +"that we created in gnumeric and exported as the " +"following CSV file. It should be noted that not everyone has a middle " +"initial or a two line address." +msgstr "" +"V tomto příkladu se chystáme uspořádat večírek a potřebujeme vytisknout " +"adresní štítky na své pozvánky. Máme seznam svých nejbližších přátel, který " +"jsem vytvořili v aplikaci gnumeric a " +"vyexportovali jej jako soubor CSV. Povšimněte si, že ne všichni mají " +"přezdívku nebo dvouřádkovou adresu." + +#: C/glabels.xml:1324(programlisting) +#, no-wrap +msgid "" +"\n" +"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n" +",,,,,,,\n" +"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n" +"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n" +"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n" +"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n" +"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n" +" " +msgstr "" +"\n" +"PRIJMENI,JMENO,PREZDIVKA,ADR1,ADR2,MESTO,PSC\n" +",,,,,,,\n" +"Pacovský,Tomáš,,\"U dvou akordů\",\"Křižíkova 506\",Praha,\"123 00\"\n" +"Pacovský,František,Ozzák,\"Křižíkova 62\",,\"Praha - Vinohrady\",\"110 00\"\n" +"Divićová,Marcela,,\"Náměstí míru 1\",,Praha,\"150 00\"\n" +"Bůček,Alexandr,Lexa,\"U Jezevce\",\"Nitranská 7\",Praha,\"160 13\"\n" +"Bůčková,Alexandra,,\"Korunní 18\",,Praha,\"100 24\"\n" +" " + +#: C/glabels.xml:1334(para) +msgid "" +"In gLabels we have created a new " +"gLabels document using the Avery 5512 \"Address " +"Labels\" template. Next we use the ObjectsMerge Properties menu item " +"to display the merge properties dialog. We use this " +"dialog to select the source type (in our case CSV) and the merge source " +"(filename) as shown." +msgstr "" +"V aplikaci gLabels vytvoříme nový dokument ze " +"šablony Avery L7162 „Poštovní etikety“. Následně použijeme položku nabídky " +"ObjektyVlastnosti slučování a zobrazí se nám dialogové okno " +"vlastností slučování. V tomto dialogovém okně vybereme " +"typ zdroje (v našem případě CSV) a konkrétní zdroj (název souboru) pro " +"slučování, jak můžete vidět na následujícím obrázku." + +#. ==== End of Figure ==== +#: C/glabels.xml:1355(para) +msgid "" +"Before applying the merge source, we uncheck the first record since it is " +"only column headers from our original gnumeric " +"spreadsheet and would simply waste our first label. We also unselect the " +"second record which is empty (an artifact of our original spreadsheet). We " +"could also unselect any other records that we didn't want to print a label " +"for." +msgstr "" +"Před tím, než zdroj pro slučován použijeme, zrušíme zaškrtnutí prvního " +"záznamu, protože ten obsahuje pouze záhlaví sloupců z původní tabulky v " +"gnumeric a akorát bychom tím znehodnotili první " +"etiketu. Zrušíme zaškrtnutí i druhého záznamu, protože je prázdný (což je " +"pozůstatek z tabulkového kalkulátoru). A stejným způsobem můžeme vyřadit " +"kterýkoliv jiný záznam, který nechceme na etikety vytisknout." + +#. ==== End of Figure ==== +#: C/glabels.xml:1381(para) +msgid "" +"In this example we have a single text object. This text object contains all " +"of our merge fields organized on multiple lines as a mailing address. Notice " +"that fields ${4} and ${5} (corresponding to ADDR1 and ADDR2) are each " +"located with no other text on their own lines. When gLabels encounters a field as the only text on a line, it will not " +"expand the line if the field is empty." +msgstr "" +"V tomto příkladu máme jen jeden textový objekt. Tento textový objekt " +"obsahuje všechna slučovaná pole uspořádaná v několika řádcích " +"představujících poštovní adresu. Všimněte si, že pole ${4} a ${5} (ta " +"odpovídají ADR1 a ADR2) jsou umístěná na samostatných řádcích bez " +"jakéhokoliv dalšího textu. Pokud aplikace gLabels " +"narazí na pole, které je jediným textem na řádku a toto pole je prázdné, " +"řádek nebude ve výsledku zabírat žádné místo." + +#: C/glabels.xml:1388(para) +msgid "" +"Now we can print our address labels by selecting the " +"FilePrint menu item. This will display print dialog as shown below." +msgstr "" +"Nyní se můžeme pustit do tisku adresních etiket pomocí volby " +"SouborTisk v nabídce. Zobrazí se dialogové okno tisku jako na následujícím " +"obrázku." + +#: C/glabels.xml:1395(title) C/glabels.xml:1509(title) +msgid "Printing address labels" +msgstr "Tisk etiket s adresami" + +#: C/glabels.xml:1413(title) C/glabels.xml:1527(title) +msgid "Address labels preview" +msgstr "Náhled etiket s adresami" + +#. ==== End of Figure ==== +#: C/glabels.xml:1424(para) C/glabels.xml:1538(para) +msgid "" +"Everything looks good, so we can now load up our printer with the " +"appropriate label stock, print our address labels and start mailing our " +"party invitations." +msgstr "" +"Vše vypadá dobře a tak můžeme vložit do tiskárny správný list s etiketami, " +"vytisknout adresní štítky a začít rozesílat pozvánky na večírek." + +#: C/glabels.xml:1431(title) +msgid "" +"Example 3: Address Labels Using the Evolution " +"Addressbook" +msgstr "" +"Příklad 3: Adresní štítky s použitím adresáře aplikace " +"Evolution" + +#: C/glabels.xml:1433(para) +msgid "" +"Our last party was a great success, and now we need to print mailing address " +"labels for the invitations to a new one. To simplify this, we can use the " +"Evolution addressbook, because the address data " +"of all our friends is stored there." +msgstr "" +"Náš předchozí večírek měl velký úspěch a my nyní chceme vytisknout adresní " +"štítky pro pozvánky na další takový. Abychom si to zjednodušili, můžeme " +"použít adresář aplikace Evolution, protože adresy " +"všech našich přátel máme uložené v něm." + +#: C/glabels.xml:1439(para) +msgid "" +"Depending on how your copy of gLabels was " +"packaged, this option could be unavailable. Support for the " +"Evolution addressbook will only be available if " +"the evolution-data-server and its development " +"files were present when gLabels was built. Please " +"keep this in mind if you build gLabels directly " +"from source." +msgstr "" +"V závislosti na tom, jak byl připravený váš balíček gLabels, nemusí být tato funkčnost dostupná. Podpora pro adresář " +"Evolution je dostupná jen v případě, že byl při " +"překladu aplikace gLabels k dispozici " +"evolution-data-server a k němu vývojářské " +"soubory. Mějte toto na paměti, pokud si aplikaci překládáte sami ze " +"zdrojových kódů." + +#: C/glabels.xml:1445(para) +msgid "" +"If the gLabels package from your distribution " +"lacks this support, you may wish to contact the package maintainer or file a " +"bug against the package to request it." +msgstr "" +"Pokud balíček gLabels ve vaší distribuci tuto " +"podporu postrádá, můžete zkusit kontaktovat správce balíčku nebo to zkusit " +"nahlásit jako chybu." + +#: C/glabels.xml:1450(para) +msgid "" +"In glabels we have created a new " +"gLabels document using the Avery 5512 \"Address " +"Labels\" template. Next we use the ObjectsMerge Properties menu item " +"to display the Merge properties dialog. We use this " +"dialog to select the source type (in our case Data from default " +"Evolution addressbook) as shown." +msgstr "" +"V aplikaci glabels vytvoříme nový dokument ze " +"šablony Avery L7162 „Poštovní etikety“. Potom v nabídce zvolíme " +"ObjektyVlastnosti slučování, aby se nám zobrazilo dialogové okno " +"Vlastnosti slučování. V něm vybereme typ zdroje (v " +"našem případě Data z výchozího adresáře Evolution), jak " +"je ukázáno na obrázku." + +#. ==== End of Figure ==== +#: C/glabels.xml:1471(para) +msgid "" +"Once we have chosen Data from default Evolution addressbook as our merge source, we will get a full list of its content. " +"Initially, all entries are checked. Assuming we were planning a really big " +"party, we could leave this selection untouched (but let's keep our budget in " +"mind). We will now select or unselect certain entries by clicking on the " +"appropriate checkboxes, or we could use the Select all and Unselect all buttons to activate or " +"deactivate all entries in the address book." +msgstr "" +"Když máme jako zdroj slučování vybráno Data z výchozího adresáře " +"Evolution, obdržíme úplný seznam jeho obsahu. Na začátku jsou " +"zaškrtnuté všechny položky. Předpokládá se, že budeme pořádat opravdu velký " +"večírek a tak bychom mohli ponechat výběr jak je (ale uvědomte si kolik to " +"bude stát). Nyní některé záznamy kliknutím na příslušné zaškrtávací políčko " +"vyřadíme nebo naopak vybereme, případně můžeme použít tlačítka " +"Vybrat vše a Zrušit výběr pro " +"aktivování nebo deaktivování všech záznamů v adresáři." + +#: C/glabels.xml:1479(para) +msgid "" +"We can also view each entry in more detail by clicking on the appropriate " +"expander (the little triangles) as shown. Once we are satisfied with the " +"selections in this dialog, we will click the OK " +"button to accept the changes." +msgstr "" +"U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení " +"kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně " +"spokojení, klikneme na OK a změny se použijí." + +#: C/glabels.xml:1484(para) +msgid "Now we start adding objects to our glabels document as shown." +msgstr "" +"Nyní můžeme začít s přidáváním objektů do svého dokumentu glabels, jak bylo " +"ukázáno dříve." + +#. ==== End of Figure ==== +#: C/glabels.xml:1499(para) +msgid "" +"In this example we have a single text object again. This text object " +"contains all of our merge fields organized on multiple lines as a mailing " +"address." +msgstr "" +"V tomto příkladu máme opět jen jeden textový objekt. Ten obsahuje všechna " +"slučovaná pole uspořádaná v několika řádcích, představujících poštovní " +"adresy." + +#: C/glabels.xml:1502(para) +msgid "" +"Now we can print our address labels by selecting the " +"FilePrint menu item. This will display the print dialog as shown below." +msgstr "" +"Nyní můžeme své etikety s adresami vytisknout volbou položky nabídky " +"SouborTisk. Zobrazí se dialogové okno tisku, jak jej můžete vidět níže." + +#: C/glabels.xml:1551(title) +msgid "Manually Creating New Templates" +msgstr "Ruční vytváření šablon" + +#: C/glabels.xml:1553(para) +msgid "" +"Predefined templates are defined by XML files located in ${prefix}/" +"share/glabels/, where ${prefix} is usually " +"something like /usr/local or /usr " +"depending on the configuration option prefix. " +"gLabels will use all files of the form " +"*-templates.xml or *.template, " +"that it finds in ${prefix}/share/glabels/ and " +"${HOME}/.glabels/. Additional templates can be added by creating " +"additional *.template files in either of these " +"directories." +msgstr "" +"Předdefinované šablony jsou definované soubory XML umístěnými v " +"${prefix}/share/glabels/, kde ${prefix} je " +"obvykle /usr/local nebo /usr, v " +"závislosti na volbě nastavení prefix při překladu " +"programu. Aplikace gLabels použije všechny " +"soubory s názvem v podobě *-templates.xml nebo " +"*.template, které nalezne v ${prefix}/share/" +"glabels/ a ${HOME}/.glabels/. Další šablony " +"si můžete přidat vytvořením dalších souborů *.template " +"v jedné z těchto složek." + +#: C/glabels.xml:1566(para) +msgid "" +"The format for these files is defined in the DTD: glabels-2.2." +"dtd. (This DTD also describes other XML formats used by " +"gLabels.)" +msgstr "" +"Formát těchto souborů je dán v DTD: glabels-2.2.dtd. (Toto " +"DTD popisuje i ostatní formáty XML používané v aplikaci " +"gLabels.)" + +#: C/glabels.xml:1572(title) +msgid "Assumptions/caveats" +msgstr "Předpoklady/upozornění" + +#: C/glabels.xml:1575(para) +msgid "" +"A sheet contains only one size of label or card (if a sheet contains more " +"than one size of item, it can be split into multiple templates for multiple " +"pass printing)" +msgstr "" +"Stránka obsahuje etiketu nebo vizitku pouze jedné velikosti (pokud má " +"stránka obsahovat více než jednu velikost položky, můžete ji rozdělit do " +"více šablon a vytisknout na vícekrát)" + +#: C/glabels.xml:1580(para) +msgid "" +"Distances can be expressed in units of pt, " +"in, mm, cm, " +"or pc. For example: \"1.0in\" or " +"\"2.54cm\". If no units are specified, computer points " +"(pt) will be assumed (1 pt = 1/72 " +"in = 0.352778 mm)." +msgstr "" +"Rozměry mohou být uváděny v jednotkách pt, " +"in, mm, cm " +"nebo pc. Například: „1.0in“ nebo " +"„2.54cm“. Pokud není žádná jednotka uvedená, budou " +"předpokládány body pt (1 pt = " +"1/72 in = 0,352778 mm)." + +#: C/glabels.xml:1593(title) +msgid "Template Files" +msgstr "Soubory šablon" + +#: C/glabels.xml:1595(programlisting) +#, no-wrap +msgid "" +"\n" +"<?xml version=\"1.0\"?>\n" +"<Glabels-templates>\n" +"\n" +" ...templates...\n" +"\n" +"</Glabels-templates>\n" +" " +msgstr "" +"\n" +"<?xml version=\"1.0\"?>\n" +"<Glabels-templates>\n" +"\n" +" …šablony…\n" +"\n" +"</Glabels-templates>\n" +" " + +#: C/glabels.xml:1607(title) +msgid "Example Template" +msgstr "Příklad šablony" + +#: C/glabels.xml:1608(programlisting) +#, no-wrap +msgid "" +"\n" +" <Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\">\n" +" <Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\">\n" +" <Markup-margin size=\"5pt\"/>\n" +" <Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/>\n" +" </Label-rectangle>\n" +" <Alias brand=\"Avery\" part=\"5160\"/>\n" +" <Alias brand=\"Avery\" part=\"6233\"/>\n" +" </Template>\n" +" " +msgstr "" +"\n" +" <Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" _description=\"Mailing Labels\">\n" +" <Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\">\n" +" <Markup-margin size=\"5pt\"/>\n" +" <Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/>\n" +" </Label-rectangle>\n" +" <Alias brand=\"Avery\" part=\"5160\"/>\n" +" <Alias brand=\"Avery\" part=\"6233\"/>\n" +" </Template>\n" +" " + +#: C/glabels.xml:1621(title) +msgid "Template Node" +msgstr "Uzel Template" + +#: C/glabels.xml:1623(para) +msgid "" +"A Template node describes a single stationary product. " +"It must contain one instance of any type of Label node (Label-" +"rectangle, Label-round, or Label-" +"cd). This node can be followed by zero or more Alias nodes." +msgstr "" +"Uzel Template popisuje jeden pevně daný výrobek. Musí " +"obsahovat jednu instanci libovolného uzlu Label (Label-rectangle, Label-round nebo Label-cd). Tento uzel může být následován žádným nebo více uzly " +"Alias." + +#: C/glabels.xml:1637(para) C/glabels.xml:1712(para) C/glabels.xml:1789(para) +#: C/glabels.xml:1834(para) C/glabels.xml:1910(para) C/glabels.xml:1943(para) +#: C/glabels.xml:1994(para) C/glabels.xml:2037(para) C/glabels.xml:2096(para) +#: C/glabels.xml:2173(para) +msgid "Property" +msgstr "Vlastnost" + +#: C/glabels.xml:1640(para) C/glabels.xml:1715(para) C/glabels.xml:1792(para) +#: C/glabels.xml:1837(para) C/glabels.xml:1913(para) C/glabels.xml:1946(para) +#: C/glabels.xml:1997(para) C/glabels.xml:2040(para) C/glabels.xml:2099(para) +#: C/glabels.xml:2176(para) +msgid "Description" +msgstr "Popis" + +#: C/glabels.xml:1646(para) C/glabels.xml:2182(para) +msgid "brand" +msgstr "brand" + +#: C/glabels.xml:1648(para) +msgid "Brand or manufacturer of stationary product. E.g. \"Avery\"" +msgstr "Značka nebo výrobce pevně daného výrobku. Např. \"S&K Label\"" + +#: C/glabels.xml:1653(para) C/glabels.xml:2188(para) +msgid "part" +msgstr "part" + +#: C/glabels.xml:1655(para) +msgid "Part number or name of stationary product. E.g. \"8160\"" +msgstr "Produktové číslo nebo název pevně daného výrobku. Např. \"8160\"" + +#: C/glabels.xml:1660(para) C/glabels.xml:1919(para) +msgid "size" +msgstr "size" + +#: C/glabels.xml:1662(para) +msgid "Size of sheet. E.g., \"US-Letter,\" \"A4\", ..." +msgstr "Velikost stránky. Např. \"A4\", \"US-Letter\"" + +#: C/glabels.xml:1666(para) +msgid "description" +msgstr "description" + +#: C/glabels.xml:1668(para) +msgid "Description of stationary product. E.g, \"Mailing Labels.\"" +msgstr "Popis pevně daného produktu. Např. \"Mailing Labels.\"" + +#: C/glabels.xml:1673(para) +msgid "_description" +msgstr "_description" + +#: C/glabels.xml:1675(para) +msgid "" +"Translatable description of stationary product. E.g, \"Mailing Labels." +"\" (Only useful for predefined templates)" +msgstr "" +"Popis pevně daného produktu s možností překladu. Např. \"Mailing Labels." +"\" (Použitelné pouze pro předdefinované šablony)" + +#: C/glabels.xml:1681(para) C/glabels.xml:1727(para) C/glabels.xml:1857(para) +msgid "width" +msgstr "width" + +#: C/glabels.xml:1683(para) +msgid "Page width. Only valid if size=\"Other\"" +msgstr "Šířka stránky. Platné jen v případě, že size=\"Other\"" + +#: C/glabels.xml:1687(para) C/glabels.xml:1731(para) C/glabels.xml:1864(para) +msgid "height" +msgstr "height" + +#: C/glabels.xml:1689(para) +msgid "Page height. Only valid if size=\"Other\"" +msgstr "Výška stránky. Platné jen v případě, že size=\"Other\"" + +#: C/glabels.xml:1699(title) +msgid "Label-rectangle Node" +msgstr "Uzel Label-rectangle" + +#: C/glabels.xml:1701(para) +msgid "" +"A Label-rectangle node describes the dimensions of a " +"single label or business card that is rectangular in shape (may have rounded " +"edges)." +msgstr "" +"Uzel Label-rectangle popisuje rozměry jedné etikety " +"nebo vizitky, která má obdélníkový tvar (může mít zaoblené rohy)." + +#: C/glabels.xml:1721(para) C/glabels.xml:1798(para) C/glabels.xml:1843(para) +msgid "id" +msgstr "id" + +#: C/glabels.xml:1723(para) C/glabels.xml:1800(para) C/glabels.xml:1845(para) +msgid "Reserved for future use. Should always be 0." +msgstr "Rezervované pro pozdější použití. Vždy by mělo být nastavené na 0." + +#: C/glabels.xml:1728(para) +msgid "Width of label/card" +msgstr "Šířka etikety/vizitky" + +#: C/glabels.xml:1732(para) +msgid "Height of label/card" +msgstr "Výška etikety/vizitky" + +#: C/glabels.xml:1735(para) +msgid "round" +msgstr "round" + +#: C/glabels.xml:1737(para) +msgid "" +"Radius of corners. For items with square edges (business cards), the radius " +"should be 0." +msgstr "" +"Poloměr rohů. Pro položky s ostrými rohy (např. vizitky) by mělo být " +"nastaveno na 0." + +#: C/glabels.xml:1742(para) +msgid "x_waste" +msgstr "x_waste" + +#: C/glabels.xml:1744(para) +msgid "" +"Amount of horizontal waste (over-print) to allow. This is useful for " +"minimizing alignment problems when using non-white backgrounds (e.g. images)." +msgstr "" +"Velikost dovoleného vodorovného odsazení (umožňuje přetisk). To je užitečné " +"kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé " +"pozadí, ale např. obrázkové." + +#: C/glabels.xml:1750(para) +msgid "y_waste" +msgstr "y_waste" + +#: C/glabels.xml:1752(para) +msgid "" +"Amount of vertical waste (over-print) to allow. This is useful for " +"minimizing alignment problems when using non-white backgrounds (e.g. images)." +msgstr "" +"Velikost dovoleného svislého odsazení (umožňuje přetisk). To je užitečné " +"kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé " +"pozadí, ale např. obrázkové." + +#: C/glabels.xml:1763(title) +msgid "Label-rectangle Parameters" +msgstr "Parametry uzlu Label-rectangle" + +#: C/glabels.xml:1777(title) +msgid "Label-round Node" +msgstr "Uzel Label-round" + +#: C/glabels.xml:1779(para) +msgid "" +"A Label-round node describes the dimensions of a simple " +"round label (not a CD)." +msgstr "" +"Uzel Label-round popisuje rozměry jedné zaoblené " +"etikety (ne CD)." + +#: C/glabels.xml:1804(para) C/glabels.xml:1849(para) C/glabels.xml:2015(para) +msgid "radius" +msgstr "radius" + +#: C/glabels.xml:1805(para) +msgid "Radius (1/2 diameter) of label" +msgstr "Poloměr (½ průměru) etikety" + +#: C/glabels.xml:1808(para) C/glabels.xml:1871(para) +msgid "waste" +msgstr "waste" + +#: C/glabels.xml:1810(para) C/glabels.xml:1873(para) +msgid "" +"Amount of waste (over-print) to allow. This is useful for minimizing " +"alignment problems when using non-white backgrounds (e.g. images)." +msgstr "" +"Velikost dovoleného odsazení (umožňuje přetisk). To je užitečné kvůli " +"zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, " +"ale např. obrázkové." + +#: C/glabels.xml:1822(title) +msgid "Label-cd Node" +msgstr "Uzel Label-cd" + +#: C/glabels.xml:1824(para) +msgid "" +"A Label-cd node describes the dimensions of a CD, DVD, " +"or business card CD." +msgstr "" +"Uzel Label-cd popisuje rozměry etiket na CD, DVD nebo " +"vizitkové CD." + +#: C/glabels.xml:1850(para) +msgid "Outer radius of label" +msgstr "Vnější poloměr etikety" + +#: C/glabels.xml:1853(para) +msgid "hole" +msgstr "hole" + +#: C/glabels.xml:1854(para) +msgid "Radius of concentric hole" +msgstr "Poloměr středové díry" + +#: C/glabels.xml:1859(para) +msgid "" +"If present, the label is clipped to the given width. (Useful for \"business " +"card CDs\")." +msgstr "" +"Pokud je zadáno, bude etiketa oříznuta na uvedenou šířku. (Vhodné pro " +"„vizitková CD“)." + +#: C/glabels.xml:1866(para) +msgid "" +"If present, the label is clipped to the given height. (Useful for \"business " +"card CDs\")." +msgstr "" +"Pokud je zadáno, bude etiketa oříznuta na uvedenou výšku. (Vhodné pro " +"„vizitková CD“)." + +#: C/glabels.xml:1884(title) +msgid "CD Label Parameters" +msgstr "Parametry etiket na CD" + +#: C/glabels.xml:1898(title) +msgid "Markup-margin Node" +msgstr "Uzel Markup-margin" + +#: C/glabels.xml:1900(para) +msgid "" +"A Markup-margin describes a margin along all edges of a " +"label." +msgstr "" +"Uzel Markup-margin popisuje okraj podél všech hran " +"etikety." + +#: C/glabels.xml:1921(para) +msgid "" +"Size of the margin. I.e. the distance of the margin line from the edge of " +"the card/label." +msgstr "" +"Velikost okraje. Např. vzdálenost hranice okraje od hrany etikety/vizitky." + +#: C/glabels.xml:1932(title) +msgid "Markup-line Node" +msgstr "Uzel Markup-line" + +#: C/glabels.xml:1934(para) +msgid "A Markup-line describes a markup line." +msgstr "Uzel Markup-line popisuje značku v podobě čáry." + +#: C/glabels.xml:1952(para) C/glabels.xml:2046(para) +msgid "x1" +msgstr "x1" + +#: C/glabels.xml:1954(para) +msgid "x coordinate of 1st endpoint of the line segment." +msgstr "x-ová souřadnice počátku úsečky" + +#: C/glabels.xml:1958(para) C/glabels.xml:2052(para) +msgid "y1" +msgstr "y1" + +#: C/glabels.xml:1960(para) +msgid "y coordinate of 1st endpoint of the line segment." +msgstr "y-ová souřadnice počátku úsečky" + +#: C/glabels.xml:1964(para) +msgid "x2" +msgstr "x2" + +#: C/glabels.xml:1966(para) +msgid "x coordinate of 2nd endpoint of the line segment." +msgstr "x-ová souřadnice konce úsečky" + +#: C/glabels.xml:1970(para) +msgid "y2" +msgstr "y2" + +#: C/glabels.xml:1972(para) +msgid "y coordinate of 2nd endpoint of the line segment." +msgstr "y-ová souřadnice konce úsečky" + +#: C/glabels.xml:1982(title) +msgid "Markup-circle Node" +msgstr "Uzel Markup-circle" + +#: C/glabels.xml:1984(para) +msgid "A Markup-circle describes a markup circle." +msgstr "" +"Uzel Markup-circle popisuje značku v podobě kruhu." + +#: C/glabels.xml:2003(para) C/glabels.xml:2119(para) +msgid "x0" +msgstr "x0" + +#: C/glabels.xml:2005(para) +msgid "x coordinate of circle origin (center)." +msgstr "x-ová souřadnice středu kruhu" + +#: C/glabels.xml:2009(para) C/glabels.xml:2126(para) +msgid "y0" +msgstr "y0" + +#: C/glabels.xml:2011(para) +msgid "y coordinate of circle origin (center)." +msgstr "y-ová souřadnice středu kruhu" + +#: C/glabels.xml:2016(para) +msgid "Radius of circle." +msgstr "Poloměr kruhu." + +#: C/glabels.xml:2025(title) +msgid "Markup-rect Node" +msgstr "Uzel Markup-rect" + +#: C/glabels.xml:2027(para) +msgid "A Markup-rect describes a markup rectangle." +msgstr "" +"Uzel Markup-rect popisuje značku v podobě obdélníku." + +#: C/glabels.xml:2048(para) +msgid "x coordinate of upper left corner of rectangle." +msgstr "x-ová souřadnice levého horního rohu obdélníku." + +#: C/glabels.xml:2054(para) +msgid "y coordinate of upper left corner of rectangle." +msgstr "y-ová souřadnice levého horního rohu obdélníku." + +#: C/glabels.xml:2058(para) +msgid "w" +msgstr "w" + +#: C/glabels.xml:2060(para) +msgid "Width of rectangle." +msgstr "Šířka obdélníku." + +#: C/glabels.xml:2064(para) +msgid "h" +msgstr "h" + +#: C/glabels.xml:2066(para) +msgid "Height of rectangle." +msgstr "Výška obdélníku." + +#: C/glabels.xml:2070(para) +msgid "r" +msgstr "r" + +#: C/glabels.xml:2071(para) +msgid "Radius of rounded corners of rectangle." +msgstr "Poloměr zakulacených rohů obdélníku." + +#: C/glabels.xml:2080(title) +msgid "Layout Node" +msgstr "Uzel Layout" + +#: C/glabels.xml:2082(para) +msgid "" +"A label node may contain multiple Layout children. If " +"labels are arranged in a simple grid pattern, only one layout is needed. " +"However, if labels are arranged in multiple grids, such as a running bond " +"pattern, multiple layout tags can be used. Note: a " +"single label can always be treated as a grid of one." +msgstr "" +"Uzel typu Label může obsahovat více potomků Layout. V " +"případě, že jsou etikety rozmístěné do jednoduché pravidelné mřížky, " +"postačuje jeden uzel Layout. Pokud ale jsou etikety rozmístěné ve více " +"mřížkách, např. mají podobu cihlové zdi, musí se použít více značek " +"layout. Poznámka: jedna etiketa může být vždy " +"považována za mřížku s jednou buňkou." + +#: C/glabels.xml:2105(para) +msgid "nx" +msgstr "nx" + +#: C/glabels.xml:2107(para) +msgid "Number of labels/cards across in the grid (horizontal)" +msgstr "Počet etiket/vizitek v mřížce (vodorovně)" + +#: C/glabels.xml:2112(para) +msgid "ny" +msgstr "ny" + +#: C/glabels.xml:2114(para) +msgid "Number of labels/cards up and down in the grid (vertical)" +msgstr "Počet etiket/vizitek v mřížce (svisle)" + +#: C/glabels.xml:2121(para) +msgid "" +"Distance from left edge of sheet to the left edge of the left column of " +"cards/labels in the layout." +msgstr "" +"Vzdálenost od levé hrany stránky k levé hraně levého sloupce etiket/vizitek " +"v rozvržení." + +#: C/glabels.xml:2128(para) +msgid "" +"Distance from the top edge of sheet to the top edge of the top row of labels/" +"cards in the layout." +msgstr "" +"Vzdálenost od horní hrany stránky k horní hraně horní řady etiket/vizitek v " +"rozvržení." + +#: C/glabels.xml:2133(para) +msgid "dx" +msgstr "dx" + +#: C/glabels.xml:2134(para) +msgid "Horizontal pitch of grid." +msgstr "Vodorovná rozteč mřížky." + +#: C/glabels.xml:2137(para) +msgid "dy" +msgstr "dy" + +#: C/glabels.xml:2138(para) +msgid "Vertical pitch of grid." +msgstr "Svislá rozteč mřížky." + +#: C/glabels.xml:2146(title) +msgid "Layout Parameters" +msgstr "Parametry uzlu Layout" + +#: C/glabels.xml:2160(title) +msgid "Alias Node" +msgstr "Uzel Alias" + +#: C/glabels.xml:2162(para) +msgid "" +"An Alias node provides the name of a product with the " +"same size and layout characteristics as the parent template." +msgstr "" +"Uzel Alias uvádí názvy výrobků se stejnými rozměry a " +"rozvržením, jako má rodičovská šablona." + +#: C/glabels.xml:2184(para) +msgid "The brand or manufacturer of the equivalent product." +msgstr "Značka nebo výrobce odpovídajícího výrobku." + +#: C/glabels.xml:2190(para) +msgid "The part number or name of the equivalent product." +msgstr "Produktové číslo nebo název odpovídajícího výrobku." + +#: C/glabels.xml:2226(title) +msgid "About gLabels" +msgstr "O aplikaci gLabels" + +#: C/glabels.xml:2227(para) +msgid "" +"gLabels was written by Jim Evins " +"(evins@snaught.com). To find more information about " +"gLabels, please visit the gLabels Web page." +msgstr "" +"Aplikaci gLabels napsal Jim Evins " +"(evins@snaught.com). Pokud chcete o aplikaci " +"gLabels najít více informací, navštivte prosím " +"webovou stránku " +"gLabels." + +#: C/glabels.xml:2232(para) +msgid "" +"To report a bug or make a suggestion regarding this application or this " +"manual, follow the directions at the gLabels Contact " +"Page." +msgstr "" +"Pokud chcete oznámit chybu nebo navrhnout vylepšení vztahující se k této " +"aplikaci nebo této příručce, postupujte dle instrukcí na kontaktní stránce " +"gLabels." + +#: C/glabels.xml:2238(para) +msgid "" +"This program is distributed under the terms of the GNU General Public " +"license as published by the Free Software Foundation; either version 2 of " +"the License, or (at your option) any later version. A copy of this license " +"can be found at this link, or " +"in the file COPYING included with the source code of this program." +msgstr "" +"Tento program je šířen podle ustanovení GNU General Public License, vydávané " +"Free Software Foundation; a to buď verze 2 této licence anebo (podle " +"vlastního uvážení) kterékoliv pozdější verze. Kopii této licence naleznete " +"pod tímto odkazem nebo v " +"souboru COPYING přiloženém ke zdrojovým kódům tohoto programu. " + +#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 +#: C/glabels.xml:0(None) +msgid "translator-credits" +msgstr "Marek Černocký , 2010" + diff --git a/help/cs/figures/main-window-empty.png b/help/cs/figures/main-window-empty.png new file mode 100644 index 0000000000000000000000000000000000000000..f9157f9901a383e12f5cdfa00dc7e06898a11406 GIT binary patch literal 38354 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

    &vku|6*-dydYrkL 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 literal 0 HcmV?d00001 diff --git a/help/cs/figures/merge-ex1-2.png b/help/cs/figures/merge-ex1-2.png new file mode 100644 index 0000000000000000000000000000000000000000..ab40f9698ebd996effe51205525812d602e9785c GIT binary patch literal 69806 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 z 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%0Dvx*N6E1sgY>%-B9HL!_p~wn04?!(muuU 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 A?*IS* literal 0 HcmV?d00001 diff --git a/help/cs/figures/merge-ex1-4.png b/help/cs/figures/merge-ex1-4.png new file mode 100644 index 0000000000000000000000000000000000000000..a602d01c8d2ca7db91a4aadab1ea380cc7b31b84 GIT binary patch literal 51049 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%0Ao}P?nsNIseyHbp>k6Djva51d#=;)%=z6TLftw4 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 L|5Pq&5b%EhhxmBY literal 0 HcmV?d00001 diff --git a/help/cs/figures/merge-ex2-2.png b/help/cs/figures/merge-ex2-2.png new file mode 100644 index 0000000000000000000000000000000000000000..49284d457ee6feec64691fad0a426ec269723713 GIT binary patch literal 61127 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

    ud@u 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�nV_I1w< z4G$EeH2be*Yd?BdqVLhH-M(Iku~hiy)II1N&_@_vlQIl@5}4AX*^(joPVMbb))m(G zPR__bpx;XGn=>Xd6)ra>QYe(?pKQ)P<}0@AcG)|P({Jw9JRc}ebL<(_7_beK1O#%OCGvRqI^aF%yW;Z$+ItfO#RcEW6(jx9&+S~h zROiU81}o}XRKnE*X+~>$A+l6VI%k$55*0srv2v5AOI}|uqa|=(=s|%ANp#<%ptosNC!cm_F!$sM)Ny zsxhrgFw||MjLO9%D_mc6X$k)vNwJ<1<+HoilY$aM_n0Fp*JD?H%#@g?lhEnraf;G_7 zOV3>)T+N$f68MShjKy1(l)l>AGqOZ`#MJE&4_b4s+ScprHId4@UGFT`8a?d{FTE;0 zC3ZNSvdz^zv`CEOxmUh`cA*MCC+LIg3gwwIBaXlR;&WPn>b<>pJ~DOwrLjCMggbT? z8mC1>G-z@Wq#8b>;=d(IG*R1n!#Y{AC+ff%xhLAoQuk>*Oig+@;H@5akH0?sko!_n ze@(+j(fYdDj_si!)XtB$TG_x$j);lr7(fX73G?8Y|>-W%!ol zce?v~2w^wYo>{vr?$i*j67+_z_==V&cAsfeDyBDnx4tjl#`h0=0GIDT9~Vhzb#L_t z1)Xw{w|k8nRfeq4A zrG1!#5j-_Pb)Uf9!3p#7MD{UjZf+DzHL-eM3LbAm$XIuJUtFW+hm^R1)fgi0X5#ZL zLkJu`%X_BR%UEGFOIx!)_$-v|R53Kp&+zz=Pw9InN&y{^JDh`UQ{_|Dr_!gGn@DLj z6D5yYA)CyJC06ZA32fVOAHw(V6W5(88YB%xzfVo($x7??mt8Bl*me25cvvrWZj9xo z!(^()V1-3~#2d!DTHo$ROt;z@q<*!OkEn#DHd+nobKB}e39IesF5v4hQcYY4+r{=9 zA@*CYx(m9wdtyzm$1;8%;q^^;$>5Jz)ab0ZU~Lih=FWxuHuOYkjuo4Gd;Reb0=ab) z87;Mw_RD;OrylIu#gq@7Io(@SO<1{HzhWmOYncmse`OMCpR1q`z@Q9E z%V}=1*847au0(TF`;(aVRMR)Eh+&!7+1L79xP4&2XnyPK1MF)WFZtcvCkftcZjdN_ z5B^xqM9#P!she}{)D61qaz|K_+~!b@k!MW!mJcb(&eV##;+C`f}v z2IRw-5(2@;qqQ;Q@&QYT1FNr%aWp9$K4I<>B|OpPLua4RkyWevCm5B0+4@QC4??Y$ zA)B5@!BQ6bNdyh-G=>c*dOtyS1iBcj*8#rDt9Sf-P3= zwZ5J8R{Nth)JGu}XC^BfGx*ffxMI;2Lb9aIOz*J$abtiNseNAP^B^PoSbR=bHVi4a ztI$t`D}Z2ZI(J7*xWAsC+|w%wx5?UsN=|9{$P@Rv~U=`C#~{ z28DQN`iTUmaflJo89$prC4Il-%o88$ZkFrvE4F8J5>BUUQsoSg3B}JMAW(I^JR(ii zRcYaTmaeabtA)!!_u$wFM{=YG965b^9M6%yYY!^BB&cgSGqxKXET%}m7BJ#6!FGMC2CqG`j*A)jo$GeVOys`A zI=Yk9X3k2@SRAgYyv-OE{zfJjecXW9t{Nq&J*Y4Dvd%aA;MHFt+PN|l&$AVKch}JD zkI_u)fjF~Hi|?E`pVts(&3wEvLYd<0ADg&pp zNqT1X8q*_^7utsC934z`GGINg9?IQ{K3 zV^`^G-);r0GxfY1g_+&fD+DJ#EZZ2PyXd|^*QtUI#l@JB^v1iUS(KNGkH-{K7mCK$ zzFryW@mI%4yM5iCyQ#$4e}jeEowDHrxo(2a!_84>e7u$PugVjtK3v;fv9r3qg0zVfn+3<0y0bA7GpBAJN%F(aL$>~#~ zmRI}zF|crTNjgnE!99O-N?V5Uk_WCGCYn9CYnMC7?o!Lvjpnqamr;nSdqP7^Z5-{M zJL)_`)bx=W$}=Ct*WXCeI$zt4O=Ejs5KC2s5Q)P^qz@Y61+7|Q+rxE+H!e+;TaE;L zmbPyeV#gEK7e^$7f&T3%Q z&e=1qDPNvlosYe~%8J|I_o;#RST9O(1rR}fyPxBi<&O(2;Sy>#q%yj8jk*fZ75_*Y zb#FDy5l_jlPPP@#dnfAr8y{h!hc~NztyeR7!B9wG`%e0)QThI&*YyV^jpr&(&lIn-rCY`h z5mP9S9;!6v&G-ASykxlgnXQ|z{XIUeT1%uP3b8u-p$aq^+SiZb^&{XdkoqZbrxYC3yHjS9Q-63xUtA#XUn`>*B;gA62}AhWexs*YUG$T2+& z-I|LA`DpiVoDbA>JsUfSo>azs+x|XFGCV+$gjAcfFc3mzc`?ulM`riR>uOBe7qvbo zjNYF|D7SZZ1Dv1uulK5VFv3eWq6r33}43uV!c(GY0%3;Y>h=_SCb3J=%apci@|=kus*T#cdf z^k#q1OWN`rmzA0mLT)SgBZ4u$ky$~KGqWw1)!}f$zse+&pi~8#bDF=JSG}WuQf4io z%BLPG0Ess^q8g>irY@*O)-6cvxY?=vfqWD7&N$lR8D31&s@7V_^`q!nSB%vpBJIgD z)vO|lLD#dD>GNvS=}X$6@TNaY)@O&VbKkl3AF30;%>vh1W9JAs<1f=CNw`NOWy1JE zw{Y+;Zv3ZL3oQgvyicRdxjEJD5YD8o8z3!UkGqR6y^6Hfv6ER4!6JJIUyrZR;y8dX^GDKlSD(QdGm9gtLbHMK?U* z>S~$C&U%N|ExV1M2%jy%w+PN~;|#o=N-n+Z3%i3t!s=Ce_eEjnUNzd!x59`nW}di* z#LeB8h)2M{kJ3hH_T{CHg(W(N;<6e5YT2pf)8Dzdx!XH$5;6Ih^ckq_`C5l(p-H(65@U?NLNmLOj?kouS}fKFL@Yg(d0r6<*O0YEp|b#!*}juDh!LK{a@%8+(k7qRouDI zFxFBDuPw;7N*~nYm%8Z;P?rkzI)$utkEl6e|3>vXM%<=MKx7m&?X;X-+?3;SMkf=K zU(TJKey4GMoB(^Obp0M)d^?JJ>{!v?j|sagQGHOw#L@`))R7m^`WTK(7V>7!oD4_n z&pWap9FKkzoRc?7$AS}2^et7_9!QeCH1BPwi6bYPu%6XQHgPKRKBb`QALFY~PcAe= zR;7HNCUo6lHoi4{M1{tHPhcIs=NP{Ev>-$4``;{MUNWrN6$|x+%xuk1L$G%&vhs1w zT8o0;aG)Zud3;uSkSgh?GA@+27DfMciG)s7QZY)UxrnXoGhVPl97h|>S zRoU-PW7WK2v&`033NP4ZEOTGRZuaweThu#Bw<|6$A89AUO>SBib?$ptsz?h5l{!%A z+nOv5`Z+9DqhS%0JC+SQ#p0*VIzD{kWh11cqcdJ&grQM@oiXHSxhpOv7F5ewo^s z!Bs8-R2^MiDlb#hM5=+im(B+wYTefo`@ z^uR_xj*=ldC^eMlX~t02ZE2RCk%J=&6l>Z-3B^HAguJ|b_Dgi5XfRf5<9~G5{^G4S zinQFhD}$wpM>AwUM>iS+vH+l#bXSCP0>rtur4eC&f3_bCPj0Ij{{~U=H#d^e62ZNh zYI{XVP(h1u;3Jav^#5Svd$_S-Jo1-tvFa1pTZU-ld)-AKU7t;8bPB%BSNq;41%>pd z=-~z zb!3H2H0lRhtfpT-?7WdlK#1F(tF&U&TliHZ#NzvSmY*E8)#~((;GycK4YY_3fJT@0 z=Z~FK^{4oW(0sK^9JEZq10v!8{7r+roLr&9zD}9h)GC^c+5CglFDa$|%2AjXTKU)a zAwPe%e7ldpwdhZFLG{cI)}E9aDVw>k-vR*~K5oD7km@n+_$ZgE|Guj{m#81dq$fC!uZ zR5XKn7br!q52PaMwgm(I6QU!ay|NJoNMxx&B znsk*L0(J7+o&wtn!fQV&sFCLt)Giw^wC?XzH1xe~I71r;&I~mnOeJz!w{W>^t`aGr zEmuU#zdl|TLHz3FRh?O5*(xT*z1~u&8x&xqQd+loyl{Aac68W;<=Ur^tJWG5UjOW8 z=gr=EQ}@e+RmM3^AKJK*#I~CHJjZE%f-vmOu>wO-v#bGvew4gA|>Kq!dqE`R_5p z=*SNkDmc7_(OVw}K8cbKH@MIK?fWO0w8sy!BC<~5@F%R4-#=1zN<2;MJ6w)km|d84 z-niu7b?xJh)|5KQS6|+l3RB5z)A_S^H6)F``POh|{Oael|2imK;X1DO+wjq^v)*cJ9OlaKvwX3JAMcDrplG_n1}vP9w+2%5r*aI@>du^s+v}w_XG%H; z5`PwCxGLzbegm~~%vz1PwMHG2@q)IK3D9Z_c#R?=BU=I90Vr^o{h&83NIZ<7lKugH z2h<3ZnHG$JK8fG1q2N0p^Z~E{h7I5DZ;NpbkBLm?gxCUuG!8HVMRdjb-B=8@M>1E} z*PD__dkM%;UZDLtwo#CgczD7U<9s}#$Q&!t($@B%&~o9OK~KyA%kmHM%Hsr3_H|t0 zwm#i8+#r;lPAs1=>nM5`+4+7UxtUI>#NWNwDPaxkU=oJ?a&Nf!aBYw~v0LOBSqF~4 zklm-x8lB-w?aJ4kD#J9G7&iim39gsij@cyxP16xqKfl8rN}Z!ZHWJ5uP&CaB&NOB) zcsaZJuNSy2;;dY@k`bp&dB0>m$CI8E*WEG)*e1sMD;B5P#Begvs!#wg#}gD3OqYml z0zU)ONyfzV93nNg`p8(Sh@QL{SspD2$_w5}+8yx9t=ww!sx}*uH$HRkxi` zLAPPxV%+!PvbUGq-5wve&eg0>1Z?c1PK1WV6H2AVm=Tnc)<|#dnG*dL{?060!X#n7nt^*%NCfkK>7p}v%L@MX#(olz= zS+W^A9Pv}?PMaoV+XHQI?YV=@%*+NYri#$cA_*xeRDdh7Jl-~(QVD^@!sdsiEtq%b zc8j?SUg8pJLoQjIF6hjwUp@IFD7;C^fp-u{X(W@e?$#@hQD4Uug1c+J3cHed&|ceq z678#%xsP1AjEE%}4{c&ZWCQIPW|j?q^B0{3r!y+Htb)EM z2BfiYHhCCksAx*DygS+27$M(bjPN<2b`71_TjXHNMc2}t4y4gO!_H+hq$(Ht;t6aR zk}jgSS!dgvmWFCr>(B^alL%fqpRA*oG>4y_L$FI6dMbI9m#|sCBe9y#U)X0H9C4$m zG;xN_bfp|rpJ|=Gi@`K1W8_AF-qbzA=!go=v@<#QS+QuTg6?*v2Qi zQ!k|?H~7l)orY%BGp}S7HMw1bu`~T_yr2=|mCAGE$}b)Fw(MvpcYuu5z2th(r(U6Z(Q1`KGSJ9K%RkV_m?VMviDEuI-Gbt1=DO9Ds=9ur!3P(w0 z*!W~sAS(_SmzFAQ?b*4Xjq8Sm#{*)^N&sfOHH^o0%Ca$Y01}t0S{~Za@W$zMrxyz0 zMM6V^foByd7;|QOTacBjQrcCD3!NY*CuagKangx2m2~2Aq@sp4pkH;_pX0@KpL!?Y zZt=L2pQ^}giUR~gGg>&ZsuIqwW@&YWSdjwW6=^tJMG?M!^BjSv@OO!+thm_rq`!*3 z5%Ri`jB$ArY2%?mIZ;ywJ{TKkiy9TMuGSbd+g6SCnfH{X%yrn4TaAr>O}VU2J86>6l(;gTQgrWt7_Rzz&HOly2zRxY9&HJ|Ll}uI90t$zRozzmvt)+(EfzId z+lP9kAG9OYUG~*06&g^rav+&~p&1jX{l+WfbAat2njm=C!@9h(GO~@bIT7K!Q<?u!A)j3kAT zhXc4WgP$sdWx4HY{G|migZa6+e?~=V7f)@@v`yY>X-yPP5DE~w^lFyGoK@hIsNA}m z1l)F>hA=)KFkdtFm!V1fLz_>KQ5O5dNvkr*FynUw4>( zt(uJa4vzD)`-BOcPt)p$|M)SyRV4LM>|pZn=!2xu!Qt@f4PWon#ly-&BB;sm6@-d} zJp|Ws&axS$2Q+2@^>{^y4HrQImz5_H1|=J{1)ftIaE~4^xn6wbFdc6gQPk`Or^Pr> z>#m1i(Dw145@@=fQ{1{)%N^lF$VYAIt{^(TJv4xjlj5Yla(YS0PZA;DGxBZr%B4_V zhuzxKGt>;2lJ-NS>L-!Y~IT35mHbuKOV6kzgZawy}AfT^> zVc%9jT(`?P9j#d)t|_;j$OysphhgI3>LeeG-KAFN(c%rB0REC!5sVesOxg5#HgmqV&^J4kcmiY|YkA zy=?RlDcJ+T;mc>roY@Qia#;Say^@gmouvxHHaUin5zm+J3dA2*F-)B^VpMMBDPQeX zM`{N={qhd?zB5+edyNc_DMc);%)py z{TO!Q;Vy?6lRPMqe4l`GTITxYTv1nbuH7SuF(p$T+U2N_y74@XZFS<$Ok+lqeHb2`}?$_$B7q1~3;PjG(ZM~KUgcTCJ5 zFP8IQA~e^*Qp31X;GOK)TC2MLK)Ys3NSH=T$m?+_gG2aG7&8@Z=+D-%=Q%WneH+nd zeTY+BO2(pjKeBQ^F;8#2`FxN1+bh8gPBoFd&t&mt9f6(#=aeiKZXsjXk}Dx|m^>&% zeK#|Lu^xoOPae*)c$0|)Yi&=KGU&?4%eTras>@p-u5_Bzr{_0jA0WRgh{-B^{rvTP z)E<4TJ+!t06uIjQ4n^a9*p-&s{YDXftYXd5wV&i*M{}ubyp5djY&EsI=BTxQ`s>&0 zc`h=jYb$iljVw!?iiVbkT0mXQSnTOVanqAoH+xKe*@#bBVun0Wu*hHt3N(1Sqk{_iO_eJ6BrA60c36;nBS-VL5G7*kj3x2Mj>SS`9 zq4-njva+%O*L@h;{q{S5s|6fyA9oKZ*y#Whn%p*~A2@hLy&n3vk^t2?$$$=Yo(-6n}Z$V(sIzD9kOt zZ#S_pbvl3}R#a7eb`eR*&3y`}4iSsZMe!w-HPiLj;N>!tZwXQMUD2nP>~}(?BBg6N zlUzSJo6kw$`e~@r(r6T+Bv9`rW{Jq8z{14ezH=Huro3TcVN89!He+k$PJSA<)}+ZD z2`dEk7jWfY-0D1=N^>PQKNgQ2^S7SF5QK&nm)!e~H@Qx=umF_sFKx|6-+8fqv~AA# zbWES60dBP~lOGx^j=D;glePiesZ`LZhT9W`IN?~37<+6Fp69l3*{sJURsC38oy~h@ zkIN4>=bM_wpQ8MhUos55=sN0Adm@=Jc0Sc2I_~gmiuSWHg9+wK^bH66$^O?5eVLDJ zf@V4M_y%#9yxvICo2H+o`1upa_?sz}be5YSR8cpiWV>?QPktH!VChfH{lJShJMNjX zwYT3naNa%Yj?mgU4y+N_uFe95?Fa8wgIh|DwH#N2lMYT+-XVuzLszY|nafIhf9#6s#6rWtD3;K>n}Aje%*E9^aHz~F54Cv$=!}Z@6&6~Ss@sbAW)LKOxBYcrQa6r zk=%a0@68l56EkYnzM}ofs@=M_P=9sMk-c=Da9Zkf*9eLyv;L?3;*GNmhq21rEsrnR zFb@1!@<}gyAS97@eLrhd%G!F7Wb1+=PqX{YqP4W)?jsp|eO_uQ2J+Y`7vK1$dvTik zbDupAf$EzX)9#FxhVX*M&G`@NuXN4Ldy3e){Vh*g2+j`sX@a)*$2Dki`9I4Q&GNn8 zOh-hKx4pl}dZwGwfvZ6u;yqm}G0LN2HBM@Rb1o;f{zR#bW<32!I9=;Aeg*$V6!YWhF&yL9#GE^eN@6~kCD*#4QbKXJHKGrLkA9>6w!3Y| z_kd1S@qnU|_6tRxyPQT#dVPsbD_K z#Qi>d-(TAD{6qKlgqwdAZbjpo%Q$DuTcZ>5v(?9H)ojybn1{Q!2W0|_eFLVi5b?)- z{;{|SxKUseYr*^X0tt(yeqv@4Aa%>Q{792j`fR^Q)X&<1@1 zb@qM!8af-)d1g0{e7treJ*+b{_X89d7`-+Sd7>@1=Qa>;iZuN1YfZitweEz^DRS{O zMFn4+<4H+KAlUPnfq{gUz{3wN6M_Ke>jA#m3?3zRRdR-wziV%A7;4cvT^@1Mg3rW| z4&XIX`!$??)(6iTBK-k6Y8;d}o?9q}O{Km&9+Um0hHK3-U5vh^ka+f$RNS5jwzwV6QC#V#p1<=OhmDrArRC*9)*U1O;CxnI#QY?n z9?tKPaj+DC86F1I@jlK$h+;B(Jd^m-HZs9XKm44Sj-KMeW|W@3zK*_KCuGl;boc$B zfLj)nIi~o%OXq_coQ8)7rAh*A(sw>WB^|%{B$eOTCuvh|Sx=1|NiE#Z;y=b?nZELL z*b45RN8bTFqqsKBOHK%_W@X{tVjq9K(9om!oaPKdUHl>4QFTzxy{gm0O^ekz03h1$ zuZ$YuQ-MY@E?u+tBcPA+EX7 z@diL4vGopicH6Uoo7fr)nei#2asl@kbEp1#(Xu#Ttq0-B{EPe><`D57F{=dDM`LrN z4XTscO{F(FXR_siQOFk-7CJgRJwYYpg;7#gPEJgmZwz&P(T9>9v`<>0!(liInj0dr z$L*7mtN>5@6aDh?)+K1cs%QZ9ID1pOb)rU~o^G{<%b{`-GOlxBSbABHLMo-C#qded}yfxTLMGujKD9UUIQRXYei{ z;fqQPy&x+^$s@|>ckh>eXmK6k1w_yhN8cf@u2+Rbxd_m6b4hhze<+!)6(120T<23& zl+)`wa~S624@fTX)*?v@8VXqfWCc&D41*c-GFQTxtl$@jG%;F(K&jCi_(}Vzx2qGI zGvom!T0KZ^A79Wr14S-y$?>C3O69{vqfU&$hy$lh4%K^NVjnRQldjv=*Ig$&231p} zS`AD%0e{iCrX{^UM--i|vDf8=jH(|WSI%~^5nkB4%`{u}TTN5*Pn*fqbWOrufF7u^ z!I9*THyFw&ap6Aj{+wkc$X5soZLhBJdE19&20Ew-)(IC8upI~VK|8uT1^r}+Wj2noN|ZPgZ)wBX>lrAxXPQ3nINY%a zYWa1eq)3;Ffx3@RRI|%c0OZtIC&o>=8h)7zv4^9GLPQ$m`B{quA2Mi?SLdPsAj?YL zNBwijDx0=qrWp#(g9Wb11XH6$i8)-hl`TJ0xYLOU!Otj#s)XS8SdN$auLMe8S68s5 z=oAMQLZ2#Jk3G~3Ot&lTx%n4OcjAKtg=3x4m=tYKq6sMVHz>n|Ubv~zwHNDYVJD_S zv1@ev??Qay3dVbo;y%xHQoV@FF*K5s5n?r{_8eq^)%W*SxnOAe($(uDXky<$wbN47 zl#gdSz1+OKr50@={UPULYJoPcYJv5&!hmObS5%ZPLwbKz@7T2g)O@o7 z9DAaei|nv02GL3*A45!MqVQ4D`N-OGharv_Veq!C?G8|`0EHA05m7cx;G|_p6PdH8;o!R?wEDbL#+czF z1(+NSbqwpVqXkV|ypsg)W^XAq5$IvLAud=56Dfol23dze zm|(adm81chWisNTfGxVsboZO<)dp}S_^9<`h8&LON%@OkZyiA0T=eJZnm1kL9sozr4b(_QL>k9tnKxVzxExB-%j=i5etct``ns~~ zVxX_z(Az9XPY$ZR*0IJ-%|83ODX3`uWjlomy$7+%HhIOx4dhJ*a1JrC@B7)!90i>z zXYY94Deca|2dF-3rn%~0vCfD!)DQcvr|gnUl_Nn3x9zxp#rhee&btFAxrd|4XWnrX zQflS>wx2!M2$qVUh{bOzNhgJZdMYCBui-|b#1@bDtC`LO4&(|n*xTIqZgW&!Rf7_! zX=jd4*11$Fa!bdXdR}(!e59AgS-5yP=J%~k&5}$t554r!b#a;9wKzU!t)4>{w4~pb zWkDkzw5%I%dxjj~!9)gqo=~3+P6(>SASqfJW#a5g}z@OmG?{X0`o926QuwEnjEa&WD_PlCymSvt~ zC6cY;CcA}y{P*Weu;*{5&~08(QGfY{svH!*t!k6m5+c~ilCfZ|)T5-2qNb0M2jm{i z@yvusZM?&w&++-hx?BI=scvSCx)CmE7}hYfp>CC*l{K+6wBg9;I3RMc7BX_v1Wv^q zH6O$V{HD?u<0jut%*G7*c)RyYw9=7eKM6o=JE{4R zUqOTwb5*dDrm4vz9BtW)GtBQ*vIExli(7u$PZ2J@Q=gfr(K8Q+&N)@l%L-DraGLeT zd^9vPx9I3@GBCvS+usythh)6MFfKzSfFwXOp z>|y$Gosml}@56Sv(`gDMVwk}PX@6%T8=nh0t1cqXbacYnEk7-I)IlXz1=-Iu}dJ%fwOx`;4>p1WIG;6>K(Lr9^807G04axR2S z7VLuqBO;(F(lDi=f0@Xgnvzl$0^wqadj$ZbH{?_#m(5{(-)FM%rs{0Hg7$T&(b*B_ z24j#I8gq2~7|8aqQeSldOW;Nq&%o>n73%Ka4<0=K`g;Hw^z=6D1>GGbw?EeS+bD=w zVoR_S?H=bpANb_~0o53q`ODIBHRB~*J^s(y_5$#C7ES*#;3vAvSFZ|rE-E5%c{g?P z3NWw(r!M*N+;=OcW6wN7wCi|h(%|SHV7s-f&aLP8WT&;VwKHe9H*9IB9y370V?g5h z@b4e=2?=Zkzy(ERlID0XSk5jiM0}X71NF~ADZtW-oKWQ!RE)0duJFZp_4{M3|M`7K zv15kCI$O9(6N>Sg2R>~+GAUi=ipIta3g^dcWpyEUGtT=~4`c0QjTsyxx;!s(&=rXT zxlks%nRleIOhXw!tbT|XpJsv!Q48zzZ+%^3uVpz>p%dG*K`O%Jy>YZM-_djmw8DH- zzs5Q9$mf#%^Red9kjM@xp@7io#7`~W(eKGlz#ln~As^vsoO3ktQUhO67CV`mQ2qO~2Pmh$kOdhb8LBNppp249+ZpzQ97m>iYf{(e^Wqqk zwb1eT?E&&9nzko)KCPz5JZS_E*vy1Zk|w#s=L@xqe@IfM~xn%QZRW(&p zT`@sZ?Alv_UYfJBoqL++c*1k)A~)#&|IU1`F#c5ouhoq84)GcuUsB&00=503`Ef(-03fPlUX8WQKsb#!HFzYJ@3VG+lGdBH(>9M zZ7F&SnuxorjCg0w-Aqs_WnI!vah}5&}<*xxh$^>tJG|cI%X1Wzbvm?zG0!m~f&Ul)9LNW=JR5 zW~9fs8Gev?O3Aa&QkQ7I!xpMCk)efJGx|Rh{K=T3l}olOLb$K<(7wF_S0J2-89ioB z3?D*)=&5yqClsgg>G5srZEMr>`c2_TPk{PKCw*keCf?m6pr6Z%+wGL9o5j53(cP}` zzlloSq-%L)xAXW_RMnu*a(FF-Gn((Z+KXL}4k)|qs7HXTi#+>3mooab#_P)TT3CiT zBKmhyta3?mN(!5r;XgiReB!;;B{0l$>-OC()fpm8&PjvS7vhbUL-YR~Bgqck7$O}c zLk7$L{DPiG=F|H~9Ea+Q;IT8ff8TzSMY7_n{Hq}17IQU#Oc1{67i>Ld)Ryb51k)|T zLMB~;lk9FArF)7oRd4=#(IHg8F#|n_%I6iM9AnNg^-HXmgQs99yPGsLQM|p?C;D~O zBl_->x@HxtMnEQ`YJd=Au)lVC`RSaKuKmxa3cSXj?G98{R3w_-)L8eC1l7nr-+%ua zPFq}6bqzhUaf0kEcYDl`2BtTm63k$-%m7`{kU zkgieEAcMT0R;bzUiaT`!xAJ@y`vHv3%t6 zz%ozWaI5`kiW(8u+2!RFy3jk)KmFeY1>vl$tTgLwGE^sv)N5#{sj2H58|}_FMByGE zA8nkS#~zzFK_%)j-Q6OkT1{e#ijnjWhmFa;nGN>4zu1!$Fh$jWzw}i(*Xqe*xmep{ zRfi+(=GKx5{6A5lFRrMl2*>Gq@fDSTeHiE}VZ`VI3BODX4G5RZ?yF$z=Yc&!TsqbA z-?S>F<@URB#XpOtT3`CJvbno3l%e?a{{4Gbt2|S15LJp?+^&&WPl)%Kqd}+fo7wFWbP!;&AW)a$JaQb3O2U31Id-@l?LzGlTiIS{u!4?p7YoU zmv4RJ;=&VE09IS1Y`CMSoswLPO&1Z7ew1N#*~;uQ~%_yJBW@7RK!0E_l#wtO1DX0r=ZA8+D_QK@!I za8i=S&NI-F{j8R=?OMCf>?Pc6sa8}0>&p^h212V7p}>lK!o`(n^MajSUmML=8h+Dm z#${k&xW76S*VWaH{YbhS05yruHEn1`6!h@m-5!eDJ?|r-q@$x_kxd#A1EedQ|DK8> zDrjzQju6r>A@IO&CJOPQgwbDC@`pTsl^hC zHeq67QqKQDI+PzeVwB}^cY#8}PbjLO3am2@z2;|ndT0oK!tvvgoH#t zv#$YjLcPZwb4N!<0+}cvJZ}&XRv7KFA^X5i?raT2Rh!R(6WPow-EXWgMLU44Rmc*H zNKPKc(ed!fHRURGWKJ3p5f|Uw-%r?fEt(!&?+PG7u7oCX$jHf2aC0{b{>8$@b?G8_ zPbx)iPbAjDk-AgbV2M6(qlELxb_avMSGqf=z?C7{!Rr{Ct`bw|k%w7Ki}~JGT^&Co zBZK#PPG3Ysq}*m*XmWCr5kD-UV=9@;-sSPU4-hdFWE}df%Y8_^OzyBlWf|9?xmHw2 z2(n74rru1kS||}uEHKy#SEv!O*R9^KU%%oxtcel)UbSeaZ9emaD;s(f_X}_a2M7P^ z@<-*gj)O2J=9+pyM>rmz9!|OFy)cBLYqNBaBJxIUJEYMNpXHwM_sxpdJ?kl=b!X>5zRpn9lCa5F4kR z*B1`N4}|@pXT?8}w}%ive*Eaukxt3Th>nIPkAQ;vTP{z3vo{Rm^LvE_wXri;=w-<#So_oyU|cSwL|@AklsE# zD3oe)X=-YoL7`n1?3PO(pN55a~85X#2^6c zURXuL$U$o#OTPM%bz>#?j57(JMMBPqk;#f6K9BR`(4ld-sLd|P^mXMM`B5}ri?{EV zunl;|)EgQbFSUPTcDA7_G~ovpU^o4J1!~^W+2!92@l- z9!{4tIACMy>p4&A$uL2nyTh_JK<#{`pzxQDqyLDHpLnXp^cOwnckFh$4a_CObf3XA z-E=RM0_ArkzPL=c>8RGiaA8k{DqB09{^G?FbeQGVZGj8A$uoSrAN@v5D4H42%BtUD zzh%*h<^TsxQnF)c2svrwXLKOk6O4IV_9dy_Apdil$5R3#s zf`c=+Tn>Lfih+?Z313Z>Y9Ut50|#EXY*wksiAWjLW5NCj2PdGg&|z=<)ws!2{>Q~y zOJUG7Aq)8*D$9-th#P4og7|1(@D>^E-MI}GalvB5Qx-S3wghMY>h>Z@KJUsiU zJY{XH#8^^+oEamtx(TM>61HoOLRwh>eF7%t8_W<6u(7vq zB3%KLVluyHBAUP>de%f>QIWZiUlxHF*bWfr(NFTc5#$j|81`QLG&I3x(}j}A7#r-F zUp2Ra&-v9?X5UnODDSg(TBN})Z3|6lKO|VtpX2xD_VQBNQ_3QECP$z%fAnj~|06vLwZx6c!j5sBur+P!bj!LH5!f zUB9;1w#1;XwyN-QDPg0Gj^MZMW)mG7OTk75w7h$NA<;GlxMzLYe_k$a7m<;Xg|X_CDcj{6umQGli1>BI$!$WBUgRe2P zDzU9f3uvv1*h0}IYZ4Gv{)ZzLKza1^Y}ZodhgP`&-iVYGl8=uM;B=UNe`YG04h{(D zv#e@6IXNlTZoyYkQQ7CoQ3cF2a9jX08*~3rj`S<1R2<+}b?EBOmFpRv98tEx$MpQt zo5&R9z33;an+~v(EQB`(|y?xF`rGEjQYQKTFgP4o;l*dET0~;TZz%MQC1L zo`W0dppZ?rDL$Yrzmk(LPvPlG3g{0~ds9Tc2fiKf`6MMJsXxBzJSJo$|N3>w$?ziy z$rvy*DG!3dr>C9?XDN-ge!4c`@v3=`u10235$X@%WWVf8hm%lvF-bngt(dmZ-QdR4 zw|s#sCx|1yv3m~VerW^W!qX5g@r4P%u>rkv?-|~&jS?NWsbkkkJBh^*2|iePusLm zQmhvtk@L^%Rl~^f-NWCfZRtoIL7JX>7TE48*WIg?0YS%Uy^bdo+SbWlXrxM5jj}Gp zTH8tWUs%`z9IP*d+1tE~`C1~!+v3N)o$1`xvCSKp{ z5RUi!$~FYWBZ+LtOBq~8Lu4|zR#3FI#asB|y|exO)9p!dPW!{-$#1=30lkKT8@i?H z#2};7)3w{6Ps#l*-@M;FFFh@z3l^=knBeJBDUhMxU7^L9!Mk`Hc^5Vq(9#ZlK}`9r1O z5h0gHJJ%s5xiegrc6JfC!h6;Z&wF-;-rG_a>1TU=X*nsLj&!N#jZA!vTkCoMk&?T) zvtDj{0_QBZ z=PP?S$-rd4^tYqgWCT=o=F6sc(NitWlZ|XqH->Eu*-}fRc)Uy5pBSDo{=UxEQtwNG zE&gaSdq=8giOXz{%p@hZpSpW{G&*(qOs2vjKoT{7-nLWiqK7yjdh9&l?$YAyZS)ki zap{4N6C1vfVLWRmIzec7V$%F9wTxMRnom=Bg^3)%x5g>Pdj^NbJ09|}j9#}7wAhxU z;_1pAe$?4emul!FCGTH%{`Ycs@dLidqM+yKw(6hFz)<}63UR6+<3?;m0 zOFS|rA47*~gdcft_$XRz!c19+v%uOz5=Z`31>W0h8PJSv78a9)RKyavhvd!H!$;GJ z5_Twd@vg%&(;vfcm*X3AO>P3E&Mk6u9DP2#0U|8kJF2PscavDUG%V%`rgDZCeR2@#< z)ZukRpQjY)3Uni88UH$+O#YLC7!(-R_al#l0emRNRz<(+0OiTwW@SBDzWt7$J-WWD zFPyKoI#QuEO#hSQJahRUPx-M&6y?fYQuL)?X{3>G0dutcN)mXXRD%5}=DTRa^M^9oxu2j;J*No~H)X$-42bU8y-NMo?u;Y?H z{Cs~A>6=GG9v;pH4xKl%;LC0Hx)hp=+pV}3K9f$kTV z-N77QyDWcy_^yxV=}l!-n7Be5cXmJ^P{E;|B~;Ys;_4x`+*9!oa(H!uv8H^AS#oMn zjp)GbzzuKpUACdk-tcFcK*x0T4laG^E(8syii@wz8I5pg@8PsvcI4d_WN~6WN5<2g zHbY+C&>-s_|KN&|fQvu=$A+Ui`tZ#lyJY#aWU$o+p%_RO&5QX#f8s?pBlmN2r;~9E zcQ4B|=SJ77@g1x-q8z8XN)U(=8v$QaGLj9|V&bu3Ii#biRj+4O$%NpX+?t+SEVwW; zH&u6F>*nqOtT3$o1i$L_$oVR1Wg8~&>xW|a`Se!85t3IZS}d#`ZPl|kWLemDHYe?P zzO;N-6IZ^KC#eCNJHchgl=k@1FVoZ{HmV^nY0Qg@fo7zVaXE`0jTJOsam^@M=$|{^ z(70(Vckj57N<&}I;U4jKD6R_d_G3NygXq7fPBqoNeR4y!P_Vcg`l}6ztK1lpWaWcl zr9JLPdu9z&mahWhU3RyZN>GxB@sdPEtl{wi9mxH%ZnfGj@ zkoRPadz;29%g0jx_iAffzHK{zB$hd=jIzy>F@VU{>}flVt3JcV@`hL2%beqiLPmcp z#pg|3LmU$2Y$cDF?H1eJJAqT?$@`Uq`W*$5JNt}|!=gL;A?#X<`Oa860<{Ze++1IF zH*#N{osv$s)hZOTt(bXN3zacDHYdI@2b1q1*mNcnnOJBo&PXYV5@vF{AN-LVh$nxu zNYB_0IE9tySay}EFqk#0$h1k5cnoOI&WpLSynau<{~4;CG}eI4P-(L*h26RoiLCR7 zfy} z$xu3qO5GkL?B=P+5M<_y#Maru&YERt!sU$Bft*VerTT69SjNZ<=xM;S4a%F!>9%$i z(QvsMvi@Sig*zgkc)C_-?vreaT7&D`k)B~bADji8r@B=Yk7yD{!;D}}N_|QJqkN%O z@JW%4mMpv9XksBR>LIj`*wQymp$m6Bd4+Gt-lFScX|iS?i6k8^e>wSg3RKxs$!&Ge z`Dah0jy2&TV!HRN`T4yUtY(_ve6k2t<(MfYf!#!_%*bbTpXAw_`j1Y}DY!SK+k(x$ zW+7W;j>ZM!4MbR|qaplcw}v|?PX2s7e@bH*3uzKpl6VjuvaGoHxXZX5EI{DBu84%g zIMxx{+(b7sq9lwYrfO$>@m5$82Gr3*VU=Z@q`(6(ynOOOwO|8t0o0t1*^G z&xuIuJD!y;vCA})^9@8}6P|rX1h%s`AW@w0$cMsYInduf-d;v!4Rkku>X){B zEr?3JunLq56nCuX`BUbln0VMD_p&QqDZ z(*D6++Mib$ks;+n*#aN#q?BGC1Epk32H#AsJ}pTm%K?3w8-wDi0vqc{Z$v`Z{^G6z z@xDN6PQfuQOvGNsn9!AIiHxjl84q~VSWFvGYSLA5kezKCgy|cRxC(v-jU-vVEA!F^ zB6pg!&G)kpBE6>^?t~wOqAN_1;7(AN^4tu`O`bu$Zq*=>DN9Co!fYGV7k_tYqd6Hhel)OG_%#X>N3u|b?=h5y!$24^ereP! z(|GB?b}2?wI9<`MG(fhjEZQTS_Fz*FMO1dm9jC9h^$x3f_+_emEbkTeF2np#&;bvk zu1?d}<{HAFf2x1+XU8Qg(+odxg-F2J(=Cw(A&QBmtPnEwUCg!ldHC!wCNEns#vl@- zRQJkEgv(RRHU6w@FX;P_tNIA;Lclo;yW$p#qh_Z@R)6P*LUctX%g5SB6=M$ry6gbD zOo7--CaX66{%iiUqv=cJr%leKHl}4NbT|H#-$H%VNOXzi(AsHqkhL2}H7aghV+_g$K=W2c4s&m~e%814^@ zpwOC3Q}9uCk67fd5ADKbnK$pUldaJ|@#70y&K8qk%#a1xN;gV`g0d>td)KHullkp& zm(IJ+>pH4@YX*EgA_8uYk@haBIKu9gYfywBKN-j1)f;z2aG+%Pj?P`^Ed)PaJQ zuc=R;@Y~1h+?AGNhS^BfAP$LQ_HHENt@iY2aEI&Oj2fkpCQ1rdaHd~1rA1K(xi}~H zdGlSLO|+Z5S+D;@Ju)9U^4}No+lvuE#Cejh&;2jnEGEP>w;j=-`Fo4Fu%V&ULcS3` zAXETZUhzBgLjJ4-ivTQIv*n z4s^qbS$v!7iss1>rRm-Zy)I6(1fhMlMj`>QwNMQcakYy({E++3q$!Q#?y|Kd?@hn1 zf5SJ!j=kRIaszA@ozy{?V?acH;~K$2u(*zE+BH`W&u3h}(WD)})9hHQfN;W-P%%uI;DgZDfT>y6HO2La*ZOzAaYeSUGi&13?pxO zl)EV{b+0SAkN4o*SKOMs9zasgZcCu06_xlYK8pTRT8Y0_urkdKfM@JzlMRO|LN$;X-iTomH&Xh%>um`HsD? zUinanXV%iA!h<8C0IBd7`BSIB5f^blhPv@W{i#t02Tza$=!eC5vVfbvOA}>yHX8%GcoxzedN-|17V@+wFH<#M%p- zujEmhGF?+IAnsMlQE&a5J&Z%r(Sb`;aorPMfQT#)EVRs)7tzc}C*AD}(wNa-8MIVK z9gCO!GgFypa$Davl0h37zKvH53Y8NZ@Zx#3YpP_9v%vK zcQNL&yyi|xrsM7#Ot5OO;M^xEmliy}bZDak;!FzXn9_Yk77}mzH6EnKav=wdT7OUxJhQ2qQNP6=|VVsA0o4dpaWvBG# zHfMzeo_C7;=aE>MtyYp-w+?`XJ58XZcfzFJ*3M`bMs)j7G!+*y>27*Nn)-YR;9fglzU^ zkrpsP23lvOSY5Uv?-Y80B)?srHlyOcPh9*#MRZxL%udjaQpcX~)la_oOE;CyrAdYm zHiXGWH9{Q$f#^+JH=5d`F(}MTcaoJ=$??ARg4O>{hsk!2C)-4|Q zV{IRCq-1!QbE{|!c1qLLm$j(Z&(?8$pxsF}q5M88k^;g!e# zU;!Q?-_>bzs{QFhyC&<06qSU6t$Fze(Z+zay2RNC7gS zPDgVULNFyoMU2Clk}Rv`#yN}H$O^LONyO}V3!~l9l&LbEHW`NeZ|@&+MM^hvBp>#f z^f4?w?MBCH%xCLu)?dr>-x(B8Yg`?KqgXtkEP9?8FK|@t>y)hN$TK^iXacp1-$0(d zpy)Yr!TBkqIex^*>2yUloR|+Ncty*9A(i@9US6K*U8mkVFE3e->eWj%(`MIsTAg40 zEfoe!S|x~c{+?&&0W0gCCK3{6po0+S=7^It7SwvtJ}j3U$di|xKE_#U zwQ9%)Mjm6Yl0K~RjXy4)s$p}T&U!np&1}@2U*FCXo?DD=GH|q$rTs18+EKFCG!*Tf z@`rZX^)V!bfG0{<+r$vl$qvmEl6btvij)bF9Uav;Cie-$Ln$3c1z2jQ4d>ZCJ(>5y zxDe>;Dq+h9Ps)n-a$@{n1wRU5YS?Ufv_(eRAlzDm31hO`%ZpPK;Mb-jgP`h0Pip^$ zx~d>~Ilq6wyW`JIwi`LVkt!s@e2dAGk2H6@H+9)|%-(12L_mc%Myp%JRSP-->q;t2 zcBO}2O!&y5A;9llrE~o5*t=cS6@d_R#6K}|dYRoHmKpP3y0K=xmnqe?`EJab(fF`6 zH)HMC)`ay+Sn`PHd8cBtjX&d)(4%yRf+WH5KR?;?wE4J8<`GLXAxApcA!oJFQJII! zP=)Zja}q>xw-#bi+oiJ+tGc+oiSUh`N6RyEy{Y2j7;A-tE?veY_H8Rh+@~ln6~Zg6 z#QV__t5rNhQVw6tOq93cKxvAgZ*TEBaw>(#S?Z9Q^ff%Zb&@9t^KYlN7L8}# z*8L-NEC>Bhz39f~CLWiaK?FZpFt43*hR|CIxn!ywh9@OcQ`5TXC;q3~O*jBeQQ!e! zV!9AXJbr8?{QXkK#f%?Tw~QEtj)93pDzb0GLK(rl{-65E|FszMf4!-o=tl-XM(pjQ zCO-k?6pHaq?NR! zx!ND!9-&s^Lc#>+m%Ve%Hx2o&Kguf3|H>^17=GG)P8dsfg57N>t21$ce-$>ZIz!Jr zGybsS_Kc~3xP1Rp_o@3A+qutn%9JZ^e&Fwqfv@f-Ms$DP`DiJE(`DRp)%`j(ElT24 zeut?rm8a303zgiAtxS$j@UX6JYn#1Q4SB^Wcs@n=J!;8F;E3dG8i$KgmI9sGOquMz zq7#7v?5jZpqi>vuSR{s1T0pF=xd+?hywl>gAd(Cqt~!rD;}QxfozG5+5)xh^j4W*ne))rLC>eyyrIOKY1FR7KW6Qz0t)QPXk2WT^t-~Ld%uMY04u_R%vmZcLCHn+bi51;drrPjnx zP?9`$-G>ETnko2=k25ZWtG7o)Uk)U7kAxCnj5aZZ>JQvmbm`6rH&0g}v&ixAcXNC& zmoPD*y76$p(6}}&tVS+&D`Bua{ELB)FJ&^)TYY%<#r#VQ!Qd2ega3I6uvw^Cv*Hhd zA)39y85w{4`8$JYY5sMl;v@mM0ja|?cvU+>_F%o;@MpLcR%>s>(jWP}R0?lhDRNG93Ik3O@Aj_Kb`08yScwL7(0fn9wuRo8qvUdNtJ8O{5c zV*Xl%;{s}0L?{ZJ1mCQUI6D(m_anG4T&`@URBkx0)$bLTtG%wzYEVaut+7SpM5?+xY3G zJKzydudnK9nYFrXeHo;J9MkKFqk6qfEkxq+kDH#I{*gOIQa~hqs}3sWt$ukT$EVVl z=Hq;m>-|i6X?A2Uy#3Y6Jqo97p=Z0@-Su(4A{1}V$81oPp3+$BAyX5UGW)>Sg{DBy z>UBbZ%|DG>HthP9=-zjfT8*LnArwJ5Q;&RBXq$Ag{zvI)L9f+DjKKE01taS%` z3-QiLa8PoX!jCe`wI2RWwfZaGUjLi(aXz++CTC|WgVFHZO| zhRrd|aWi6TBKLbTS^_WfO=&*~!{cT%eoK7N7J=YQhpeMD?9nAJN254Ms zPs)x&?2Tnth`0G$nJzi9=TKC>z59+`nN!_gWuCMxaosjj$KUmM~L(`j+-1Q zwt6(a*LF+h-*en^d>aamHYlZluirc@We_2@Ljv2m$;ZTxq@62$`%%iHQ|y}dq18>W zqjWD&jV+wbR&ZRGUk5`@sgAReZ$6fCMrWsK?0M%7@2(mVR#M2rXT^Uah!Mm@ZHM_$ z=p7yxjn~OjD_9|I$|N%~S?u#sg=V1R;{n!I*hC9IjHD1Q`PcS>-;wGQB{i-oTfGwa zFrqp->s!iriqW+Bk0L8i{A!}U4{zJ0DyPMSL_#+UE2P5SF~R%WO%;Fo5y+Y>E=@C$ zUWmwj8Q(&rQ}U~h=5I3%jrB@NA5*O?+_i8>!u^uXy_2OZEVk=*;}4WEFsxs-y@spB zoxPnl9RDY@X->+zw}KWM19DTN>q@ofPSc&zwn3F;cAT$7PgaExitx7{szOu-vXC%j zNr$GJwIG3ibAO36uwOY|pP5bxW}B#Jv)Ug1&urg=t-jkRpT0`Ohr4F7KK~xc)`w_( zxihBr@fEsY6PPrf@zYEb4r%*-SuPW-4wJD?e{cB}*HNHQHyXpICy3rJ_$KH)ukn2xhEc0S7P^Aem-WfBoC zR|TcTj;?zjw|q8Yfnt-`tFvH=v6bF3_4{PL7`R)dvc|gqbv*pj5fgZ=nD|x}$AZG$C*2%{%^Jk3o^8G& zt=+5{q?#VZuQ7s7CEF6K61;vfemM}!QD$LSpT7=^8$`JZxaT^cm-JWPyQ@+2{g z7(Yr=xZNHbukTa~Wh-dDU6UmjAWE*RxJr3uvK0oY^YW*z_^5G6uUxNTCl~_s5;2TqC&&#(DXVj=xc*fH9nkd26Apth7 zI~qpIe7>bCO=<*JaDv0#Pa9%9{4nrCWci zy(2Z)+KaWx8jbHMhUsFa93n(IUBh{kfICa1ScnsDvCLOaojezYb7;^m$2gyFwp+i` zosBZFGygcx;BaY>epjkcCFM6GPyH3_Rr{N=ha!#j= z-=l==e~lkf1C zgA#e8yiPZ=tkyW#tMi`%GH33z;jo7M_!Lg5B`g-z*7;n-z08AoN2rEa*t9S}X|-%K zxdh!6j&b)n)om5r+_FI?R$J!d-0k$!yDm}|hxgq%OZv@e=jHY(b3F*F_`z!@09BmH zzt(sv**e}KFHc{YdiL6;=s=FlYS*q-?epGx2J2O%Um$?7VdIvUmp`7X(Eod%*WWL} zZoM)LfF85o3~|#19Y=99tq~Bx$5|Vg*@rJS@kWPyJ6ZHmL1Wz<36tK_ng47l0t7|r z01^(;>gf)IEkE*~0SFE)HHQx-Ij2YNcJ!46UQ}pCa#3^u|L+GQ%gmM#0jwcuT>y$> z81Y8@%kypjbet5(Bj+=mgVAf>A_=blxM2POGS>_`9H8He2O%tX`l? zDuvsE>4TmLfJYp1jIyaHe-^RLzPPjhc`va;x83Ah3jDHyg2LtAgdYG8Tslh(2?=>4 z0f3c&DT*S4r8fH`dVa0f%xViOV0LzO1qB6Be|jJnQFGQP;kw^V^PX#Vt(tPf8wb|! zV783mtu4V@@tm++)8Q1Jxaeq1Uq8QB@oeVUQ53SB)6=$Nj45)IWa2{6f_0#>$A{Cl z1a?dO;LQFkOo3e4q~2BUXDw#@7}#rRakMQMAI=?1Gs##9SZLtZMrLKGdejo{W@vhN zS1S8|zzJ%f4JkJ@mPRxJihH7JF-8(?JzbB(LmpvIpT+3-!ds{i3l(t%i#6)Nfr0O6 zK!wqF;SaLFbuQ@Ro6*9x%<3YmojjJ_GTS-Q)0dSNM&xp z6??UsuW!iNsqa5H7>lQH_zXT7i)V+K=J>*K%TDMXO%tYdBb@(*gQp{__oc_byo2V^ zn=yaP{q(2@&oITg=XF&Ix`&V!Q||&L2+w>Llj80d#cfMdWG>eM%bo zRSGfV9*$9G)>ZVrr*jXklah!)KtzN9$pVi$+88qNV4`W=Z}-)H_N(K|i5}EUc@+*R z13b&LpLH(Cf*qD3zo6GSqcQ%nbL?S*b^Nt5Dj2?OE$_yxC(0TYzCxr9*+|`0yZA|Y zfU4RvJ^Y|XQ3d^r&FbyNGjO*}S7ohg_s-^vDhW`cGyj=mHqDbieW|yy;7z`J?I_%; z{mVF0zwPvd^N-}1bDpVr9&D6D$MtG=!+c1{myA>ji%pNm8qGVY2*$s?OpFB?<8*Xk zBkFk+0NbA&>CNz}fKPi{x*3>gvX8b?Ug_VJ+<*1rcZ;>Bd@?vWLvS&?L%GR@4L4kt zp%3e?9__4k5P8fu{Tel{nvu5PUWl&qUh39aY|S~n!;`tEX6E}hNJheuoIqmG+iq)7 z`iwvjp0?fHt5Q(ELET#-m23GO>YGAK(6!HEM@A>`1TMHi(4(?wY_K8$-NJ+LQrspF zuS9h$v^9_4ex~!4?K|08PV?Hn5op^D+PcAG@;trr5jiwuC$<{qIjpTbyt&z*y-}b! z))`L2+b2IZ9b?M|X#Rxx@^lC`3d>4f!*(vaIR9lly|62}U?xeY$(>`RQVOiQ*?f z*SIQ7CtQ8xU_)cd)+m~gv&DhO{j~Z#iUXie3Aak%XEzRg;=@%kPr z2z(BoCYis8IrZ9&C~LmAx2-i)kZPPgZrt1*OWW=Ii)?6?=IiU5uaJcRz+_<$H~JN- zgL1-b_yrnuCv^9js>tHIV55!F+F?zOQ2fzDj%k-`dKBXW90D%45&!RHk@4xf9jsXH z8*d{$H54l9XH*Gz&+NzEy>`HrbvwdN(&tkqzUv=#y85P~?+ld*z>c33uVB^q(pWB{ zIGz6bZE)ML#$W5So)>(8D*|ZF0lLsi)uEu)TzHskWu+!_+!GOtgEgd;7Rwr26evFV ze&c9AZ(NLlCf0s1uL9}jrlc29njHhy??FXcsO%0s6jl8+Q;Pns3C*q z9e*QdKDGDA8MWdDmRo5c!mZqTi<#}2DT}Tb2^Brbl~PNw9Jo(jUxedYWoIwchKAh? z*vE#OhtCYX&n)?@QD*#_S8N#-eovGk5!+G*RtuIq#y0I)l@@HrgcESrSQ|bLscb_8 zav`034>qHzj{tOQaLsj7GM?E#qpEf5uwvwF28Vx{w~isZlDovI=)_(*{`&QA7=B*X zHxpFNiB~iEkZyP7-oAJF`>34etfD#eu!8dw4hznMu2YSc{c~A5tNTXA7BpEB_W)~R zcSMb0FYGX)_FGfu^V!8*&4rSao$JMh`Q3@MkSaRl_h6}FfREs@9P03aEv^7Ineh=1 zPtrm8tMgB01(tT@+-n98VTX!5)3$0~Tm9Co&ga(M{d@XsE^oxxmABK8fg>dtY(*}5 zg6jvd40q?5F+YF1xA^cLO~;+#wN>i=GA^v|wzKobd=+-Mmb7i(9rd~H>$R4gnB_0} zNlhnhKuB7ibcxS#+oRQP&gTIDlWmp#@f7hj`E;h|vhQ|Jj*!ZVw$<95b~w{id7$VR zYj4%R{hgR_xiDA=9p~hcX*TuGNla8spd5^aUq- zRJp_|N5gV!OL>shhBe?WR#Fiej6~Fzq&)8{d4+nc4w%)vk*dqo+A-4-nliTtkwLmwl=Y)gYT^GP;)@HUQa`k+eIp6mA0E=UJu80 zgd{*-e+cE?s>iKRs0Ig4$65jW)lE@Z>&8-pee>m{^y4+e&Y$g^N-5@UabH>Uv_1-IEH~N7 z(<%cdlucm%%cS4Cc6d0H70&P0LVD;B&7jjdZn~1lCX-oTqFUh#)GI!sqyNZ+;t>!e z-94Od_HlXMU!pDo&!qxBKwZ0`n%(@hg&Pd99LpA|q@AdqyA8_j

    d*Y!*fkG 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�)W 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 literal 0 HcmV?d00001 diff --git a/help/cs/figures/merge-ex2-4.png b/help/cs/figures/merge-ex2-4.png new file mode 100644 index 0000000000000000000000000000000000000000..9891c956de99f76fc08e43d78a13c5b38d8a38ed GIT binary patch literal 32150 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�zbF8YXuyOQ@exeg5)>?b- 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 literal 0 HcmV?d00001 diff --git a/help/cs/glabels.xml b/help/cs/glabels.xml new file mode 100644 index 00000000..82202dac --- /dev/null +++ b/help/cs/glabels.xml @@ -0,0 +1,1776 @@ + + + + + +gLabels"> +]> + + +

    + + + + Příručka V2.2.6 k aplikaci <application>gLabels</application> + + Uživatelská příručka k aplikaci gLabels na vytváření etiket a vizitek + + + 2003-2009 + Jim Evins + 2010Marek Černocký (marek@manet.cz) + + Jim Evins + + + + Je povoleno kopírovat, šířit a/nebo upravovat tento dokument za podmínek GNU Free Documentation License, verze 1.1 nebo jakékoli další verze vydané nadací Free Software Foundation; bez neměnných oddílů, bez textů předních desek a bez textů zadních desek. Kopie této licence je zahrnuta v oddílu jménem GNU Free Documentation License nebo v souboru COPYING-DOCS dodávaném s touto příručkou. + Tato příručka je součástí kolekce příruček GNOME, distribuovaných pod licencí GNU FDL. Pokud chcete tento dokument šířit odděleně od kolekce, musíte přiložit kopii licence dle popisu v sekci 6 dané licence. + + Mnoho užívaných jmen určených k zviditelnění produktů nebo služeb jsou ochranné známky. Na místech, kde jsou tato jména v dokumentaci užita a členové Dokumentačního projektu GNOME jsou si vědomi skutečnosti, že se jedná o ochrannou známku, je takové jméno psáno velkými písmeny celé nebo s velkým písmenem na začátku. + + DOKUMENT A JEHO UPRAVENÉ VERZE JSOU ŠÍŘENY V SOULADU SE ZNĚNÍM LICENCE GNU FREE DOCUMENTATION LICENSE S NÁSLEDUJÍCÍM USTANOVENÍM: + + DOKUMENT JE POSKYTOVÁN V PODOBĚ „JAK JE“ BEZ ZÁRUKY V JAKÉKOLIV PODOBĚ, NEPOSKYTUJÍ SE ANI ODVOZENÉ ZÁRUKY, ZÁRUKY, ŽE DOKUMENT, NEBO JEHO UPRAVENÁ VERZE, JE BEZCHYBNÝ NEBO ZÁRUKY PRODEJNOSTI, VHODNOSTI PRO URČITÝ ÚČEL NEBO NEPORUŠENOSTI. RIZIKO NEKVALITY, NEPŘESNOSTI A ŠPATNÉHO PROVEDENÍ DOKUMENTU, NEBO JEHO UPRAVENÉ VERZE, LEŽÍ NA VÁS. POKUD KVŮLI TOMUTO DOKUMENTU, NEBO JEHO UPRAVENÉ VERZI, NASTANE PROBLÉM, VY (NIKOLIV PŮVODNÍ AUTOR NEBO JAKÝKOLIV PŘISPĚVATEL) PŘEBÍRÁTE JAKÉKOLIV NÁKLADY ZA NUTNÉ ÚPRAVY, OPRAVY ČI SLUŽBY. TOTO PROHLÁŠENÍ O ZÁRUCE PŘEDSTAVUJE ZÁKLADNÍ SOUČÁST TÉTO LICENCE. BEZ TOHOTO PROHLÁŠENÍ NENÍ, PODLE TÉTO DOHODY, POVOLENO UŽÍVÁNÍ ANI ÚPRAVY TOHOTO DOKUMENTU; DÁLE + + + ZA ŽÁDNÝCH OKOLNOSTÍ A ŽÁDNÝCH PRÁVNÍCH PŘEDPOKLADŮ, AŤ SE JEDNÁ O PŘEČIN (VČETNĚ NEDBALOSTNÍCH), SMLOUVU NEBO JINÉ, NENÍ AUTOR, PŮVODNÍ PISATEL, KTERÝKOLIV PŘISPĚVATEL NEBO KTERÝKOLIV DISTRIBUTOR TOHOTO DOKUMENTU NEBO UPRAVENÉ VERZE DOKUMENTU NEBO KTERÝKOLIV DODAVATEL NĚKTERÉ Z TĚCHTO STRAN ODPOVĚDNÝ NĚJAKÉ OSOBĚ ZA PŘÍMÉ, NEPŘÍMÉ, SPECIÁLNÍ, NAHODILÉ NEBO NÁSLEDNÉ ŠKODY JAKÉHOKOLIV CHARAKTERU, VČETNĚ, ALE NEJEN, ZA POŠKOZENÍ ZE ZTRÁTY DOBRÉHO JMÉNA, PŘERUŠENÍ PRÁCE, PORUCHY NEBO NESPRÁVNÉ FUNKCE POČÍTAČE NEBO JINÉHO A VŠECH DALŠÍCH ŠKOD NEBO ZTRÁT VYVSTÁVAJÍCÍCH Z NEBO VZTAHUJÍCÍCH SE K POUŽÍVÁNÍ TOHOTO DOKUMENTU NEBO UPRAVENÝCH VERZÍ DOKUMENTU, I KDYŽ BY TAKOVÁTO STRANA BYLA INFORMOVANÁ O MOŽNOSTI TAKOVÉHOTO POŠKOZENÍ. + + + + + + + + + + Jim + Evins + + + + + + + + + + + + + + + + + + + + + Příručka V2.2.6 k aplikaci gLabels + Říjen 2009 + + Mario Blättermann mariobl@gnome.org + Jim Evins + + + + Příručka V2.2 k aplikaci gLabels + Prosinec 2007 + + Jim Evins evins@snaught.com + Jim Evins + + + + + Tato příručka popisuje aplikaci gLabels ve verzi 2.2.6. + + Ohlasy + Pokud chcete oznámit chybu nebo navrhnout vylepšení vztahující se k aplikaci gLabels nebo této příručce, postupujte dle instrukcí na kontaktní stránce gLabels. + + + + + + gLabels + + + glabels + + + + + + + + + + Úvod + + Aplikace gLabels je jednoduchý program na vytváření etiket a vizitek pro pracovní prostředí GNOME. Je navržená pro práci s různými samolepicími etiketami a vizitkami rozmístěnými na listech pro laserový/inkoustový tisk, které najdete v každém obchodě s kancelářskými potřebami. + + + + + + + + + + + Začínáme + + + Jak spustit aplikaci <application>gLabels</application> + Aplikaci gLabels můžete spustit následujícími způsoby: + + + Nabídka Aplikace + + Zvolte KancelářNávrhář etiket gLabels. + + + + Příkazový řádek + + Napište příkaz glabels a zmáčkněte Enter: + + + + + + + Když spustíte aplikaci <application>gLabels</application> + Když spustíte aplikaci gLabels, zobrazí se následující okno. + + +
    + Okno <application>gLabels</application> po spuštění + + + + + + +
    + + + + + + Okno gLabels obsahuje následující části: + + + Panel nabídek. + + Nabídky v panelu nabídek obsahují všechny příkazy potřebné k vytváření a úpravám etiket a vizitek v aplikaci gLabels. + + + + Hlavní panel nástrojů. + + Hlavní panel nástrojů obsahuje podmnožinu běžných příkazů pro práci se soubory a k úpravám z těch, které jsou dostupné v panelu nabídek. + + + + Panel kreslení. + + Panel kreslení obsahuje podmnožinu běžných příkazů k úpravám aktuálního dokumentu gLabels. + + + + Zobrazovací oblast + + Zobrazovací oblast je hlavní rozhraní aplikace gLabels sloužící ke kreslení. + + + + Postranní panel objektů. + + Postranní panel objektů poskytuje rozhraní na prohlížení a úpravu všech vlastností jednotlivých objektů. + + + + Panel vlastností. + + Panel vlastností obsahuje sadu nástrojů na úpravu vlastností vybraných objektů a nastavení výchozích vlastností pro nové objekty. + + + + Stavový panel. + + Stavový panel zobrazuje informace o aktuální činnosti aplikace gLabels a kontextové informace o položkách nabídky. + + + +
    +
    + + + + + + + + Použití + + + + Jak vytvořit novou etiketu nebo vizitku + + Když chcete vytvořit novou etiketu nebo vizitku, zvolte SouborNový a zobrazí se dialogové okno Nová etiketa či vizitka. Vyberte pro nový dokument typ média a orientaci a klikněte na OK. Nový dokument se zobrazí v zobrazovací oblasti okna gLabels. + + V případě, že vaše konkrétní médium v tomto dialogovém okně schází, přečtěte si . + + + + + + Jak otevřít soubor + + Soubor otevřete pomocí volby SouborOtevřít, která zobrazí dialogové okno Otevření souboru. Vyberte soubor, který chcete otevřít a klikněte na OK. Soubor se zobrazí v zobrazovací oblasti okna gLabels. + + V aplikaci gLabels můžete otevřít i více souborů naráz. Aplikace pro každý otevřený soubor vytvoří zvláštní okno. + + Pro soubory nedávno otevřené k úpravě si aplikace zaznamenává cesty a názvy a tyto soubory potom zobrazuje v nabídce SouborOtevřít nedávné soubory. + + + + + + Jak otevřít více souborů z příkazové řádky + + Aplikaci gLabels můžete spustit z příkazového řádku a otevřít při tom jeden nebo více souborů. Pokud chcete otevřít z příkazového řádku více souborů, napište následující příkaz a zmáčkněte Enter: + + glabels soubor1.glabels soubor2.glabels soubor3.glabels + + Po spuštění aplikace se každý ze zadaných souborů zobrazí ve zvláštním okně gLabels. + + + + + + Jak uložit soubor + + Soubory můžete uložit následujícími způsoby: + + + + + Pro uložení změn do stávajícího souboru, zvolte SouborUložit. + + + + + Pro uložení nového souboru nebo uložení stávajícího souboru pod novým názvem, zvolte SouborUložit jako. V dialogovém okně Uložit jako zadejte pro soubor název a klikněte na OK. + + + + + + + + + Jak změnit vlastnosti etikety + + Pokud chcete změnit typ média a/nebo orientaci etiket, zvolte SouborVlastnosti a zobrazí se dialogové okno Vlastnosti etikety. Zvolte pro dokument nový typ média a orientaci a klikněte na OK. + + + + + + Jak vytvořit vlastní šablonu + + Když chcete vytvořit novou vlastní šablonu, zvolte SouborNávrhář šablon… a zobrazí se dialogové okno Návrhář šablon gLabels. Toto dialogové okno vás provede vytvořením vlastní šablony pro většinu typů etiket nebo vizitek, se kterými se můžete setkat. + + Pokud dáváte přednost ručnímu vytvoření šablon, přečtěte si + + + + + + Jak zavřít soubor + + Když chcete aktuální dokument zavřít, zvolte SouborZavřít a zavřete tím aplikační okno. Pokud byl aktuální dokument změněn, zobrazí se potvrzovací dialogové okno, kde můžete dokument uložit nebo příkaz zrušit. Pokud je zavírané okno jediné otevřené, ukončí se celá aplikace gLabels. + + + + + + Jak ukončit <application>gLabels</application> + + Když chcete aplikaci gLabels ukončit, zvolte SouborUkončit. Odpovídá to zavření všech otevřených oken. Viz . + + + + + + Jak vytisknout etikety nebo vizitky + + Když chcete vytisknout etikety nebo vizitky, zvolte SouborTisk a zobrazí se dialogové okno Tisk. Až nastavíte volby tisku, klikněte na Tisk a etikety nebo vizitky se vytisknou. Pokud se chcete jen podívat na náhled, klikněte místo toho na Náhled tisku. + + V dialogovém okně Tisk můžete nastavit následující volby tisku: + + + Karta Etikety v dialogovém okně Tisk + + + + + Ovládání tisku (jednoduchý) + + + Pro jednoduché etikety nebo vizitky (bez slučování dokumentů), obsahuje karta Etikety následující prvky. + + + + + + Počet kopií etikety můžete vybrat zvolením počtu plných listů, které se mají vytisknout, a nebo vybrat jen část etiket na jednom listu. + + Mini-náhled můžete také použít ke grafickému výběru části etiket tak, že kliknete na první etiketu v mini-náhledu a táhnete až na poslední etiketu. + + + + + + Ovládání tisku (slučování) + + + Pro etikety nebo vizitky používající slučování dokumentů (někdy také nazývané „hromadná korespondence“), obsahuje karta Etikety následující ovládací prvky slučování lišící se od ovládacích prvků jednoduchého tisku. + + + + + + Celkový počet etiket nebo vizitek je dán počtem záznamů ve zdroji slučování a počtem vybraných kopií. Jestliže je vybráno více kopií, mohou být také uspořádané (kopie ze stejného záznamu seskupené spolu) nebo neuspořádané (kopie jednotlivých záznamů za sebou). + + Tisk může začínat na libovolné etiketě na prvním listu. Tu můžete vybrat pomocí číselníku Začít na etiketě. + + Mini-náhled můžete také použít ke grafickému výběru první etikety tak, že na ni v mini-náhledu kliknete. + + + + + Volby + + Můžete rovněž vybrat následující volby. + + + tisk obrysů + Tisk obrysů etiket. Tato volba je použitelná k tisku nanečisto, k otestování lícování. + + + obrácený tisk + Tisknout etikety zrcadlově. Tato volba je použitelná pro tisk na čiré etikety, na které se bude dívat z druhé strany (např. na okně auta). + + + tisknout značky pro ořez + Tisknout ořezové značky podél hran listu. Tato volba je použitelná pro tisk na čisté listy, které se budou po tisku rozřezávat. Tato volba nepracuje úplně správně se všemi šablonami. + + + + + + + + + + + + Jak vytvořit nový objekt + + Objekty se vytvářejí příslušným výběrem v podnabídce ObjektyVytvořit nebo na Panelu kreslení. Zobrazovací oblast se přepne do režimu vytváření objektu, což je indikováno patřičným ukazatelem. Do výchozího režimu výběru objektů se můžete vrátit, aniž byste nějaký objekt vytvořili, volbou ObjektyRežim výběru. Ukazatel pro zobrazovací oblast se změní zpět na výchozí šipku. + + Zde je popis režimu vytváření objektu pro jednotlivé typy objektů: + + + + + Text + + Klikněte na požadované umístění levého horního rohu objektu text. Nový textový objekt se vytvoří s počátečním řetězcem „Text“. Jak tento text nebo další vlastnosti změnit uvádí . + + + + + Obdélník + + Klikněte na požadované umístění levého horního rohu objektu obdélník a táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše kliknete na jednom místě, vytvoří se čtverec. Jak změnit vlastnosti obdélníku uvádí . + + + + + Čára + + Klikněte na požadované umístění levého horního konce objektu čára a táhněte k požadovanému umístění pravého dolního konce. Když jednoduše kliknete na jednom místě, vytvoří diagonální úsečka. Jak změnit vlastnosti čáry uvádí . + + + + + Elipsa + + Klikněte na požadované umístění levého horního rohu objektu elipsa a táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše kliknete na jednom místě, vytvoří se kruh. Jak změnit vlastnosti elipsy uvádí . + + + + + Obrázek + + Klikněte na požadované umístění levého horního rohu objektu obrázku a táhněte k požadovanému umístění pravého dolního rohu. Když jednoduše kliknete na jednom místě, vytvoří se čtverec. Nový obrázkový objekt se vytvoří s jednoduchým počátečním obrázkem šachovnice. Jak změnit tento obrázek a další vlastnosti uvádí . + + + + + Čárový kód + + Klikněte na požadované umístění levého horního rohu objektu čárového kódu. Nový objekt čárového kódu se vytvoří jako čárový kód POSTNET s ukázkovými daty. Jak tato data nebo další vlastnosti změnit uvádí . + + + + + + + + + + + Jak vybrat objekty + + Předpokladem k provádění operací s objekty je výběr jednoho či skupiny více objektů. Aby bylo možné výběr provést, musí být zobrazovací oblast v režimu výběru objektů, což je indikováno kurzorem v podobě šipky. Režim výběru objektů se zvolí pomocí ObjektyRežim výběru nebo odpovídajícím příkazem na Panelu kreslení. + + + + + Výběr jednoho objektu + + Jeden objekt vyberete prostým kliknutím na něj v zobrazovací oblasti. Vybraný objekt bude zvýrazněný sadou úchopů sloužících ke změně velikosti + + + + + Přidávání objektů do výběru + + Více objektů můžete vybrat tak, že vyberete první dříve uvedeným způsobem a po té budete držet klávesu Ctrl a vybírat další objekty. Jednotlivé objekty lze přidat do stávajícího výběru kdykoliv držením klávesy Ctrl během vybírání požadovaných objektů. Všechny objekty můžete vybrat pomocí položky nabídky UpravitVybrat vše. Všechny objekty ve výběru jsou zvýrazněné. + + + + + Výběr oblasti + + Více objektů lze rovněž vybrat zmáčknutím tlačítka myši na prázdném místě a tažením obdélníkové oblasti. Po uvolnění tlačítka se všechny objekty obsažené v takovéto oblasti naráz vyberou. Výběr pomocí oblasti lez použít k přidání ke stávajícímu výběru podržením klávesy Ctrl během provádění výběru. + + + + + Zrušení výběru objektů + + Jednotlivé objekty lze z výběru odebrat podržením klávesy Ctrl a klikáním na označené objekty. Veškerý výběr můžete zrušit pomocí nabídky UpravitZrušit výběr nebo jednoduchým kliknutím na prázdné místo v zobrazovací oblasti. Jakmile je u objektu zrušen výběr, zmizí i jeho zvýraznění. + + + + + + + + + + Příkazy pro práci se schránkou + + S vybranými objekty lze manipulovat pomocí standardních operací se schránkou Vyjmout, Kopírovat, Vložit a Smazat. + + + + + + + + CtrlX + + Vyjmout + + + + Přesune vybrané objekty do schránky. Objekty jsou potom přístupné pro vkládání zpátky do aktuálního dokumentu nebo jiného dokumentu. + + + + + + + + CtrlC + + Kopírovat + + + + Zkopíruje vybrané objekty do schránky, aniž by byly vymazány. Objekty jsou potom přístupné pro vkládání zpátky do aktuálního dokumentu nebo jiného dokumentu. + + + + + + + + CtrlV + + Vložit + + + + Vloží objekty ze schránky do aktuálního dokumentu. Aplikace gLabels umí vkládat pouze objekty z jiného dokumentu gLabels. + + + + + + + + Smazat + + Smazat + + + + Smaže vybrané objekty, aniž by byly umístěny do schránky. + + + + + + + + + + Jak upravit vlastnosti objektu + + Většinu vlastností objektů lze upravit přes editor objektů v postranním panelu, který je vyobrazený níže. Abyste mohli editor objektů používat, musíte nejdříve vybrat jeden objekt. Viz . + + +
    + Editor objektů z postranního panelu + + + + + + +
    + + + Editor objektů bude obsahovat některé z následujících karet, které závisí na typu objektu: + + + Karta Text (textové objekty) + + Tato karta obsahuje malý editor na úpravu obsahu textového objektu. Rovněž obsahuje vyskakovací nabídku dostupných klíčů slučování dokumentů, které lze do textu vkládat. + + + + + Karta Obrázek (obrázkové objekty) + + Tato karta obsahuje pole na zadání souboru s obrázkem. Přes tlačítko procházení můžete soubor snadno najít. Druhou možností je použití klíče pro slučování dokumentů, který poskytne název souboru až během tisku. + + + + + Karta Data (objekty čárových kódů) + + Tato karta obsahuje textové pole na zadání dat pro čárový kód. Druhou možností je použití klíče pro slučování dokumentů, přes který jsou data poskytována až během tisku. + + + + + Karta Styl (textové objekty) + + Tato karta obsahuje ovládací prvky na výběr vlastností textu, včetně typu písma, velikosti písma, tloušťky písma, barvy a zarovnání textu. + + + + + Karta Styl (objekty čárových kódů) + + Tato karta obsahuje ovládací prvky na výběr vlastností čárového kódu, včetně stylu čárového kódu, barvy, zda tisknout text a zda vkládat číslo s kontrolním součtem. + + + + + Karta Čára + + Tato karta obsahuje ovládací prvky na výběr vlastností čar a obrysů. Tyto vlastnosti zahrnují tloušťku čáry a její barvu. + + + + + Karta Výplň + + Tato karta obsahuje ovládací prvky na výběr vlastností výplně objektů obdélníků a elips. V současnosti obsahuje pouze barvu výplně. + + + + + Karta Velikost (všechny objekty vyjma čar) + + Tato karta obsahuje ovládací prvky na výběr šířky a výšky objektu. K dispozici je zaškrtávací pole, kterým můžete zamknout poměr stran během úprav šířky a výšky. U obrázků je k dispozici rovněž tlačítko, kterým můžete nastavit reálné rozměry obrázku (předpokládá se 72 DPI). + + + + + Karta Velikost (objekty čar) + + Tato karta obsahuje ovládací prvky pro výběr délky a úhlu čáry. + + + + + Karta Pozice + + Tato karta obsahuje ovládací prvky pro změnu pozice objektu. + + + + + + Karta Stín (všechny objekty vyjma obrázků a čárových kódů) + + Tato karta obsahuje ovládací prvky pro přidání stínu k objektu. + + + + +
    + + + + Ostatní manipulace s objekty + + S objekty lze manipulovat ještě následujícími způsoby: + + + Přesouvání a změna velikosti objektů + + Objekty lze přesunout kliknutím na vybraný objekt a tažením objektu na nové místo. Pokud je objekt součástí skupiny označených objektů, budou se s objektem přesouvat všechny vybrané objekty, ale jejich vzájemná pozice zůstane zachovaná. Pokud není žádný objekt vybraný, kliknutí na objekt provede nový výběr tohoto objektu. Viz . + + U vybraných objektů můžete měnit jejich velikost kliknutím na úchop pro změnu velikosti a jeho tažením tak, abyste dosáhli správné velikost. + + + + + Změna pořadí objektů + + Pořadí objektů představuje jejich relativní polohu v ose z. Prakticky to určuje při překrývání objektů, který z nich bude nahoře a který vespod. Standardně se nové objekty vytvářejí nad staršími objekty. Když chcete toto pořadí změnit, jeden nebo více objektů vyberte a zvolte ObjektyPořadíPřenést dopředu pro vynesení výběru na nejvyšší pozici nebo ObjektyPořadíPřenést dozadu pro zatlačení výběru úplně dospod. Tyto položky nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací oblasti za předpokladu, že jsou vybrané nějaké objekty. + + + + + Otáčení a překlápění objektů + + Objekty lze otáčet po 90stupňových krocích v obou směrech nebo je překlápět svisle nebo vodorovně a to volbou příslušné položky v podnabídce ObjektyOtočit/Překlopit. Tyto položky nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací oblasti za předpokladu, že jsou vybrané nějaké objekty. + + + + + Zarovnávání objektů + + Objekty lze zarovnávat vodorovně nebo svisle, relativně vůči sobě nebo relativně ke středové čáře etikety, volbou příslušné položky z podnabídky ObjektyZarovnat vodorovně nebo ObjektyZarovnat svisle. Tyto položky nabídky jsou přístupné i po kliknutí pravým tlačítkem v zobrazovací oblasti za předpokladu, že jsou vybrané nějaké objekty. + + + + + Používání panelu vlastností + + Panel vlastností lze použít ke změně některých běžných vlastností objektů jako celku. Tyto vlastnosti zahrnují typ písma, velikost písma, tloušťku písma, zarovnání textu, barvu textu, barvu výplně, barvu čáry nebo obrysu a tloušťku čáry. Přes panel vlastností může také zadat výchozí hodnoty těchto vlastností pro nově vytvářené objekty. + + + + + + + + + + Provádění slučování dokumentů + + Slučování dokumentů (někdy také nazývané „hromadná korespondence“) je mocná funkce, která umožňuje vytisknout na etikety nebo vizitky různé texty podle jednotlivých záznamů v externím zdroji dat. + + Prvním krokem při slučování dokumentů je příprava zdrojového dokumentu, který má obsahovat slučovaná data. Tato data mohou být poštovní adresy nebo jakákoliv jiná data, pro která si přejete vytvořit jedinečné etikety nebo vizitky. V současnosti jsou zatím jako zdroje podporované pouze textové soubory a datový server Evolution, jiné jsou v plánu. Současně podporovaný formát textových souborů je velmi jednoduchý: co řádek, to záznam; pole jsou oddělená čárkami (CSV), tabulátory nebo dvojtečkami; řádky jsou zakončené pomocí znaku „\n“. Takovýto soubor jde vytvořit v libovolném textovém editoru nebo jiným programem nebo skriptem. Obvyklým způsobem vytváření souborů CSV je jejich export z tabulkového kalkulátoru. + + Etiketa musí být nastavená tak, aby „ukazovala na“ takovýto datový soubor. Abyste nastavili vlastnosti slučování dokumentu, zvolte položku nabídky ObjektyVlastnosti slučování, zobrazí se dialogové okno vlastnosti slučování. Toto dialogové okno slouží k výběru přesného formátu datového souboru a názvu (umístění) souboru se slučovanými daty. + + Nakonec, až je etiketa nastavená pro datový soubor, je zapotřebí vložit klíče polí do textových objektů a použít klíče polí jako zdroje nebo data pro objekty čárových kódů a jako názvy souborů pro obrázkové objekty. Více informací o použití slučovaných dat pro tyto typy objektů viz . + + Nyní, když máte svoji etiketu nastavenou, bude aplikace gLabels tisknout jednotlivé etikety odlišné pro každý záznam ve vašem zdrojovém dokumentu - do klíčů polí se ve všech textech budou dosazovat pole z jednotlivých záznamů. + + Podrobný průvodce funkcí slučování dokumentů viz . + + + + + +
    + + + + + + + + Nastavení + Když chcete v aplikaci gLabels změnit nastavení, zvolte UpravitPředvolby. Dialogové okno Předvolby gLabels obsahuje následující karty: + + + + + + + + + + + + + + Národní prostředí + + + + Jednotky + + Tento skupinový přepínač použijte k určení svých upřednostňovaných jednotek. Vyberte jednu z následujících možností: + + + + Body + Použít body (1 bod = 1/72 palce = 0,352778 mm). + + + + Palce + Použít palce (1 palec = 25,4 mm). + + + + Milimetry + Použít milimetry. + + + Výchozí : Palce. + + + + + Výchozí velikost stránky + + Tento skupinový přepínač použijte k určení své upřednostňované velikosti stránky. Urychlí vám to hledání typu média při vytváření nové etikety nebo vizitky. + + + + US Letter + Většina vašich médií má velikost stránky US Letter (8,5 × 11 palců). + + + + ISO A4 + Většina vašich médií má velikost stránky ISO A4 (210 × 297 mm). + + + Výchozí: US Letter. + + + + + + + + Výchozí hodnoty objektu + + + + Text + + Použijte tyto ovládací prvky k nastavení výchozích vlastností nových textových objektů. Tyto vlastnosti jsou: + + + + Písmo + Tyto ovládací prvky slouží k nastavení rodiny písma a velikosti písma a zda by mělo být písmo tučné nebo kurzívou. + + + + Barva + Tímto ovládacím prvkem se vybírá výchozí barva textu. + + + + Zarovnání + Tyto ovládací prvky slouží k výběru výchozího zarovnání textu (vlevo, na střed nebo vpravo). + + + + + + + Čára + + Použijte tyto ovládací prvky k nastavení výchozích vlastností čar a obrysů nových objektů. Tyto vlastnosti jsou: + + + + Šířka + Tímto ovládacím prvkem se vybírá výchozí šířka čáry. + + + + Barva + Tímto ovládacím prvkem se vybírá výchozí barva čáry. + + + + + + + Výplň + + Použijte tyto ovládací prvky k nastavení výchozích vlastností výplně nových objektů. Tyto vlastnosti jsou: + + + + Barva + Tento ovládací prvek slouží k výběru výchozí barvy výplně. + + + + + + + + + + + + + + Průvodce slučováním dokumentů + + Slučování dokumentů (někdy také nazývané „hromadná korespondence“) je mocná funkce, díky které můžete tisknout odlišné etikety nebo vizitky pro každý záznam v externím zdroji dat. Je však také ze všech funkcí aplikace gLabels nejnáročnější na pochopení. Následující příklady vás provedou dvojicí obvyklých úloh, které používají funkci slučování dokumentů. + + + Příklad 1: Jmenovky s použitím souboru CSV + + V tomto příkladu pořádáme seznamovací párty pro nové členy osádky naší lodi. Máme seznam nováčků v osádce, který jsme vytvořili v aplikaci gnumeric a následně jej vyexportovali do souboru CSV. Mohli bychom jej vytvořit i v textovém editoru, ale žijeme přece v 21. století. + + +jmeno,zarazeni,cislo +"Jiří Kroupa",vedení,"SC937-0176 CEC" +"prof. Hrbolek",vědec,S179-276SP +"MUDr. Kroupová",lékař,unknown +"Viktor Hujer",technik,SE-197-54T + + + V aplikaci gLabels máme vytvořený dokument vycházející ze šablony Avery 5395 „Etikety na jmenovky“. Nyní použijeme položku nabídky ObjektyVlastnosti slučování a zobrazí se nám dialogové okno vlastnosti slučování. Toto dialogové okno použijeme k výběru typu zdroje (v našem případě CSV) a vlastního zdroje (souboru), jak můžete vidět níže. + + +
    + Dialogové okno vlastností slučování + + + + + + +
    + + + Před použitím zdroje slučování zrušíme zaškrtnutí prvního záznamu, protože ten obsahuje pouze záhlaví sloupců z naší původní tabulky v gnumeric a akorát bychom tím zničili první etiketu. Stejným způsobem můžeme zrušit zaškrtnutí kteréhokoliv záznamu, který nechceme vytisknout. + + U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně spokojení, klikneme na OK a změny se použijí. + + Nyní můžeme začít s přidáváním objektů do svého dokumentu gLabels, jak je zobrazeno níže. + + +
    + Přidávání objektů + + + + + + +
    + + + V tomto příkladu máme přidané tři textové objekty a čárový kód. První textový objekt obsahuje pouze prostý text („Ahoj, jmenuji se“). Druhý textový objekt obsahuje jedno slučované pole („${1}“), které odpovídá prvnímu poli v záznamu (první sloupec v řádku) a které obsahuje celé jméno nového člena osádky. Třetí textové pole obsahuje jak text („Zařazení: “), tak za ním následuje jedno slučované pole („${2}“), které odpovídá druhému poli se zařazením člena posádky. Objekt s čárovým kódem je nastavený na použití pole (klíče) „3“, které obsahuje identifikační číslo člena posádky. + + Nyní můžeme své jmenovky vytisknout pomocí položky nabídky SouborTisk. Zobrazí se dialogové okno jako na následujícím obrázku. + + +
    + Tisk jmenovek + + + + + + +
    + + + Nyní zkontrolujeme, zda vypadají etikety jak mají. Vybereme možnost Tisk obrysů a klikneme na Náhled tisku. Zobrazí se dialogové okno s náhledem tisku, stejně jako na následujícím obrázku. + + +
    + Náhled jmenovek + + + + + + +
    + + + Vše vypadá v pořádku, takže můžeme do tiskárny vložit správný list s etiketami, vytisknout jmenovky a vzhůru na palubu nalodit naše hosty. + +
    + + + Příklad 2: Adresní štítky s použitím souboru CSV + + V tomto příkladu se chystáme uspořádat večírek a potřebujeme vytisknout adresní štítky na své pozvánky. Máme seznam svých nejbližších přátel, který jsem vytvořili v aplikaci gnumeric a vyexportovali jej jako soubor CSV. Povšimněte si, že ne všichni mají přezdívku nebo dvouřádkovou adresu. + + +PRIJMENI,JMENO,PREZDIVKA,ADR1,ADR2,MESTO,PSC +,,,,,,, +Pacovský,Tomáš,,"U dvou akordů","Křižíkova 506",Praha,"123 00" +Pacovský,František,Ozzák,"Křižíkova 62",,"Praha - Vinohrady","110 00" +Divićová,Marcela,,"Náměstí míru 1",,Praha,"150 00" +Bůček,Alexandr,Lexa,"U Jezevce","Nitranská 7",Praha,"160 13" +Bůčková,Alexandra,,"Korunní 18",,Praha,"100 24" + + + V aplikaci gLabels vytvoříme nový dokument ze šablony Avery L7162 „Poštovní etikety“. Následně použijeme položku nabídky ObjektyVlastnosti slučování a zobrazí se nám dialogové okno vlastností slučování. V tomto dialogovém okně vybereme typ zdroje (v našem případě CSV) a konkrétní zdroj (název souboru) pro slučování, jak můžete vidět na následujícím obrázku. + + +
    + Dialogové okno vlastností slučování + + + + + + +
    + + + Před tím, než zdroj pro slučován použijeme, zrušíme zaškrtnutí prvního záznamu, protože ten obsahuje pouze záhlaví sloupců z původní tabulky v gnumeric a akorát bychom tím znehodnotili první etiketu. Zrušíme zaškrtnutí i druhého záznamu, protože je prázdný (což je pozůstatek z tabulkového kalkulátoru). A stejným způsobem můžeme vyřadit kterýkoliv jiný záznam, který nechceme na etikety vytisknout. + + U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně spokojení, klikneme na OK a změny se použijí. + + Nyní můžeme začít s přidáváním objektů do svého dokumentu gLabels, jak je zobrazeno níže. + + +
    + Přidávání objektů + + + + + + +
    + + + V tomto příkladu máme jen jeden textový objekt. Tento textový objekt obsahuje všechna slučovaná pole uspořádaná v několika řádcích představujících poštovní adresu. Všimněte si, že pole ${4} a ${5} (ta odpovídají ADR1 a ADR2) jsou umístěná na samostatných řádcích bez jakéhokoliv dalšího textu. Pokud aplikace gLabels narazí na pole, které je jediným textem na řádku a toto pole je prázdné, řádek nebude ve výsledku zabírat žádné místo. + + Nyní se můžeme pustit do tisku adresních etiket pomocí volby SouborTisk v nabídce. Zobrazí se dialogové okno tisku jako na následujícím obrázku. + + +
    + Tisk etiket s adresami + + + + + + +
    + + + Nyní zkontrolujeme, zda vypadají etikety jak mají. Vybereme možnost Tisk obrysů a klikneme na Náhled tisku. Zobrazí se dialogové okno s náhledem tisku, stejně jako na následujícím obrázku. + + +
    + Náhled etiket s adresami + + + + + + +
    + + + Vše vypadá dobře a tak můžeme vložit do tiskárny správný list s etiketami, vytisknout adresní štítky a začít rozesílat pozvánky na večírek. + +
    + + + Příklad 3: Adresní štítky s použitím adresáře aplikace <application>Evolution</application> + + Náš předchozí večírek měl velký úspěch a my nyní chceme vytisknout adresní štítky pro pozvánky na další takový. Abychom si to zjednodušili, můžeme použít adresář aplikace Evolution, protože adresy všech našich přátel máme uložené v něm. + + + V závislosti na tom, jak byl připravený váš balíček gLabels, nemusí být tato funkčnost dostupná. Podpora pro adresář Evolution je dostupná jen v případě, že byl při překladu aplikace gLabels k dispozici evolution-data-server a k němu vývojářské soubory. Mějte toto na paměti, pokud si aplikaci překládáte sami ze zdrojových kódů. + + Pokud balíček gLabels ve vaší distribuci tuto podporu postrádá, můžete zkusit kontaktovat správce balíčku nebo to zkusit nahlásit jako chybu. + + + V aplikaci glabels vytvoříme nový dokument ze šablony Avery L7162 „Poštovní etikety“. Potom v nabídce zvolíme ObjektyVlastnosti slučování, aby se nám zobrazilo dialogové okno Vlastnosti slučování. V něm vybereme typ zdroje (v našem případě Data z výchozího adresáře Evolution), jak je ukázáno na obrázku. + + +
    + Dialogové okno vlastností slučování + + + + + + +
    + + + Když máme jako zdroj slučování vybráno Data z výchozího adresáře Evolution, obdržíme úplný seznam jeho obsahu. Na začátku jsou zaškrtnuté všechny položky. Předpokládá se, že budeme pořádat opravdu velký večírek a tak bychom mohli ponechat výběr jak je (ale uvědomte si kolik to bude stát). Nyní některé záznamy kliknutím na příslušné zaškrtávací políčko vyřadíme nebo naopak vybereme, případně můžeme použít tlačítka Vybrat vše a Zrušit výběr pro aktivování nebo deaktivování všech záznamů v adresáři. + + U každého záznamu si také můžeme prohlédnou všechny údaje po jeho rozbalení kliknutím na malý trojúhelníček. Až jsme s výběrem v dialogovém okně spokojení, klikneme na OK a změny se použijí. + + Nyní můžeme začít s přidáváním objektů do svého dokumentu glabels, jak bylo ukázáno dříve. + + +
    + Přidávání objektů + + + + + + +
    + + + V tomto příkladu máme opět jen jeden textový objekt. Ten obsahuje všechna slučovaná pole uspořádaná v několika řádcích, představujících poštovní adresy. + + Nyní můžeme své etikety s adresami vytisknout volbou položky nabídky SouborTisk. Zobrazí se dialogové okno tisku, jak jej můžete vidět níže. + + +
    + Tisk etiket s adresami + + + + + + +
    + + + Nyní zkontrolujeme, zda vypadají etikety jak mají. Vybereme možnost Tisk obrysů a klikneme na Náhled tisku. Zobrazí se dialogové okno s náhledem tisku, stejně jako na následujícím obrázku. + + +
    + Náhled etiket s adresami + + + + + + +
    + + + Vše vypadá dobře a tak můžeme vložit do tiskárny správný list s etiketami, vytisknout adresní štítky a začít rozesílat pozvánky na večírek. + +
    + +
    + + + + + + + Ruční vytváření šablon + + Předdefinované šablony jsou definované soubory XML umístěnými v ${prefix}/share/glabels/, kde ${prefix} je obvykle /usr/local nebo /usr, v závislosti na volbě nastavení prefix při překladu programu. Aplikace gLabels použije všechny soubory s názvem v podobě *-templates.xml nebo *.template, které nalezne v ${prefix}/share/glabels/ a ${HOME}/.glabels/. Další šablony si můžete přidat vytvořením dalších souborů *.template v jedné z těchto složek. + + Formát těchto souborů je dán v DTD: glabels-2.2.dtd. (Toto DTD popisuje i ostatní formáty XML používané v aplikaci gLabels.) + + + Předpoklady/upozornění + + + Stránka obsahuje etiketu nebo vizitku pouze jedné velikosti (pokud má stránka obsahovat více než jednu velikost položky, můžete ji rozdělit do více šablon a vytisknout na vícekrát) + + + Rozměry mohou být uváděny v jednotkách pt, in, mm, cm nebo pc. Například: „1.0in“ nebo „2.54cm“. Pokud není žádná jednotka uvedená, budou předpokládány body pt (1 pt = 1/72 in = 0,352778 mm). + + + + + + Soubory šablon + + +<?xml version="1.0"?> +<Glabels-templates> + + …šablony… + +</Glabels-templates> + + + + + + Příklad šablony + + <Template brand="Avery" part="8160" size="US-Letter" _description="Mailing Labels"> + <Label-rectangle id="0" width="189pt" height="72pt" round="5pt"> + <Markup-margin size="5pt"/> + <Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/> + </Label-rectangle> + <Alias brand="Avery" part="5160"/> + <Alias brand="Avery" part="6233"/> + </Template> + + + + + Uzel Template + + Uzel Template popisuje jeden pevně daný výrobek. Musí obsahovat jednu instanci libovolného uzlu Label (Label-rectangle, Label-round nebo Label-cd). Tento uzel může být následován žádným nebo více uzly Alias. + + + + + + + + + Vlastnost + + + Popis + + + + + + brand + + Značka nebo výrobce pevně daného výrobku. Např. "S Label" + + + + part + + Produktové číslo nebo název pevně daného výrobku. Např. "8160" + + + + size + + Velikost stránky. Např. "A4", "US-Letter" + + + + description + + Popis pevně daného produktu. Např. "Mailing Labels." + + + + _description + + Popis pevně daného produktu s možností překladu. Např. "Mailing Labels." (Použitelné pouze pro předdefinované šablony) + + + + width + + Šířka stránky. Platné jen v případě, že size="Other" + + + + height + + Výška stránky. Platné jen v případě, že size="Other" + + + + + + + + + + Uzel Label-rectangle + + Uzel Label-rectangle popisuje rozměry jedné etikety nebo vizitky, která má obdélníkový tvar (může mít zaoblené rohy). + + + + + + + + + Vlastnost + + + Popis + + + + + + id + + Rezervované pro pozdější použití. Vždy by mělo být nastavené na 0. + + + + width + Šířka etikety/vizitky + + + height + Výška etikety/vizitky + + + round + + Poloměr rohů. Pro položky s ostrými rohy (např. vizitky) by mělo být nastaveno na 0. + + + + x_waste + + Velikost dovoleného vodorovného odsazení (umožňuje přetisk). To je užitečné kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, ale např. obrázkové. + + + + y_waste + + Velikost dovoleného svislého odsazení (umožňuje přetisk). To je užitečné kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, ale např. obrázkové. + + + + + + + +
    + Parametry uzlu Label-rectangle + + + + + + +
    + + +
    + + + Uzel Label-round + + Uzel Label-round popisuje rozměry jedné zaoblené etikety (ne CD). + + + + + + + + + Vlastnost + + + Popis + + + + + + id + + Rezervované pro pozdější použití. Vždy by mělo být nastavené na 0. + + + + radius + Poloměr (½ průměru) etikety + + + waste + + Velikost dovoleného odsazení (umožňuje přetisk). To je užitečné kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, ale např. obrázkové. + + + + + + + + + + Uzel Label-cd + + Uzel Label-cd popisuje rozměry etiket na CD, DVD nebo vizitkové CD. + + + + + + + + + Vlastnost + + + Popis + + + + + + id + + Rezervované pro pozdější použití. Vždy by mělo být nastavené na 0. + + + + radius + Vnější poloměr etikety + + + hole + Poloměr středové díry + + + width + + Pokud je zadáno, bude etiketa oříznuta na uvedenou šířku. (Vhodné pro „vizitková CD“). + + + + height + + Pokud je zadáno, bude etiketa oříznuta na uvedenou výšku. (Vhodné pro „vizitková CD“). + + + + waste + + Velikost dovoleného odsazení (umožňuje přetisk). To je užitečné kvůli zamezení problémům se zarovnáním v situaci, kdy se nepoužívá bílé pozadí, ale např. obrázkové. + + + + + + + +
    + Parametry etiket na CD + + + + + + +
    + + +
    + + + Uzel Markup-margin + + Uzel Markup-margin popisuje okraj podél všech hran etikety. + + + + + + + + + Vlastnost + + + Popis + + + + + + size + + Velikost okraje. Např. vzdálenost hranice okraje od hrany etikety/vizitky. + + + + + + + + + + Uzel Markup-line + + Uzel Markup-line popisuje značku v podobě čáry. + + + + + + + + + Vlastnost + + + Popis + + + + + + x1 + + x-ová souřadnice počátku úsečky + + + + y1 + + y-ová souřadnice počátku úsečky + + + + x2 + + x-ová souřadnice konce úsečky + + + + y2 + + y-ová souřadnice konce úsečky + + + + + + + + + + Uzel Markup-circle + + Uzel Markup-circle popisuje značku v podobě kruhu. + + + + + + + + + Vlastnost + + + Popis + + + + + + x0 + + x-ová souřadnice středu kruhu + + + + y0 + + y-ová souřadnice středu kruhu + + + + radius + Poloměr kruhu. + + + + + + + + + Uzel Markup-rect + + Uzel Markup-rect popisuje značku v podobě obdélníku. + + + + + + + + + Vlastnost + + + Popis + + + + + + x1 + + x-ová souřadnice levého horního rohu obdélníku. + + + + y1 + + y-ová souřadnice levého horního rohu obdélníku. + + + + w + + Šířka obdélníku. + + + + h + + Výška obdélníku. + + + + r + Poloměr zakulacených rohů obdélníku. + + + + + + + + + Uzel Layout + + Uzel typu Label může obsahovat více potomků Layout. V případě, že jsou etikety rozmístěné do jednoduché pravidelné mřížky, postačuje jeden uzel Layout. Pokud ale jsou etikety rozmístěné ve více mřížkách, např. mají podobu cihlové zdi, musí se použít více značek layout. Poznámka: jedna etiketa může být vždy považována za mřížku s jednou buňkou. + + + + + + + + + Vlastnost + + + Popis + + + + + + nx + + Počet etiket/vizitek v mřížce (vodorovně) + + + + ny + + Počet etiket/vizitek v mřížce (svisle) + + + + x0 + + Vzdálenost od levé hrany stránky k levé hraně levého sloupce etiket/vizitek v rozvržení. + + + + y0 + + Vzdálenost od horní hrany stránky k horní hraně horní řady etiket/vizitek v rozvržení. + + + + dx + Vodorovná rozteč mřížky. + + + dy + Svislá rozteč mřížky. + + + + + + +
    + Parametry uzlu Layout + + + + + + +
    + + +
    + + + Uzel Alias + + Uzel Alias uvádí názvy výrobků se stejnými rozměry a rozvržením, jako má rodičovská šablona. + + + + + + + + + Vlastnost + + + Popis + + + + + + brand + + Značka nebo výrobce odpovídajícího výrobku. + + + + part + + Produktové číslo nebo název odpovídajícího výrobku. + + + + + + + + +
    + + + + + + + + + + + + + + O aplikaci <application>gLabels</application> + Aplikaci gLabels napsal Jim Evins (evins@snaught.com). Pokud chcete o aplikaci gLabels najít více informací, navštivte prosím webovou stránku gLabels. + Pokud chcete oznámit chybu nebo navrhnout vylepšení vztahující se k této aplikaci nebo této příručce, postupujte dle instrukcí na kontaktní stránce gLabels. + + Tento program je šířen podle ustanovení GNU General Public License, vydávané Free Software Foundation; a to buď verze 2 této licence anebo (podle vlastního uvážení) kterékoliv pozdější verze. Kopii této licence naleznete pod tímto odkazem nebo v souboru COPYING přiloženém ke zdrojovým kódům tohoto programu. + + + + + + + +
    diff --git a/help/de/de.po b/help/de/de.po new file mode 100644 index 00000000..12f0f96c --- /dev/null +++ b/help/de/de.po @@ -0,0 +1,2832 @@ +# German translation of the gLabels2 documentation. +# Mario Blättermann , 2008, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: glabels2\n" +"POT-Creation-Date: 2010-01-09 14:14+0000\n" +"PO-Revision-Date: 2010-01-16 19:18+0100\n" +"Last-Translator: Mario Blättermann \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: German\n" +"X-Poedit-Country: GERMANY\n" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:195(None) +msgid "" +"@@image: 'figures/main-window-empty.png'; md5=226b58f05f4171531066358a29cda1a7" +msgstr "translated" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:447(None) +msgid "" +"@@image: 'figures/print-copies.png'; md5=ebb4d08810a67cc9cd7ec6ddd7b52fb0" +msgstr "translated" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:479(None) +msgid "@@image: 'figures/print-merge.png'; md5=ffe6027513a10f7ba940c350c1dc5717" +msgstr "translated" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:790(None) +msgid "" +"@@image: 'figures/object-editor-sidebar.png'; " +"md5=14eace177c1f5bfe36022acbbd6a9f0e" +msgstr "translated" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1231(None) +msgid "@@image: 'figures/merge-ex1-1.png'; md5=55a97963022047cdad6aa198b5ed698e" +msgstr "translated" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1256(None) +msgid "@@image: 'figures/merge-ex1-2.png'; md5=d03979f010e20e98532258edb20b1bc0" +msgstr "translated" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1284(None) +msgid "@@image: 'figures/merge-ex1-3.png'; md5=94e382ccdfbc2fe5d320010d2ef10c61" +msgstr "translated" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1302(None) +msgid "@@image: 'figures/merge-ex1-4.png'; md5=e72810bc3c191df6c8b2ad0cb1131021" +msgstr "translated" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1348(None) +msgid "@@image: 'figures/merge-ex2-1.png'; md5=4f062158be21bfadc4adfbdcf5d0206f" +msgstr "translated" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1374(None) +msgid "@@image: 'figures/merge-ex2-2.png'; md5=f69a7e0ae86f66b0d70d39a7757918fa" +msgstr "translated" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1399(None) C/glabels.xml:1513(None) +msgid "@@image: 'figures/merge-ex2-3.png'; md5=f5134b9e911ebdd17d4a5b36a5ba56d0" +msgstr "translated" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1417(None) C/glabels.xml:1531(None) +msgid "@@image: 'figures/merge-ex2-4.png'; md5=29a60e970cb026aecf75543203494b00" +msgstr "translated" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1464(None) +#| msgid "" +#| "@@image: 'figures/merge-ex2-2.png'; md5=f69a7e0ae86f66b0d70d39a7757918fa" +msgid "@@image: 'figures/merge-ex3-1.png'; md5=b0c387b5fcfd730b2ae75172895ff5b8" +msgstr "translated" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1492(None) +#| msgid "" +#| "@@image: 'figures/merge-ex1-2.png'; md5=d03979f010e20e98532258edb20b1bc0" +msgid "@@image: 'figures/merge-ex3-2.png'; md5=09f105e133657345e6e478a464e5b49f" +msgstr "translated" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1767(None) +msgid "" +"@@image: 'figures/glabels-template-label.png'; " +"md5=b7db4090373462b8d45feb22d4cd5646" +msgstr "translated" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1888(None) +msgid "" +"@@image: 'figures/glabels-template-cd.png'; " +"md5=145b49a5380de63ffa9451d2bbb81934" +msgstr "translated" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:2150(None) +msgid "" +"@@image: 'figures/glabels-template-layout.png'; " +"md5=a8adcff0584be1f0275bc2a169a580df" +msgstr "translated" + +#: C/glabels.xml:31(title) +msgid "gLabels Manual V2.2.6" +msgstr "gLabels-Handbuch V2.2.6" + +#: C/glabels.xml:33(para) +msgid "" +"User manual for the gLabels label and business " +"card creation program" +msgstr "" +"Benutzerhandbuch für gLabels, einem Programm zum " +"Erstellen von Etiketten und Visitenkarten" + +#: C/glabels.xml:38(year) +msgid "2003-2009" +msgstr "2003-2009" + +#: C/glabels.xml:39(holder) C/glabels.xml:42(publishername) +#: C/glabels.xml:93(para) C/glabels.xml:103(para) +msgid "Jim Evins" +msgstr "Jim Evins" + +#: C/glabels.xml:2(para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " +"later version published by the Free Software Foundation with no Invariant " +"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " +"of the GFDL at this link or in " +"the file COPYING-DOCS distributed with this manual." +msgstr "" +"Das vorliegende Dokument kann gemäß den Bedingungen der GNU Free " +"Documentation License (GFDL), Version 1.1 oder jeder späteren, von der Free " +"Software Foundation veröffentlichten Version ohne unveränderbare Abschnitte " +"sowie ohne Texte auf dem vorderen und hinteren Buchdeckel kopiert, verteilt " +"und/oder modifiziert werden. Eine Kopie der GFDL finden Sie unter diesem " +"Link oder in der mit diesem " +"Handbuch gelieferten Datei COPYING-DOCS." + +#: C/glabels.xml:12(para) +msgid "" +"This manual is part of a collection of GNOME manuals distributed under the " +"GFDL. If you want to distribute this manual separately from the collection, " +"you can do so by adding a copy of the license to the manual, as described in " +"section 6 of the license." +msgstr "" +"Dieses Handbuch ist Teil einer Sammlung von GNOME-Handbüchern, die unter der " +"GFDL veröffentlicht werden. Wenn Sie dieses Handbuch getrennt von der " +"Sammlung weiterverbreiten möchten, können Sie das tun, indem Sie eine Kopie " +"der Lizenz zum Handbuch hinzufügen, wie es in Abschnitt 6 der Lizenz " +"beschrieben ist." + +#: C/glabels.xml:19(para) +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any GNOME " +"documentation, and the members of the GNOME Documentation Project are made " +"aware of those trademarks, then the names are in capital letters or initial " +"capital letters." +msgstr "" +"Viele der Namen, die von Unternehmen verwendet werden, um ihre Produkte und " +"Dienstleistungen von anderen zu unterscheiden, sind eingetragene " +"Warenzeichen. An den Stellen, an denen diese Namen in einer GNOME-" +"Dokumentation erscheinen, werden die Namen in Großbuchstaben oder mit einem " +"großen Anfangsbuchstaben geschrieben, wenn das GNOME-Dokumentationsprojekt " +"auf diese Warenzeichen hingewiesen wird." + +#: C/glabels.xml:35(para) +msgid "" +"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " +"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK " +"AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR MODIFIED " +"VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR MODIFIED VERSION " +"PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY " +"CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR " +"CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS " +"LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS " +"AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "" +"DIESES DOKUMENT WIRD »WIE VORLIEGEND« GELIEFERT, OHNE GARANTIEN IRGENDEINER " +"ART, SOWOHL AUSDRÜCKLICH GENANNTE ALS AUCH ANGEDEUTETE. DIES BEZIEHT SICH " +"AUCH OHNE EINSCHRÄNKUNG AUF GARANTIEN, DASS DIESES DOKUMENT ODER VERÄNDERTE " +"FASSUNGEN DIESES DOKUMENTS FREI VON HANDELSDEFEKTEN, FÜR EINEN BESTIMMTEN " +"ZWECK GEEIGNET IST ODER DASS ES KEINE RECHTE DRITTER VERLETZT. DAS VOLLE " +"RISIKO WAS QUALITÄT, GENAUIGKEIT UND LEISTUNG DES DOKUMENTS ODER VERÄNDERTE " +"FASSUNGEN DES DOKUMENTS LIEGT BEI IHNEN. SOLLTE EIN DOKUMENT ODER EINE " +"VERÄNDERTE FASSUNG DAVON FEHLER IRGENDEINER ART BEINHALTEN, TRAGEN SIE (NICHT " +"DER URSPRUNGSAUTOR, DER AUTOR ODER EIN MITWIRKENDER) DIE KOSTEN FÜR " +"NOTWENDIGE DIENSTLEISTUNGEN, REPARATUREN ODER FEHLERKORREKTUREN. DIESER " +"HAFTUNGSAUSSCHLUSS IST EIN ESSENZIELLER TEIL DIESER LIZENZ. DIE VERWENDUNG " +"EINES DOKUMENTS ODER EINER VERÄNDERTEN VERSION DES DOKUMENTS IST NICHT " +"GESTATTET AUßER UNTER BEACHTUNG DIESES HAFTUNGSAUSSCHLUSSES UND" + +#: C/glabels.xml:55(para) +msgid "" +"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " +"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " +"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " +"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR " +"ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY " +"CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK " +"STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR " +"LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " +"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " +"POSSIBILITY OF SUCH DAMAGES." +msgstr "" +"UNTER KEINEN UMSTÄNDEN UND AUF BASIS KEINER RECHTSGRUNDLAGE, EGAL OB DURCH " +"UNERLAUBTEN HANDLUNGEN (EINSCHLIEßLICH FAHRLÄSSIGKEIT), VERTRAG ODER " +"ANDERWEITIG KANN DER AUTOR, URSPRUNGSAUTOR, EIN MITWIRKENDER ODER EIN " +"VERTRIEBSPARTNER DIESES DOKUMENTS ODER EINER VERÄNDERTEN FASSUNG DES " +"DOKUMENTS ODER EIN ZULIEFERER EINER DIESER PARTEIEN, HAFTBAR GEMACHT WERDEN " +"FÜR DIREKTE, INDIREKTE, SPEZIELLE, VERSEHENTLICHE ODER FOLGESCHÄDEN JEGLICHER " +"ART, EINSCHLIEßLICH UND OHNE EINSCHRÄNKUNGEN SCHÄDEN DURCH VERLUST VON " +"KULANZ, ARBEITSAUSFALL, COMPUTERVERSAGEN ODER COMPUTERFEHLFUNKTIONEN ODER " +"ALLE ANDEREN SCHÄDEN ODER VERLUSTE, DIE SICH AUS ODER IN VERBINDUNG MIT DER " +"VERWENDUNG DES DOKUMENTS UND VERÄNDERTER FASSUNGEN DES DOKUMENTS ERGEBEN, " +"AUCH WENN DIE OBEN GENANNTEN PARTEIEN ÜBER DIE MÖGLICHKEIT SOLCHER SCHÄDEN " +"INFORMIERT WAREN." + +#: C/glabels.xml:28(para) +msgid "" +"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " +"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " +"" +msgstr "" +"DAS DOKUMENT UND VERÄNDERTE FASSUNGEN DES DOKUMENTS WERDEN UNTER DEN " +"BEDINGUNGEN DER GNU FREE DOCUMENTATION LICENSE ZUR VERFÜGUNG GESTELLT MIT DEM " +"WEITERGEHENDEN VERSTÄNDNIS, DASS: " + +#: C/glabels.xml:52(firstname) +msgid "Jim" +msgstr "Jim" + +#: C/glabels.xml:53(surname) +msgid "Evins" +msgstr "Evins" + +#: C/glabels.xml:87(revnumber) +msgid "gLabels Manual V2.2.6" +msgstr "gLabels-Handbuch V2.2.6" + +#: C/glabels.xml:88(date) +msgid "October 2009" +msgstr "October 2009" + +#: C/glabels.xml:90(para) +msgid "Mario Blättermann mariobl@gnome.org" +msgstr "Mario Blättermann mariobl@gnome.org" + +#: C/glabels.xml:97(revnumber) +msgid "gLabels Manual V2.2" +msgstr "gLabels-Handbuch V2.2" + +#: C/glabels.xml:98(date) +msgid "December 2007" +msgstr "Dezember 2007" + +#: C/glabels.xml:100(para) +msgid "Jim Evins evins@snaught.com" +msgstr "Jim Evins evins@snaught.com" + +#: C/glabels.xml:108(releaseinfo) +msgid "" +"This manual describes version 2.2.6 of gLabels." +msgstr "" +"Dieses Handbuch beschreibt Version 2.2.6 von gLabels." + +#: C/glabels.xml:111(title) +msgid "Feedback" +msgstr "Rückmeldungen" + +#: C/glabels.xml:112(para) +msgid "" +"To report a bug or make a suggestion regarding the gLabels application or this manual, follow the directions in the gLabels Contact Page." +msgstr "" +"Um einen Fehler zu melden oder einen Vorschlag zur Anwendung " +"gLabels oder zu diesem Handbuch zu machen, folgen " +"Sie den Anweisungen auf der gLabels-Kontaktseite." + +#: C/glabels.xml:121(primary) +msgid "gLabels" +msgstr "gLabels" + +#: C/glabels.xml:124(primary) +msgid "glabels" +msgstr "glabels" + +#: C/glabels.xml:135(title) +msgid "Introduction" +msgstr "Einführung" + +#: C/glabels.xml:137(para) +msgid "" +"The gLabels application is a lightweight program " +"for creating labels and business cards for the GNOME desktop environment. It is designed to work with various laser/ink-jet " +"peel-off label and business card sheets that you'll find at most office " +"supply stores." +msgstr "" +"Die Anwendung gLabels ist ein ressourcenschonendes " +"Programm zum Erstellen von Etiketten und Visitenkarten für die " +"GNOME-Arbeitsumgebung. Es wurde für die " +"verschiedensten mit Laser- oder Tintenstrahldruckern bedruckbaren (auch " +"selbstklebenden) Etiketten sowie Visitenkarten entworfen, so wie Sie sie in " +"den meisten Schreibwarengeschäften finden." + +#: C/glabels.xml:158(title) +msgid "Getting Started" +msgstr "Erste Schritte" + +#: C/glabels.xml:161(title) +msgid "To Start gLabels" +msgstr "gLabels starten" + +#: C/glabels.xml:162(para) +msgid "You can start gLabels in the following ways:" +msgstr "" +"Sie können gLabels auf folgende Arten starten:" + +#: C/glabels.xml:166(term) +msgid "Applications menu" +msgstr "Menü Anwendungen" + +#: C/glabels.xml:168(para) +msgid "" +"Choose OfficegLabels." +msgstr "" +"Wählen Sie BüroanwendungengLabels." + +#: C/glabels.xml:176(term) +msgid "Command line" +msgstr "Befehlszeile" + +#: C/glabels.xml:178(para) +msgid "Type glabels, then press Return:" +msgstr "" +"Geben Sie glabels ein, und drücken Sie dann die " +"Eingabetaste." + +#: C/glabels.xml:186(title) +msgid "When You Start gLabels" +msgstr "Beim Start von gLabels" + +#: C/glabels.xml:187(para) +msgid "" +"When you start gLabels, the following window is " +"displayed." +msgstr "" +"Nach dem Start von gLabels erscheint folgendes " +"Fenster:" + +#: C/glabels.xml:191(title) +msgid "gLabels Start Up Window" +msgstr "gLabels-Startfenster" + +#. for example, the items on the menubar and on the toolbar. This section is optional. +#: C/glabels.xml:205(para) +msgid "" +"The gLabels window contains the following elements:" +msgstr "" +"Das gLabels-Fenster enthält folgende Elemente:" + +#: C/glabels.xml:209(term) +msgid "Menubar." +msgstr "Menüleiste." + +#: C/glabels.xml:211(para) +msgid "" +"The menus on the menubar contain all of the commands you need to create and " +"edit labels and business cards in gLabels." +msgstr "" +"Die Menüs in der Menüleiste enthalten alle Befehle, die Sie zum Erstellen und " +"Bearbeiten von Etiketten und Visitenkarten in gLabels benötigen." + +#: C/glabels.xml:217(term) +msgid "Main toolbar." +msgstr "Haupt-Werkzeugleiste." + +#: C/glabels.xml:219(para) +msgid "" +"The main toolbar contains a subset of common File and Edit commands that you " +"can access from the menubar." +msgstr "" +"Die Haupt-Werkzeugleiste enthält eine Auswahl der Befehle, die Sie über die " +"Menüleiste in den Menüs »Datei« und »Bearbeiten« erreichen." + +#: C/glabels.xml:224(term) +msgid "Drawing toolbar." +msgstr "Zeichenwerkzeugleiste." + +#: C/glabels.xml:226(para) +msgid "" +"The drawing toolbar contains a subset of commands for editing the current " +"gLabels document." +msgstr "" +"Die Zeichenwerkzeugleiste enthält eine Auswahl von Befehlen zum Bearbeiten " +"des aktuellen gLabels-Dokuments." + +#: C/glabels.xml:231(term) +msgid "Display area." +msgstr "Anzeigebereich." + +#: C/glabels.xml:233(para) +msgid "" +"The display area is the main drawing interface to gLabels." +msgstr "" +"Der Anzeigebereich ist die Zeichenfläche für gLabels." + +#: C/glabels.xml:238(term) +msgid "Object sidebar." +msgstr "Objekt-Seitenleiste." + +#: C/glabels.xml:240(para) +msgid "" +"The object sidebar provides an interface for viewing and editing all " +"properties of an individual object." +msgstr "" +"Die Objekt-Seitenleiste stellt eine Schnittstelle zum Betrachten und " +"Bearbeiten der Eigenschaften eines bestimmten Objekts zur Verfügung." + +#: C/glabels.xml:245(term) +msgid "Properties toolbar." +msgstr "Eingenschaften-Werkzeugleiste." + +#: C/glabels.xml:247(para) +msgid "" +"The properties toolbar contains a set of tools to manipulate the properties " +"of selected objects and set default properties for new objects." +msgstr "" +"Die Eigenschaften-Werkzeugleiste enthält eine Reihe von Werkzeugen zum " +"Manipulieren der Eigenschaften ausgewählter Objekte sowie zum Setzen der " +"Standardeigenschaften für neue Objekte." + +#: C/glabels.xml:253(term) +msgid "Statusbar." +msgstr "Statusleiste." + +#: C/glabels.xml:255(para) +msgid "" +"The statusbar displays information about current gLabels activity and contextual information about the menu items." +msgstr "" +"In der Statusleiste werden Informationen über die aktuelle " +"gLabels-Aktivität und Kontextinformationen über " +"die Menüpunkte angezeigt." + +#: C/glabels.xml:271(title) +msgid "Usage" +msgstr "Benutzung" + +#: C/glabels.xml:275(title) +msgid "To Create a New Label or Card" +msgstr "Erstellen eines neuen Etiketts oder einer neuen Karte" + +#: C/glabels.xml:277(para) +msgid "" +"To create a new label or business card, choose FileNew to display the " +"New Label or Card dialog. Select the media type and " +"orientation for the new document, then click OK. A new " +"document is displayed in the display area of the gLabels window." +msgstr "" +"Um ein neues Etikett oder eine neue Visitenkarte anzulegen, wählen Sie " +"DateiNeu, um den Dialog Neues Etikett oder neue Karte " +"anzuzeigen. Wählen Sie den Medientyp und die Ausrichtung für das neue " +"Dokument aus und klicken Sie anschließend auf OK. Ein " +"neues Dokument erscheint im Anzeigebereich des gLabels-Fensters." + +#: C/glabels.xml:286(para) +msgid "" +"If your particular media type is missing from this dialog, see " +msgstr "" +"Falls Ihr spezieller Medientyp in diesem Dialog nicht angezeigt wird, siehe " +"." + +#: C/glabels.xml:293(title) +msgid "To Open a File" +msgstr "Öffnen einer Datei" + +#: C/glabels.xml:295(para) +msgid "" +"To open a file, choose FileOpen to display the Open File " +"dialog. Select the file that you want to open, then click OK. The file is displayed in the display area of the " +"gLabels window." +msgstr "" +"Um eine Datei zu öffnen, wählen Sie DateiÖffnen, um den Dialog " +"Datei öffnen anzuzeigen. Wählen Sie die gewünschte Datei " +"aus und klicken Sie dann auf Öffnen. Die Datei wird im " +"Anzeigebereich des gLabels-Fensters geöffnet." + +#: C/glabels.xml:302(para) +msgid "" +"You can also open multiple files in gLabels. The " +"application creates a separate application window for each open file." +msgstr "" +"Sie können in gLabels auch mehrere Dateien öffnen. " +"Die Anwendung erzeugt ein separates Fenster für jede geöffnete Datei." + +#: C/glabels.xml:306(para) +msgid "" +"The application records the paths and filenames of the most recent files that " +"you have edited and displays the files as menu items on the " +"FileRecent Files menu." +msgstr "" +"Die Anwendung speichert die Pfade und Dateinamen der von Ihnen zuletzt " +"bearbeiteten Dateien. Diese Dateien werden als Einträge im Menü " +"DateiZuletzt benutzt angezeigt." + +#: C/glabels.xml:316(title) +msgid "To Open Multiple Files from a Command Line" +msgstr "Öffnen mehrerer Dateien aus einer Befehlszeile" + +#: C/glabels.xml:318(para) +msgid "" +"You can run gLabels from a command line and open a " +"single file or multiple files. To open multiple files from a command line, " +"type the following command, then press Return:" +msgstr "" +"Sie können gLabels aus einer Befehlszeile starten " +"und eine Datei oder mehrere Dateien öffnen. Um mehrere Dateien aus einer " +"Befehlszeile zu öffnen, geben Sie den folgenden Befehl ein und drücken dann " +"die Eingabetaste:" + +#: C/glabels.xml:324(replaceable) +msgid "file1.glabels file2.glabels file3.glabels" +msgstr "Datei1.glabels Datei2.glabels Datei3.glabels" + +#: C/glabels.xml:323(command) +msgid "glabels " +msgstr "glabels " + +#: C/glabels.xml:327(para) +msgid "" +"When the application starts, the files that you specify are displayed in " +"separate gLabels windows." +msgstr "" +"Wenn die Anwendung startet, werden die von Ihnen angegebenen Dateien in " +"separaten gLabels-Fenstern angezeigt." + +#: C/glabels.xml:334(title) +msgid "To Save a File" +msgstr "Speichern einer Datei" + +#: C/glabels.xml:336(para) +msgid "You can save files in the following ways:" +msgstr "Sie können Dateien auf folgende Arten speichern:" + +#: C/glabels.xml:341(para) +msgid "" +"To save changes to an existing file, choose FileSave." +msgstr "" +"Um die Änderungen in der bereits vorhandenen Datei zu speichern, wählen Sie " +"DateiSpeichern." + +#: C/glabels.xml:348(para) +msgid "" +"To save a new file or to save an existing file under a new filename, choose " +"FileSave As. Enter a name for the file in the Save As " +"dialog box, then click OK." +msgstr "" +"Um eine neue Datei oder eine bestehende Datei unter einem neuen Dateinamen zu " +"speichern, wählen Sie DateiSpeichern unter. Geben Sie " +"einen Namen für die Datei im Dialogfeld Speichern unter " +"ein und klicken Sie anschließend auf OK. " + +#: C/glabels.xml:361(title) +msgid "To Change Label Properties" +msgstr "Ändern der Eigenschaften eines Etiketts" + +#: C/glabels.xml:363(para) +msgid "" +"To change the media type and/or orientation of a label, choose " +"FileProperties to display the Label properties dialog. " +"Select the new media type and orientation for the document, then click " +"OK." +msgstr "" +"Um den Medientyp oder die Ausrichtung des Etiketts zu ändern, wählen Sie " +"DateiEigenschaften, um den Dialog Etikett-Eigenschaften " +"anzuzeigen. Wählen Sie den neuen Medientyp für das Dokument aus und klicken " +"Sie anschließend auf OK." + +#: C/glabels.xml:374(title) +msgid "To Create a Custom Template" +msgstr "Erstellen einer benutzerdefinierten Vorlage" + +#: C/glabels.xml:376(para) +msgid "" +"To create a new custom template, choose FileTemplate Designer ... to " +"display the Template Designer dialog. This dialog will " +"assist you in creating a custom template for most types of label or card " +"stationery that you may encounter." +msgstr "" +"Um eine neue benutzerdefinierte Vorlage zu erstellen, wählen Sie " +"DateiVorlagen-Designer …, um den Vorlagen-Designer-" +"Dialog anzuzeigen. Dieser Dialog hilft Ihnen bei der Erstellung einer " +"benutzerdefinierten Vorlage für die meisten Typen von Etiketten oder " +"Visitenkarten, die Ihnen in Schreibwarengeschäften begegnen könnten." + +#: C/glabels.xml:383(para) +msgid "" +"If you prefer, you can create your templates manually. For this option see " +"" +msgstr "" +"Falls Sie dies bevorzugen, können Sie Ihre Vorlagen auch manuell erstellen. " +"Weitere Informationen hierzu finden Sie in ." + +#: C/glabels.xml:391(title) +msgid "To Close a File" +msgstr "Schließen einer Datei" + +#: C/glabels.xml:393(para) +msgid "" +"To close the current document, choose FileClose to close the " +"application window. If the current document is modified, a confirmation " +"dialog will be presented, allowing you to save the document or cancel the " +"command. If the window being closed is the only open window, " +"gLabels will exit." +msgstr "" +"Um das aktuelle Dokument zu schließen, wählen Sie DateiSchließen, um das " +"Anwendungsfenster zu schließen. Falls das aktuelle Dokument bearbeitet wurde, " +"wird ein Bestätigungsdialog geöffnet, in welchem Sie das Dokument speichern " +"oder den Vorgang abbrechen können. Falls das zu schließende Fenster das " +"einzige offene Fenster ist, wird gLabels dadurch " +"beendet." + +#: C/glabels.xml:405(title) +msgid "To Quit gLabels" +msgstr "gLabels beenden" + +#: C/glabels.xml:407(para) +msgid "" +"To quit gLabels, choose FileQuit. This is equivalent to " +"closing all open windows. See ." +msgstr "" +"Um gLabels zu beenden, wählen Sie " +"DateiBeenden. Dadurch werden alle offenen Fenster geschlossen. Siehe ." + +#: C/glabels.xml:417(title) +msgid "To Print Labels or Cards" +msgstr "Drucken von Etiketten oder Karten" + +#: C/glabels.xml:419(para) +msgid "" +"To print labels or cards, choose FilePrint to display the " +"Print dialog. Once print options have been selected, " +"click Print to print the labels or cards. To simply " +"preview the results, click Print Preview instead." +msgstr "" +"Um Etiketten oder Visitenkarten zu drucken, wählen Sie " +"DateiDrucken, um den Drucken-Dialog anzuzeigen. Nachdem " +"Sie die Druckoptionen ausgewählt haben, klicken Sie auf Drucken, um die Etiketten oder Visitenkarten zu drucken. Um zunächst eine " +"Vorschau auf die Druckergebnisse zu erhalten, klicken Sie auf " +"Druckvorschau." + +#: C/glabels.xml:426(para) +msgid "" +"The Print dialog allows you to specify the following " +"print options:" +msgstr "" +"Im Dialog Drucken können Sie die folgenden Optionen zum " +"Drucken festlegen:" + +#: C/glabels.xml:430(title) +msgid "The Labels Tab of the Print Dialog" +msgstr "Der Reiter »Etiketten« des Druckdialogs" + +#: C/glabels.xml:435(guilabel) +msgid "Print control (Simple)" +msgstr "Drucksteuerung (einfach)" + +#: C/glabels.xml:438(para) +msgid "" +"For simple labels or cards (no document merge), the labels tabbed section contains the following copy controls." +msgstr "" +"Für einfache Etiketten oder Karten (keine Dokumentmischung) enthält der " +"Reiter »Labels« die folgenden Einstellmöglichkeiten." + +#: C/glabels.xml:443(title) +msgid "Print Copy Controls" +msgstr "Angeben der Kopien" + +#. ==== End of Figure ==== +#: C/glabels.xml:454(para) +msgid "" +"The number of copies of the label can be selected by choosing the number of " +"full sheets to print, or a specific subset of labels on a single sheet." +msgstr "" +"Die Anzahl der Kopien können Sie wählen, indem Sie die Anzahl der vollständig " +"zu druckenden Seiten oder eine Teilmenge von Etiketten auf einer einzelnen " +"Seite auswählen." + +#: C/glabels.xml:458(para) +msgid "" +"The mini-preview can also be used to graphically select the subset of labels " +"by clicking the first label on the mini-preview and dragging to the last " +"label." +msgstr "" +"Die verkleinerte Vorschau können Sie auch dazu verwenden, einen Teil der " +"Etiketten grafisch auszuwählen, indem Sie auf das erste Etikett klicken und " +"es auf das letzte Etikett ziehen." + +#: C/glabels.xml:466(guilabel) +msgid "Print control (Merge)" +msgstr "Drucksteuerung (Mischen)" + +#: C/glabels.xml:469(para) +msgid "" +"For labels or cards using the document merge (also known as \"mail merge\") " +"capability, the labels tabbed section contains the " +"following merge controls instead of copy controls." +msgstr "" +"Für Etiketten oder Karten unter Verwendung der Dokumentmischung enthält " +"dieser Reiter die folgenden Einstellungen zur Mischung von Dokumenten " +"anstelle der Festlegung der Kopien." + +#: C/glabels.xml:475(title) +msgid "Print Document Merge Controls" +msgstr "Steuerung der Einmischung von Dokumenten" + +#. ==== End of Figure ==== +#: C/glabels.xml:486(para) +msgid "" +"The total number of labels or cards printed is the product of the number of " +"records in the merge source and the number of copies selected. If multiple " +"copies are selected, these can be either collated (copies of the same record " +"grouped together) or un-collated (one copy each record is printed before next " +"copy)." +msgstr "" +"Die Gesamtzahl der gedruckten Etiketten oder Karten ergibt sich als Produkt " +"aus der Anzahl der Datensätze in der Einmischquelle und der Anzahl der " +"gewählten Kopien. Falls mehrere Kopien gewählt wurden, können diese entweder " +"zusammengefasst werden (durch Gruppieren der Kopien des gleichen Datensatzes) " +"oder nicht zusammengefasst (eine Kopie jedes Datensatzes wird immer vor der " +"nächsten Kopie gedruckt)." + +#: C/glabels.xml:493(para) +msgid "" +"Printing can begin on any label on the first sheet. This can be selected with " +"the Start on label spinbutton." +msgstr "" +"Der Druck kann mit jedem beliebigen Etikett der ersten Seite begonnen werden. " +"Dies können Sie im Einstellfeld Start bei Etikett " +"auswählen." + +#: C/glabels.xml:497(para) +msgid "" +"The mini-preview can also be used to graphically select this first label, by " +"clicking on the desired label in the mini-preview." +msgstr "" +"In der verkleinerten Vorschau können Sie das erste Etikett grafisch " +"auswählen, indem Sie das gewünschte Etikett anklicken." + +#: C/glabels.xml:504(guilabel) +msgid "Options" +msgstr "Optionen" + +#: C/glabels.xml:506(para) +msgid "The following options can also be selected." +msgstr "Die folgenden Optionen können ebenfalls gewählt werden." + +#: C/glabels.xml:509(guilabel) +msgid "print outlines" +msgstr "Begrenzungen drucken" + +#: C/glabels.xml:510(para) +msgid "" +"Print outlines of labels. This option is useful for dry-runs, to test printer " +"alignment." +msgstr "" +"Begrenzungen der Etiketten drucken. Diese Option ist nützlich, wenn Sie die " +"Lage des Papiers im Drucker prüfen wollen." + +#: C/glabels.xml:514(guilabel) +msgid "print in reverse" +msgstr "Spiegelbildlich drucken" + +#: C/glabels.xml:515(para) +msgid "" +"Prints the labels as mirror images. This option is useful for printing on " +"clear labels that will be viewed from the reverse side (e.g. in a car window)." +msgstr "" +"Druckt die Etiketten spiegelbildlich. Diese Option ist nützlich für das " +"Drucken durchsichtiger Aufkleber, die von der Rückseite aus betrachtet werden " +"(z.B. hinter Autoscheiben)." + +#: C/glabels.xml:520(guilabel) +msgid "print crop marks" +msgstr "Schnitt" + +#: C/glabels.xml:521(para) +msgid "" +"Prints crop marks along the edge of the sheet. This option is useful for " +"printing on blank stock, to be cut after printing. This option does not work " +"well with all templates." +msgstr "" +"Druckt Schnittmarken entlang der Papierränder. Diese Option ist nützlich zum " +"Drucken auf Papier, das erst nach dem Druck beschnitten werden soll. Diese " +"Option funktioniert eventuell nicht mit allen Vorlagen." + +#: C/glabels.xml:536(title) +msgid "To Create New Objects" +msgstr "Erstellen neuer Objekte" + +#: C/glabels.xml:538(para) +msgid "" +"Objects are created by choosing the appropriate selection under the " +"ObjectsCreate Object submenu or the Drawing Toolbar. This will place the display area into object creation mode as " +"indicated by its cursor. To return to the default object selection mode " +"without creating an object, choose ObjectsSelect Mode. This will return " +"the display area's cursor to the default selection arrow." +msgstr "" +"Objekte können ausgewählt werden, indem Sie das entsprechende Objekt in " +"ObjekteErzeugen auswählen oder über die Zeichenwerkzeugleiste. Dadurch wird der Anzeigebereich in den Objekterzeugungsmodus " +"versetzt, was am Mauszeiger erkennbar ist. Um zum vorgegebenen " +"Objektauswahlmodus zurückzukehren, ohne ein Objekt zu erzeugen, wählen Sie " +"ObjekteAuswahlmodus. Dadurch wird der Mauszeiger im Anzeigebereich " +"wieder in den vorgegebenen Auswahlzeiger geändert." + +#: C/glabels.xml:548(para) +msgid "The following describes the object creation mode for each object type:" +msgstr "" +"Nachfolgend wird der Modus zur Erstellung der Objekte für jeden Objekttyp " +"beschrieben:" + +#: C/glabels.xml:554(term) C/glabels.xml:1123(guilabel) +msgid "Text" +msgstr "Text" + +#: C/glabels.xml:556(para) +msgid "" +"Click the desired location of the upper left corner of the text object. New " +"text objects are initialized with the string \"Text.\" To change this text, " +"or other properties, see ." +msgstr "" +"Klicken Sie auf die gewünschte Stelle in der linken oberen Ecke des " +"Textobjekts. Neue Textobjekte erhalten anfänglich den Inhalt »Text«. Wie Sie " +"diesen Text oder andere Eigenschaften ändern können, finden Sie in ." + +#: C/glabels.xml:564(term) +msgid "Box" +msgstr "Rechteck" + +#: C/glabels.xml:566(para) +msgid "" +"Click the desired location of the upper left corner of the box object and " +"drag to the desired location of the lower right corner. If you simply click " +"in a single location, a square box will be created. To change properties of " +"the box object, see ." +msgstr "" +"Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des " +"Rechteckobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie " +"einfach auf eine Stelle klicken, wird ein quadratisches Objekt erzeugt. Wie " +"Sie die Eigenschaften des Rechteckobjekts ändern können, finden Sie in ." + +#: C/glabels.xml:575(term) C/glabels.xml:1149(guilabel) +msgid "Line" +msgstr "Linie" + +#: C/glabels.xml:577(para) +msgid "" +"Click the desired location of one end of the line object and drag to the " +"desired location of the other end. If you simply click in a single location, " +"a diagonal line will be created. To change properties of the line object, see " +"." +msgstr "" +"Klicken Sie auf die gewünschte Stelle für das Ende des Linienobjekts und " +"ziehen Sie zur gewünschten Stelle des anderen Endes. Wenn Sie einfach auf " +"eine Stelle klicken, wird eine diagonale Linie erzeugt. Wie Sie die " +"Eigenschaften des Linienobjekts ändern können, finden Sie in ." + +#: C/glabels.xml:586(term) +msgid "Ellipse" +msgstr "Ellipse" + +#: C/glabels.xml:588(para) +msgid "" +"Click the desired location of the upper left corner of the ellipse object and " +"drag to the desired location of the lower right corner. If you simply click " +"in a single location, a circle will be created. To change properties of the " +"ellipse object, see ." +msgstr "" +"Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des " +"Ellipsenobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie " +"einfach auf eine Stelle klicken, wird ein Kreis erzeugt. Wie Sie die " +"Eigenschaften des Ellipsenobjekts ändern können, finden Sie in ." + +#: C/glabels.xml:597(term) +msgid "Image" +msgstr "Image" + +#: C/glabels.xml:599(para) +msgid "" +"Click the desired location of the upper left corner of the image object and " +"drag to the desired location of the lower right corner. If you simply click " +"in a single location, a square will be created. New image objects are " +"initialized with a simple checkerboard image. To change this image, or other " +"properties of the image object, see ." +msgstr "" +"Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des " +"Bildobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie " +"einfach auf eine Stelle klicken, wird ein quadratisches Objekt erzeugt. Neue " +"Bildobjekte erhalten anfänglich ein Schachbrettmuster. Wie Sie dies oder " +"andere Eigenschaften des Bildobjekts ändern können, finden Sie in ." + +#: C/glabels.xml:610(term) +msgid "Barcode" +msgstr "Strichcode" + +#: C/glabels.xml:612(para) +msgid "" +"Click the desired location of the upper left corner of the barcode object. " +"New barcode objects are initialized to a POSTNET barcode with representative " +"data. To change data and properties of the barcode object, see ." +msgstr "" +"Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des " +"Strichcodeobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Neue " +"Objekte erhalten anfänglich einen POSTNET-Strichcode mit Beispieldaten. Wie " +"Sie die Eigenschaften des Strichcodeobjekts ändern können, finden Sie in " +"." + +#: C/glabels.xml:627(title) +msgid "To Select Objects" +msgstr "Auswählen von Objekten" + +#: C/glabels.xml:629(para) +msgid "" +"A prerequisite for performing operations on objects is the selection of " +"individual objects or groups of objects. The display area must be in the " +"object selection mode to create new selections, as indicated by an arrow " +"cursor. The object selection mode is selected by the " +"ObjectsSelect Mode menu item, or the corresponding command on the Drawing " +"Toolbar." +msgstr "" +"Eine Voraussetzung zum Ausführen von Operationen auf Objekten ist die Auswahl " +"individueller Objekte oder Gruppen von Objekten. Der Anzeigebereich muss sich " +"im Objektauswahlmodus befinden, was durch einen pfeilförmigen Mauszeiger " +"angezeigt wird. Der Objektauswahlmodus wird über den Menüeintrag " +"ObjekteAuswahlmodus aktiviert oder über das entsprechende Objekt in der " +"Zeichenwerkzeugleiste." + +#: C/glabels.xml:642(term) +msgid "Selecting a single object" +msgstr "Auswahl eines einzelnen Objekts" + +#: C/glabels.xml:644(para) +msgid "" +"A single object can be selected simply by clicking on the desired object in " +"the display area. Once selected the object will be highlighted with a set of " +"resizing handles." +msgstr "" +"Ein einzelnes Objekt können Sie auswählen, indem Sie das gewünschte Objekt im " +"Anzeigebereich anklicken. Nach dem Anklicken wird das Objekt durch " +"Anfasspunkte zur Größenänderung hervorgehoben." + +#: C/glabels.xml:652(term) +msgid "Aggregate object selections" +msgstr "Auswahl mehrerer Objekte" + +#: C/glabels.xml:654(para) +msgid "" +"Multiple objects can be selected by first selecting the first object as above " +"and then by holding the Ctrl key while selecting additional " +"objects. Individual objects can be added to an existing selection at any time " +"by holding the Ctrl key while selecting the desired objects. " +"All objects can also be selected by using the EditSelect All menu item. All " +"objects in an aggregate object selection will be highlighted." +msgstr "" +"Sie können mehrere Objekte auswählen, indem Sie zunächst das erste Objekt " +"auswählen, wie oben beschrieben. Halten Sie dann bei der Auswahl weiterer " +"Objekte die Strg-Taste gedrückt. Zusätzliche Objekte können " +"Sie jederzeit zur Auswahl hinzufügen, wenn Sie wiederum die Strg-Taste gedrückt halten und die gewünschten Objekte auswählen. Alle " +"Objekte lassen sich über den Menüeintrag BearbeitenAlle auswählen auswählen. " +"Alle Objekte in einer zusammenhängenden Objektauswahl werden hervorgehoben " +"dargestellt." + +#: C/glabels.xml:668(term) +msgid "Area selections" +msgstr "Bereichsauswahl" + +#: C/glabels.xml:670(para) +msgid "" +"Multiple objects can also be selected by clicking an empty area and dragging " +"to form a rectangular area. When released, all objects contained in the area " +"will form an aggregate selection. An area selection can be used to add to an " +"existing selection by holding the Ctrl key while performing " +"the selection." +msgstr "" +"Sie können auch mehrere Objekte auswählen, indem Sie in einen leeren Bereich " +"klicken und mit der Maus die Form eines Rechtecks aufziehen. Daraufhin bilden " +"alle Objekte in diesem Bereich eine zusammenhängende Auswahl. Eine " +"Bereichsauswahl kann zum Hinzufügen einer vorhandenen Auswahl benutzt werden, " +"wenn Sie bei der Auswahl die Strg-Taste gedrückt halten." + +#: C/glabels.xml:680(term) +msgid "Unselecting objects" +msgstr "Auswahl von Objekten aufheben" + +#: C/glabels.xml:682(para) +msgid "" +"Individual objects can be removed from an existing selection by holding the " +"Ctrl key while clicking on a previously selected object. An " +"entire selection can be dismissed by using the EditUn-select All menu item or by " +"simply clicking any empty space in the display area. Once an object is " +"unselected its highlight is removed." +msgstr "" +"Sie können individuelle Objekte aus einer vorhandenen Auswahl entfernen, wenn " +"Sie beim Klicken auf ein zuvor ausgewähltes Objekt die Strg-" +"Taste gedrückt halten. Die gesamte Auswahl können Sie rückgängig machen, " +"indem Sie im Menü BearbeitenAlle " +"Markierungen löschen wählen. Sobald ein Objekt " +"nicht mehr ausgewählt ist, wird es nicht mehr hervorgehoben dargestellt." + +#: C/glabels.xml:699(title) +msgid "Clipboard Commands" +msgstr "Befehle für die Zwischenablage" + +#: C/glabels.xml:701(para) +msgid "" +"Object selections can be manipulated using the standard clipboard operations " +"Cut, Copy, " +"Paste, and Delete." +msgstr "" +"Objektauswahlen können durch die Standardoperationen der Zwischenablage " +"Ausschneiden, Kopieren, " +"Einfügen und Löschen " +"manipuliert werden." + +#: C/glabels.xml:712(keycap) C/glabels.xml:728(keycap) +#: C/glabels.xml:744(keycap) +msgid "Ctrl" +msgstr "Strg" + +#: C/glabels.xml:712(keycap) +msgid "X" +msgstr "X" + +#: C/glabels.xml:714(guimenuitem) +msgid "Cut" +msgstr "Ausschneiden" + +#: C/glabels.xml:718(para) +msgid "" +"Moves selected objects to the clipboard. The objects are then available for " +"pasting back into the current document or another document." +msgstr "" +"Verschiebt die ausgewählten Objekte in die Zwischenablage. Diese Objekte sind " +"dann verfügbar, um später in das aktuelle Dokument oder ein anderes Dokument " +"eingefügt zu werden." + +#: C/glabels.xml:728(keycap) +msgid "C" +msgstr "C" + +#: C/glabels.xml:730(guimenuitem) +msgid "Copy" +msgstr "Kopieren" + +#: C/glabels.xml:734(para) +msgid "" +"Copies selected objects to the clipboard without deleting them. The objects " +"are then available for pasting back into the current document or another " +"document." +msgstr "" +"Kopiert die ausgewählten Objekte in die Zwischenablage, ohne sie zu " +"entfernen. Diese Objekte sind dann verfügbar, um später in das aktuelle " +"Dokument oder ein anderes Dokument eingefügt zu werden." + +#: C/glabels.xml:744(keycap) +msgid "V" +msgstr "V" + +#: C/glabels.xml:746(guimenuitem) +msgid "Paste" +msgstr "Einfügen" + +#: C/glabels.xml:750(para) +msgid "" +"Pastes objects from the clipboard into the current document. " +"gLabels can only paste objects from another " +"gLabels document." +msgstr "" +"Fügt Objekte aus der Zwischenablage in das aktuelle Dokument ein. " +"gLabels kann nur Objekte aus anderen " +"gLabels-Dokumenten einfügen." + +#: C/glabels.xml:760(keycap) C/glabels.xml:762(guimenuitem) +msgid "Delete" +msgstr "Löschen" + +#: C/glabels.xml:766(para) +msgid "Deletes selected objects without placing them on the clipboard." +msgstr "" +"Entfernt die ausgewählten Objekte, ohne sie in die Zwischenablage zu " +"verschieben." + +#: C/glabels.xml:777(title) +msgid "To Edit Object Properties" +msgstr "Bearbeiten der Objekteigenschaften" + +#: C/glabels.xml:779(para) +msgid "" +"Most object properties can be modified through the object editor sidebar, " +"illustrated below. To use the object editor, a single object must first be " +"selected. See ." +msgstr "" +"Die meisten Objekteigenschaften können Sie über die Objekteditor-Seitenleiste " +"verändern, wie unten illustriert. Um den Objekteditor zu verwenden, muss " +"zunächst ein einzelnes Objekt ausgewählt werden. Siehe ." + +#: C/glabels.xml:786(title) +msgid "Object Editor Sidebar" +msgstr "Objekteditor-Seitenleiste" + +#. ==== End of Figure ==== +#: C/glabels.xml:797(para) +msgid "" +"The object editor will contain a subset of the following tabbed sections, " +"depending on object type:" +msgstr "" +"Der Objekteditor bietet eine Auswahl der folgenden Reiter, abhängig vom " +"Objekttyp:" + +#: C/glabels.xml:801(title) +msgid "Text Tabbed Section (Text objects)" +msgstr "Text-Reiter (Textobjekte)" + +#: C/glabels.xml:803(para) +msgid "" +"This section contains a small editor for changing the content of a text " +"object. It also contains a dropdown menu of available document merge keys, " +"that can be inserted into text." +msgstr "" +"Dieser Abschnitt bietet einen kleinen Editor zum Bearbeiten des Inhalts eines " +"Textobjekts. Weiterhin ist ein Ausklappmenü mit den verfügbaren Schlüsseln " +"zur Dokumentmischung enthalten, die in den Text eingefügt werden können." + +#: C/glabels.xml:810(title) +msgid "Image Tabbed Section (Image objecs)" +msgstr "Bild-Reiter (Bild-Objekte)" + +#: C/glabels.xml:812(para) +msgid "" +"This section contains a file entry with preview to select image files. The " +"browse button can be used to easily locate image files. Alternatively, a " +"document merge key can be used instead to provide a filename at print time." +msgstr "" +"Dieser Abschnitt enthält einen Dateiwähler mit Vorschau zur Auswahl von " +"Bilddateien. Der »Durchsuchen«-Knopf kann zum Suchen von Bilddateien benutzt " +"werden. Alternativ können Sie einen Schlüssel zur Dokumenteinmischung " +"anstelle eines Dateinamens angeben, der bei der Ausgabe des Dokuments ersetzt " +"wird." + +#: C/glabels.xml:820(title) +msgid "Data Tabbed Section (Barcode objecs)" +msgstr "Daten-Reiter (Strichcode-Objekte)" + +#: C/glabels.xml:822(para) +msgid "" +"This section contains a text entry to enter literal barcode data. " +"Alternatively, a document merge key can be used to provide this data at print " +"time." +msgstr "" +"Dieser Abschnitt enthält ein Textfeld zur Eingabe von Strichcode-Daten. " +"Alternativ kann hier ein Schlüssel zur Dokumentmischung eingetragen werden, " +"der beim Druck für die Bereitstellung der richtigen Daten sorgt." + +#: C/glabels.xml:829(title) +msgid "Style Tabbed Section (Text objects)" +msgstr "Stil-Reiter (Text-Objekte)" + +#: C/glabels.xml:831(para) +msgid "" +"This section contains controls to select text properties, including font " +"family, font size, font weight, color, and text justification." +msgstr "" +"Dieser Abschnitt enthält Einstellmöglichkeiten für die Texteigenschaften, wie " +"Schriftfamilie, Schriftgröße, Schriftstärke, Schriftfarbe und Ausrichtung des " +"Texts." + +#: C/glabels.xml:838(title) +msgid "Style Tabbed Section (Barcode objecs)" +msgstr "Stil-Reiter (Strichcode-Objekte)" + +#: C/glabels.xml:840(para) +msgid "" +"This section contains controls to select barcode properties, including " +"barcode style, color, whether to print text, and whether to include a " +"checksum digit." +msgstr "" +"Dieser Abschnitt enthält Einstellmöglichkeiten für die Eigenschaften des " +"Strichcodes, wie Stil, Farbe, Drucken von Text oder Beinhalten einer " +"Prüfsumme." + +#: C/glabels.xml:847(title) +msgid "Line Tabbed Section" +msgstr "Linie-Reiter" + +#: C/glabels.xml:849(para) +msgid "" +"This section contains controls to select properties of lines and outlines. " +"These properties include line width and color." +msgstr "" +"Dieser Abschnitt enthält Einstellmöglichkeiten für die Auswahl von " +"Eigenschaften von Linien und Begrenzungen, wie Linienbreite und -farbe." + +#: C/glabels.xml:855(title) +msgid "Fill Tabbed Section" +msgstr "Füllung-Reiter" + +#: C/glabels.xml:857(para) +msgid "" +"This section contains controls to select fill properties of box and ellipse " +"objects. Currently the only fill property is fill color." +msgstr "" +"Dieser Abschnitt enthält Einstellmöglichkeiten für die Auswahl der " +"Füllungseigenschaften von Rechteck- und Ellipsenobjekten. Derzeit ist nur die " +"Einstellung der Füllungsfarbe möglich." + +#: C/glabels.xml:864(title) +msgid "Size Tabbed Section (All except line objects)" +msgstr "Reiter »Größe« (alle außer Linienobjekte)" + +#: C/glabels.xml:866(para) +msgid "" +"This section contains controls to select the width and height of an object. A " +"checkbox is provided, so that the current aspect ratio can be locked while " +"manipulating the width and height controls. Image objects also provide a " +"button to reset the size to the image's natural size (Assumes 72DPI)." +msgstr "" +"Dieser Abschnitt enthält Einstellmöglichkeiten für die Höhe und die Breite " +"eines Objekts. Mit einem Ankreuzfeld können Sie die Werte aneinander koppeln, " +"so dass das Seitenverhältnis beim Ändern der Höhe oder Breite erhalten " +"bleibt. Für Bildobjekte gibt es außerdem einen Knopf zum Zurücksetzen des " +"Bildes auf Originalgröße, wobei eine Auflösung von 72 dpi angenommen wird." + +#: C/glabels.xml:875(title) +msgid "Size Tabbed Section (Line objects)" +msgstr "Reiter »Größe« (Linienobjekte)" + +#: C/glabels.xml:877(para) +msgid "" +"This section contains controls to select the length and angle of a line " +"object." +msgstr "" +"Dieser Abschnitt enthält Einstellmöglichkeiten für die Länge und den Winkel " +"eines Linienobjekts." + +#: C/glabels.xml:883(title) +msgid "Position Tabbed Section" +msgstr "Reiter »Position«" + +#: C/glabels.xml:885(para) +msgid "This section contains controls to change the position of an object." +msgstr "" +"Dieser Abschnitt beschreibt die Möglichkeiten zur Positionierung eines " +"Objekts." + +#: C/glabels.xml:892(title) +msgid "Shadow Tabbed Section (All except image and barcode objects)" +msgstr "Reiter »Schattierung« (alle außer Bild- und Strichcodeobjekten)" + +#: C/glabels.xml:894(para) +msgid "This section contains controls to add a shadow to an object." +msgstr "" +"Dieser Abschnitt enthält Einstellmöglichkeiten für die Schattierung eines " +"Objekts." + +#: C/glabels.xml:903(title) +msgid "Other Manipulations of Objects" +msgstr "Andere Manipulationen von Objekten" + +#: C/glabels.xml:905(para) +msgid "Objects can also be manipulated in the following ways." +msgstr "Objekte können auf die folgenden Arten manipuliert werden." + +#: C/glabels.xml:908(title) +msgid "Moving and Resizing Objects" +msgstr "Verschieben und Größenänderung von Objekten" + +#: C/glabels.xml:910(para) +msgid "" +"Objects can be moved by simply clicking on a selected object and dragging the " +"object to its new location. If the object is part of an aggregate selection, " +"all objects in the selection will move with the object being dragged, " +"maintaining their relative positions to one another. If no object is " +"selected, clicking on an object will create a new selection containing that " +"object. See ." +msgstr "" +"Objekte können Sie durch einfaches Anklicken und Ziehen des ausgewählten " +"Objekts zur neuen Position verschieben. Falls dieses Objekt Teil einer " +"Mehrfachauswahl ist, werden durch Ziehen dieses Objektes alle Objekte " +"verschoben, wobei deren Abstände untereinander erhalten bleiben. Falls kein " +"Objekt ausgewählt ist, wird durch Anklicken eines Objekts eine neue Auswahl " +"erzeugt, die dieses Objekt enthält. Siehe ." + +#: C/glabels.xml:918(para) +msgid "" +"A selected object can be resized by clicking one of its resize handle and " +"dragging it to obtain the new size." +msgstr "" +"Die Größe eines ausgewählten Objekts kann geändert werden, indem Sie auf " +"einen der Größenänderungs-Anfasspunkte klicken und diesen ziehen, um die " +"gewünschte Größe zu erreichen." + +#: C/glabels.xml:924(title) +msgid "Changing Stacking Order" +msgstr "Ändern der Reihenfolge der Ebenen" + +#: C/glabels.xml:926(para) +msgid "" +"Stacking order refers to relative position in the z-axis of objects. That is " +"when objects overlap, which object will appear on top of the other. By " +"default, newer objects will appear above older objects. To change this order, " +"select one or more objects and choose ObjectsOrderBring to Front to raise the selection to the top of the stacking " +"order, or choose ObjectsOrderSend to Back to lower the " +"selection to the bottom of the stacking order. These menuitems are also " +"available by right-clicking the display area when there is a non-empty " +"selection." +msgstr "" +"Die Stapelreihenfolge bezieht sich auf die relative Position in der Z-Achse " +"von Objekten. Das beschreibt beim Überlappen von Objekten, welches der " +"Objekte über den anderen erscheint. Per Vorgabe werden neue Objekte immer " +"oberhalb von bereits vorhandenen Objekten platziert. Um diese Anordnung zu " +"ändern, wählen Sie ObjekteAnordnungGanz nach vorn, um die Auswahl im Stapel nach oben zu verschieben, " +"oder ObjekteAnordnungGanz nach hinten, um die " +"Auswahl im Stapel nach unten zu verschieben. Diese Menüeinträge sind auch " +"durch einen Klick mit der rechten Maustaste auf den Ansichtsbereich " +"verfügbar, falls sich dort eine nicht leere Auswahl befindet." + +#: C/glabels.xml:944(title) +msgid "Rotating and Flipping Objects" +msgstr "Drehen und Spiegeln von Objekten" + +#: C/glabels.xml:946(para) +msgid "" +"Objects can be rotated 90 degrees in either direction, or flipped " +"horizontally or vertically, by choosing the appropriate menuitem in the " +"ObjectsRotate/Flip sub-menu. These menuitems are also available by right-clicking " +"the display area when there is a non-empty selection." +msgstr "" +"Objekte können um 90 Grad in jeder Richtung gedreht oder horizontal oder " +"vertikal gespiegelt werden. Wählen Sie hierzu den entsprechenden Eintrag im " +"Menü ObjekteDrehen/Spiegeln. Diese Menüeinträge sind auch verfügbar, wenn Sie " +"mit der rechten Maustaste in eine nicht leere Auswahl im Ansichtsbereich " +"klicken." + +#: C/glabels.xml:956(title) +msgid "Aligning Objects" +msgstr "Ausrichten von Objekten" + +#: C/glabels.xml:958(para) +msgid "" +"Objects can be aligned horizontally or vertically, relative to one another, " +"or relative to the center line of the label, by choosing the appropriate " +"menuitem from the ObjectsAlign " +"Horizontal or ObjectsAlign Horizontal sub-menus. " +"These menuitems are also available by right-clicking the display area when " +"there is a non-empty selection." +msgstr "" +"Objekte können horizontal oder vertikal zu einem anderen Objekt oder relativ " +"zu einer Mittellinie des Etiketts angeordnet werden, indem Sie " +"ObjekteHorizontal oder ObjekteVertikal wählen. Diese Menüeinträge sind auch verfügbar, " +"wenn Sie mit der rechten Maustaste in eine nicht leere Auswahl im " +"Ansichtsbereich klicken." + +#: C/glabels.xml:971(title) +msgid "Using the Property Bar" +msgstr "Verwendung der Eigenschaftsleiste" + +#: C/glabels.xml:973(para) +msgid "" +"The property bar can be used to change some common properties of objects en-" +"masse. These properties include font family, font size, font weight, text " +"alignment, text color, fill color, line or outline color, and line width. The " +"property bar also controls the defaults for these properties for any newly " +"created objects." +msgstr "" +"Mit der Eigenschaftsleiste können Sie einige Eigenschaften von Objekten in " +"einem Arbeitsgang ändern. Diese Eigenschaften umfassen Schriftfamilie, " +"Schriftgröße, Schriftstärke, Textausrichtung, Textfarbe, Füllfarbe, Farbe von " +"Linien oder Begrenzungen sowie Linienbreiten. Die Eigenschaftsleiste regelt " +"auch die Vorgaben für diese Eigenschaften, wenn neue Objekte erzeugt werden." + +#: C/glabels.xml:988(title) +msgid "Performing a Document Merge" +msgstr "Ausführung einer Dokumentmischung" + +#: C/glabels.xml:990(para) +msgid "" +"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that " +"allows a unique label or card to be printed for each record in an external " +"data source." +msgstr "" +"Dokumentmischung ist ein mächtiges Funktionsmerkmal, das es Ihnen ermöglicht, " +"ein einzelnes Etikett oder eine einzelne Karte für jeden Datensatz aus einer " +"externen Datenquelle zu erstellen." + +#: C/glabels.xml:994(para) +msgid "" +"The first step to performing a document merge is to prepare a source document " +"that contains your merge data. This data could be mailing addresses or any " +"other data that you wish to create unique labels or cards for. Currently back-" +"ends only exist for text files and the evolution data server -- others are " +"planned. The currently supported text-file format is very simple: each line " +"is a record; fields are delimited by commas (CSV), tabs, or colons; and " +"newlines can be embedded into fields by using the \"\\n\" entity. This file " +"could be created using any text editor or could be created by another program " +"or script. A common way of creating CSV files is to export them from a " +"spreadsheet program." +msgstr "" +"Der erste Schritt zur Ausführung einer Dokumentmischung ist die Vorbereitung " +"eines Quelldokuments, welches die Daten zum Mischen enthält. Diese Daten " +"können aus E-Mail-Adressen oder anderen Daten bestehen, aus denen Sie die " +"einzelnen Etiketten oder Karten erstellen wollen. Gegenwärtig können als " +"Datenquellen entweder Textdateien oder die Daten des Evolution-Adressbuchs " +"verwendet werden, andere sind bereits in Planung. Das derzeit unterstützte " +"Textformat ist recht einfach: Jede Zeile stellt einen Datensatz dar, wobei " +"die einzelnen Felder durch Kommata (CSV), Tabulatoren oder Semikola getrennt " +"werden. Neue Zeilen werden durch einen Zeilenumbruch »\\n« erzeugt. Diese " +"Datei kann mit einem Texteditor, einem anderen Programm oder einem Skript " +"erstellt werden. Ein üblicher Weg der Erstellung ist der Export einer CSV-" +"Datei aus einer Tabellenkalkulation." + +#: C/glabels.xml:1006(para) +msgid "" +"A label must then be configured to \"point at\" this data file. To configure " +"the merge properties of a document, choose ObjectsMerge Properties menu item to " +"display the merge properties dialog. This dialog is used " +"to select the exact data file format and file name (location) of the merge " +"data." +msgstr "" +"Ein Etikett muss erstellt werden, das auf diese Datenquelle »zeigt«. Um die " +"Mischeigenschaften für ein Dokument festzulegen, wählen Sie " +"ObjekteMischeinstellungen. Der Dialog Mischeinstellungen " +"wird geöffnet. In diesem Dialog wählen Sie das genaue Dateiformat und den " +"Dateinamen (den Ort) der einzumischenden Daten aus." + +#: C/glabels.xml:1014(para) +msgid "" +"Finally, once the label has been configured for a data file, field keys can " +"be inserted into text objects and used as source or data for barcode objects " +"and image filenames for image objects. See for more information on using merge data for these object " +"types." +msgstr "" +"Zum Schluss, sobald das Etikett für die Datenquelle eingerichtet wurde, " +"können die Feldschlüssel in Textobjekte eingefügt werden, um sie als " +"Datenquelle für Strichcodeobjekte oder Bilder für Bildobjekte zu verwenden. " +"Weitere Informationen über die Verwendung der Mischdaten für diese " +"Objekttypen finden Sie in ." + +#: C/glabels.xml:1020(para) +msgid "" +"Now that your label is configured, gLabels will " +"print a unique label for each record in your source document -- substituting " +"fields from each record for field keys in the all text, barcode, and image " +"objects." +msgstr "" +"Da Ihr Etikett nun konfiguriert ist, druckt gLabels genau ein Etikett für jeden Datensatz des Quelldokuments, wobei " +"alle Text-, Bild- und Strichcode-Objekte durch die Einträge der Felder jedes " +"Datensatzes ersetzt werden." + +#: C/glabels.xml:1025(para) +msgid "" +"See for a detailed tutorial on the " +"document merge feature." +msgstr "" +"In finden Sie eine ausführliche " +"Anleitung für dieses Funktionsmerkmal." + +#: C/glabels.xml:1040(title) +msgid "Settings" +msgstr "Einstellungen" + +#: C/glabels.xml:1041(para) +msgid "" +"To configure gLabels, choose " +"SettingsPreferences. The Preferences dialog " +"contains the following tabbed sections:" +msgstr "" +"Um gLabels zu konfigurieren, wählen Sie " +"EinstellungenEinstellungen. Der Dialog Einstellungen " +"enthält die folgenden Reiter:" + +#: C/glabels.xml:1062(title) +msgid "Locale" +msgstr "Lokale Einstellungen" + +#: C/glabels.xml:1066(guilabel) +msgid "Units" +msgstr "Einheiten" + +#: C/glabels.xml:1068(para) +msgid "" +"Use this radio button group to specify your preferred units. Select one of " +"the following options:" +msgstr "" +"Verwenden Sie diese Radioknöpfe, um Ihre bevorzugten Maßeinheiten " +"festzulegen. Wählen Sie aus den folgenden Optionen:" + +#: C/glabels.xml:1073(guilabel) +msgid "Points" +msgstr "Punkte" + +#: C/glabels.xml:1074(para) +msgid "Use points (1 point = 1/72 in = 0.352778 mm)." +msgstr "Punkte verwenden (1 Punkt = 1/72 Zoll = 0.352778 mm)." + +#: C/glabels.xml:1078(guilabel) +msgid "Inches" +msgstr "Zoll" + +#: C/glabels.xml:1079(para) +msgid "Use inches." +msgstr "Zoll verwenden." + +#: C/glabels.xml:1083(guilabel) +msgid "Millimeters" +msgstr "Millimeter" + +#: C/glabels.xml:1084(para) +msgid "Use millimeters." +msgstr "Millimeter verwenden." + +#: C/glabels.xml:1087(para) +msgid "Default: Inches." +msgstr "Standard: Zoll." + +#: C/glabels.xml:1093(guilabel) +msgid "Default page size" +msgstr "Vorgegebene Seitengröße" + +#: C/glabels.xml:1095(para) +msgid "" +"Use this radio button group to specify your preferred page size. This will " +"make it quicker for you to locate media types when creating a new label or " +"card." +msgstr "" +"Verwenden Sie diese Radioknöpfe zur Auswahl Ihrer bevorzugten Papiergröße. " +"Dadurch lassen sich beim Erstellen neuer Etiketten oder Visitenkarten die " +"entsprechenden Papiertypen schneller finden." + +#: C/glabels.xml:1101(guilabel) +msgid "US Letter" +msgstr "US-Letter" + +#: C/glabels.xml:1102(para) +msgid "Most of your media will be of the US Letter page size (8.5 x 11 inches)." +msgstr "Die meisten Ihrer Medien haben das US-Letter-Format (8.5 x 11 inches)." + +#: C/glabels.xml:1106(guilabel) +msgid "ISO A4" +msgstr "ISO A4" + +#: C/glabels.xml:1107(para) +msgid "Most of your media will be of the ISO A4 page size (210 x 297 mm)." +msgstr "Die meisten Ihrer Medien haben das ISO-A4-Format (210 x 297 mm)." + +#: C/glabels.xml:1110(para) +msgid "Default: US Letter." +msgstr "Standard: US-Letter." + +#: C/glabels.xml:1119(title) +msgid "Object defaults" +msgstr "Objekt-Voreinstellungen" + +#: C/glabels.xml:1125(para) +msgid "" +"Use these controls to set the default properties of new text objects. These " +"properties are" +msgstr "" +"Verwenden Sie diese Einstellmöglichkeiten, um die Standardeigenschaften neuer " +"Textobjekte festzulegen. Diese Eigenschaften sind" + +#: C/glabels.xml:1130(guilabel) +msgid "Font" +msgstr "Schrift" + +#: C/glabels.xml:1131(para) +msgid "" +"These controls are used to select font family and font size, and whether the " +"font should bold or in italics." +msgstr "" +"Verwenden Sie diese Einstellmöglichkeiten, um die Schriftfamilie und -größe " +"festzulegen, sowie um anzugeben, ob die Schrift fett oder kursiv dargestellt " +"werden soll." + +#: C/glabels.xml:1136(guilabel) C/glabels.xml:1161(guilabel) +#: C/glabels.xml:1176(guilabel) +msgid "Color" +msgstr "Farbe" + +#: C/glabels.xml:1137(para) +msgid "This control selects the default text color." +msgstr "Diese Einstellung wählt die Standard-Textfarbe aus." + +#: C/glabels.xml:1141(guilabel) +msgid "Alignment" +msgstr "Ausrichtung" + +#: C/glabels.xml:1142(para) +msgid "" +"These controls are used to select the default text alignment (left, center or " +"right)." +msgstr "" +"Mit diesen Einstellungen wählen Sie die vorgegebene Textausrichtung (links, " +"mittig oder rechts)." + +#: C/glabels.xml:1151(para) +msgid "" +"Use these controls to set the default properties of lines and outlines of new " +"objects. These properties are" +msgstr "" +"Verwenden sie diese Einstellmöglichkeiten, um die Standardeigenschaften von " +"Begrenzungen und neuen Objekten festzulegen. Diese Eigenschaften sind" + +#: C/glabels.xml:1156(guilabel) +msgid "Width" +msgstr "Breite" + +#: C/glabels.xml:1157(para) +msgid "This control selects the default line width." +msgstr "Diese Einstellung wählt die Standard-Linienbreite aus." + +#: C/glabels.xml:1162(para) +msgid "This control selects the default line color." +msgstr "Diese Einstellung wählt die Standard-Linienfarbe aus." + +#: C/glabels.xml:1169(guilabel) +msgid "Fill" +msgstr "Füllen" + +#: C/glabels.xml:1171(para) +msgid "" +"Use these controls to set the default fill properties of new objects. These " +"properties are" +msgstr "" +"Verwenden Sie diese Einstellmöglichkeiten zum Angeben der " +"Füllungseigenschaften eines neuen Objekts. Diese Eigenschaften sind" + +#: C/glabels.xml:1177(para) +msgid "This control selects the default fill color." +msgstr "Diese Einstellung wählt die Standard-Füllfarbe aus." + +#: C/glabels.xml:1191(title) +msgid "Document Merge Tutorial" +msgstr "Anleitung zur Dokumentmischung" + +#: C/glabels.xml:1193(para) +msgid "" +"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that " +"allows a unique label or card to be printed for each record in an external " +"data source. It is however, the most mis-understood feature of " +"gLabels. The following examples will step through " +"a couple of common tasks using the document merge feature." +msgstr "" +"Dokumentmischung ist ein mächtiges Funktionsmerkmal, das es Ihnen ermöglicht, " +"ein einzelnes Etikett oder eine einzelne Karte für jeden Datensatz aus einer " +"externen Datenquelle zu erstellen. Es ist allerdings die am häufigsten " +"missverstandene Funktion in gLabels. Die folgenden " +"Beispiele führen Sie schrittweise durch viele der Aufgaben, die Sie mit der " +"Dokumentmischung ausführen können." + +#: C/glabels.xml:1201(title) +msgid "Example 1: Name Tags Using a CSV File" +msgstr "Beispiel 1: Namensschilder unter Nutzung einer CSV-Datei" + +#: C/glabels.xml:1203(para) +msgid "" +"In this example we are organizing an orientation party for the new crew " +"members of our ship. We have a list of freshman crew members that we created " +"in gnumeric and exported as the following CSV " +"file. We could have created this file by using a text editor, but heck it is " +"the 23rd century." +msgstr "" +"In diesem Beispiel organisieren Sie eine Orientierungsparty für die neuen " +"Mannschaftsmitglieder Ihres Schiffes. Eine Liste der neuen Mitglieder haben " +"Sie in gnumeric erstellt und in die folgende CSV-" +"Datei exportiert. Sie könnten diese Datei auch in einem Texteditor erstellen, " +"aber schließlich leben wir im 23. Jahrhundert..." + +#: C/glabels.xml:1209(programlisting) +#, no-wrap +msgid "" +"\n" +"Name,Department,SN\n" +"\"Jim Kirk\",Management,\"SC937-0176 CEC\"\n" +"\"Mr. Spock\",Sciences,S179-276SP\n" +"\"Leonard McCoy\",Medicine,unknown\n" +"\"Montgomery Scott\",Engineering,SE-197-54T\n" +" " +msgstr "" +"\n" +"Name,Department,SN\n" +"\"Jim Kirk\",Management,\"SC937-0176 CEC\"\n" +"\"Mr. Spock\",Sciences,S179-276SP\n" +"\"Leonard McCoy\",Medicine,unknown\n" +"\"Montgomery Scott\",Engineering,SE-197-54T\n" +" " + +#: C/glabels.xml:1217(para) +msgid "" +"In gLabels we have created a new " +"gLabels document using the Avery 5395 \"Name Badge " +"Labels\" template. Next we use the ObjectsMerge Properties menu item to " +"display the merge properties dialog. We use this dialog " +"to select the source type (in our case CSV) and the merge source (filename) " +"as shown." +msgstr "" +"In glabels haben Sie ein neues Dokument unter " +"Verwendung der Dokumentvorlage »Avery 5395 Namensschild-Etiketten« erzeugt. " +"Zunächst öffnen Sie mittels ObjekteMischeinstellungen den Dialog " +"Mischeinstellungen. In diesem Dialog wählen Sie wie " +"gezeigt die Datenquelle aus, in diesem Fall CSV, sowie die Mischquelle " +"(Dateiname)." + +#: C/glabels.xml:1227(title) C/glabels.xml:1344(title) +#: C/glabels.xml:1460(title) +msgid "Merge properties dialog" +msgstr "Mischeinstellungen-Dialog" + +#. ==== End of Figure ==== +#: C/glabels.xml:1238(para) +msgid "" +"Before applying the merge source, we uncheck the first record since it is " +"only column headers from our original gnumeric " +"spreadsheet and would simply waste our first label. We could also unselect " +"any other records that we didn't want to print a label for." +msgstr "" +"Bevor Sie eine neue Einmischquelle anwenden, sollten Sie den ersten Datensatz " +"deaktivieren, weil dieser nur Spaltenköpfe aus der originalen " +"gnumeric-Tabelle enthält. Dadurch würde nur das " +"erste Etikett verschwendet. Weiterhin können Sie alle anderen Datensätze " +"entfernen, die Sie nicht für ein Etikett verwenden wollen." + +#: C/glabels.xml:1243(para) C/glabels.xml:1361(para) +msgid "" +"We can also view each record in more detail by clicking on the appropriate " +"expander (the little triangles) as shown. Once we are satisfied with the " +"selections in this dialog we click OK to accept the " +"changes." +msgstr "" +"Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen " +"Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf " +"OK, um die Änderungen anzuwenden." + +#: C/glabels.xml:1248(para) C/glabels.xml:1366(para) +msgid "" +"Now we start adding objects to our gLabels " +"document as shown." +msgstr "" +"Nun beginnen wir mit dem Hinzufügen von Objekten zu unserem " +"gLabels-Dokument, wie gezeigt." + +#: C/glabels.xml:1252(title) C/glabels.xml:1370(title) +#: C/glabels.xml:1488(title) +msgid "Adding objects" +msgstr "Hinzufügen von Objekten" + +#. ==== End of Figure ==== +#: C/glabels.xml:1263(para) +msgid "" +"In this example we have added three text objects and a barcode object. The " +"first text object contains only simple literal text (\"Hello, my name is\"). " +"The second text object contains a single merge field (\"${1}\") corresponding " +"to the first field of a record (first column of a line) which contains the " +"new crew member's full name. The third text field contains both literal text " +"(\"Department: \") followed by a single merge field (\"${2}\") corresponding " +"to the second field or the crew member's department. The barcode object is " +"configured to use field (or key) \"3\" which contains our crew member's " +"starfleet serial number." +msgstr "" +"In diesem Beispiel haben Sie drei Textobjekte und ein Strichcodeobjekt " +"hinzugefügt. Das erste Textobjekt enthält nur einfachen Text (»Hello, my name " +"is«). Das zweite Textobjekt enthält ein einfaches Mischfeld (»${1}«), welches " +"zum ersten Feld eines Datensatzes (erste Spalte einer Zeile) korrespondiert, " +"die den vollen Namen eines Mannschaftsmitglieds enthält. Das dritte Feld " +"enthält sowohl einfachen Text (»Department:«) als auch ein einzelnes Mischfeld " +"(»${2}«), welches zum zweiten Feld oder zum Arbeitsgebiet eines " +"Mannschaftsmitglieds korrespondiert. Das Strichcodefeld ist so eingestellt, " +"das Feld (oder den Schlüssel) »3« zu verwenden, das die Sternenflotten-" +"Seriennummer des Mannschaftsmitglieds enthält." + +#: C/glabels.xml:1273(para) +msgid "" +"Now we can print our name tags by selecting the FilePrint menu item. This will " +"display print dialog as shown below." +msgstr "" +"Nun können Sie Ihre Namensschilder drucken, indem Sie " +"DateiDrucken wählen. Der unten angezeigte Druckdialog wird geöffnet." + +#: C/glabels.xml:1280(title) +msgid "Printing name tags" +msgstr "Drucken der Namensschilder" + +#. ==== End of Figure ==== +#: C/glabels.xml:1291(para) C/glabels.xml:1406(para) C/glabels.xml:1520(para) +msgid "" +"Just to make sure our labels are going to look okay, we select the " +"Print outlines option and click Print " +"Preview. This will display a print preview dialog as shown below." +msgstr "" +"Um sicher zu stellen, dass Ihre Etiketten gut aussehen, wählen Sie die Option " +"Begrenzungen drucken und klicken auf " +"Druckvorschau. Der Druckvorschaudialog wird geöffnet, " +"wie unten angezeigt." + +#: C/glabels.xml:1298(title) +msgid "Name tags preview" +msgstr "Vorschau der Namensschilder" + +#. ==== End of Figure ==== +#: C/glabels.xml:1309(para) +msgid "" +"Everything looks good, so we can now load up our printer with the appropriate " +"label stock, print our name tags and start beaming our guests aboard." +msgstr "" +"Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden " +"Etiketten bestücken, die Namensschilder drucken und die Gäste an Bord beamen." + +#: C/glabels.xml:1316(title) +msgid "Example 2: Address Labels Using a CSV File" +msgstr "Beispiel 2: Adressetiketten unter Nutzung einer CSV-Datei" + +#: C/glabels.xml:1318(para) +msgid "" +"In this example we are going to throw a party and need to print mailing " +"address labels for our invitations. We have a list of our closest friends " +"that we created in gnumeric and exported as the " +"following CSV file. It should be noted that not everyone has a middle initial " +"or a two line address." +msgstr "" +"In diesem Beispiel planen Sie eine Party. Dafür benötigen Sie Adressetiketten " +"für die Einladungen. Sie haben eine Liste Ihrer besten Freunde in " +"gnumeric erstellt, die Sie in die folgende CSV-" +"Datei exportiert haben. Es ist zu beachten, dass nicht jeder einen zweiten " +"Vornamen oder eine zweizeilige Adresse hat." + +#: C/glabels.xml:1324(programlisting) +#, no-wrap +msgid "" +"\n" +"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n" +",,,,,,,\n" +"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n" +"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n" +"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n" +"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n" +"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n" +" " +msgstr "" +"\n" +"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n" +",,,,,,,\n" +"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n" +"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n" +"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n" +"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n" +"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n" +" " + +#: C/glabels.xml:1334(para) +msgid "" +"In gLabels we have created a new " +"gLabels document using the Avery 5512 \"Address " +"Labels\" template. Next we use the ObjectsMerge Properties menu item to " +"display the merge properties dialog. We use this dialog " +"to select the source type (in our case CSV) and the merge source (filename) " +"as shown." +msgstr "" +"In glabels haben Sie ein neues Dokument unter " +"Verwendung der Dokumentvorlage »Avery 5512 Adressetiketten« erzeugt. Zunächst " +"öffnen Sie mittels ObjekteMischeinstellungen den Dialog " +"Mischeinstellungen. In diesem Dialog wählen Sie wie " +"gezeigt die Datenquelle aus, in diesem Fall CSV, sowie die Mischquelle " +"(Dateiname)." + +#. ==== End of Figure ==== +#: C/glabels.xml:1355(para) +msgid "" +"Before applying the merge source, we uncheck the first record since it is " +"only column headers from our original gnumeric " +"spreadsheet and would simply waste our first label. We also unselect the " +"second record which is empty (an artifact of our original spreadsheet). We " +"could also unselect any other records that we didn't want to print a label " +"for." +msgstr "" +"Bevor Sie eine neue Einmischquelle anwenden, sollten Sie den ersten Datensatz " +"deaktivieren, weil dieser nur Spaltenköpfe aus der originalen " +"gnumeric-Tabelle enthält. Dadurch würde nur das " +"erste Etikett verschwendet. Weiterhin können Sie alle anderen Datensätze " +"entfernen, die Sie nicht für ein Etikett verwenden wollen." + +#. ==== End of Figure ==== +#: C/glabels.xml:1381(para) +msgid "" +"In this example we have a single text object. This text object contains all " +"of our merge fields organized on multiple lines as a mailing address. Notice " +"that fields ${4} and ${5} (corresponding to ADDR1 and ADDR2) are each located " +"with no other text on their own lines. When gLabels encounters a field as the only text on a line, it will not " +"expand the line if the field is empty." +msgstr "" +"In diesem Beispiel haben Sie ein einzelnes Textobjekt. Dieses Textobjekt " +"enthält alle Einmischfelder, angeordnet in mehreren Zeilen wie eine " +"Versandadresse. Beachten Sie, dass die Felder ${4} und ${5} (korrespondierend " +"zu ADDR1 und ADDR2) jeweils keinen weiteren Text in deren Zeilen enthalten. " +"Wenn glabels ein solches Feld als »nur Text« in " +"einer Zeile erkennt, wird die Zeile nicht expandiert, falls das Feld leer ist." + +#: C/glabels.xml:1388(para) +msgid "" +"Now we can print our address labels by selecting the " +"FilePrint menu item. This will display print dialog as shown below." +msgstr "" +"Nun können Sie Ihre Adressetiketten drucken, indem Sie " +"DateiDrucken wählen. Der unten angezeigte Druckdialog wird geöffnet." + +#: C/glabels.xml:1395(title) C/glabels.xml:1509(title) +msgid "Printing address labels" +msgstr "Adressetiketten drucken" + +#: C/glabels.xml:1413(title) C/glabels.xml:1527(title) +msgid "Address labels preview" +msgstr "Adressetiketten-Vorschau" + +#. ==== End of Figure ==== +#: C/glabels.xml:1424(para) C/glabels.xml:1538(para) +msgid "" +"Everything looks good, so we can now load up our printer with the appropriate " +"label stock, print our address labels and start mailing our party invitations." +msgstr "" +"Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden " +"Etiketten bestücken, die Adressetiketten drucken und die Einladungen zur " +"Party versenden." + +#: C/glabels.xml:1431(title) +msgid "" +"Example 3: Address Labels Using the Evolution " +"Addressbook" +msgstr "" +"Beispiel 3: Adressetiketten unter Nutzung des Evolution-Adressbuchs" + +#: C/glabels.xml:1433(para) +msgid "" +"Our last party was a great success, and now we need to print mailing address " +"labels for the invitations to a new one. To simplify this, we can use the " +"Evolution addressbook, because the address data of " +"all our friends is stored there." +msgstr "" +"Ihre letzte Party war ein voller Erfolg. Nun benötigen Sie wieder " +"Adressetiketten für die Einladung zu einer neuen Party. Um dies zu " +"vereinfachen, können Sie das Evolution-Adressbuch " +"nutzen, denn die Adressdaten aller Ihrer Freunde sind dort gespeichert." + +#: C/glabels.xml:1439(para) +msgid "" +"Depending on how your copy of gLabels was " +"packaged, this option could be unavailable. Support for the " +"Evolution addressbook will only be available if " +"the evolution-data-server and its development " +"files were present when gLabels was built. Please " +"keep this in mind if you build gLabels directly " +"from source." +msgstr "" +"Abhängig davon, wie das von Ihnen genutzte gLabels-" +"Paket erstellt wurde, könnte diese Option nicht verfügbar sein. Die " +"Unterstützung für das Evolution-Adressbuch ist nur " +"vorhanden, wenn bei der Erstellung von gLabels das " +"Paket evolution-data-server sowie dessen " +"Entwicklerdateien verfügbar waren. Bitte berücksichtigen dies auch dann, wenn " +"Sie gLabels direkt aus den Quellen erstellen." + +#: C/glabels.xml:1445(para) +msgid "" +"If the gLabels package from your distribution " +"lacks this support, you may wish to contact the package maintainer or file a " +"bug against the package to request it." +msgstr "" +"Falls das gLabels-Paket Ihrer Distribution diese " +"Unterstützung nicht bieten sollte, kontaktieren Sie bitte den Ersteller des " +"Pakets oder senden Sie einen Fehlerbericht, um dies einzufordern." + +#: C/glabels.xml:1450(para) +msgid "" +"In glabels we have created a new " +"gLabels document using the Avery 5512 \"Address " +"Labels\" template. Next we use the ObjectsMerge Properties menu item to " +"display the Merge properties dialog. We use this dialog " +"to select the source type (in our case Data from default Evolution " +"addressbook) as shown." +msgstr "" +"In glabels haben Sie ein neues Dokument unter " +"Verwendung der Dokumentvorlage »Avery 5512 Adressetiketten« erzeugt. Zunächst " +"öffnen Sie mittels ObjekteMischeinstellungen den Dialog " +"Mischeinstellungen. In diesem Dialog wählen Sie wie " +"gezeigt die Datenquelle aus, in diesem Fall Daten aus dem " +"vorgegebenen Evolution-Adressbuch, wie gezeigt." + +#. ==== End of Figure ==== +#: C/glabels.xml:1471(para) +msgid "" +"Once we have chosen Data from default Evolution addressbook as our merge source, we will get a full list of its content. " +"Initially, all entries are checked. Assuming we were planning a really big " +"party, we could leave this selection untouched (but let's keep our budget in " +"mind). We will now select or unselect certain entries by clicking on the " +"appropriate checkboxes, or we could use the Select all " +"and Unselect all buttons to activate or deactivate " +"all entries in the address book." +msgstr "" +"Sobald Sie Daten aus dem vorgegebenem Evolution-Adressbuch als Mischquelle gewählt haben, wird eine vollständige Liste des " +"Inhalts angezeigt. Anfänglich sind alle Einträge ausgewählt. Angenommen, Sie " +"planen eine wirklich große Party, können Sie die Auswahl unverändert " +"belassen. Behalten Sie jedoch dabei Ihre finanziellen Möglichkeiten im Auge. " +"Sie können bestimmte Einträge auswählen oder wieder abwählen, indem Sie die " +"entsprechenden Ankreuzfelder anklicken. Alternativ können Sie durch Anklicken " +"der Knöpfe Alle markieren oder Markierung " +"aufheben alle Einträge des Adressbuchs aktivieren oder " +"deaktivieren. " + +#: C/glabels.xml:1479(para) +msgid "" +"We can also view each entry in more detail by clicking on the appropriate " +"expander (the little triangles) as shown. Once we are satisfied with the " +"selections in this dialog, we will click the OK button " +"to accept the changes." +msgstr "" +"Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen " +"Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf " +"OK, um die Änderungen anzuwenden." + +#: C/glabels.xml:1484(para) +msgid "Now we start adding objects to our glabels document as shown." +msgstr "" +"Nun beginnen wir mit dem Hinzufügen von Objekten zu unserem " +"gLabels-Dokument, wie gezeigt." + +#. ==== End of Figure ==== +#: C/glabels.xml:1499(para) +msgid "" +"In this example we have a single text object again. This text object contains " +"all of our merge fields organized on multiple lines as a mailing address." +msgstr "" +"In diesem Beispiel haben Sie ein einzelnes Textobjekt. Dieses Textobjekt " +"enthält alle Einmischfelder, angeordnet in mehreren Zeilen wie eine " +"Versandadresse." + +#: C/glabels.xml:1502(para) +msgid "" +"Now we can print our address labels by selecting the " +"FilePrint menu item. This will display the print dialog as shown below." +msgstr "" +"Nun können Sie Ihre Adressetiketten drucken, indem Sie " +"DateiDrucken wählen. Der unten angezeigte Druckdialog wird geöffnet." + +#: C/glabels.xml:1551(title) +msgid "Manually Creating New Templates" +msgstr "Manuelles Erstellen neuer Vorlagen" + +#: C/glabels.xml:1553(para) +msgid "" +"Predefined templates are defined by XML files located in ${prefix}/" +"share/glabels/, where ${prefix} is usually " +"something like /usr/local or /usr " +"depending on the configuration option prefix. " +"gLabels will use all files of the form *-" +"templates.xml or *.template, that it finds in " +"${prefix}/share/glabels/ and ${HOME}/.glabels/" +". Additional templates can be added by creating additional " +"*.template files in either of these directories." +msgstr "" +"Vordefinierte Vorlagen sind als XML-Dateien verfügbar, die in " +"${prefix}/share/glabels/ gespeichert sind, wobei " +"${prefix} üblicherweise /usr/local oder " +"/usr ist, abhängig von der Konfigurationsoption " +"prefix. gLabels verwendet " +"alle Dateien der Form *-templates.xml oder *." +"template, die es in ${prefix}/share/glabels/ " +"und ${HOME}/.glabels/ findet. Zusätzliche Vorlagen " +"können unter Verwendung der Dateiendung *.template in " +"einem dieser Ordner gespeichert werden." + +#: C/glabels.xml:1566(para) +msgid "" +"The format for these files is defined in the DTD: glabels-2.2.dtd. (This DTD also describes other XML formats used by " +"gLabels.)" +msgstr "" +"Das Format dieser Dateien ist in einer DTD definiert: glabels-2.2." +"dtd. Diese DTD beschreibt außerdem weitere von gLabels benutzte XML-" +"Formate." + +#: C/glabels.xml:1572(title) +msgid "Assumptions/caveats" +msgstr "Voraussetzungen" + +#: C/glabels.xml:1575(para) +msgid "" +"A sheet contains only one size of label or card (if a sheet contains more " +"than one size of item, it can be split into multiple templates for multiple " +"pass printing)" +msgstr "" +"Eine Seite enthält nur eine Etiketten- oder Kartengröße. Falls eine Seite " +"mehrere Größen enthält, kann sie für das Drucken in mehreren Durchläufen über " +"mehrere Vorlagen verteilt werden." + +#: C/glabels.xml:1580(para) +msgid "" +"Distances can be expressed in units of pt, in, mm, cm, or pc. For example: \"1.0in\" or \"2.54cm\". If no units are specified, computer points (pt) will be assumed (1 pt = 1/72 in = 0.352778 mm)." +msgstr "" +"Abstände können in den Einheiten pt, in, mm, cm oder " +"pc ausgedrückt werden. Beispiel: »1.0in« oder »2.54cm«. Falls keine Einheiten angegeben " +"werden, nimmt der Rechner Punkt an. ein Punkt (pt) " +"entspricht = 1/72 in = 0.352778 mm." + +#: C/glabels.xml:1593(title) +msgid "Template Files" +msgstr "Vorlagedateien" + +#: C/glabels.xml:1595(programlisting) +#, no-wrap +msgid "" +"\n" +"<?xml version=\"1.0\"?>\n" +"<Glabels-templates>\n" +"\n" +" ...templates...\n" +"\n" +"</Glabels-templates>\n" +" " +msgstr "" +"\n" +"<?xml version=\"1.0\"?>\n" +"<Glabels-templates>\n" +"\n" +" ...Vorlagen...\n" +"\n" +"</Glabels-templates>\n" +" " + +#: C/glabels.xml:1607(title) +msgid "Example Template" +msgstr "Beispielvorlage" + +#: C/glabels.xml:1608(programlisting) +#, no-wrap +msgid "" +"\n" +" <Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\">\n" +" <Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\">\n" +" <Markup-margin size=\"5pt\"/>\n" +" <Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/>\n" +" </Label-rectangle>\n" +" <Alias brand=\"Avery\" part=\"5160\"/>\n" +" <Alias brand=\"Avery\" part=\"6233\"/>\n" +" </Template>\n" +" " +msgstr "" +"\n" +" <Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\">\n" +" <Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\">\n" +" <Markup-margin size=\"5pt\"/>\n" +" <Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/>\n" +" </Label-rectangle>\n" +" <Alias brand=\"Avery\" part=\"5160\"/>\n" +" <Alias brand=\"Avery\" part=\"6233\"/>\n" +" </Template>\n" +" " + +#: C/glabels.xml:1621(title) +msgid "Template Node" +msgstr "Knoten »Template«" + +#: C/glabels.xml:1623(para) +msgid "" +"A Template node describes a single stationary product. " +"It must contain one instance of any type of Label node (Label-" +"rectangle, Label-round, or Label-" +"cd). This node can be followed by zero or more Alias nodes." +msgstr "" +"Ein Template-Knoten beschreibt ein einzelnes Produkt. Es " +"muss eine Instanz eines der anderen Label-Knoten (Label-rectangle, Label-round, or Label-cd) enthalten. Auf diesen Knoten können einer, mehrere oder kein " +"Alias-Knoten folgen." + +#: C/glabels.xml:1637(para) C/glabels.xml:1712(para) C/glabels.xml:1789(para) +#: C/glabels.xml:1834(para) C/glabels.xml:1910(para) C/glabels.xml:1943(para) +#: C/glabels.xml:1994(para) C/glabels.xml:2037(para) C/glabels.xml:2096(para) +#: C/glabels.xml:2173(para) +msgid "Property" +msgstr "Eigenschaft" + +#: C/glabels.xml:1640(para) C/glabels.xml:1715(para) C/glabels.xml:1792(para) +#: C/glabels.xml:1837(para) C/glabels.xml:1913(para) C/glabels.xml:1946(para) +#: C/glabels.xml:1997(para) C/glabels.xml:2040(para) C/glabels.xml:2099(para) +#: C/glabels.xml:2176(para) +msgid "Description" +msgstr "Beschreibung" + +#: C/glabels.xml:1646(para) C/glabels.xml:2182(para) +msgid "brand" +msgstr "brand" + +#: C/glabels.xml:1648(para) +msgid "Brand or manufacturer of stationary product. E.g. \"Avery\"" +msgstr "Marke oder Hersteller des Produkts, z.B. »Avery«" + +#: C/glabels.xml:1653(para) C/glabels.xml:2188(para) +msgid "part" +msgstr "part" + +#: C/glabels.xml:1655(para) +msgid "Part number or name of stationary product. E.g. \"8160\"" +msgstr "Bestellnummer oder Name des Produkts, z.B. »8160«" + +#: C/glabels.xml:1660(para) C/glabels.xml:1919(para) +msgid "size" +msgstr "size" + +#: C/glabels.xml:1662(para) +msgid "Size of sheet. E.g., \"US-Letter,\" \"A4\", ..." +msgstr "Größe des Papiers, z.B. »US-Letter«, »A4«, …" + +#: C/glabels.xml:1666(para) +msgid "description" +msgstr "description" + +#: C/glabels.xml:1668(para) +msgid "Description of stationary product. E.g, \"Mailing Labels.\"" +msgstr "Beschreibung des Produkts, z.B. »Mailing Labels«." + +#: C/glabels.xml:1673(para) +msgid "_description" +msgstr "_description" + +#: C/glabels.xml:1675(para) +msgid "" +"Translatable description of stationary product. E.g, \"Mailing Labels." +"\" (Only useful for predefined templates)" +msgstr "" +"Übersetzbare Beschreibung des Produkts, z.B. »Mailing Labels« (nur sinnvoll " +"für vordefinierte Vorlagen)" + +#: C/glabels.xml:1681(para) C/glabels.xml:1727(para) C/glabels.xml:1857(para) +msgid "width" +msgstr "width" + +#: C/glabels.xml:1683(para) +msgid "Page width. Only valid if size=\"Other\"" +msgstr "Seitenbreite. Nur gültig, wenn als Größe »Other« festgelegt ist." + +#: C/glabels.xml:1687(para) C/glabels.xml:1731(para) C/glabels.xml:1864(para) +msgid "height" +msgstr "height" + +#: C/glabels.xml:1689(para) +msgid "Page height. Only valid if size=\"Other\"" +msgstr "Seitenhöhe. Nur gültig, wenn als Größe »Other« festgelegt ist." + +#: C/glabels.xml:1699(title) +msgid "Label-rectangle Node" +msgstr "Knoten »Label-rectangle«" + +#: C/glabels.xml:1701(para) +msgid "" +"A Label-rectangle node describes the dimensions of a " +"single label or business card that is rectangular in shape (may have rounded " +"edges)." +msgstr "" +"Ein Label-rectangle-Knoten beschreibt die Abmessungen " +"eines einzelnen Etiketts oder einer einzelnen Karte in rechteckiger Form, " +"wobei abgerundete Ecken möglich sind." + +#: C/glabels.xml:1721(para) C/glabels.xml:1798(para) C/glabels.xml:1843(para) +msgid "id" +msgstr "id" + +#: C/glabels.xml:1723(para) C/glabels.xml:1800(para) C/glabels.xml:1845(para) +msgid "Reserved for future use. Should always be 0." +msgstr "Für zukünftige Verwendung reserviert. Sollte immer 0 sein." + +#: C/glabels.xml:1728(para) +msgid "Width of label/card" +msgstr "Breite des Etiketts oder der Karte" + +#: C/glabels.xml:1732(para) +msgid "Height of label/card" +msgstr "Höhe des Etiketts oder der Karte" + +#: C/glabels.xml:1735(para) +msgid "round" +msgstr "round" + +#: C/glabels.xml:1737(para) +msgid "" +"Radius of corners. For items with square edges (business cards), the radius " +"should be 0." +msgstr "" +"Radius der Ecken. Für Objekte mit nicht abgerundeten Ecken (Visitenkarten) " +"sollte der Radius 0 sein." + +#: C/glabels.xml:1742(para) +msgid "x_waste" +msgstr "x_waste" + +#: C/glabels.xml:1744(para) +msgid "" +"Amount of horizontal waste (over-print) to allow. This is useful for " +"minimizing alignment problems when using non-white backgrounds (e.g. images)." +msgstr "" +"Erlaubte Breite des horizontalen Überdruckens. Dies minimiert " +"Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder)." + +#: C/glabels.xml:1750(para) +msgid "y_waste" +msgstr "y_waste" + +#: C/glabels.xml:1752(para) +msgid "" +"Amount of vertical waste (over-print) to allow. This is useful for minimizing " +"alignment problems when using non-white backgrounds (e.g. images)." +msgstr "" +"Erlaubte Breite des vertikalen Überdruckens. Dies minimiert " +"Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder)." + +#: C/glabels.xml:1763(title) +msgid "Label-rectangle Parameters" +msgstr "Parameter zu Label-rectangle " + +#: C/glabels.xml:1777(title) +msgid "Label-round Node" +msgstr "Knoten »Label-round«" + +#: C/glabels.xml:1779(para) +msgid "" +"A Label-round node describes the dimensions of a simple " +"round label (not a CD)." +msgstr "" +"Ein Label-round-Knoten beschreibt die Abmessungen eines " +"einfachen Rundetiketts (nicht einer CD)." + +#: C/glabels.xml:1804(para) C/glabels.xml:1849(para) C/glabels.xml:2015(para) +msgid "radius" +msgstr "radius" + +#: C/glabels.xml:1805(para) +msgid "Radius (1/2 diameter) of label" +msgstr "Radius (halber Durchmesser) des Etiketts" + +#: C/glabels.xml:1808(para) C/glabels.xml:1871(para) +msgid "waste" +msgstr "waste" + +#: C/glabels.xml:1810(para) C/glabels.xml:1873(para) +msgid "" +"Amount of waste (over-print) to allow. This is useful for minimizing " +"alignment problems when using non-white backgrounds (e.g. images)." +msgstr "" +"Erlaubte Breite des Überdruckens. Dies minimiert Ausrichtungsprobleme auf " +"anderen als weißen Hintergründen (z.B. Bilder)." + +#: C/glabels.xml:1822(title) +msgid "Label-cd Node" +msgstr "Knoten »Label-cd«" + +#: C/glabels.xml:1824(para) +msgid "" +"A Label-cd node describes the dimensions of a CD, DVD, " +"or business card CD." +msgstr "" +"Ein Label-cd-Knoten beschreibt die Abmessungen einer CD, " +"DVD oder Visitenkarten-CD." + +#: C/glabels.xml:1850(para) +msgid "Outer radius of label" +msgstr "Äußerer Radius des Etiketts" + +#: C/glabels.xml:1853(para) +msgid "hole" +msgstr "hole" + +#: C/glabels.xml:1854(para) +msgid "Radius of concentric hole" +msgstr "Radius des Mittellochs" + +#: C/glabels.xml:1859(para) +msgid "" +"If present, the label is clipped to the given width. (Useful for \"business " +"card CDs\")." +msgstr "" +"Falls vorhanden, wird das Etikett auf die angegebene Größe begrenzt (nützlich " +"für »Visitenkarten-CDs«)" + +#: C/glabels.xml:1866(para) +msgid "" +"If present, the label is clipped to the given height. (Useful for \"business " +"card CDs\")." +msgstr "" +"Falls vorhanden, wird das Etikett auf die angegebene Höhe begrenzt (nützlich " +"für »Visitenkarten-CDs«)" + +#: C/glabels.xml:1884(title) +msgid "CD Label Parameters" +msgstr "CD-Label-Parameter" + +#: C/glabels.xml:1898(title) +msgid "Markup-margin Node" +msgstr "Knoten »Markup-margin«" + +#: C/glabels.xml:1900(para) +msgid "" +"A Markup-margin describes a margin along all edges of a " +"label." +msgstr "" +"Ein Markup-margin-Knoten beschreibt die Ränder entlang " +"der Seiten eines Etiketts." + +#: C/glabels.xml:1921(para) +msgid "" +"Size of the margin. I.e. the distance of the margin line from the edge of the " +"card/label." +msgstr "" +"Randbreite. Die Breite des Bereichs zwischen der Randlinie und dem Rand des " +"Etiketts/der Karte." + +#: C/glabels.xml:1932(title) +msgid "Markup-line Node" +msgstr "Knoten »Markup-line«" + +#: C/glabels.xml:1934(para) +msgid "A Markup-line describes a markup line." +msgstr "" +"Ein Markup-line-Knoten beschreibt eine Markierungslinie." + +#: C/glabels.xml:1952(para) C/glabels.xml:2046(para) +msgid "x1" +msgstr "x1" + +#: C/glabels.xml:1954(para) +msgid "x coordinate of 1st endpoint of the line segment." +msgstr "x-Koordinate des Anfangspunkts des Linienabschnitts." + +#: C/glabels.xml:1958(para) C/glabels.xml:2052(para) +msgid "y1" +msgstr "y1" + +#: C/glabels.xml:1960(para) +msgid "y coordinate of 1st endpoint of the line segment." +msgstr "y-Koordinate des Anfangspunkts des Linienabschnitts." + +#: C/glabels.xml:1964(para) +msgid "x2" +msgstr "x2" + +#: C/glabels.xml:1966(para) +msgid "x coordinate of 2nd endpoint of the line segment." +msgstr "x-Koordinate des Endpunkts des Linienabschnitts." + +#: C/glabels.xml:1970(para) +msgid "y2" +msgstr "y2" + +#: C/glabels.xml:1972(para) +msgid "y coordinate of 2nd endpoint of the line segment." +msgstr "y-Koordinate des Endpunkts des Linienabschnitts." + +#: C/glabels.xml:1982(title) +msgid "Markup-circle Node" +msgstr "Knoten »Markup-circle«" + +#: C/glabels.xml:1984(para) +msgid "A Markup-circle describes a markup circle." +msgstr "" +"Ein Markup-circle-Knoten beschreibt einen " +"Markierungskreis." + +#: C/glabels.xml:2003(para) C/glabels.xml:2119(para) +msgid "x0" +msgstr "x0" + +#: C/glabels.xml:2005(para) +msgid "x coordinate of circle origin (center)." +msgstr "x-Koordinate des Kreismittelpunkts." + +#: C/glabels.xml:2009(para) C/glabels.xml:2126(para) +msgid "y0" +msgstr "y0" + +#: C/glabels.xml:2011(para) +msgid "y coordinate of circle origin (center)." +msgstr "y-Koordinate des Kreismittelpunkts." + +#: C/glabels.xml:2016(para) +msgid "Radius of circle." +msgstr "Radius des Kreises." + +#: C/glabels.xml:2025(title) +msgid "Markup-rect Node" +msgstr "Knoten »Markup-rect«" + +#: C/glabels.xml:2027(para) +msgid "A Markup-rect describes a markup rectangle." +msgstr "" +"Ein Markup-rect-Knoten beschreibt ein " +"Markierungsrechteck." + +#: C/glabels.xml:2048(para) +msgid "x coordinate of upper left corner of rectangle." +msgstr "x-Koordinate der oberen linken Ecke des Rechtecks." + +#: C/glabels.xml:2054(para) +msgid "y coordinate of upper left corner of rectangle." +msgstr "y-Koordinate der oberen linken Ecke des Rechtecks." + +#: C/glabels.xml:2058(para) +msgid "w" +msgstr "w" + +#: C/glabels.xml:2060(para) +msgid "Width of rectangle." +msgstr "Breite des Rechtecks." + +#: C/glabels.xml:2064(para) +msgid "h" +msgstr "h" + +#: C/glabels.xml:2066(para) +msgid "Height of rectangle." +msgstr "Höhe des Rechtecks." + +#: C/glabels.xml:2070(para) +msgid "r" +msgstr "r" + +#: C/glabels.xml:2071(para) +msgid "Radius of rounded corners of rectangle." +msgstr "Radius der abgerundeten Ecken des Rechtecks." + +#: C/glabels.xml:2080(title) +msgid "Layout Node" +msgstr "Knoten »Layout«" + +#: C/glabels.xml:2082(para) +msgid "" +"A label node may contain multiple Layout children. If " +"labels are arranged in a simple grid pattern, only one layout is needed. " +"However, if labels are arranged in multiple grids, such as a running bond " +"pattern, multiple layout tags can be used. Note: a " +"single label can always be treated as a grid of one." +msgstr "" +"Ein Label-Knoten kann mehrere Layout-Unterknoten " +"enthalten. Wenn die Etiketten in einem einfachen rechteckigen Raster " +"angeordnet sind, dann wird nur ein Layout benötigt. Falls die Etiketten " +"jedoch in komplizierteren Rasteranordnungen vorliegen, können mehrere " +"Layout-Unterknoten verwendet werden. Beachten Sie, dass " +"ein einzelnes Etikett immer auch als ein Raster aus Etiketten betrachtet " +"werden kann." + +#: C/glabels.xml:2105(para) +msgid "nx" +msgstr "nx" + +#: C/glabels.xml:2107(para) +msgid "Number of labels/cards across in the grid (horizontal)" +msgstr "Anzahl der Etiketten/Karten im Raster in horizontaler Richtung" + +#: C/glabels.xml:2112(para) +msgid "ny" +msgstr "ny" + +#: C/glabels.xml:2114(para) +msgid "Number of labels/cards up and down in the grid (vertical)" +msgstr "Anzahl der Etiketten/Karten im Raster in vertikaler Richtung" + +#: C/glabels.xml:2121(para) +msgid "" +"Distance from left edge of sheet to the left edge of the left column of cards/" +"labels in the layout." +msgstr "" +"Abstand von linken Rand des Papiers zum linken Rand der linken Reihe der " +"Karten/Etiketten im Layout." + +#: C/glabels.xml:2128(para) +msgid "" +"Distance from the top edge of sheet to the top edge of the top row of labels/" +"cards in the layout." +msgstr "" +"Abstand von oberen Rand des Papiers zum oberen Rand der oberen Reihe der " +"Karten/Etiketten im Layout." + +#: C/glabels.xml:2133(para) +msgid "dx" +msgstr "dx" + +#: C/glabels.xml:2134(para) +msgid "Horizontal pitch of grid." +msgstr "Horizontaler Rasterabstand des Zeichengitters." + +#: C/glabels.xml:2137(para) +msgid "dy" +msgstr "dy" + +#: C/glabels.xml:2138(para) +msgid "Vertical pitch of grid." +msgstr "Vertikaler Rasterabstand des Zeichengitters." + +#: C/glabels.xml:2146(title) +msgid "Layout Parameters" +msgstr "Layout-Parameter" + +#: C/glabels.xml:2160(title) +msgid "Alias Node" +msgstr "Knoten »Alias«" + +#: C/glabels.xml:2162(para) +msgid "" +"An Alias node provides the name of a product with the " +"same size and layout characteristics as the parent template." +msgstr "" +"Ein Alias-Knoten beschreibt den Namen eines Produkts mit " +"der gleichen Größe und dem gleichen Layout einer anderen Vorlage." + +#: C/glabels.xml:2184(para) +msgid "The brand or manufacturer of the equivalent product." +msgstr "Die Marke oder der Hersteller des entsprechenden Produkts." + +#: C/glabels.xml:2190(para) +msgid "The part number or name of the equivalent product." +msgstr "Die Bestellnummer oder der Name des entsprechenden Produkts." + +#: C/glabels.xml:2226(title) +msgid "About gLabels" +msgstr "Info zu gLabels" + +#: C/glabels.xml:2227(para) +msgid "" +"gLabels was written by Jim Evins " +"(evins@snaught.com). To find more information about " +"gLabels, please visit the gLabels Web page." +msgstr "" +"gLabels wurde von Jim Evins (evins@snaught." +"com) geschrieben. Weitere Informationen zu gLabels finden Sie auf der gLabels-Webseite." + +#: C/glabels.xml:2232(para) +msgid "" +"To report a bug or make a suggestion regarding this application or this " +"manual, follow the directions at the gLabels Contact Page." +msgstr "" +"Um einen Fehler zu melden oder einen Vorschlag zu dieser Anwendung oder zu " +"diesem Handbuch zu machen, folgen Sie den Anweisungen auf der gLabels-Kontaktseite." + +#: C/glabels.xml:2238(para) +msgid "" +"This program is distributed under the terms of the GNU General Public license " +"as published by the Free Software Foundation; either version 2 of the " +"License, or (at your option) any later version. A copy of this license can be " +"found at this link, or in the " +"file COPYING included with the source code of this program." +msgstr "" +"Dieses Programm ist freie Software. Sie können es unter den Bedingungen der " +"GNU General Public License, wie von der Free Software " +"Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß " +"Version 2 der Lizenz oder (nach Ihrer Option) jeder späteren Version. Eine " +"Kopie der GNU General Public License finden Sie unter " +"diesem Link, oder in der Datei " +"COPYING, die im Quellcode dieses Programms enthalten ist." + +#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 +#: C/glabels.xml:0(None) +msgid "translator-credits" +msgstr "Mario Blättermann , 2008, 2009" + +#~ msgid "" +#~ "@@image: 'figures/merge-ex3-1.png'; md5=32fa57781b819430f19cd3cac6807622" +#~ msgstr "translated" + +#~ msgid "" +#~ "@@image: 'figures/merge-ex3-2.png'; md5=1d49763e4006ea07792d7d1b805002ce" +#~ msgstr "translated" + +#~ msgid "" +#~ "@@image: 'figures/merge-ex2-1.png'; md5=d48a99d65408584eae2603a0c07610da" +#~ msgstr "translated" + +#~ msgid "" +#~ "@@image: 'figures/merge-ex2-3.png'; md5=59a1dc5ff94656877a6220f73fe25b3c" +#~ msgstr "translated" + +#~ msgid "" +#~ "@@image: 'figures/merge-ex2-4.png'; md5=67391b05421901a36d276736c1f664dd" +#~ msgstr "translated" diff --git a/help/de/figures/main-window-empty.png b/help/de/figures/main-window-empty.png new file mode 100644 index 0000000000000000000000000000000000000000..b7ad788e87746fd65442bba6695238fb038409be GIT binary patch literal 33093 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 Y&&Y-1ZuA-LgG>7Njqf4uJbv|m013!5a{vGU literal 0 HcmV?d00001 diff --git a/help/de/figures/merge-ex1-1.png b/help/de/figures/merge-ex1-1.png new file mode 100644 index 0000000000000000000000000000000000000000..2e539fc285fb6f78b2bbf98bc514dc0f3e0bacea GIT binary patch literal 39810 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%0AY~5tI$D~kk0`HMDhskB+4it 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 literal 0 HcmV?d00001 diff --git a/help/de/figures/merge-ex1-2.png b/help/de/figures/merge-ex1-2.png new file mode 100644 index 0000000000000000000000000000000000000000..c60b3bec627a95bcb53f506f9724d31bf642d9f8 GIT binary patch literal 69379 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 z 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

    VJB8FQJQjjFitM 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%0AUSGl|Qy!`@;f2Sj9aH=kP& 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 literal 0 HcmV?d00001 diff --git a/help/de/figures/merge-ex1-4.png b/help/de/figures/merge-ex1-4.png new file mode 100644 index 0000000000000000000000000000000000000000..814c73d6d7f0f3f6cb361e41f199908e0a751069 GIT binary patch literal 43315 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 $Qfwo?zkkg~Hp|M&uGqd$*<1PWC#@eij50{?Y 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 XVt3@6-l5Y3kDxpb`W~oqJ(l@T?o5l6 literal 0 HcmV?d00001 diff --git a/help/de/figures/merge-ex2-1.png b/help/de/figures/merge-ex2-1.png new file mode 100644 index 0000000000000000000000000000000000000000..8cb49995e9eb92fbf8b2e39b09b3612f290b1544 GIT binary patch literal 42168 zcmcG#byQW+8!dVe1(8xx8Wd>+=|(|7kdW>M>F!oR`hawUfJk?DgXEzO4TtXT<}H4| zaqoEdy*J)?f4s{W7_j#`Yp=Dw@0)Xea|eBqmB4&P{0sttU`l@ar~rXH;sW2EPf@^6 zcAd6`!C#LZL?o4-f-ldfMuFh}M2=!=j*2#49bNS8jUgu1Hde;W4uf%VBNj?Nchh=OX{NKP=_7-_QAbKYRG47E|Y78o`dFxY9TC6RUd;9aqc$+;BE? zG+eHu^oHe`UfyZ>nZerF`}#b)^ClyE^qmfEZcMYI-#;IQE;tOVTe1`zl=oIU4HQ;J zgO-lNww{<%b64Szz-v5o*#>IQts!MceRp9s4>v5nKML+;eJO*fTG1w%*`>RU)nc`b zisTD90t0-a0|UHZ9lJn_ea(AH!?pH@=5_VSj~}?;gF05<6z7EAEGgjlAe=wUxHK-A zOVd2@DdeB}xeCD`<|U`x4p0vNC?C^r3K3lY+ndaopQ@2LmNZ%O#5pf7T`eW)^}|}| z$LeayTI-`pURODsa^h~{ZO-KEhX2Jc*}X2_n029sc+Xq)Zx60gTjfZZn$vLF-f=~v zeJPM3SAjO|ru{W@>Hk}xfXMmnXNr~NbA|a$c6Vl&>(!rx%-V(H<1(MxCMR?g{vy@Gx7%xR^onI`o}G2e>1 zU|UArPvb3R$zxlI4_zk9GPlqg3=39qUAo$td&ZE*O{AxfW&8S&rp`6RR0@2@xLGBVrx!|$aAs8@@Xj+cj3F)MbiF|U*U z>?dt`-jS8Uttp6I3N@g+v+v0Hy+;;{4Hqwz*8QbKZUo*XzGeFU^yv82rk3XE3Z=DL z*q9QmI5+i+rBfKx4X=CJDyMCBG+DsCr3jMAchbQ^H(OM)I^nI2c&%2aT&bdmB0S&D% zC$f+}Uk#@_nqRr%2FJTqx{#W^tyY55ZN_5j{M2ToY6oEp8V*jvn1L50Q8D88Qq!>d z`&4asUWS@B1`2X;#=$Cg(x*P<#a#+>3+^ShzjVRy?SeYbYnTU8pf!oCo7)>+wpP zoA`8^eEuX9A+D~@i<0>QDh{pArY#+Q;p*l-IVWovj=3;-s7T819ULKgt*M=snA!3S27N37&96FB{yX(wAoY6$n`0adbXRV`#zu3 zRi~5jVp$=?@9~qNN<|DBvGfZ|G45q=RZ%2k|3s|^3U^b$MGkmmXS|$VmX5FUPWnd}tdskyZjUR*3bhY`^BQk8XQjtkKGYI(*ZI+_~S#;_rhydm=akgia?9z-O%IZE%BZYN)G@l`lwW=7T$ zLmc-*)82_WMTc%KQAZ^<%}_U)@33Fg+6}tH!13{57cyxN4|KdQYUzfZsm=*fy4Yko z#!!YXb;*8-LE^(N*?qSA?;oG*DdVh62Z`9*4S z!NG5`cLH|Xl{K||rPp8h)ZI)jVad7BU_@$j)CL_oLdVAITW`yFK=9%$4-PrxC5wV%*_7Qs?oMCn&fYa;jft zHblkDBE(X9Ue^ufi?U`J^LaMT)_8c@@cDb#^6|&r2H>c>_CaVc_kX0hkc^av96Gz` z9|gYcuPfyaz=_(O)*YV0sn{EI3_Zy%`ST+x8{N)XVKiU#sT`~!c$xOj+;R34et2NZ zjgUq9_m*zi)SSFq;rQU_sA9T#H=}JTAzotQZOZ0EHLZT@2U6YygL!S`mKJ$XXiPd^J0lTw5mb7-WzY zLj2`|=)>8@*Bhhscuj$FO-a7Q;qTTf3=TboEmrXg#B^vzKpi>tf4JL zGqsK2e-I-hY|oxOdpTT<4VgJlp{5%uZmk8=utz&R|Dzi49L(UwgpgnK$)m8pYwtMT z=FRWo;W02cJ-$?#3)8$mmKVCx6=0yG>5tpf=C@rkB1X5VeMAdQESSY1S8u{^%xE)W z9cuJ7p4pu0RJneWT~Z;xUdC6IxV3$}do4E|iWqHgoOi$>!w*xCw;lfP{#9Pv(v%mI zpuD$t7Yd2B63zM%w@)D^eQ{a6A|Bw%)q{|9A6B2$(%$Z1B-QkK&83P>_K-}sLPz>F z>%Qj)V3qLI85)K`6OUhWaN-hku8Uh*4wepYZhH$Voo1ss@6A5p=H@UO>=Z;Rn zS)hV(@Y1PKXA)J_q{I4}F|X1hA=(6WlMND&!_p~+{M(N<`*zA(jun{jN6J35R8${w zqVtAp6N6-;Zc~inxI9zP0u&v>WXygJiVqxbimbV$qtc^NGfACP=T}`Bd6L6QrNfZ(b4@ zKhw)OjgURvWua~UW@3VssTeIx6V;YGDzSRQo}GT?^ne*VS)NtwQY=`o z-z}BDsnq03i%RsUiJvTp$yH_uMM2&xlI7Z-x^}UDd&GBbWqDIor0r3}zNnUL(cj9R zIC$@Hb=@Sq9Xj4}$;+*J0%ea=_M!f%Q7EE&Kf#t`$&Be4CUYAk6Zcm83*OI`mKMJK z;Ad!PZ|LY=M)mj&n|>^w$W+K5*zR2IYlM=}mOtCXTZIkj$Xnjs@}Od`vKfC=bx4U) z|5@X9IWaXpj{B|!U%Tz{YCTi$#~p5cnnnIoRaHWTk-XGDaC3YLPoF@)DBhee=_()6 zWYdk-RHrM2Q)K0KYVU2E=My>tgh^j<^@pocywtYQ!tB)6C42HDM(XGA9{|1q+L9jM zv^+XO-<+;(ggXzWGPjCq_biu-FAjGl6#CqB9y$3ejCVmZduX@j27f$D*4COjx<;eX zfhRCGr?qre%J?SH(?!RsJYU-%{5wbQd2R75)q2pg!u8P?PU2s&iX!$JLLdVY4QG=f z?h{2kMc#?~ejj}2M4LRmOPJL&XzcY+_R)xpPgA1;4;E;kGMVFFRMNZW1`;3?F0v*R zChsR$>#GU}dZvQFiaeA@-F4Qcc{@BM29$YHlTvNPE*98n97Rlwru;P)X&!qv%Ag#1 zk*xLA*&f<^C+k0X_bN)eAOD7l({kxFedzZ&Q4ghwa`W1CAMZu)3$-sr|MBC|rMm=9 z_&is9Af?T`&yu(_O{c)f3m<``{u}!`6m>T$tA!CW!aQSm+xC}l@6+;F@P!M^Zj=m5OXgnNtpK`*Gl!#KlUs8JZnW2Z7>2=Hcjhi&= zEe$2*x5}htx3&2feotHv&oY;L{_%b;Nkc{K$u15Jqg;u}M?|X(QLm3^s5?8qwV4S- z48Y6h9m-a2=jeiSdkl_GjusArNUvNlm!}zLaPe1Uva65?9ku3D$t`D{LIeJ4OU5}P z6=*qmz)H_{f3ex}3#oeiq%zq~T#jY#c0rr0xRD;canKW&|ol#%^F)J!J39zqd5 zT+Nx4f0F$Z`Bn`Mb9|Pf%b$enp?TbIJ&G=`!noO9 zCC6-^J0PH5flrVAdVPeO%A1*~3(nB3RU73iGaNIQnV(vz#sv?RJP-A!fAskhn-+Ox0+6QA$p^K0p>DKI1mZyfJi`dD!ur#lHnurGxU&ugFRUV4Ufd+ zZJnLFB(`NtKd~kfpPQXigrZWu5{UlY0?9XqhqsIP<`#^}e^K)jFQlQP`?m1=y@MuA zRM2R4IXxYNNcL!^3P>$${&8`%R3E#!J&^X=^>j#O#`ouuyI0fY(;2e3iSY8kAJ* z`a8PGCo;M&#v z)SAyJ&}!tOb5(46vFpA`yL&*<=FOYe#fz8)2bRmdgUs7R9&^;eQjGnp?!LKK^%*os ztM8|3vnsmwSKt2}=vZ6XoVJn16L~s3y>W`drXY8?w>%N$$Pm6XB9+nZ`Si5-O5l&l z{B?pzBl`Tj^Q=8y2D!J+-c8BoXMbo@#1gTjq@j}1mgIDGirs`9&Anwp?X0QNj;tlI zV7K^Fs*l?l3b{i({0(r^%S z?(OY8M!CSn+n|D-FJ;6;D=+M=wZSK(jb_eu^{>l&3+t~EgOs)~qNgr-dB*<*LV-?) zGG>lHyj$R7Um-9N@>fAaCn#;)cbit)s-_G-#vM6p)k#?8cdCoC=9?gJ`BSPyX&wDt z?6L;eyy-L!GhcYe-*VNrh@1U&8uU*Oir|ug<5{n92-)ctS?NQfJ36*cVx@kN1OvPJ zKFKZbDhp33t2UWyK3t3?ibL}7D;^BVhlhH)$Vy%M;z1{D|J4E3?0?S%Z<9K@gejlj ze|x{Qyj&I_Jn1S3;w@pAt>@6N(6TJ5t@{%kgtKK+%!__KOm4WB^Rq!z zY;0G~u;Il@lpHv`t7kLTuc@j1U_$rF!-idviHXys`eDYE_^Twq4o65&v9PM>ioKJQ;wEy=R0_1v-fO{9 zYbxzBO~T0`JF~S>(b3Cs1^>N=C3|f$x4D_ZWY8!oD#}nk)r*D%qN|H=ujYISb?Rkf zV}o2E)&`u$jlUX?GdcpaA1$o$9MDt zWWnH+_Jv9niWI73s#tu}*)21#pYXyXnXmgXAxjAd7t%+E1r=eN4A|s@4!y zR#p~ppLFXd#iEgu6<@@oB80KYjV}JlcXV`dx$uBBc*{OGI9RbiNd%2zZ{C|0v;Fei zNS;Lj(iG%OSvkkO)jVRQxqD6h$l| zs2z;9bH2^OPsC$t8YO+_|-kRJt^&kQz%5)1yVZC_He zXZz4fB{N^7k}sAIe;|nRx-NkKuO=4{%6xz}ZPx-> zm-+PH?}dIVazMBK{Qdp=8^G}a($=J}N|A<4IsT;bndyMc==ovyC5Asu*v^s?A~>%W zY>|SR+P_pm4_hZEPT{vqOcff4)T}12+qu)bz0OpgyzQ45D0_9=Z_jpTy2lGO(Vjgs zKf7RYLg;*&InxSvZ)}>n-Zd~#ueEoRMHN<>7ovc7%{)TeT* z87@4r^s=%@66>1p^ooCfB_(~9mBnIIE$WzwPjTF>Bw) z%)`sOxVJY5Qi^)LvsL+d5>uf?=^3#?%2-EdXGDDbCj*05;9Re*bfunYAO}cVTK2$T z>tX!+8QP8*WPHv`!`~!j?ONa3QlCi!`C)nQnNSL+KaIr#zoO ze@+ne;G&|Udi?mYEllwIi@ZEi%i(f28U}_DqR9(lWNiF`fS?Pk8WHVN` z@=v+D7JOT!P(#esm8Z0{bZ5RXX+qa0<>0_JBQx{zbV7H#LQ$7=9Bhn8z91tTU}?S?S>W@SDJ1$Vx(h#R z#}>AQE32wU3tnwx3LN*dODAz*s;a7vnREK0Vz2F1BTy&>1ygo*EccqOt&>wyK(0C2 zo(OOCMMbty<}!xjMviEPT;a4W>hI? z>FGhErKMFVP}6VnC+jqhnCwqFhseqjOW~AKoDD=XxWv2NCCCL1Am%yE8ngkp%lSzyy>)%lQT(sJP)BOTEkfJY*J>FIP9Wh=hb5a2zf-GQ*k92uVo#<{LeF zdV119o)WlN@P(XKnJ_l_zl4g9jEsDekumNHC6Z1PN@-{iP*7B?Js#v&uP~KQvDyl0 zPt>%o{TUjH;eD})3eHsjD!a*G2M~NKDmXw_ro*QBwyXL6b{{=B|D6-bO!Xj7m@P>|(x1)AvvF)K0jPj>bL1_Qe{ zm>Di)KEdZPT}T#EcxK)UgVBQR3?t)D?0bfeKGp0aj7uw9aDMUn_3NO(z=f(AYs1^C zQzvVyDzj045a%Ud2Z$Y}2z5O_1YnUd6~W(X*V%3irMsWM_G_G-n^P~*Loz?TjPnNF zz#mW0ZCzY!y8b1`wo`L~UEGLQJ3boZ--p)o=g93xM$MJBA5|gK2&E@Il~g(vZMO97_DNxmoz(0~6T0 z4e+)_mMs4HVhaU|XX>~4p&1z&9Sn(LCs5E*Q-e0572t`5n$`Bl1Ki8IyH;nOnd>^SGTfd~oapR)Vq#(fVw;Yh{zE=|BvS%A>781+>!HChBBpVoMfmP8 z-2ECh{h!bb5xmY*5p3=p9UawD5e(0FH-Zs^yQ^#vvhUwRLI{{&v9U!iwg+g2{+e^1 zu`1B49u%mn09zF@OblURVF6paJs1AGEwa5~PBU}(U?OPQsn@~Y9ugQB$QmamCKef$ zVpVFjOH21~%3*U;olii_H#9W#hdc45)b0gPcz2N4G<|S(hBqbJr-rra<(wN9<%{qtVmWp9YTV_-ORKapC(jnoY@KU_x_QCTqeCw3jE#*`oGmNW%dNnH ziqrLOji%>b-rQ^jA!~Kk3fvX_yWBKyJ+`^3Y^)xlqH3nX&Tw}+-0gV4_#p@#_vfJ| zX;#&-@U^{ply9@Mqz+5l zi}I%ktFK>akdRKB(OH<7qVI3A%^i98`IE##$XCPo_w;6}3Lzl#5&HP}j2B)^z~-scXV1|&X~S+fiLV3#$M3oB}J zj23iRbLtSY5wZ{7f6C!gYKdxu7G=ABW z3d#Y94jf!uCULU72~oID6*}SDm9rU}_1g7R!<&o4i|cE6F6#O{u8fS#8#XqaZ;IIp z1E+w^Jj5sf9(w`OHo>Rc1GNIWZd&^E)$vq$id=TIzYJIqSBrO-)T| zUBa@>j}2``+1YMJudgEJqgcPZy22qR9~{n<*qkV)fCvc*oovBFPPdyEi|Y5vhH2NI zprEk%+#zdu>^c!#Cvfc&j2CJ5l^S-}Tx~^g78Nr{gp+51??UTG*``G1I^6j9_?~A| z>(n&li>DL$YyE-;EuMg$)}D@QnvMRIarim)hjdLv$qO9hm+bBw_g53_(J?U*NlATu zpX1o8_qF)=X>V3uo6Xh#T`}a@pc#SzaE-nd? z0z|3ZCh|fu#7`~cvlGNm9Zk%X@Wj6OcbQYQ4%uQ;?68}V>{RzemZpoy-rhX#xpEV1 z05m_y;|(VBwlfwtNST{61ZRBt@}-4;zu_~0PR!G_tFfBkVbj2zkimR(Oc4Aocl`j| z67P7Z8|Bujd0+x6zL;dwL?tAYT2rHQvO^@{=_!B!YXUadxpIP-$I}4$;A;CmE2Av3 zXs(X^p!dVc-ds`ug?o_tva0T@O16L1BKw!4b-7 zF@?4gatm8$u@t}l#i;q`(_3D*+#fH3i z80q&6IzV4R;iUq#NygUpsh~%f{Fh&_V0;_(3S4~r&TmM_bc~Fvi56Yz1&s9c`rTn< z(g|!?txa)av59?`6VLnXb#*D4F4rt>Zafdq&zHdlc1=t;D=3yXj<-xV;;g$leBIR1 zJtMeutBn(&lowM~?^#dt>J=>is@cE(LWConh<#6Qy21>wth317V*pySD=I1mJG`if z?JtHtpkNV8N%pAcZ|Bo?USC~J!{<@=8~ZLutlw`N>fZj1jY#d9$yYh-I>L|oX8(I< zRzYL=-2Qjl;`(HTb8yD*c9ygwO? z{xIV(m-;OA#R72T2l}n@$8fy}&>BujO@QiU7~RPt!F>w3%BGbyA$>RHC|u3}M0WU!2ufq`;Bc{g z-gvSHM>QdgTf^#k`@p-+p@~C7taaxbt!b#|idssc!={#dC17|hn!INAQjcou3)G9n zaj7Qz4>(B#QdtU%J4+&t(in@2i!U+#`|NSz!JOAXsN32*w+<9KQFBrT$%L%0tb|5I zIXDD>XBVk>#%3n^AawkHPzvYq;cWogO4Ga!mYm;W22$h*c=Q~&`ItE-Lrh+6dua$Y z7jwK$G3{%?6hA-LXGiFX{G?#)xc}Iv;$mgB>z>1_nBN}tv@aRNhl<;mmGhSPP^dy* zeyHD=R5^WP^q{VAH|oH0o5RW-y0MazlLLc;&GB`6nI5zY4x-EBg%AGWq+-&RmJR{H z7r4Z>yt5;H9hNf8!+X44r2QE6$#7SDW^KFqFKKe?bi61LeSIXWnM#YjFAvMs_3Bk7 z9TP)`-VnD7opZ#CB!YfZj*MZ`FDv{R54(m-OPig?T~-k}@d})f^n%d@Ql1M`Apg=q zf<;bO|ElCZefBKfFhKS(>Q4^CXfWG5>*l+%sPDf1<8Iv}igGM8o2CjWSAuot3qjp! z4N8lg=nn&VUHh19{K`K#J({YmK>U~x(2~*dH(p>=( z0`%@{&r)ZFjqZJYaM&AKcB6k^%3#S&ei1sPQ5nB~>#-7ll9d#HM<0)e8{Fe3DbKob z;ZFu%(#LlhQ)FS-!aJ7!pOPN*=&4~aq zn_`85BFg^J{SYq-4Ud%=vjQ5NC*_D2#ak;W_t|9bip6%gW~9*rJB*sFi8=_{ss|XR z{#$w~KiijRXtY4%eS)Q~O@Xr{QLH1wU57{}UE7_PV|EMfCfDxpL*rgrS@8p){~RG4 zuwB#`tE%ILpF^C2_6%z=GkpB{L_T*Et=!^YG;VzkVxS>~| z^cX#A(Ho0OjuerSVxy<0CzTT#Jd9qBR*qg?+L5+ZqhwG5;Ld=9xUedV?it{}lr%Ib zKnOy?B>re`U*@Lm?98>?9S-!OkwQ&w@2gE(2Q7&((pES;#%10uAU^(O7nCF*gDyHc z`ayyE;p+>swh5?`%D5@8%39A$dr;&8;^GKFo@f9flyhNu)mT_oy0dsVITSSH^Wi}F z1@z7*g$w=Jvzptp8Bh^HS1+x8uP(pUS=W8@jdj!I*AQm_Vp?v`5jO1J>P8V_u_5YP z9)&rDIXTfV;oGwL)ss!nq+j{#0{kI$MyC~MMg!*=fh{+w+jVsPeujqZ;p*jOxS(yJb@Xfr{y~`I18^h zIq_T8>bgqcgKGmxoA7+XpFe+|TKj+D-~d1#2roD@ zv@qd&0l--SX94YrkLP=HfRdbS3?n~0cTK!=a7c)Hv$r4srlyq|zs=dSMR&!;#D=rw zD4OoBEWY-~w}Qv?%g<-@MZq+8ya7cGFHhoJh9CX$$(&juV29zZyqV(wrbl z%>~SbbipD(WlmY4q2(qN_VGD3go=y4f8UaYb@+n_>d)u!JtMoP@lQaT03lH;wU zT@)|9;TUu3Ju!B@-wgA)J0=FI#(U-QqEY3@hzP9rpFXkjX~T_XN=jHEj&)Ke?qon; zE*zg}5MpM=2ku2Jt>jv-|FBLlOig|DVwBwY(OQzt(Sk2F$OSH`9((F27%%l4$liZ} zx`|9pnG9_^5tJ(3Tj!@Fo)+}{`y?Tc7h+g6{>76UA@H-(VuH#Q+q`>-y}Svn5zgb!9Nu(f(rrrS z->Zr0=>MHzh04-HohAV(lXO_t~*3*Q`g z<=1mF`MM`SAjV;vVny60+R|y$5rDkUz6(AnYNcPB9lz~^r zauCx_yO`>}=2cX0@F=dEHOey=EsgBhWMF(p481U|R8mnY@w_~8sOMZ<-R!9;HB>J% zLbGYO;{)WM$;&O*O>liFhbS#O05yt6W@T7{V!75Nt+l&50ElzoWIwp*diwjRsi-1A zDO%Xt3icpz0di$*pRsLJ9=yqPum2J_oii z2dd3}UhX5BC^X;UFQ;-9J^#)qT#mPGn(bk8=UQcxNr|AWwfkeO0!?+{ay`xD?&i`o zIr*jIY79{3B64za+^f<5C)IfzBh~4DiWmYqkb*)OyL*M&Z)cc5${1qRF|Fdv%R|*6Un4mPviqyh&9I;AC}=CO5tL zITZx`kJlebZhq|6iC$=BWDMs9O1%=vsf`XIX2mXU`av z)>*#9^csXg(`+C%Z|_;EW$O#)dAS}iXm)!57MtzR7b&Shjc9}eLYmyiQz$ok#|JkQ zn4~ATf53zh|C-Z0<_+flCs$dXp|;~z5qBrHDc0yD=~I<{)cd{6;jW?4VV1~Pwjg-QKgv=UIygqpNoZ4>YbYs!$jM=kjdkstC zp)trH%tENED?FAre%LtmAI=lwzbEKkVsdU>^pf@0w{Pz`636Z2LCfFtHdGw9ww4!& z{W|XFTfXHXpB(~>2m!pNs}z?pHGK)_)dI}-n*J?A)zynhu$&!;51GRY%gdtY)^i8g z2knJ2N&kac0h5*qAz_B0!BcGPZd2BZEx8{L#+0iZI74!>wylE&nItB7+$GShSzcKI zNcDjt750QE!~Ka=--|w)I@Cwe9?}EVd-g*JF#u&>}*}; z3Mfus2)v*=V{Nc8%}4k=*)7-X6qSP2^x(OONc+ZQF8eVd({GUI=Bs-9`fB%^)cqtr zve_=g+yI%zY3t@>R1TxwoX2XW>NOpYA2@Nq3SbFn^MI2%0;kmZvjvd0Fo^g#JhYzI!+P_1=2EAptZHSk0C`0u(06>zxcT;iKPl&vdc{VLbIm+&;e7d4 zjR$QZp0(CwcXxLf#2kUD_s1G3eA#ko;Juq)cdA<7rLqhrSeg$y<8&1?RJtT6y!BjW zkI7xXfj0qYWD)^5Lq|gkBIS?8X!-rY7czN$tphpR5j=O0gTorvy|IV{a)#dt0)Q?J z(78!Sh~%eF3+VxbN4G8r4L}Mw%B-%PQ+@6b0007-@Sr!URa=uadYl@Z@9Bb?+A%sB zWl==bozxe5IHoAKyuIC5IGTMt8b(&2RvOtbE1*)~+Ly7rp62tN#HJx)Pq1zVPWvTh zLGWsF`Jr`FzsKk4so@(yVJEKB34_7!`iHkyvf#B?qd{`G8=?< zFpOZd(t;55uexLzSxTxl9QgzU1YUAGV`$eozu}@m5tHwK=i%-i8Sm;>{^kv64#%C9 zmXh*029}kvo!#B>+X^9>OH0eW^^Qz%K@7m^o!{xV$&dy*wb(pl5%)Ac}ps7(fB1XQ8LhdOA=#0+${TY+r{DW1)k4FXzd5XYU#7vDgO z5~5sP0N9FQ#H1FltzPEUjBJ<;e>;2++!de*dP7WzofIS#a3i zh4zpp#eDoNlvHi0f3hLJ)(wb}bj_hSgj~HM5J;dRqM}56Mo%FC_CZMboiVQp0L6IjXrqMOgG^v+%Ni7<%#y65qqBA@ih>Q8qOXpfovW+s5a9LT zC_eu0qvnkoMxB~{%)Qyt3H{gkst!vZl__LXInXNW7^)jV^Z8<;Idw5j?(Nz+ z;(j5Uj2{y3Ix0hu$$4s)Bli_n7cN2Jk=*$?w&eW05eQTlZWFMbx$^G4W%ImaK#SV! zD*wGm;&u4?U;E^_7}lS|@Np0}r0YzV)iD6@9Q? zzSa1DhKRugZj4e|$sc@C-r08qu3vNbEzrFQSJ`;#VSsU8r>K!(`hfBl;^&m$)v ze$uA@$>2ZlM+Z>-*FH+>PyK*kfs*w_OQ{ocX9}z1R5t#=(bHm&(a|vt-K}s z*kum(me$#z(|LRjYDp78nkfROBCi8w;jDhoZ0|X^Ay8$%{d~U4H5phKitBwAxAG-M zx%h}_fq6^5KcrRfy}Wch-p|M-gEE*=xyLyRXg0(*H`Ki`bqWG+S*uR{cjj2DJ_sL) z`#a=~p06lTq-6)pV?F4RzSp2Yc- zRv}<73$R`ac#DRD?-S_AWlW3VlHtzGQgMC)E}bxP!CrjTlkA$BoWXhw>ec_@1*ltD zF)FGv=SfH)ildJ8=MYPq+lIr>tr#;6e9XWX_;QC`34H*r|2M14YZf>?M4G{)jK6KB>rmJb$ zU*A5Ov1;p-N>e(Q`0}O1jfiU}FN9C$dc02o!K;3Cq(CEG)00skmnIb2?A;)ye$RMS zzLptI+z88*lsG&a=ejTLdlkY|Xkylq4gfQ+X8*ro!=T-vh^AXq+p3ztv1VD0PR2__ z7nQgr9v;wpLD!#}ntG_xLKOn~Oz*$wQD!SBZd;B%_ig=VzZcVxdwT5dkpz!%YK`XMS3v^`4b+q89T!C{U$=YH}rdlZDVl$e;CLx8DrK51$0 z<@XO#(0+$$=4#+I>0UbuA1~0qI@u(cX}CS(cifzY{$6-49{N&Js@D!rY;j{a)6~mT zz0sW$6#Qj>659Bg!g=Spy5f!TMpPi60=-2?RY9R`)(so9DaaOIMD(W$1^`UwK2znA z1Z1)}=izsbTeCms>Rl!Tof*9p`1cY+3cbeX-vSe|WE2f9DUQ^>kQZ=Jnl$eA8eAuz zY>twEZbq8VT~G$y&U9r6l`rZj&}`2rctH1eXZ{vlUthlhVA|n{QKt#*a3F~AP)9HP z`T~;Pny*+qOrclf$H5rI#a9Y#p3e5|Ug@(3IfosR% z!uAnpt(Q&${+^iTvPXG3CTTEJy&fSJ(!UMtmOgiGfw$LpdUJ8Q@iWSJKhNhq(z5SQ zS-1*x<$wvBX`DW|?T3%RCp-BUhXHrgo1b3s*47G~@B7SH&ZJraFY+fL=V;Arxphzp ziq6|ARICfrh^I{kcGqTw3FYME!m_E4+s_fDXHjxnR;mOu>m5^53Bc-bC+u-fPNYlgX-;8Xe$H>6#W$QEMg1aKl^)~9Ol#>6pu6@lzFgrv7OBmbPpr;3$^MWN z|1`RdI8lGo{Lf3*Dd{(FfBag8u($7HJD9I6vPCoWDskk^vc34~J z2)bV6SniMn0rXhZzh?1cR}f-Gc05RDPdXK;H zE-=tmO--!@;OmJhyXEE*<82jENxo3)InulVphs&1)@3-5SgmJe1qI$o!}(d>$!6XA zDHR`~s`TsrL{4;^pvQ(?p{<=EgqU|sAjv+}KHt`-AOU}zA~xdDE&uHG0%%DBGa zCNB>rjhdE)%Ur&5lR3Mk6*Nc-$l&iBH=bjVvEk9mrZym)m#Amcyv`!-gkHQD_8K@M zP6~c@yN{Y%P%u_0m(2Pi&GU-hyZ`FNjEm*OHuASgIiXgMB*duT!e?M8&d7KKdk{+w_H@@3W=b*VvYjk= z85kHSW9DsqE*d9J5(FmC?XAP+&BABY1P39GH^@_GfMJO$BOk zeqJ7{c{B?kc|)rd2cO7Y=0=6(8@tZ%bBvnd3P< zVvBqZ^tdfA_0au=_)jA4g(}SqGwW&kqW=%l-UOV=KK~y-rIe6J*$JhRMA;I_5~YN! z*`+A5?-WAzC8-o;&7LjEo)9Vt*(zI-JtSGO{$F>`GxMF9XJ)Rs{=d1J>pU&axzBxn zKJVqVyg#u|PRTVWI31@6VVPe0^b_x;0Fl=H=J0KUC4lSWAZiBR z#RTU(7uT^|@*AeUS#ZnvRg+nBmOIV-h7egNC#Q$R*C}Yz(&`SqKMmQ_aodxE^g*ct z?Y$iRhHmNY{dSqFjgK-iHp%)?NlP1ZqB(c8wDQr1{c5AAXraPNX>;~N$rUC#Z)5iA zzTwubz^{Ei$B~Izb)9z4Y_R5~exq)FyIU>kXDoBFqOjtGX5v??T|u6i$EK{e6)o$o zw~D$ym~NfV{7I)_^F!6Vy@O<3{JcVL(vH8reD*lK*){9aT>jGw#fPIli#RZDqWp1# z|At4M)K)I@&1Y{te=(f5rlcdsTCt``@IbtJx}Uu6`Yg@GMXAjA3>DeTtc-Rmi~ZGw zsn08G4VqII51y0&PaZkB+73SD zk>j(;~+GlFgT{wP{Jp$LV&dY7S~&)cg6G#k3%drg-!nFLcHT)z z+~Up?kKM<=e*JmEk&c#j4V6gZ(8$QgVH>q5V&g)8iNK`*s5ra)$rCzsPkvB>KFQCw z?WfP8|IIYm1#+iFbV}Q`WmY=;Jwhl)c)Ix*DX& z_m5_AFtGKM5wjJ_e!SU-9g284+*=`qRT$&o!Nrv*Ws-ZD6SoKIZ*oW}_uP5IbHqwd zj}>xWGASu3Rw)lwm<>o??;ajWLaN?KNhxb*M~pd$zH$aX{z>4&(=8(-BLRVd(zwrG z?OY>S4;?zR6^1GA@NgPdR@TqozJXZb}wYSMrLOIK-<3{7|4VBftb2|r~Ou9 zrQq^UC@XvNIV;rE)ELiy@5_DmjGPq0bVz>EK^<1?T&r&J2NJGyh?B>W`~}S3J>ZFn z3kVoChU)VxyH=WNy1E#$3)0fU+$0SNz}yR!o!z$4BR z$h~V}$@}p1vRaZkCl^-+rH_*2PC5#8-fevQ_m2_FamStLcM6~A!_{mY9A1X9h*Ggn zj*U?o8XA&bfG9R%v9Cdp^_%DXHwCh%5& z7u+N#*ZN-ILu+-X*`t$^ix4~qnAdfd(MD)vwi#anJ|rXb?xm;#s@3ONq`JR%dcyX+U?YNv=VjbR=N*M2X zOW;EQt1LAwZNW~giaHfpIl285e|t1{q)jw>)B^6Q}4(KA>&I?OG<_FqZFSFih# zmaLN5HWPM7G1-R0R6JbGD2)@F(XTRveS$q@TICcXT?WhVXc%!x-~$oj{`MkN3SqaU zOi%LlhvXLXY(DTCeWGSqqbf&Ow^;j;k&Y3uva)7&lzMT^TSojgflK*$T9UuF8^Zp%M@=K|7n0;d zt5%j5E!cWNGwY|lZfH1;9r$y>!kin=i;p};eh)9NH&o+bm4Kn5*3 zTttj_xxH6S;PU&O52QTV@uO8wfNG-%=n(60J8KCzWe8)NqyU0fgnBm;v#MnRbGJBaTJ z4W}H~`O1V8xE7JH$slRa7!nJW_j&x74~lss=n>qm!R&)@`|9;;X>^ZJbDCcv^8!nW zDDnjgZ+NVzVA0sZ#%9?>TmqE{IaU&ua`n^8EjIJtjRE{Y>|HSYsbF7^OFwl&eP&9E z&GeoGauUQ1Ye=X)X2SHLcD`_s>B7N}Nw=w!&jzC0gLQHs_sJ7)J${8tm-Ya@Y<)Dn zg*L)vDtiyviR7~|FdDsobduOIK0ahHg5-KEyS*B)!`nBQxe?p`{IE@Cm(6ziIvKM0YU!MBKY~Z#bJy zkHI7|Q5vZm`fBUzGo?FPm+ps#QlriFfn%~CX4h+v#34bZGS4q8^q1qRgjvkk(sKEP zJ+^v%t(q!zyvm*}92_(j78ZOuPdA=T9~qKCyGHOT;q>P0(A88y4`loOGhv>Tfw>L( ziaI<_>QBA3wd9D#NIx0*4R79Tf^0)O@BDg5l-H1u#~?m%`T8j^Anl@Y?&TdfWUl-A zu7i@CQa`9t2S1axjBex{9Isp5XTM29=t?9n$Y{6XvPCbg66;Y+j1g;wSU%xWE8197 zj}0r>58kIj%9U-5m7IEi>OkN7u57oG z`6Je+OB<5!zN08u)mgVu1BpOY31v;+_@P^kNa2mH`h_H7s1NXCLZbuutuMcV3KB5kROlNV zB!`^>v^>EN6ofgWFM@oBMAFLElLpHEN7OJ+XT0)i4^nL3$Veb=soL<_bu)16oNs@8 z4%S-2i)K68x)+c81cM&C>8nF;qP_F*#ofAypZoUhn}BiEIuur$^n>DiT!+|*yoxC0 zeVWGy3@cPHUWg29=1pb>;BWDVmYIhh35z?&p#9qD6oc&=7Qy{jC*W#MgY#Z)~6DXTH z(uxr-;x#h~-F>-}{j}7IVai_IqJzT7)bj6BlvwuAZ@T(xAnG3O6*pToc38ZKuCDHh zopi*XqMY)0R2&cx%^e%Wm9+Q3fsXEL80eT?db3~`VVYQ3p7iX8c@eG`U(L*#V*8;j z+qPY7TCx1}^tybKG*TIfgp9x#(Dxk4H4at4N{meG>1#0~R3z6GH@B+lj7X z@y@&a`a!75M?=%omH4B$VGD_fh#*I**-5UKhfT!QY?S+-UoJU0A7}dE_!C>9^`LFd zpPj~keF-tG3EKAk`*$zY_6YC-aNW@}Fi`5>ZT>nqm}o!r4t4+gPAK+n@Q0$@itZlo zX}wxt)y=H??20rT2&y_d#06tG)nQ_MfG>Z;B@~0mg}(eg0VkdootKr*x9O9?bG>)} zekEcXVVy&?yun|8;VNvWjKCMzd4Fd`!5I)!} zJ_{(*X{bal2;rZ}T)43F=<-iBDpoO-VY}0cP?Bcu5229(@j^VVu!)I%UZFXm>6RY5doB34}ixS6t0kD{qSO&)0#_X!_K z+!!XMQx%bQ&CPl58g~c^=GD%k0qXeu<%?pKutE|mjZne-hnMDW6G6QE{M$>`Va**> z{U6pI)@2f&*$XJ&5KsNgVqM8SR~LJ2VI@qcKZtn52hNYFQDT~^tE)=@n+$SW3jOUU zCWT5n%hP|2LgNYk@;XwKbe5(GG7%Akf`8Q*VA2=#g|KF_q5bd$*3Yk3;n<#S65%n*D9E9+o zm_(!}5ms}QL7!nI+gili4>{3G+ymRO_Wh(|=gu+Vzx`n(QvCcTAmF8sGa`;&sS`Ew zvOIt^L~6kE*Vj{S--unVt)qhqn}w(r@OLQ0@N|fj{eL$X*RXEG21;Df+N@7 z!m2@y^DhbapVKe#yM~GEJ&4{3r*>cwZLQh%kC@4y(8*t34whtO@Xr7Gm2fJGUnc6j z`ug?j?@72GL}+RPC}+M5WwsZ@zpQL*eP6zKBg7{b6=`?G#l~(%c|~mV=4M)S`8C)T z77zA`iZY;q_QTi!D;8n%Rugw?8mu8!G{c{VhXV}C-Hcxb(8BxM*4F-h zk*?8S5evl(c?DJGwsN-E9le|Ev{~YgRz_@_6Fwf~h zC1M2M9W8_F>by7PxTIHCmNC3x6A3K>`j6(UozQs-&r5EhZS%ttG)HlMPuOC6#ieEv z-oVDzw%MZ8ZHAYynuBH8$-@JH;aO#!qm9imMa51024w;4l5RVAc{6&hl{k$D5ydD> zZMA@$U^>e&=_;~CMV2G-47p|);~c80s)#*_1zx^_`&!=i$iJ7HR@DT%uz6`nYPAvq zZ*TBE6#7B0>k)4t56^?st9;g~yM(y4Lyd9%Sy}tra|{i~1c9XBx*R(J(vV2(?CiM( z1;@cHYyq-?YhYGaQ&HK1=1Rcr=OtM82?L;TSfpa|i4!Nh9zJB#%+?D`jq_ket5$Lc zJ#k$iQAGkgR#jDXSsX7kHZ|pOILtHt&v~RntoGfz&C^4T3Mh!O>LO0;EE%%}1V+os zN=5om?k*aO3LVBuN&*`{n=VxJOv}J^J#^I@DJZU==E-!_`zuuRGn;{n%T13cB(n`G z!tiMO2BHk*@uXwZza>sw9>@{PGSt7&EcvSWeciVeFNHIP0#WHKc&QCt|A* zup|@N34}O?i)*d(M3?kfdsg4rm_^f#3eR?INP=N9sSS~a=^Y-$C0S>dB6Z#x@JV?v z0uY8$0w_Q+wWfq z_4;Dp*P<6k>4g|vO>kz1L3^Uqk%z$F2K}S?ebhJc80_l5Fd_0MCGcGP1 zkFFAi=Fb_pqSG!@0!$4b^Ua6_(N*rwpe!-9?(gY%JBo&lL?40_B4GJRD4`yileYhl z8~T@2N!;Z>|1i|lS?hLIR@R>k#FwCdY@7eNiN^0D0$=?Bhxzi$DqC6cmtYW;#VRmu zfCX1xf~FX)HIkKg1UP{q#zbLB6zRWPfRkH@y-t+K z4wQsM!ssdt`rj577RD&)CWI6~{yDrwKkn)e3WSAVXnr`cPDIU6CK_Cu(ZKAR%Ia#e z-O918Gm;;iQGX(r9*5VupvA19;gsA3K2-7aa5WVqQ|160$wo^SpyRe0cYeG90#Tx#vv7k^vb9E?DXe1 zA^ZLv*P+Fds?KYRkx6i{u%czYSwDcma5eC6IGA{Qdw+%(4^slT4;-LDnbtPr>f-VO zb#9hUfed=xcd?S0&P$lWbBrtE1%?eFovkIo*WX9vNwh$*E?+31|JsZ&ou%1{DI_~0 zU*lKCOq=Kd+UEZDZ|v#E8Y1=hH;{C>0M#*jeyY%bPr1B{7L8tCVkNdl&C z88KnN?B3C9B|Sy>QZUA1&5jnt#Eh+0ynV1JV773ylcZx8FD7TB zMtgydlw@@Ia(by(aa!6&62Xylf2dfQ$#I)TGx(vivtwap^zXNkU|P|jRK9(CI;T7% zLoq%mL>Ug?rUY3){sb#UB3Nc3F=%RTM<91J86O`9=WPRVrv65^duP+-)Ya*62T?~; zgAn=f=@aT#A_@|1BT8?ZiLS#)VXeBoJ}>P0YpL~%if#M-DkmpZhjww9D@trTF29wY z-gjoKgHR8kFoR5RWj%HbdaP)uq3*@Ra7#+EA;+SsB_6ilW;UI1o$XjCC_RnQ>mxI+ zw^?1=w}D{;*$ZIWO)!)p3HRS%FnEE^hty@b3(8{%&G(~Z&AYbf{%@_bEUA? zg9S(h(O5yvc;Wk^d#h_;Kr|f@vG5o%k?A_-cznKZ7JD5P7^16JiFy==S#o#;G)!8%QoN8P zz3DA1^<4PHPTKZwS&x5Zrx<=>*-{dWFzx+4z{ZHI_|II*zy9uKb5Tjjs3nL;|CpGV zri)As5H?L=M1qEe6oLy>)DAS2RJfTpIc0I@jla?1QAiTG2aB`ZvMFAg7-j&N~Ndd)6Bw5rYoE*A<*tUx;udua__75Ce_BeaOR*EiaX1XfJfBM0N(C{si2E zUkRrKnNd)ob^`#R+Hn_UJ->cQJTanaVgn1j5h1LH>4-rTsNH;dqXN>-okt&p#6S$~ zLhF72eGm?v(0-JXLR8%^mUr||f)*uc2an|$Eh3K(zfYzl*pb_}cU~w4A44P|eJuOi zin}nv?FN6%Fo0DOnovSCT(R_n@?D%%&LS(MUI7SZRmkZiAT`x3XlAKfzr}7l-e8E~ z7zS6Tjz6{P)&auXH#FprFREAWwvCWKps-6gn~w0jHcOKd9Vdx6paIytErGA517OHt z!4N@>mh!HOC?kq_=xwuq6|M&U;i!=~e`@T2r?V7`M zD8F9G{f}VcAmXb(cuYK!rcABhXh=tnAp;5k9dH;}vuL|F;#(2eH}*04Txx1+bxX@u z%rzvqViZ)ih?E2>y9RUPsPHeL7|#0Cg=qjpitGcK0dZR&n%TL2&uXx_M4yiAm-I&S=5yLR%qee|0!(~f8u(Rncno6`erCnphf9FTWN z$F%yp@X4}(=m_B%YL*=+M>cF`bt$vH7x3y8kyCM>Rk1N{-rNFG3j7m+{lK|Hd?%(=`a?r;nXXblNFkwn_CVFSslyj+qfKF|(k))q@GemjIg zTU(HD=j#nuyn$g5^YOw*9@5cL5b#eTyZ}U&d1l$^7ZkJ!In@|X7*~J0DVc&7I4F2Q z>d}h7bmKj)s6|v^ktRT)jzIt?NZXQbQ=rNN@U~STvN{W`>sFV0S1W;^;As>&jWcWJ z80>erOaQTeHrW~EGtOh})VN_{o+}a{e)I4!+=fcr=lFrt6Is+EvVLG5oCxzAPe8zF zDr|)t0OFDNgOCEafX3iw3DsHE4ayt*N?Q!C&1{3RKMyoID!9_hWfCE-_%%Jm4f$oy zFA!RxK!eiMdG%w?ru*Kx)0R|00VL@q9y$@d^vYalQE2;vK`AH@CM@?L<|y=|n|A@T z?J0Bp0Otug4SUz;6)6N2RPLG1@4zM!r3wI;rUInTHaE%5w5s+sc*iNg*HtJ7jyQeu z(#fiY9AXMXgpyGH5>ND>;oIEGWu(|5$Fc2RiyaMr_OK-@s7FEPje78dnwY_`q%W8h zQ%SthSWd-xET?-ym(QwIpmC8FE=_e;o8B4unvf7Y)+yM8zx4r+2%C^jmvcJcZW-P? zTmk|r9j3;{*8!gTEF3U=9s=$a0L})iX}_GD1Br==4koB-4915rFN#Ehf0h;uH0&fY zJdvC`cdi2|5kA>~#p6XZFbxgV{xlrhOQ@tJH!_8PlESil`{3|&#B5=1?h8yWz&OC# zlHi?O=C$bD{%pGb<4e-V?rj=+dVIe{6&Di!)@c0=QszF7BJ{T!+V&()42TK{Qjeg1h5=Botjtv$>H-)2+Bnx$PA6+SHsoHUT~kSWkvON_4@6z-NFklj1=zuKsHD%r&Z9OTZA2eG%FulpHuw ztU?FAZ(mTA)kv^*#jKdx=_Vb4{IvJ`f2Qykcqk~sb&9ID2@gpxcxs<_&Ig7=A<3K%`q)Oh(zpt zk_~Wj6xP_ifUF#rAqght5AstX?@4Z6G8`la)*28V?vJ3deZS7S^wyvD#%li2SbLud zv>(a&cd`H-=?5s9;9wvgAA{gWARhemI_VsFsG;w5&E< zIS;V`bYxASJ5eE>Q1fL5Gy(n@wR@7|SUbUS9sTunD;m;~S|T)HW~*;h6a!WxN*WBd zqS9X_v?y@HoJYfqnZ%cRpG(4SxDH}W`8Ihuxu0fKA~Vo!;IGg+wHEB94`L>CHIX_s zmxJo|V&)zj=%kr2@MP6QtE00xV0Rca8Z8sk$22!=`O)*@6*rV_FXr}XvlpmO9yw>u zeMhnH=vxQ&)E9Mow$Q4csy0%iai(c;P1}W=))vY@v-PhPEuju#zskglf6-k1*8l+# z%0C8(Q%Z-uTfcIXhu%4{ld*4{%sMV2yqLEdSQnw7fka9s3R7k-(BrF#EnMXNH;SyH z)h%z)f&Zf*E9ISv8d7wJfjf270YksvI>=Dk%uGY*1F_6l9Cb#qOTgX}^d~B=8?@Z= zJA{P`MuJc#nR8KzgsP~kuS2=DbJs3opsg}dYTU}ojq*2Qz&{cB9)<9$ckgN;`awq* zio7gxEiXKfv+);VnXS=(iV-GN4VX%%s;wPBK)+C%Uaic0|kKCwFMy}`6KTdqr#uZ8eo>#PC~W2{eS^cE`b3tL8RG(1azbw167G} z3-H;IUMO%}^9AIQ07T)>3S#zE90K5d9k{UVz+n2A%;0S4g}Y^8+q$$j?9ntg{t zQd4&$K71Y+Sf70M@^=rgDe|aZp|$iww@DA9$|VE9&){FbVE5m{fB+08xsHJ-4-VUt zqcqhnFmK}y4Gjo526hQm*$r@EFdT1eZfO+4$LXGDYiFexG54-W(b7_NPDWIXd@5ph&b_iY%Ca) zUXcLR<`y7#p=Qtg4~WOlumZ$5(D~gwcN8(3Fc=xP3g82(B=U+4SSIX@SE$fW(Qe&J z#=^pavAx95Q6lET`R60!tpc4di=*?u7l5+*%woL*pQdEdsz9dkOLUiLv`+`-9-uA9mWTDIq_D~sfw+p$eP z;hG+)?8!xOfXWnV+he?UsyaHfhM$bKeNdUsMX)l#T$Fi;SOGw@A_6&Iw*sh_G?W&O zniR3-Ox)2>z=7RP;GV?i+>rqD0Ix&2fXN;kAfpK{*90@nPagBvXjws?mY0Bm*d$Er zVYebM^nZZkKd%Ujp}-Zh`??VhhVK{`BCI-4kPo>R`UXrJPS8yzM)Sza%V#ZulOZ-g zs((WFTR$KmI%Md{#g*6R`H|&Bf(r4?QR09myjh#wisb*Lj>GdMW*-tmItX|Ux)rea zYi(AAy8p!B@kj_|hmyK$Hy9$C`=|YktNjvCb%4NYsVbW z#hXY(SA#h}k1d?>AAs#Fu6EzdBf(vg2afgex%?CzNg58yqKYTCF+Xrn{^3bUL~pP@!k*6|Y6uDmRl}bIjHCFd?nMVrIPh7@`fL6++x6DmSEA^a-|K zUIr>;jH~LQq=V`7(5I_d>3aV$Nc*z{%6a2i5muE?un-0TxnsH-0=j68TFU84Xnkxk zpz(sKDIsGbIAhHC?*1HY?&cK5**HxEaFhQOz}0+N2x+;P&9S)!ybo;HEi7u9ntqT= z6CNmNvRp80+u<6Bx*EirE%fy3padj&K`4d!(U6H|v!IkYiiW%&Xjx_bfr`iOigP}9 z?qaPFg!4TSOC9Kl;?;REvDFUuzZ%6mwkP8H2GY`W+$tdqMYezl9>_zD!h!^vbRoeH zjKk=xfVwxAhlPd`Q@B!2-}eT_OsRd}m{5R1B9H5aM4o(73cw1o8nhM!jEk}SY6YqO z6~6{!@ELVbG(mqt)jg64krV+E0Y5rlK24}AWRW`0#7a=0eTCt#v*akkKcMO_P|o21 zh*MdXgvzth}o`1<3MP+cG3lASD+jv2sOYf#uqQHhw2CJn6*Wo zY-cqzwh>icf6M##p9cq1I@uY;9rh3fI_A4`!qiTfRSeh=(4fY}FX3lP!~(C$`{aS@`367%_@=1Agpj;Y))7e&6`s-3{8R}swdzB${chs# zNl>x1&H#fhw^3KqMTde)9Y|iL=)0~5OtArJyFPo4Q~#$BuMUYV!79OkQT6`)lTUkD zVWfkuqz}kO+br;0c@V(1a43j}8=^jf@Q{Fp=P{Wp7bT3khK6vO{Qv3h#2iO&TOD!z zv6J-T?c2xFb=-(jH!4%sppFG=3EeAU0+Z$yUS6M*vPt-Nbi;Ns&lG;KOnF@amx0l6 zM8AL&O~KB0%=r8Jn;_HA1Jkk{ddEhZ(=vf#%E1JHGXjJW^fjoiu3}6$b$0U~wRCIS z8WNNsxDa|$Joq%kmRI%l7T@y%177_^2X|8@;TZBgnm9myJCv3Ot}08;&=b6tNpH}$ zeaOyzI6VTPo|B*dOh*SG@2i+EH9zUON{RhI#V)~!O^1C`2@c(wM1VBJ7=OZWg01cT zmC`+Gzb-kF1xODQ7-n(Yj68TV(u9^WlYf=*|HoVbCgQhYiS~XP+)U^J zhNtqL+&-4M{;7t}r2>s6O^wPYcRo%^k?D+cj8iWnzWpIYBps_tP)|5@Nr;?<7F*RH zfL_x@q<}-;uXdCUw-j>dU|XHoNj~Yk(5V)lm*HoUo33E~hV~H;hv22hKs+{DbGR&q zTqUr8`g+RCmoNX#A<^1D9F^{3F-{J{XX_DYj*ZV<@O{0G<@1WH04&Lj1m1Z@)M}uw zHfwOz%LqP#zncTlwfQ0x6Lca>83Ao=2l)B3Rr`2QTI1vhR*#imW~5^X448A}jWazq z<9W;C|1m}9krChA3J_J%&~Wr@F<+f8&e()itATrvnc)RT-m=G9=jG?Cs?^dGaK<kbpY7ADtD?UC1M%U@VJ~S9;CUXQ^8GoG4syqIwI56NP z6yE?Uj^P(!I}o#UVAS*CXO+_$x)%bf8Fdjvo<=#(R%Ji^yP zUQ`*rW!^^LCl3u0U`~R~MO4P}1AEhqr9nCS?IY1qLead2bl${-kn=#IP3Td97q+mh zLgp54SmA-xN(iO$u;+;e1A_#sa1KRk40IrWVOoEP5Ak3<1^+L|1e!JinQ&Rfn-kdu z?eTFGVm}w4$H7j&84+WUV;ew5 zLeW@0b;$Is7i953;ow#Ojqr{EQ(Xh-!~WmVrlSvH0s@#PUsU=OU0Zx+po_URFrKW- zcqLHg^5H*amgkk6(i_nxhn9GKfDjGM*?gVU${I8oK$gzr7y?P_=`qN$1Sdz#;y^#S z@psl>u{JRwBN3N-;oyCK0kmL>&Kc>b$IS~$bQ<8yb*po8u|nrk*4nE6ShsNV1{zkc zEK6O~izZbsPY(Bg@n%qne%D<=W0EU~(E0-FlF+97rHyz2?kN`(;qQv%G*30m{uXSy zcx1pSVGN)_9VGUL+>Tiy_3v$k{+J?xw6IUY>3lyS!36}9z>k`U6N=*AoK{xa6&??p zlG_4P6Pb^p#0Tn*$3e(7;9hFHq4Y~q1UfEM8kFF}Q=QA3tN+LvO_*^4?Daghakx+% z_7kjJx#w#(!K$*B1oRuxbLs>#7gzOtP^5$9a{@m*5~Bg@@L_@&>k1a>ajhV5{1>R*3G$gZE(qvixI{0+BAk)0 z1uzl(=eLhr50wABHNngZ(N-A{xv8GPh7Ug~7eCBT9O2?NAZ1$jgIwtM*-F^F$glm1fgA}Dms|ZJ<579|z^E>on)+dT z3J-5qgA5FofI4lBYQcZB+zs1a+I8p4&vfhWkLzrF=89c7DYH%wpI-mMf=Ck^y&8j` z&rel_zxp+Dw%lwl9P9))r&m5JHD7i~$9ZFn=G%kEzP+>jjrHsle< zI}_a>2LvA4`Nv!tvlF?$4+{MI8yHVHt$*j6J;vx4cKKdUb`XhPLs~;aT|-v&_91?S z1r4DN{kpqb5?6=qD{BYrBBEkWX|@|Ep1I>vD!v?>lJ4v0E4WlP9l#+@AJgC@KX9TV zXs~4L1D(vz1J`&zFqWJ#mR_^EWXfQY{XE+DgyY5EoeL)@@LhR30O&0 zewcT?WKBwRigEP87Z?$t&FARj*_dmH3()l#&fDcXY`DM0m4M$ei3N`R6 zfuDO}nqT13rIj)}dKJwbmQa~N-9(Y^&c%GQ6b1vA>#ts&KqvVN!zSL%_sS}-=wc%G zyV1zX6iEcy593a(oBazj-*W@ImAAFcE6lXjWR-B)5?oUS(mc8hwOVku)$U=wF3$e? z#jWvWWe*@hzIFfpNpw6IE7FsFYm1D-zPL>y0Lf4TvjNqg0>t53D&Ac+?lkxMNojD( zWyB=RMmySQfmW0gErpr7foE?VVNymo>8cl|l?ljCQYMdic19~lJJ0*)PluE<58vPr zwazcVv6)h}(@ntjngzQN8&3`PtQM(}L16f@grxDWU_i?RM-aNSg+u zs|+140OQz!BQ3Gd-b}m|KXsRnQ$*x0h<<>PPMZ7-Pc;T{cux)349T4Ry3dH=$0Fxa z3%@lEj&X?DU@^p>8Lvl5Cr+TE!zo<|sf`euNQ^xbacmtNbR>?2U_vWblD&2N_Vx>g zPc>4*R<4njMwC6d1O+1i2?zl9X5Fk1HEXE+d!hWkKacf_Z-M!ZjEJZNw?6vI;ZrP5 z!nudOER6Lqq1A^l{wplx>u~{I3hb`FKww}PIs+uN&pf=mifMlD(A*M6aj5qD za4RR@FZ4(}^WE~i&dgg04;kdv>3ag#Z{MbepytR`leCPC^GFdyLh<$W1sL%X!i00+ zc}OBL)R}E>FrFI&OLp?{g|xP|I@MprK`Ko`p297!<^ zwK!bq73?H2w-3QDgiMPrX}W9{M{_;7)XcRqTUdeR);cizRMW|<b_qiuC0FL_juWRz>Dg5N z!bMcn7-^DHTLM!qW2VAqo7T0h6(2uJG_q~>ADTKc$!CJ?1@N2XSP|T!BBj&RDKK$qc=6YUziR$hn81)W)=WD?W!u+}#8h}t6Uj{}71U)$f%zOKQQ&;TWi_X^` zwvTq`M~A11m1jZYc>iO59Ll&@$^&IL;X-vEoJm=}T+n{)RCdeAOY?%W>gpff{ZJ}g ze={md0bLAnSYK9a`5AZ1qb=eOPA)37?8N@$l=UOseE3k-!Qm&p| z{KlizLQ1IH3C9|CSmpUV48;h@$gtczc*UUbS?rOAn;rCb!=&wBT?s@FK@Qm&13(zT#=e;GwMQ`_ER3hXz$OG>!x9 zq1?{5gWJR|=Lq)ovO+Jlh+p4*AXYUG)g~@{kC&EHIPRJ<(lXh9!1EX7yM@W8m$jcy z_1}QrvB7lU{V4@H2GIbV{1`#DNMpoIZWR>_yAMQCIKqP!VAF-yEWt5XN~c%f z|Dd|9YPeRK9Oxtk z7*iirM#sYuR1Dv#U5gKw6+7(BDPO7Ge~em1UrIyRO^>W~;UyzW-@XOs3U;J;6|uRl zJ`fI5Rg{!PBPlTpGe?n!vr!t<3Y|VIIqtLIUUBzdA?&Y)reMe^n@6(hLn3Z zi9{>n`7=C9d15vvdOPY)(pX7hW?RnXXnCA-$?(AQXvFNsrLl^E;(h;I?(GTkZZqW; z+#5&`h^5_(2Xo(#scTf8FX)@}G_{s^pOd&>>gV5TL!n&l$J%`DVGQ)wf_`RVlp%*A z`N7{)6aP}({y&$;e|v)@<&}*%Lg=YNha;72ozPdUFYesOA>`bq(WXM5+6)s2)Yftxf{+h!N@cN10QJbhICaRV#@Iq+FFjAKPtF?_2?T0-NN&E+JJ==ER({6_Bn0}uAetu6|`b;rmgm?J>fZf zkUuJhZ1rem$!d3SgDI!bjt8%dCTAmv{-Lpn`k`d0^K?sI$IaUhzTr|ewX-zO`aKLb z&HFKD*%=TR#Zo<>>Ja$6~$a4cb}lCDJ{noz}i76eU*p0&6rg*XxU3N7~S`Lbv!Br>SAL-Fyf0u_)$Dy- zqUSAiQNwdx8X8OX?MYv=mMLYwjK5Uyzvb3{Vl7vd4W6xmP0%g2xF?g<1*~o(b9yU1 z=H6fJqAt}%@9+KLKermzDeyu_P)Q)2(yU*By5E^bZ)|{hfgjCRfJfHn-~;oEw~qu+ zwHN*HtIr)RNE04V`F=pm;Ch?X%~$a%T(`JSlnk?mjURoR@|5zV?sxaIrfTM>WJ&oXdEH+;;O)H}z#-(t)>7h8I|w!eQl*De zOB3xaozvS=D1tl2zqZX4s`cBr8(44T_oJ{Pb0F*T^R_y6`TkY+A0K(pHaAZ)Zr-pM z>+07x^fJLSj*NddN%}wzkIjf_z@^#py<~|~x<5ph7#{y9d$hVJAnQ+^aDI|~Q^nGg z21{@;CWW20VytG#`>T#*Sm;YU`JVGl{6XX6()Tg%)L*Ql%IAM8=9re2QRAR#2ifI&&1d1vD>jxiO7etormvur$|i;^bnk-^Zfrzq$HDIosP3QH*BalwGJM{1q4-?R)pcGed-dEu9)5dY{BGhC z#rTouJtdC&pu@vZhX6Px`y9lHlRHdmLkK4Z*U_WTPjZZuyo0R#Bg_Zz^H*9G&Sfn3 zTiVqU_y6{{PsdNhbI3air(8GVU2L-)UOnm?EkISFwHoC9syJ39iQ|Y|n`hSz<9qjJ zB5{h;iTFET4pdxnJc0^ir=;XVG=Wdf*92{!CdB$cJAoD%L31GX@ZFgPDV%@{>YiW_ zckbS84{a|QF!vg0NSGjhaw>fY}se27z^b3P3bOq|EUULXLmt|i&i zXzB8S4-iKSL&6hX7U*cY@_$X|y3ZIbp7Qu{2r<2SY2FqxWLH>VB*(fuSC`Si5x&fb zxVT0#8i}SyW#G{=^R-G7Okjc{_WX~p zulGN59?L3(Anh(sPB)BDD4~d98Bjzvy2UJV{SLONJfaMlDaK-Yj%$wR#C3f>dSCfh zznb8~&Ga!GDJ{}9-_nbwl@m*qLi|pOHd{Q@R;N}tc{$h;)I8kF^_T+(YK{{p@1T7b zJ!cAKFPbtsoT3OoO%pCN1Dx0i>r{NTU8inGltjS=N)A)@fmsR@8{+|OV``rG zG~OT`(Tpy+N`WzQ$}zvdPJw2}t&t@MhVw7+ZjOpMR?!kg4UerV{f*(_yA}R8`V?h+ z#89y@ zX0Q8}J+0bmj=NJ?VJJOvAX`?-^$CB|uw!NI(*@OYn$p9$_BP@%n>QOgyTSzAYTdf| zeg|Yzomyta0lna7zkB36YlIK5h# z?ROje;LHZh1;3Z_@zGmy>H!d~UmV19wS^v>*?lH8iMS($r4Frel1K(?w^F@GjuCSt z3(h_-?)WC7YtKDx^+-~tcZEh}Z-yItj2{K>{NlOS2eOTZU)VIRz?oJnq=e}wfnj0h zPl%EIu|VJ&Jv24$K#henq@-aOgRdxtVODN(H{yPu{ptMW>$!bV28t^`F5c6W3Ry5B zi~nH4_~Vm(-ea^2^wmX^r`lp>*O0_eZCb$#UU@bJR*Ck|p2*$-0-FBf(; z3x$$xm@S+avX15<)D}VSAHA(z%(Qh4jdNDFavyVw3R}qEE#bM^#D^@WPd7rtmpYe|bzt=+F#<-JzB%xd=t_g2YqjHe$0Mq=7s zLKCgWybfy7f~B9SCeh!9_T{iPWN1v<*0HJO>SQe~4Mn=SY5jDw+pD;-&*yaGL!m4s zV+KRHi|1UsFYe(Rw%XcldEWEdw)U@mMbD4ORgU+kHGDc%$<}YfCh05eDn@HvHhHey z#>aRj^$j&`lDzO_twC(}Hu$GVnkJ7F;z#K{T9?;i9LHlWMVP+oY$A^Y}_CuD9CGp(LyA$+MHfL}RB zcYn^*bl4k9>+Z0WiP6T`=!xh2cMdxnyem;Myk)5Uw%A9uN&Uvpr`JPHhW72|KF{cA zB@`9ARY}KAh?_3)1k?G{lJkk9Byy+^Q_me7*wyi8go{!Hk&Z+V;!mOh#qT4Sn2YM(ncGq}5ByCMFaoPxgHc zT$?y9IQ*;l9#2tlP};KT?)4Q9LR1~-=s(LH{S}$B%lx(Z&o5jKTHQt_yZCNp1ew3# z&CKiY%&;O3lAS13@dC5%xgLbcXMFEAYhDxY-b!7xsN$!Q~C&TP5v7v{eFlFKFff&ZaKi+R25MJ#x zC}zv*WOHj_85-aw&zqkbyI+2ZGW88z(U(Mes;#juu9lhg`!>n>k_)_Ie`9H)U~^GN z!e)VrN`=Ek3r90gx(p}y12fmNt=R^k?X`WT^YpSf>|#Av?e`*ia=^N7)+P39Je~Ys zJM4Y=I7!RdPMo!Dbx8PhoT_M8vg93wu9Iairyw{weeh?vfaB?_gGHnGl$14r;pe7cmz|3_MX>;BLZOgMRcUnqlPOw#NM^SXs|E+YvJJ@emLdJGD; z5n$itcD5tbkr^5L!;)*o#Wk5<3AVWYF0@noz9}lu0a@M}BVxa2U$AfPj-@0M!Jyz# zkMq)ks-w#0G56xl(`X|YHKkT&t_f;H-=M9C3GW=2Z+XfyaQF6u(Rh#YF{P5iu`8al z>#7A1k$?bnjt|ZX2EO#uJy(|C4asbyT~K0T#-`{Lq@(S@>y=s%3erYL`m)&A_EEc? zT3lR9&_)~=WHwl@LmvsZ>)Js{g^%u;V!7tq$jHb7n74$Qs#XrXbP!j4tf?*~b(&1^ z&A!8$Zb3m$g&tSTudh>7Oh4>)`@;uq(Ae&2mdmPj%OAG_5ao}mKO`)n98B}&bzFG- z*VesM)sROB1+PDK?Pi`%mNwt^$C~^6vQ6?o>i8NrUn4r4tIE5{V@mY+&Dl1aTd;}A zuljyT+rz7w{dLjg@E#Es>FtyW(eecbviIw6^x3JhY zwa=JpBZpTv`|G9z3gkqe2GdBth-;od;_KBqH&&IvgGJ=enBP1=6Ga zG&xL}`K4$4p3NU5ZhM@GlU;6loB2h^e+a!$YRgGf8f|TDt?lh+$80`3h^f%8&ur6K zZCSqpUSuoq#0IB@cQmd^;-%u9agyn_DwnVFJxwhvsMI=101mN-=6$UTbdVD!f6`FC ziBYE+Ma+`x-9aQlH6f+sj3;X~$jxTWOR}BCyfjsr7xL*eA`iToY;fp4)}sEYIKRB^ zH*!Js2X2&G6fm52x8g3JTewwnS^1xp7 z;qf!xqGxQQvtuqWsDGc*>YeHjJ{z!ccBMk}_x(yR=grHr)w>z}Cbqj*#XvJGd#oq> z?j?ZkC=H80FHHwNRrt)YrD^aRZkp~r)k%8kZVytPrlCn zb%0zVS5*Mj?8+{qKi+xICe4`8mydSh&=ubaCzDt4Ed~l2+xRqDR#q(inbXD^eNXI@ z_E4pIs_>b?as9uNw|_&Y{(rN-|M3k@xgVOgvv(m+OnhcC!hL?#}m+xqNXK<>w9aWNSiKL?mW&;;bc09T|up`);#lbNn-pjPy8j zmSxAMj#*hHefU=!ZAFA0T(UjOV8v{B_lI7X`M&>eb4=!}y_jix#e_u;9GdekOz@Oi z*0$Mt5gh&~Fupp4^Uu~d=g;Sx7sncP0>SaMznD8~cG(4L#zVZ1uQ zRqFrSOOmtOj!XGE`(~Gi057EzaGJx*Te+n0K<1zAca6=|eBX12Thy{G|EL0T%0=Nb sX_FmK@41v_5oq-@9BkC`8M1%>+9yg+_|M>E-pl|5p00i_>zopr073mR%m4rY literal 0 HcmV?d00001 diff --git a/help/de/figures/merge-ex2-2.png b/help/de/figures/merge-ex2-2.png new file mode 100644 index 0000000000000000000000000000000000000000..0fc1b06fafce749c3dc6c6474a41b1685ee2eb2a GIT binary patch literal 62037 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 literal 0 HcmV?d00001 diff --git a/help/de/figures/merge-ex2-3.png b/help/de/figures/merge-ex2-3.png new file mode 100644 index 0000000000000000000000000000000000000000..8ea450a2fe228cb566226b54191e81f96689045e GIT binary patch literal 34780 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 literal 0 HcmV?d00001 diff --git a/help/de/figures/merge-ex2-4.png b/help/de/figures/merge-ex2-4.png new file mode 100644 index 0000000000000000000000000000000000000000..0bc3c6b0ac118bcb5b484f5f6204d88c3914ea7a GIT binary patch literal 49083 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 h!#Tz?DUySZaVnz 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 literal 0 HcmV?d00001 diff --git a/help/de/figures/merge-ex3-2.png b/help/de/figures/merge-ex3-2.png new file mode 100644 index 0000000000000000000000000000000000000000..a539cfff85371d968521bad3edc1d3428c52e710 GIT binary patch literal 67256 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 z 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 HJbnIulPd9) literal 0 HcmV?d00001 diff --git a/help/de/figures/object-editor-sidebar.png b/help/de/figures/object-editor-sidebar.png new file mode 100644 index 0000000000000000000000000000000000000000..94ad2346c95e86ce5f52da9f599779786e00dedc GIT binary patch literal 11132 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 JRDn&y{tZrD6QKYA literal 0 HcmV?d00001 diff --git a/help/de/figures/print-copies.png b/help/de/figures/print-copies.png new file mode 100644 index 0000000000000000000000000000000000000000..7e5394418ea9445b8ecfa2fa8dbe236b69899a1d GIT binary patch literal 9196 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 G|NjBApJLPi literal 0 HcmV?d00001 diff --git a/help/de/figures/print-merge.png b/help/de/figures/print-merge.png new file mode 100644 index 0000000000000000000000000000000000000000..3a9efc3e0c85856b02b0b641b889b72e5939814d GIT binary patch literal 9722 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 literal 0 HcmV?d00001 diff --git a/help/de/glabels.xml b/help/de/glabels.xml new file mode 100644 index 00000000..b38c3dd6 --- /dev/null +++ b/help/de/glabels.xml @@ -0,0 +1,1776 @@ + + + + + +gLabels"> +]> + + +
    + + + + <application>gLabels</application>-Handbuch V2.2.6 + + Benutzerhandbuch für gLabels, einem Programm zum Erstellen von Etiketten und Visitenkarten + + + 2003-2009 + Jim Evins + 2008, 2009Mario Blättermann (mariobl@gnome.org) + + Jim Evins + + + + Das vorliegende Dokument kann gemäß den Bedingungen der GNU Free Documentation License (GFDL), Version 1.1 oder jeder späteren, von der Free Software Foundation veröffentlichten Version ohne unveränderbare Abschnitte sowie ohne Texte auf dem vorderen und hinteren Buchdeckel kopiert, verteilt und/oder modifiziert werden. Eine Kopie der GFDL finden Sie unter diesem Link oder in der mit diesem Handbuch gelieferten Datei COPYING-DOCS. + Dieses Handbuch ist Teil einer Sammlung von GNOME-Handbüchern, die unter der GFDL veröffentlicht werden. Wenn Sie dieses Handbuch getrennt von der Sammlung weiterverbreiten möchten, können Sie das tun, indem Sie eine Kopie der Lizenz zum Handbuch hinzufügen, wie es in Abschnitt 6 der Lizenz beschrieben ist. + + Viele der Namen, die von Unternehmen verwendet werden, um ihre Produkte und Dienstleistungen von anderen zu unterscheiden, sind eingetragene Warenzeichen. An den Stellen, an denen diese Namen in einer GNOME-Dokumentation erscheinen, werden die Namen in Großbuchstaben oder mit einem großen Anfangsbuchstaben geschrieben, wenn das GNOME-Dokumentationsprojekt auf diese Warenzeichen hingewiesen wird. + + DAS DOKUMENT UND VERÄNDERTE FASSUNGEN DES DOKUMENTS WERDEN UNTER DEN BEDINGUNGEN DER GNU FREE DOCUMENTATION LICENSE ZUR VERFÜGUNG GESTELLT MIT DEM WEITERGEHENDEN VERSTÄNDNIS, DASS: + + DIESES DOKUMENT WIRD »WIE VORLIEGEND« GELIEFERT, OHNE GARANTIEN IRGENDEINER ART, SOWOHL AUSDRÜCKLICH GENANNTE ALS AUCH ANGEDEUTETE. DIES BEZIEHT SICH AUCH OHNE EINSCHRÄNKUNG AUF GARANTIEN, DASS DIESES DOKUMENT ODER VERÄNDERTE FASSUNGEN DIESES DOKUMENTS FREI VON HANDELSDEFEKTEN, FÜR EINEN BESTIMMTEN ZWECK GEEIGNET IST ODER DASS ES KEINE RECHTE DRITTER VERLETZT. DAS VOLLE RISIKO WAS QUALITÄT, GENAUIGKEIT UND LEISTUNG DES DOKUMENTS ODER VERÄNDERTE FASSUNGEN DES DOKUMENTS LIEGT BEI IHNEN. SOLLTE EIN DOKUMENT ODER EINE VERÄNDERTE FASSUNG DAVON FEHLER IRGENDEINER ART BEINHALTEN, TRAGEN SIE (NICHT DER URSPRUNGSAUTOR, DER AUTOR ODER EIN MITWIRKENDER) DIE KOSTEN FÜR NOTWENDIGE DIENSTLEISTUNGEN, REPARATUREN ODER FEHLERKORREKTUREN. DIESER HAFTUNGSAUSSCHLUSS IST EIN ESSENZIELLER TEIL DIESER LIZENZ. DIE VERWENDUNG EINES DOKUMENTS ODER EINER VERÄNDERTEN VERSION DES DOKUMENTS IST NICHT GESTATTET AUßER UNTER BEACHTUNG DIESES HAFTUNGSAUSSCHLUSSES UND + + + UNTER KEINEN UMSTÄNDEN UND AUF BASIS KEINER RECHTSGRUNDLAGE, EGAL OB DURCH UNERLAUBTEN HANDLUNGEN (EINSCHLIEßLICH FAHRLÄSSIGKEIT), VERTRAG ODER ANDERWEITIG KANN DER AUTOR, URSPRUNGSAUTOR, EIN MITWIRKENDER ODER EIN VERTRIEBSPARTNER DIESES DOKUMENTS ODER EINER VERÄNDERTEN FASSUNG DES DOKUMENTS ODER EIN ZULIEFERER EINER DIESER PARTEIEN, HAFTBAR GEMACHT WERDEN FÜR DIREKTE, INDIREKTE, SPEZIELLE, VERSEHENTLICHE ODER FOLGESCHÄDEN JEGLICHER ART, EINSCHLIEßLICH UND OHNE EINSCHRÄNKUNGEN SCHÄDEN DURCH VERLUST VON KULANZ, ARBEITSAUSFALL, COMPUTERVERSAGEN ODER COMPUTERFEHLFUNKTIONEN ODER ALLE ANDEREN SCHÄDEN ODER VERLUSTE, DIE SICH AUS ODER IN VERBINDUNG MIT DER VERWENDUNG DES DOKUMENTS UND VERÄNDERTER FASSUNGEN DES DOKUMENTS ERGEBEN, AUCH WENN DIE OBEN GENANNTEN PARTEIEN ÜBER DIE MÖGLICHKEIT SOLCHER SCHÄDEN INFORMIERT WAREN. + + + + + + + + + + Jim + Evins + + + + + + + + + + + + + + + + + + + + + gLabels-Handbuch V2.2.6 + October 2009 + + Mario Blättermann mariobl@gnome.org + Jim Evins + + + + gLabels-Handbuch V2.2 + Dezember 2007 + + Jim Evins evins@snaught.com + Jim Evins + + + + + Dieses Handbuch beschreibt Version 2.2.6 von gLabels. + + Rückmeldungen + Um einen Fehler zu melden oder einen Vorschlag zur Anwendung gLabels oder zu diesem Handbuch zu machen, folgen Sie den Anweisungen auf der gLabels-Kontaktseite. + + + + + + gLabels + + + glabels + + + + + + + + + + Einführung + + Die Anwendung gLabels ist ein ressourcenschonendes Programm zum Erstellen von Etiketten und Visitenkarten für die GNOME-Arbeitsumgebung. Es wurde für die verschiedensten mit Laser- oder Tintenstrahldruckern bedruckbaren (auch selbstklebenden) Etiketten sowie Visitenkarten entworfen, so wie Sie sie in den meisten Schreibwarengeschäften finden. + + + + + + + + + + + Erste Schritte + + + <application>gLabels</application> starten + Sie können gLabels auf folgende Arten starten: + + + Menü Anwendungen + + Wählen Sie BüroanwendungengLabels. + + + + Befehlszeile + + Geben Sie glabels ein, und drücken Sie dann die Eingabetaste. + + + + + + + Beim Start von <application>gLabels</application> + Nach dem Start von gLabels erscheint folgendes Fenster: + + +
    + <application>gLabels</application>-Startfenster + + + + + + +
    + + + + + + Das gLabels-Fenster enthält folgende Elemente: + + + Menüleiste. + + Die Menüs in der Menüleiste enthalten alle Befehle, die Sie zum Erstellen und Bearbeiten von Etiketten und Visitenkarten in gLabels benötigen. + + + + Haupt-Werkzeugleiste. + + Die Haupt-Werkzeugleiste enthält eine Auswahl der Befehle, die Sie über die Menüleiste in den Menüs »Datei« und »Bearbeiten« erreichen. + + + + Zeichenwerkzeugleiste. + + Die Zeichenwerkzeugleiste enthält eine Auswahl von Befehlen zum Bearbeiten des aktuellen gLabels-Dokuments. + + + + Anzeigebereich. + + Der Anzeigebereich ist die Zeichenfläche für gLabels. + + + + Objekt-Seitenleiste. + + Die Objekt-Seitenleiste stellt eine Schnittstelle zum Betrachten und Bearbeiten der Eigenschaften eines bestimmten Objekts zur Verfügung. + + + + Eingenschaften-Werkzeugleiste. + + Die Eigenschaften-Werkzeugleiste enthält eine Reihe von Werkzeugen zum Manipulieren der Eigenschaften ausgewählter Objekte sowie zum Setzen der Standardeigenschaften für neue Objekte. + + + + Statusleiste. + + In der Statusleiste werden Informationen über die aktuelle gLabels-Aktivität und Kontextinformationen über die Menüpunkte angezeigt. + + + +
    +
    + + + + + + + + Benutzung + + + + Erstellen eines neuen Etiketts oder einer neuen Karte + + Um ein neues Etikett oder eine neue Visitenkarte anzulegen, wählen Sie DateiNeu, um den Dialog Neues Etikett oder neue Karte anzuzeigen. Wählen Sie den Medientyp und die Ausrichtung für das neue Dokument aus und klicken Sie anschließend auf OK. Ein neues Dokument erscheint im Anzeigebereich des gLabels-Fensters. + + Falls Ihr spezieller Medientyp in diesem Dialog nicht angezeigt wird, siehe . + + + + + + Öffnen einer Datei + + Um eine Datei zu öffnen, wählen Sie DateiÖffnen, um den Dialog Datei öffnen anzuzeigen. Wählen Sie die gewünschte Datei aus und klicken Sie dann auf Öffnen. Die Datei wird im Anzeigebereich des gLabels-Fensters geöffnet. + + Sie können in gLabels auch mehrere Dateien öffnen. Die Anwendung erzeugt ein separates Fenster für jede geöffnete Datei. + + Die Anwendung speichert die Pfade und Dateinamen der von Ihnen zuletzt bearbeiteten Dateien. Diese Dateien werden als Einträge im Menü DateiZuletzt benutzt angezeigt. + + + + + + Öffnen mehrerer Dateien aus einer Befehlszeile + + Sie können gLabels aus einer Befehlszeile starten und eine Datei oder mehrere Dateien öffnen. Um mehrere Dateien aus einer Befehlszeile zu öffnen, geben Sie den folgenden Befehl ein und drücken dann die Eingabetaste: + + glabels Datei1.glabels Datei2.glabels Datei3.glabels + + Wenn die Anwendung startet, werden die von Ihnen angegebenen Dateien in separaten gLabels-Fenstern angezeigt. + + + + + + Speichern einer Datei + + Sie können Dateien auf folgende Arten speichern: + + + + + Um die Änderungen in der bereits vorhandenen Datei zu speichern, wählen Sie DateiSpeichern. + + + + + Um eine neue Datei oder eine bestehende Datei unter einem neuen Dateinamen zu speichern, wählen Sie DateiSpeichern unter. Geben Sie einen Namen für die Datei im Dialogfeld Speichern unter ein und klicken Sie anschließend auf OK. + + + + + + + + + Ändern der Eigenschaften eines Etiketts + + Um den Medientyp oder die Ausrichtung des Etiketts zu ändern, wählen Sie DateiEigenschaften, um den Dialog Etikett-Eigenschaften anzuzeigen. Wählen Sie den neuen Medientyp für das Dokument aus und klicken Sie anschließend auf OK. + + + + + + Erstellen einer benutzerdefinierten Vorlage + + Um eine neue benutzerdefinierte Vorlage zu erstellen, wählen Sie DateiVorlagen-Designer …, um den Vorlagen-Designer-Dialog anzuzeigen. Dieser Dialog hilft Ihnen bei der Erstellung einer benutzerdefinierten Vorlage für die meisten Typen von Etiketten oder Visitenkarten, die Ihnen in Schreibwarengeschäften begegnen könnten. + + Falls Sie dies bevorzugen, können Sie Ihre Vorlagen auch manuell erstellen. Weitere Informationen hierzu finden Sie in . + + + + + + Schließen einer Datei + + Um das aktuelle Dokument zu schließen, wählen Sie DateiSchließen, um das Anwendungsfenster zu schließen. Falls das aktuelle Dokument bearbeitet wurde, wird ein Bestätigungsdialog geöffnet, in welchem Sie das Dokument speichern oder den Vorgang abbrechen können. Falls das zu schließende Fenster das einzige offene Fenster ist, wird gLabels dadurch beendet. + + + + + + <application>gLabels</application> beenden + + Um gLabels zu beenden, wählen Sie DateiBeenden. Dadurch werden alle offenen Fenster geschlossen. Siehe . + + + + + + Drucken von Etiketten oder Karten + + Um Etiketten oder Visitenkarten zu drucken, wählen Sie DateiDrucken, um den Drucken-Dialog anzuzeigen. Nachdem Sie die Druckoptionen ausgewählt haben, klicken Sie auf Drucken, um die Etiketten oder Visitenkarten zu drucken. Um zunächst eine Vorschau auf die Druckergebnisse zu erhalten, klicken Sie auf Druckvorschau. + + Im Dialog Drucken können Sie die folgenden Optionen zum Drucken festlegen: + + + Der Reiter »Etiketten« des Druckdialogs + + + + + Drucksteuerung (einfach) + + + Für einfache Etiketten oder Karten (keine Dokumentmischung) enthält der Reiter »Labels« die folgenden Einstellmöglichkeiten. + + + + + + Die Anzahl der Kopien können Sie wählen, indem Sie die Anzahl der vollständig zu druckenden Seiten oder eine Teilmenge von Etiketten auf einer einzelnen Seite auswählen. + + Die verkleinerte Vorschau können Sie auch dazu verwenden, einen Teil der Etiketten grafisch auszuwählen, indem Sie auf das erste Etikett klicken und es auf das letzte Etikett ziehen. + + + + + + Drucksteuerung (Mischen) + + + Für Etiketten oder Karten unter Verwendung der Dokumentmischung enthält dieser Reiter die folgenden Einstellungen zur Mischung von Dokumenten anstelle der Festlegung der Kopien. + + + + + + Die Gesamtzahl der gedruckten Etiketten oder Karten ergibt sich als Produkt aus der Anzahl der Datensätze in der Einmischquelle und der Anzahl der gewählten Kopien. Falls mehrere Kopien gewählt wurden, können diese entweder zusammengefasst werden (durch Gruppieren der Kopien des gleichen Datensatzes) oder nicht zusammengefasst (eine Kopie jedes Datensatzes wird immer vor der nächsten Kopie gedruckt). + + Der Druck kann mit jedem beliebigen Etikett der ersten Seite begonnen werden. Dies können Sie im Einstellfeld Start bei Etikett auswählen. + + In der verkleinerten Vorschau können Sie das erste Etikett grafisch auswählen, indem Sie das gewünschte Etikett anklicken. + + + + + Optionen + + Die folgenden Optionen können ebenfalls gewählt werden. + + + Begrenzungen drucken + Begrenzungen der Etiketten drucken. Diese Option ist nützlich, wenn Sie die Lage des Papiers im Drucker prüfen wollen. + + + Spiegelbildlich drucken + Druckt die Etiketten spiegelbildlich. Diese Option ist nützlich für das Drucken durchsichtiger Aufkleber, die von der Rückseite aus betrachtet werden (z.B. hinter Autoscheiben). + + + Schnitt + Druckt Schnittmarken entlang der Papierränder. Diese Option ist nützlich zum Drucken auf Papier, das erst nach dem Druck beschnitten werden soll. Diese Option funktioniert eventuell nicht mit allen Vorlagen. + + + + + + + + + + + + Erstellen neuer Objekte + + Objekte können ausgewählt werden, indem Sie das entsprechende Objekt in ObjekteErzeugen auswählen oder über die Zeichenwerkzeugleiste. Dadurch wird der Anzeigebereich in den Objekterzeugungsmodus versetzt, was am Mauszeiger erkennbar ist. Um zum vorgegebenen Objektauswahlmodus zurückzukehren, ohne ein Objekt zu erzeugen, wählen Sie ObjekteAuswahlmodus. Dadurch wird der Mauszeiger im Anzeigebereich wieder in den vorgegebenen Auswahlzeiger geändert. + + Nachfolgend wird der Modus zur Erstellung der Objekte für jeden Objekttyp beschrieben: + + + + + Text + + Klicken Sie auf die gewünschte Stelle in der linken oberen Ecke des Textobjekts. Neue Textobjekte erhalten anfänglich den Inhalt »Text«. Wie Sie diesen Text oder andere Eigenschaften ändern können, finden Sie in . + + + + + Rechteck + + Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des Rechteckobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie einfach auf eine Stelle klicken, wird ein quadratisches Objekt erzeugt. Wie Sie die Eigenschaften des Rechteckobjekts ändern können, finden Sie in . + + + + + Linie + + Klicken Sie auf die gewünschte Stelle für das Ende des Linienobjekts und ziehen Sie zur gewünschten Stelle des anderen Endes. Wenn Sie einfach auf eine Stelle klicken, wird eine diagonale Linie erzeugt. Wie Sie die Eigenschaften des Linienobjekts ändern können, finden Sie in . + + + + + Ellipse + + Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des Ellipsenobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie einfach auf eine Stelle klicken, wird ein Kreis erzeugt. Wie Sie die Eigenschaften des Ellipsenobjekts ändern können, finden Sie in . + + + + + Image + + Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des Bildobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Wenn Sie einfach auf eine Stelle klicken, wird ein quadratisches Objekt erzeugt. Neue Bildobjekte erhalten anfänglich ein Schachbrettmuster. Wie Sie dies oder andere Eigenschaften des Bildobjekts ändern können, finden Sie in . + + + + + Strichcode + + Klicken Sie auf die gewünschte Stelle für die linke obere Ecke des Strichcodeobjekts und ziehen Sie zur gewünschten rechten unteren Ecke. Neue Objekte erhalten anfänglich einen POSTNET-Strichcode mit Beispieldaten. Wie Sie die Eigenschaften des Strichcodeobjekts ändern können, finden Sie in . + + + + + + + + + + + Auswählen von Objekten + + Eine Voraussetzung zum Ausführen von Operationen auf Objekten ist die Auswahl individueller Objekte oder Gruppen von Objekten. Der Anzeigebereich muss sich im Objektauswahlmodus befinden, was durch einen pfeilförmigen Mauszeiger angezeigt wird. Der Objektauswahlmodus wird über den Menüeintrag ObjekteAuswahlmodus aktiviert oder über das entsprechende Objekt in der Zeichenwerkzeugleiste. + + + + + Auswahl eines einzelnen Objekts + + Ein einzelnes Objekt können Sie auswählen, indem Sie das gewünschte Objekt im Anzeigebereich anklicken. Nach dem Anklicken wird das Objekt durch Anfasspunkte zur Größenänderung hervorgehoben. + + + + + Auswahl mehrerer Objekte + + Sie können mehrere Objekte auswählen, indem Sie zunächst das erste Objekt auswählen, wie oben beschrieben. Halten Sie dann bei der Auswahl weiterer Objekte die Strg-Taste gedrückt. Zusätzliche Objekte können Sie jederzeit zur Auswahl hinzufügen, wenn Sie wiederum die Strg-Taste gedrückt halten und die gewünschten Objekte auswählen. Alle Objekte lassen sich über den Menüeintrag BearbeitenAlle auswählen auswählen. Alle Objekte in einer zusammenhängenden Objektauswahl werden hervorgehoben dargestellt. + + + + + Bereichsauswahl + + Sie können auch mehrere Objekte auswählen, indem Sie in einen leeren Bereich klicken und mit der Maus die Form eines Rechtecks aufziehen. Daraufhin bilden alle Objekte in diesem Bereich eine zusammenhängende Auswahl. Eine Bereichsauswahl kann zum Hinzufügen einer vorhandenen Auswahl benutzt werden, wenn Sie bei der Auswahl die Strg-Taste gedrückt halten. + + + + + Auswahl von Objekten aufheben + + Sie können individuelle Objekte aus einer vorhandenen Auswahl entfernen, wenn Sie beim Klicken auf ein zuvor ausgewähltes Objekt die Strg-Taste gedrückt halten. Die gesamte Auswahl können Sie rückgängig machen, indem Sie im Menü BearbeitenAlle Markierungen löschen wählen. Sobald ein Objekt nicht mehr ausgewählt ist, wird es nicht mehr hervorgehoben dargestellt. + + + + + + + + + + Befehle für die Zwischenablage + + Objektauswahlen können durch die Standardoperationen der Zwischenablage Ausschneiden, Kopieren, Einfügen und Löschen manipuliert werden. + + + + + + + + StrgX + + Ausschneiden + + + + Verschiebt die ausgewählten Objekte in die Zwischenablage. Diese Objekte sind dann verfügbar, um später in das aktuelle Dokument oder ein anderes Dokument eingefügt zu werden. + + + + + + + + StrgC + + Kopieren + + + + Kopiert die ausgewählten Objekte in die Zwischenablage, ohne sie zu entfernen. Diese Objekte sind dann verfügbar, um später in das aktuelle Dokument oder ein anderes Dokument eingefügt zu werden. + + + + + + + + StrgV + + Einfügen + + + + Fügt Objekte aus der Zwischenablage in das aktuelle Dokument ein. gLabels kann nur Objekte aus anderen gLabels-Dokumenten einfügen. + + + + + + + + Löschen + + Löschen + + + + Entfernt die ausgewählten Objekte, ohne sie in die Zwischenablage zu verschieben. + + + + + + + + + + Bearbeiten der Objekteigenschaften + + Die meisten Objekteigenschaften können Sie über die Objekteditor-Seitenleiste verändern, wie unten illustriert. Um den Objekteditor zu verwenden, muss zunächst ein einzelnes Objekt ausgewählt werden. Siehe . + + +
    + Objekteditor-Seitenleiste + + + + + + +
    + + + Der Objekteditor bietet eine Auswahl der folgenden Reiter, abhängig vom Objekttyp: + + + Text-Reiter (Textobjekte) + + Dieser Abschnitt bietet einen kleinen Editor zum Bearbeiten des Inhalts eines Textobjekts. Weiterhin ist ein Ausklappmenü mit den verfügbaren Schlüsseln zur Dokumentmischung enthalten, die in den Text eingefügt werden können. + + + + + Bild-Reiter (Bild-Objekte) + + Dieser Abschnitt enthält einen Dateiwähler mit Vorschau zur Auswahl von Bilddateien. Der »Durchsuchen«-Knopf kann zum Suchen von Bilddateien benutzt werden. Alternativ können Sie einen Schlüssel zur Dokumenteinmischung anstelle eines Dateinamens angeben, der bei der Ausgabe des Dokuments ersetzt wird. + + + + + Daten-Reiter (Strichcode-Objekte) + + Dieser Abschnitt enthält ein Textfeld zur Eingabe von Strichcode-Daten. Alternativ kann hier ein Schlüssel zur Dokumentmischung eingetragen werden, der beim Druck für die Bereitstellung der richtigen Daten sorgt. + + + + + Stil-Reiter (Text-Objekte) + + Dieser Abschnitt enthält Einstellmöglichkeiten für die Texteigenschaften, wie Schriftfamilie, Schriftgröße, Schriftstärke, Schriftfarbe und Ausrichtung des Texts. + + + + + Stil-Reiter (Strichcode-Objekte) + + Dieser Abschnitt enthält Einstellmöglichkeiten für die Eigenschaften des Strichcodes, wie Stil, Farbe, Drucken von Text oder Beinhalten einer Prüfsumme. + + + + + Linie-Reiter + + Dieser Abschnitt enthält Einstellmöglichkeiten für die Auswahl von Eigenschaften von Linien und Begrenzungen, wie Linienbreite und -farbe. + + + + + Füllung-Reiter + + Dieser Abschnitt enthält Einstellmöglichkeiten für die Auswahl der Füllungseigenschaften von Rechteck- und Ellipsenobjekten. Derzeit ist nur die Einstellung der Füllungsfarbe möglich. + + + + + Reiter »Größe« (alle außer Linienobjekte) + + Dieser Abschnitt enthält Einstellmöglichkeiten für die Höhe und die Breite eines Objekts. Mit einem Ankreuzfeld können Sie die Werte aneinander koppeln, so dass das Seitenverhältnis beim Ändern der Höhe oder Breite erhalten bleibt. Für Bildobjekte gibt es außerdem einen Knopf zum Zurücksetzen des Bildes auf Originalgröße, wobei eine Auflösung von 72 dpi angenommen wird. + + + + + Reiter »Größe« (Linienobjekte) + + Dieser Abschnitt enthält Einstellmöglichkeiten für die Länge und den Winkel eines Linienobjekts. + + + + + Reiter »Position« + + Dieser Abschnitt beschreibt die Möglichkeiten zur Positionierung eines Objekts. + + + + + + Reiter »Schattierung« (alle außer Bild- und Strichcodeobjekten) + + Dieser Abschnitt enthält Einstellmöglichkeiten für die Schattierung eines Objekts. + + + + +
    + + + + Andere Manipulationen von Objekten + + Objekte können auf die folgenden Arten manipuliert werden. + + + Verschieben und Größenänderung von Objekten + + Objekte können Sie durch einfaches Anklicken und Ziehen des ausgewählten Objekts zur neuen Position verschieben. Falls dieses Objekt Teil einer Mehrfachauswahl ist, werden durch Ziehen dieses Objektes alle Objekte verschoben, wobei deren Abstände untereinander erhalten bleiben. Falls kein Objekt ausgewählt ist, wird durch Anklicken eines Objekts eine neue Auswahl erzeugt, die dieses Objekt enthält. Siehe . + + Die Größe eines ausgewählten Objekts kann geändert werden, indem Sie auf einen der Größenänderungs-Anfasspunkte klicken und diesen ziehen, um die gewünschte Größe zu erreichen. + + + + + Ändern der Reihenfolge der Ebenen + + Die Stapelreihenfolge bezieht sich auf die relative Position in der Z-Achse von Objekten. Das beschreibt beim Überlappen von Objekten, welches der Objekte über den anderen erscheint. Per Vorgabe werden neue Objekte immer oberhalb von bereits vorhandenen Objekten platziert. Um diese Anordnung zu ändern, wählen Sie ObjekteAnordnungGanz nach vorn, um die Auswahl im Stapel nach oben zu verschieben, oder ObjekteAnordnungGanz nach hinten, um die Auswahl im Stapel nach unten zu verschieben. Diese Menüeinträge sind auch durch einen Klick mit der rechten Maustaste auf den Ansichtsbereich verfügbar, falls sich dort eine nicht leere Auswahl befindet. + + + + + Drehen und Spiegeln von Objekten + + Objekte können um 90 Grad in jeder Richtung gedreht oder horizontal oder vertikal gespiegelt werden. Wählen Sie hierzu den entsprechenden Eintrag im Menü ObjekteDrehen/Spiegeln. Diese Menüeinträge sind auch verfügbar, wenn Sie mit der rechten Maustaste in eine nicht leere Auswahl im Ansichtsbereich klicken. + + + + + Ausrichten von Objekten + + Objekte können horizontal oder vertikal zu einem anderen Objekt oder relativ zu einer Mittellinie des Etiketts angeordnet werden, indem Sie ObjekteHorizontal oder ObjekteVertikal wählen. Diese Menüeinträge sind auch verfügbar, wenn Sie mit der rechten Maustaste in eine nicht leere Auswahl im Ansichtsbereich klicken. + + + + + Verwendung der Eigenschaftsleiste + + Mit der Eigenschaftsleiste können Sie einige Eigenschaften von Objekten in einem Arbeitsgang ändern. Diese Eigenschaften umfassen Schriftfamilie, Schriftgröße, Schriftstärke, Textausrichtung, Textfarbe, Füllfarbe, Farbe von Linien oder Begrenzungen sowie Linienbreiten. Die Eigenschaftsleiste regelt auch die Vorgaben für diese Eigenschaften, wenn neue Objekte erzeugt werden. + + + + + + + + + + Ausführung einer Dokumentmischung + + Dokumentmischung ist ein mächtiges Funktionsmerkmal, das es Ihnen ermöglicht, ein einzelnes Etikett oder eine einzelne Karte für jeden Datensatz aus einer externen Datenquelle zu erstellen. + + Der erste Schritt zur Ausführung einer Dokumentmischung ist die Vorbereitung eines Quelldokuments, welches die Daten zum Mischen enthält. Diese Daten können aus E-Mail-Adressen oder anderen Daten bestehen, aus denen Sie die einzelnen Etiketten oder Karten erstellen wollen. Gegenwärtig können als Datenquellen entweder Textdateien oder die Daten des Evolution-Adressbuchs verwendet werden, andere sind bereits in Planung. Das derzeit unterstützte Textformat ist recht einfach: Jede Zeile stellt einen Datensatz dar, wobei die einzelnen Felder durch Kommata (CSV), Tabulatoren oder Semikola getrennt werden. Neue Zeilen werden durch einen Zeilenumbruch »\n« erzeugt. Diese Datei kann mit einem Texteditor, einem anderen Programm oder einem Skript erstellt werden. Ein üblicher Weg der Erstellung ist der Export einer CSV-Datei aus einer Tabellenkalkulation. + + Ein Etikett muss erstellt werden, das auf diese Datenquelle »zeigt«. Um die Mischeigenschaften für ein Dokument festzulegen, wählen Sie ObjekteMischeinstellungen. Der Dialog Mischeinstellungen wird geöffnet. In diesem Dialog wählen Sie das genaue Dateiformat und den Dateinamen (den Ort) der einzumischenden Daten aus. + + Zum Schluss, sobald das Etikett für die Datenquelle eingerichtet wurde, können die Feldschlüssel in Textobjekte eingefügt werden, um sie als Datenquelle für Strichcodeobjekte oder Bilder für Bildobjekte zu verwenden. Weitere Informationen über die Verwendung der Mischdaten für diese Objekttypen finden Sie in . + + Da Ihr Etikett nun konfiguriert ist, druckt gLabels genau ein Etikett für jeden Datensatz des Quelldokuments, wobei alle Text-, Bild- und Strichcode-Objekte durch die Einträge der Felder jedes Datensatzes ersetzt werden. + + In finden Sie eine ausführliche Anleitung für dieses Funktionsmerkmal. + + + + + +
    + + + + + + + + Einstellungen + Um gLabels zu konfigurieren, wählen Sie EinstellungenEinstellungen. Der Dialog Einstellungen enthält die folgenden Reiter: + + + + + + + + + + + + + + Lokale Einstellungen + + + + Einheiten + + Verwenden Sie diese Radioknöpfe, um Ihre bevorzugten Maßeinheiten festzulegen. Wählen Sie aus den folgenden Optionen: + + + + Punkte + Punkte verwenden (1 Punkt = 1/72 Zoll = 0.352778 mm). + + + + Zoll + Zoll verwenden. + + + + Millimeter + Millimeter verwenden. + + + Standard: Zoll. + + + + + Vorgegebene Seitengröße + + Verwenden Sie diese Radioknöpfe zur Auswahl Ihrer bevorzugten Papiergröße. Dadurch lassen sich beim Erstellen neuer Etiketten oder Visitenkarten die entsprechenden Papiertypen schneller finden. + + + + US-Letter + Die meisten Ihrer Medien haben das US-Letter-Format (8.5 x 11 inches). + + + + ISO A4 + Die meisten Ihrer Medien haben das ISO-A4-Format (210 x 297 mm). + + + Standard: US-Letter. + + + + + + + + Objekt-Voreinstellungen + + + + Text + + Verwenden Sie diese Einstellmöglichkeiten, um die Standardeigenschaften neuer Textobjekte festzulegen. Diese Eigenschaften sind + + + + Schrift + Verwenden Sie diese Einstellmöglichkeiten, um die Schriftfamilie und -größe festzulegen, sowie um anzugeben, ob die Schrift fett oder kursiv dargestellt werden soll. + + + + Farbe + Diese Einstellung wählt die Standard-Textfarbe aus. + + + + Ausrichtung + Mit diesen Einstellungen wählen Sie die vorgegebene Textausrichtung (links, mittig oder rechts). + + + + + + + Linie + + Verwenden sie diese Einstellmöglichkeiten, um die Standardeigenschaften von Begrenzungen und neuen Objekten festzulegen. Diese Eigenschaften sind + + + + Breite + Diese Einstellung wählt die Standard-Linienbreite aus. + + + + Farbe + Diese Einstellung wählt die Standard-Linienfarbe aus. + + + + + + + Füllen + + Verwenden Sie diese Einstellmöglichkeiten zum Angeben der Füllungseigenschaften eines neuen Objekts. Diese Eigenschaften sind + + + + Farbe + Diese Einstellung wählt die Standard-Füllfarbe aus. + + + + + + + + + + + + + + Anleitung zur Dokumentmischung + + Dokumentmischung ist ein mächtiges Funktionsmerkmal, das es Ihnen ermöglicht, ein einzelnes Etikett oder eine einzelne Karte für jeden Datensatz aus einer externen Datenquelle zu erstellen. Es ist allerdings die am häufigsten missverstandene Funktion in gLabels. Die folgenden Beispiele führen Sie schrittweise durch viele der Aufgaben, die Sie mit der Dokumentmischung ausführen können. + + + Beispiel 1: Namensschilder unter Nutzung einer CSV-Datei + + In diesem Beispiel organisieren Sie eine Orientierungsparty für die neuen Mannschaftsmitglieder Ihres Schiffes. Eine Liste der neuen Mitglieder haben Sie in gnumeric erstellt und in die folgende CSV-Datei exportiert. Sie könnten diese Datei auch in einem Texteditor erstellen, aber schließlich leben wir im 23. Jahrhundert... + + +Name,Department,SN +"Jim Kirk",Management,"SC937-0176 CEC" +"Mr. Spock",Sciences,S179-276SP +"Leonard McCoy",Medicine,unknown +"Montgomery Scott",Engineering,SE-197-54T + + + In glabels haben Sie ein neues Dokument unter Verwendung der Dokumentvorlage »Avery 5395 Namensschild-Etiketten« erzeugt. Zunächst öffnen Sie mittels ObjekteMischeinstellungen den Dialog Mischeinstellungen. In diesem Dialog wählen Sie wie gezeigt die Datenquelle aus, in diesem Fall CSV, sowie die Mischquelle (Dateiname). + + +
    + Mischeinstellungen-Dialog + + + + + + +
    + + + Bevor Sie eine neue Einmischquelle anwenden, sollten Sie den ersten Datensatz deaktivieren, weil dieser nur Spaltenköpfe aus der originalen gnumeric-Tabelle enthält. Dadurch würde nur das erste Etikett verschwendet. Weiterhin können Sie alle anderen Datensätze entfernen, die Sie nicht für ein Etikett verwenden wollen. + + Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf OK, um die Änderungen anzuwenden. + + Nun beginnen wir mit dem Hinzufügen von Objekten zu unserem gLabels-Dokument, wie gezeigt. + + +
    + Hinzufügen von Objekten + + + + + + +
    + + + In diesem Beispiel haben Sie drei Textobjekte und ein Strichcodeobjekt hinzugefügt. Das erste Textobjekt enthält nur einfachen Text (»Hello, my name is«). Das zweite Textobjekt enthält ein einfaches Mischfeld (»${1}«), welches zum ersten Feld eines Datensatzes (erste Spalte einer Zeile) korrespondiert, die den vollen Namen eines Mannschaftsmitglieds enthält. Das dritte Feld enthält sowohl einfachen Text (»Department:«) als auch ein einzelnes Mischfeld (»${2}«), welches zum zweiten Feld oder zum Arbeitsgebiet eines Mannschaftsmitglieds korrespondiert. Das Strichcodefeld ist so eingestellt, das Feld (oder den Schlüssel) »3« zu verwenden, das die Sternenflotten-Seriennummer des Mannschaftsmitglieds enthält. + + Nun können Sie Ihre Namensschilder drucken, indem Sie DateiDrucken wählen. Der unten angezeigte Druckdialog wird geöffnet. + + +
    + Drucken der Namensschilder + + + + + + +
    + + + Um sicher zu stellen, dass Ihre Etiketten gut aussehen, wählen Sie die Option Begrenzungen drucken und klicken auf Druckvorschau. Der Druckvorschaudialog wird geöffnet, wie unten angezeigt. + + +
    + Vorschau der Namensschilder + + + + + + +
    + + + Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden Etiketten bestücken, die Namensschilder drucken und die Gäste an Bord beamen. + +
    + + + Beispiel 2: Adressetiketten unter Nutzung einer CSV-Datei + + In diesem Beispiel planen Sie eine Party. Dafür benötigen Sie Adressetiketten für die Einladungen. Sie haben eine Liste Ihrer besten Freunde in gnumeric erstellt, die Sie in die folgende CSV-Datei exportiert haben. Es ist zu beachten, dass nicht jeder einen zweiten Vornamen oder eine zweizeilige Adresse hat. + + +LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP +,,,,,,, +Critter,Ess,S,"123 Faux St.",,Alexandria,VA,22310 +Doe,John,,"Apt 1X","451 Mystery St.",Trenton,NJ,08601 +Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037 +McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813 +Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207 + + + In glabels haben Sie ein neues Dokument unter Verwendung der Dokumentvorlage »Avery 5512 Adressetiketten« erzeugt. Zunächst öffnen Sie mittels ObjekteMischeinstellungen den Dialog Mischeinstellungen. In diesem Dialog wählen Sie wie gezeigt die Datenquelle aus, in diesem Fall CSV, sowie die Mischquelle (Dateiname). + + +
    + Mischeinstellungen-Dialog + + + + + + +
    + + + Bevor Sie eine neue Einmischquelle anwenden, sollten Sie den ersten Datensatz deaktivieren, weil dieser nur Spaltenköpfe aus der originalen gnumeric-Tabelle enthält. Dadurch würde nur das erste Etikett verschwendet. Weiterhin können Sie alle anderen Datensätze entfernen, die Sie nicht für ein Etikett verwenden wollen. + + Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf OK, um die Änderungen anzuwenden. + + Nun beginnen wir mit dem Hinzufügen von Objekten zu unserem gLabels-Dokument, wie gezeigt. + + +
    + Hinzufügen von Objekten + + + + + + +
    + + + In diesem Beispiel haben Sie ein einzelnes Textobjekt. Dieses Textobjekt enthält alle Einmischfelder, angeordnet in mehreren Zeilen wie eine Versandadresse. Beachten Sie, dass die Felder ${4} und ${5} (korrespondierend zu ADDR1 und ADDR2) jeweils keinen weiteren Text in deren Zeilen enthalten. Wenn glabels ein solches Feld als »nur Text« in einer Zeile erkennt, wird die Zeile nicht expandiert, falls das Feld leer ist. + + Nun können Sie Ihre Adressetiketten drucken, indem Sie DateiDrucken wählen. Der unten angezeigte Druckdialog wird geöffnet. + + +
    + Adressetiketten drucken + + + + + + +
    + + + Um sicher zu stellen, dass Ihre Etiketten gut aussehen, wählen Sie die Option Begrenzungen drucken und klicken auf Druckvorschau. Der Druckvorschaudialog wird geöffnet, wie unten angezeigt. + + +
    + Adressetiketten-Vorschau + + + + + + +
    + + + Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden Etiketten bestücken, die Adressetiketten drucken und die Einladungen zur Party versenden. + +
    + + + Beispiel 3: Adressetiketten unter Nutzung des <application>Evolution</application>-Adressbuchs + + Ihre letzte Party war ein voller Erfolg. Nun benötigen Sie wieder Adressetiketten für die Einladung zu einer neuen Party. Um dies zu vereinfachen, können Sie das Evolution-Adressbuch nutzen, denn die Adressdaten aller Ihrer Freunde sind dort gespeichert. + + + Abhängig davon, wie das von Ihnen genutzte gLabels-Paket erstellt wurde, könnte diese Option nicht verfügbar sein. Die Unterstützung für das Evolution-Adressbuch ist nur vorhanden, wenn bei der Erstellung von gLabels das Paket evolution-data-server sowie dessen Entwicklerdateien verfügbar waren. Bitte berücksichtigen dies auch dann, wenn Sie gLabels direkt aus den Quellen erstellen. + + Falls das gLabels-Paket Ihrer Distribution diese Unterstützung nicht bieten sollte, kontaktieren Sie bitte den Ersteller des Pakets oder senden Sie einen Fehlerbericht, um dies einzufordern. + + + In glabels haben Sie ein neues Dokument unter Verwendung der Dokumentvorlage »Avery 5512 Adressetiketten« erzeugt. Zunächst öffnen Sie mittels ObjekteMischeinstellungen den Dialog Mischeinstellungen. In diesem Dialog wählen Sie wie gezeigt die Datenquelle aus, in diesem Fall Daten aus dem vorgegebenen Evolution-Adressbuch, wie gezeigt. + + +
    + Mischeinstellungen-Dialog + + + + + + +
    + + + Sobald Sie Daten aus dem vorgegebenem Evolution-Adressbuch als Mischquelle gewählt haben, wird eine vollständige Liste des Inhalts angezeigt. Anfänglich sind alle Einträge ausgewählt. Angenommen, Sie planen eine wirklich große Party, können Sie die Auswahl unverändert belassen. Behalten Sie jedoch dabei Ihre finanziellen Möglichkeiten im Auge. Sie können bestimmte Einträge auswählen oder wieder abwählen, indem Sie die entsprechenden Ankreuzfelder anklicken. Alternativ können Sie durch Anklicken der Knöpfe Alle markieren oder Markierung aufheben alle Einträge des Adressbuchs aktivieren oder deaktivieren. + + Sie können jeden Datensatz detailliert betrachten, indem Sie auf die kleinen Dreiecke klicken. Sobald Sie mit der Auswahl zufrieden sind, klicken Sie auf OK, um die Änderungen anzuwenden. + + Nun beginnen wir mit dem Hinzufügen von Objekten zu unserem gLabels-Dokument, wie gezeigt. + + +
    + Hinzufügen von Objekten + + + + + + +
    + + + In diesem Beispiel haben Sie ein einzelnes Textobjekt. Dieses Textobjekt enthält alle Einmischfelder, angeordnet in mehreren Zeilen wie eine Versandadresse. + + Nun können Sie Ihre Adressetiketten drucken, indem Sie DateiDrucken wählen. Der unten angezeigte Druckdialog wird geöffnet. + + +
    + Adressetiketten drucken + + + + + + +
    + + + Um sicher zu stellen, dass Ihre Etiketten gut aussehen, wählen Sie die Option Begrenzungen drucken und klicken auf Druckvorschau. Der Druckvorschaudialog wird geöffnet, wie unten angezeigt. + + +
    + Adressetiketten-Vorschau + + + + + + +
    + + + Alles sieht gut aus, also können wir jetzt den Drucker mit den entsprechenden Etiketten bestücken, die Adressetiketten drucken und die Einladungen zur Party versenden. + +
    + +
    + + + + + + + Manuelles Erstellen neuer Vorlagen + + Vordefinierte Vorlagen sind als XML-Dateien verfügbar, die in ${prefix}/share/glabels/ gespeichert sind, wobei ${prefix} üblicherweise /usr/local oder /usr ist, abhängig von der Konfigurationsoption prefix. gLabels verwendet alle Dateien der Form *-templates.xml oder *.template, die es in ${prefix}/share/glabels/ und ${HOME}/.glabels/ findet. Zusätzliche Vorlagen können unter Verwendung der Dateiendung *.template in einem dieser Ordner gespeichert werden. + + Das Format dieser Dateien ist in einer DTD definiert: glabels-2.2.dtd. Diese DTD beschreibt außerdem weitere von gLabels benutzte XML-Formate. + + + Voraussetzungen + + + Eine Seite enthält nur eine Etiketten- oder Kartengröße. Falls eine Seite mehrere Größen enthält, kann sie für das Drucken in mehreren Durchläufen über mehrere Vorlagen verteilt werden. + + + Abstände können in den Einheiten pt, in, mm, cm oder pc ausgedrückt werden. Beispiel: »1.0in« oder »2.54cm«. Falls keine Einheiten angegeben werden, nimmt der Rechner Punkt an. ein Punkt (pt) entspricht = 1/72 in = 0.352778 mm. + + + + + + Vorlagedateien + + +<?xml version="1.0"?> +<Glabels-templates> + + ...Vorlagen... + +</Glabels-templates> + + + + + + Beispielvorlage + + <Template brand="Avery" part="8160" size="US-Letter" description="Mailing Labels"> + <Label-rectangle id="0" width="189pt" height="72pt" round="5pt"> + <Markup-margin size="5pt"/> + <Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/> + </Label-rectangle> + <Alias brand="Avery" part="5160"/> + <Alias brand="Avery" part="6233"/> + </Template> + + + + + Knoten »Template« + + Ein Template-Knoten beschreibt ein einzelnes Produkt. Es muss eine Instanz eines der anderen Label-Knoten (Label-rectangle, Label-round, or Label-cd) enthalten. Auf diesen Knoten können einer, mehrere oder kein Alias-Knoten folgen. + + + + + + + + + Eigenschaft + + + Beschreibung + + + + + + brand + + Marke oder Hersteller des Produkts, z.B. »Avery« + + + + part + + Bestellnummer oder Name des Produkts, z.B. »8160« + + + + size + + Größe des Papiers, z.B. »US-Letter«, »A4«, … + + + + description + + Beschreibung des Produkts, z.B. »Mailing Labels«. + + + + _description + + Übersetzbare Beschreibung des Produkts, z.B. »Mailing Labels« (nur sinnvoll für vordefinierte Vorlagen) + + + + width + + Seitenbreite. Nur gültig, wenn als Größe »Other« festgelegt ist. + + + + height + + Seitenhöhe. Nur gültig, wenn als Größe »Other« festgelegt ist. + + + + + + + + + + Knoten »Label-rectangle« + + Ein Label-rectangle-Knoten beschreibt die Abmessungen eines einzelnen Etiketts oder einer einzelnen Karte in rechteckiger Form, wobei abgerundete Ecken möglich sind. + + + + + + + + + Eigenschaft + + + Beschreibung + + + + + + id + + Für zukünftige Verwendung reserviert. Sollte immer 0 sein. + + + + width + Breite des Etiketts oder der Karte + + + height + Höhe des Etiketts oder der Karte + + + round + + Radius der Ecken. Für Objekte mit nicht abgerundeten Ecken (Visitenkarten) sollte der Radius 0 sein. + + + + x_waste + + Erlaubte Breite des horizontalen Überdruckens. Dies minimiert Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder). + + + + y_waste + + Erlaubte Breite des vertikalen Überdruckens. Dies minimiert Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder). + + + + + + + +
    + Parameter zu Label-rectangle + + + + + + +
    + + +
    + + + Knoten »Label-round« + + Ein Label-round-Knoten beschreibt die Abmessungen eines einfachen Rundetiketts (nicht einer CD). + + + + + + + + + Eigenschaft + + + Beschreibung + + + + + + id + + Für zukünftige Verwendung reserviert. Sollte immer 0 sein. + + + + radius + Radius (halber Durchmesser) des Etiketts + + + waste + + Erlaubte Breite des Überdruckens. Dies minimiert Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder). + + + + + + + + + + Knoten »Label-cd« + + Ein Label-cd-Knoten beschreibt die Abmessungen einer CD, DVD oder Visitenkarten-CD. + + + + + + + + + Eigenschaft + + + Beschreibung + + + + + + id + + Für zukünftige Verwendung reserviert. Sollte immer 0 sein. + + + + radius + Äußerer Radius des Etiketts + + + hole + Radius des Mittellochs + + + width + + Falls vorhanden, wird das Etikett auf die angegebene Größe begrenzt (nützlich für »Visitenkarten-CDs«) + + + + height + + Falls vorhanden, wird das Etikett auf die angegebene Höhe begrenzt (nützlich für »Visitenkarten-CDs«) + + + + waste + + Erlaubte Breite des Überdruckens. Dies minimiert Ausrichtungsprobleme auf anderen als weißen Hintergründen (z.B. Bilder). + + + + + + + +
    + CD-Label-Parameter + + + + + + +
    + + +
    + + + Knoten »Markup-margin« + + Ein Markup-margin-Knoten beschreibt die Ränder entlang der Seiten eines Etiketts. + + + + + + + + + Eigenschaft + + + Beschreibung + + + + + + size + + Randbreite. Die Breite des Bereichs zwischen der Randlinie und dem Rand des Etiketts/der Karte. + + + + + + + + + + Knoten »Markup-line« + + Ein Markup-line-Knoten beschreibt eine Markierungslinie. + + + + + + + + + Eigenschaft + + + Beschreibung + + + + + + x1 + + x-Koordinate des Anfangspunkts des Linienabschnitts. + + + + y1 + + y-Koordinate des Anfangspunkts des Linienabschnitts. + + + + x2 + + x-Koordinate des Endpunkts des Linienabschnitts. + + + + y2 + + y-Koordinate des Endpunkts des Linienabschnitts. + + + + + + + + + + Knoten »Markup-circle« + + Ein Markup-circle-Knoten beschreibt einen Markierungskreis. + + + + + + + + + Eigenschaft + + + Beschreibung + + + + + + x0 + + x-Koordinate des Kreismittelpunkts. + + + + y0 + + y-Koordinate des Kreismittelpunkts. + + + + radius + Radius des Kreises. + + + + + + + + + Knoten »Markup-rect« + + Ein Markup-rect-Knoten beschreibt ein Markierungsrechteck. + + + + + + + + + Eigenschaft + + + Beschreibung + + + + + + x1 + + x-Koordinate der oberen linken Ecke des Rechtecks. + + + + y1 + + y-Koordinate der oberen linken Ecke des Rechtecks. + + + + w + + Breite des Rechtecks. + + + + h + + Höhe des Rechtecks. + + + + r + Radius der abgerundeten Ecken des Rechtecks. + + + + + + + + + Knoten »Layout« + + Ein Label-Knoten kann mehrere Layout-Unterknoten enthalten. Wenn die Etiketten in einem einfachen rechteckigen Raster angeordnet sind, dann wird nur ein Layout benötigt. Falls die Etiketten jedoch in komplizierteren Rasteranordnungen vorliegen, können mehrere Layout-Unterknoten verwendet werden. Beachten Sie, dass ein einzelnes Etikett immer auch als ein Raster aus Etiketten betrachtet werden kann. + + + + + + + + + Eigenschaft + + + Beschreibung + + + + + + nx + + Anzahl der Etiketten/Karten im Raster in horizontaler Richtung + + + + ny + + Anzahl der Etiketten/Karten im Raster in vertikaler Richtung + + + + x0 + + Abstand von linken Rand des Papiers zum linken Rand der linken Reihe der Karten/Etiketten im Layout. + + + + y0 + + Abstand von oberen Rand des Papiers zum oberen Rand der oberen Reihe der Karten/Etiketten im Layout. + + + + dx + Horizontaler Rasterabstand des Zeichengitters. + + + dy + Vertikaler Rasterabstand des Zeichengitters. + + + + + + +
    + Layout-Parameter + + + + + + +
    + + +
    + + + Knoten »Alias« + + Ein Alias-Knoten beschreibt den Namen eines Produkts mit der gleichen Größe und dem gleichen Layout einer anderen Vorlage. + + + + + + + + + Eigenschaft + + + Beschreibung + + + + + + brand + + Die Marke oder der Hersteller des entsprechenden Produkts. + + + + part + + Die Bestellnummer oder der Name des entsprechenden Produkts. + + + + + + + + +
    + + + + + + + + + + + + + + Info zu <application>gLabels</application> + gLabels wurde von Jim Evins (evins@snaught.com) geschrieben. Weitere Informationen zu gLabels finden Sie auf der gLabels-Webseite. + Um einen Fehler zu melden oder einen Vorschlag zu dieser Anwendung oder zu diesem Handbuch zu machen, folgen Sie den Anweisungen auf der gLabels-Kontaktseite. + + Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 2 der Lizenz oder (nach Ihrer Option) jeder späteren Version. Eine Kopie der GNU General Public License finden Sie unter diesem Link, oder in der Datei COPYING, die im Quellcode dieses Programms enthalten ist. + + + + + + + +
    diff --git a/help/es/es.po b/help/es/es.po new file mode 100644 index 00000000..5b32a8bf --- /dev/null +++ b/help/es/es.po @@ -0,0 +1,2268 @@ +# translation of glabels.help.glabels_2_2.po to Español +# Spanish translation for glabels. +# Copyright (C) 2010 glabels's COPYRIGHT HOLDER +# This file is distributed under the same license as the glabels package. +# Jorge González , 2010. +msgid "" +msgstr "" +"Project-Id-Version: glabels.help.glabels_2_2\n" +"POT-Creation-Date: 2010-02-18 17:31+0000\n" +"PO-Revision-Date: 2010-02-19 12:52+0100\n" +"Last-Translator: Jorge González \n" +"Language-Team: Español \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: KBabel 1.11.4\n" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:195(None) +msgid "" +"@@image: 'figures/main-window-empty.png'; " +"md5=226b58f05f4171531066358a29cda1a7" +msgstr "" +"@@image: 'figures/main-window-empty.png'; " +"md5=226b58f05f4171531066358a29cda1a7" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:447(None) +msgid "" +"@@image: 'figures/print-copies.png'; md5=ebb4d08810a67cc9cd7ec6ddd7b52fb0" +msgstr "" +"@@image: 'figures/print-copies.png'; md5=ebb4d08810a67cc9cd7ec6ddd7b52fb0" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:479(None) +msgid "" +"@@image: 'figures/print-merge.png'; md5=ffe6027513a10f7ba940c350c1dc5717" +msgstr "" +"@@image: 'figures/print-merge.png'; md5=ffe6027513a10f7ba940c350c1dc5717" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:790(None) +msgid "" +"@@image: 'figures/object-editor-sidebar.png'; " +"md5=14eace177c1f5bfe36022acbbd6a9f0e" +msgstr "" +"@@image: 'figures/object-editor-sidebar.png'; " +"md5=14eace177c1f5bfe36022acbbd6a9f0e" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1231(None) +msgid "" +"@@image: 'figures/merge-ex1-1.png'; md5=55a97963022047cdad6aa198b5ed698e" +msgstr "" +"@@image: 'figures/merge-ex1-1.png'; md5=55a97963022047cdad6aa198b5ed698e" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1256(None) +msgid "" +"@@image: 'figures/merge-ex1-2.png'; md5=d03979f010e20e98532258edb20b1bc0" +msgstr "" +"@@image: 'figures/merge-ex1-2.png'; md5=d03979f010e20e98532258edb20b1bc0" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1284(None) +msgid "" +"@@image: 'figures/merge-ex1-3.png'; md5=94e382ccdfbc2fe5d320010d2ef10c61" +msgstr "" +"@@image: 'figures/merge-ex1-3.png'; md5=94e382ccdfbc2fe5d320010d2ef10c61" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1302(None) +msgid "" +"@@image: 'figures/merge-ex1-4.png'; md5=e72810bc3c191df6c8b2ad0cb1131021" +msgstr "" +"@@image: 'figures/merge-ex1-4.png'; md5=e72810bc3c191df6c8b2ad0cb1131021" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1348(None) +msgid "" +"@@image: 'figures/merge-ex2-1.png'; md5=4f062158be21bfadc4adfbdcf5d0206f" +msgstr "" +"@@image: 'figures/merge-ex2-1.png'; md5=4f062158be21bfadc4adfbdcf5d0206f" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1374(None) +msgid "" +"@@image: 'figures/merge-ex2-2.png'; md5=f69a7e0ae86f66b0d70d39a7757918fa" +msgstr "" +"@@image: 'figures/merge-ex2-2.png'; md5=f69a7e0ae86f66b0d70d39a7757918fa" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1399(None) C/glabels.xml:1513(None) +msgid "" +"@@image: 'figures/merge-ex2-3.png'; md5=f5134b9e911ebdd17d4a5b36a5ba56d0" +msgstr "" +"@@image: 'figures/merge-ex2-3.png'; md5=f5134b9e911ebdd17d4a5b36a5ba56d0" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1417(None) C/glabels.xml:1531(None) +msgid "" +"@@image: 'figures/merge-ex2-4.png'; md5=29a60e970cb026aecf75543203494b00" +msgstr "" +"@@image: 'figures/merge-ex2-4.png'; md5=29a60e970cb026aecf75543203494b00" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1464(None) +msgid "" +"@@image: 'figures/merge-ex3-1.png'; md5=b0c387b5fcfd730b2ae75172895ff5b8" +msgstr "" +"@@image: 'figures/merge-ex3-1.png'; md5=b0c387b5fcfd730b2ae75172895ff5b8" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1492(None) +msgid "" +"@@image: 'figures/merge-ex3-2.png'; md5=09f105e133657345e6e478a464e5b49f" +msgstr "" +"@@image: 'figures/merge-ex3-2.png'; md5=09f105e133657345e6e478a464e5b49f" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1767(None) +msgid "" +"@@image: 'figures/glabels-template-label.png'; " +"md5=b7db4090373462b8d45feb22d4cd5646" +msgstr "" +"@@image: 'figures/glabels-template-label.png'; " +"md5=b7db4090373462b8d45feb22d4cd5646" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:1888(None) +msgid "" +"@@image: 'figures/glabels-template-cd.png'; " +"md5=145b49a5380de63ffa9451d2bbb81934" +msgstr "" +"@@image: 'figures/glabels-template-cd.png'; " +"md5=145b49a5380de63ffa9451d2bbb81934" + +#. When image changes, this message will be marked fuzzy or untranslated for you. +#. It doesn't matter what you translate it to: it's not used at all. +#: C/glabels.xml:2150(None) +msgid "" +"@@image: 'figures/glabels-template-layout.png'; " +"md5=a8adcff0584be1f0275bc2a169a580df" +msgstr "" +"@@image: 'figures/glabels-template-layout.png'; " +"md5=a8adcff0584be1f0275bc2a169a580df" + +#: C/glabels.xml:31(title) +msgid "gLabels Manual V2.2.6" +msgstr "Manual de gLabels V2.2.6" + +#: C/glabels.xml:33(para) +msgid "" +"User manual for the gLabels label and business " +"card creation program" +msgstr "" +"Manual de usuario para el programa de creación de etiquetas y tarjetas de " +"visita gLabels" + +#: C/glabels.xml:38(year) +msgid "2003-2009" +msgstr "2003-2009" + +#: C/glabels.xml:39(holder) C/glabels.xml:42(publishername) +#: C/glabels.xml:93(para) C/glabels.xml:103(para) +msgid "Jim Evins" +msgstr "Jim Evins" + +#: C/glabels.xml:2(para) +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " +"later version published by the Free Software Foundation with no Invariant " +"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " +"of the GFDL at this link or " +"in the file COPYING-DOCS distributed with this manual." +msgstr "" +"Se otorga permiso para copiar, distribuir y/o modificar este documento bajo " +"los términos de la Licencia de Documentación Libre de GNU, Versión 1.1 o " +"cualquier otra versión posterior publicada por la Free Software Foundation; " +"sin Secciones Invariantes ni Textos de Cubierta Delantera ni Textos de " +"Cubierta Trasera. Puede encontrar una copia de la licencia GFDL en este " +"enlace o en el archivo " +"COPYING-DOCS distribuido con este manual." + +#: C/glabels.xml:12(para) +msgid "" +"This manual is part of a collection of GNOME manuals distributed under the " +"GFDL. If you want to distribute this manual separately from the collection, " +"you can do so by adding a copy of the license to the manual, as described in " +"section 6 of the license." +msgstr "" +"Este manual es parte de una colección de manuales de GNOME distribuido bajo " +"la GFDL. Si quiere distribuir este manual por separado de la colección, " +"puede hacerlo añadiendo una copia de la licencia al manual, tal como se " +"describe en la sección 6 de la licencia." + +#: C/glabels.xml:19(para) +msgid "" +"Many of the names used by companies to distinguish their products and " +"services are claimed as trademarks. Where those names appear in any GNOME " +"documentation, and the members of the GNOME Documentation Project are made " +"aware of those trademarks, then the names are in capital letters or initial " +"capital letters." +msgstr "" +"Muchos de los nombres utilizados por las empresas para distinguir sus " +"productos y servicios se consideran marcas comerciales. Cuando estos nombres " +"aparezcan en la documentación de GNOME, y siempre que se haya informado a " +"los miembros del Proyecto de documentación de GNOME de dichas marcas " +"comerciales, los nombres aparecerán en mayúsculas o con las iniciales en " +"mayúsculas." + +#: C/glabels.xml:35(para) +msgid "" +"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT " +"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " +"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " +"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " +"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " +"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " +"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN " +"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION " +"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND" +msgstr "" +"EL DOCUMENTO SE OFRECE «TAL CUAL», SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O " +"IMPLÍCITA, INCLUYENDO, PERO SIN LIMITARSE A ELLA, LA GARANTÍA DE QUE EL " +"DOCUMENTO O LA VERSIÓN MODIFICADA DEL MISMO ESTÉ LIBRE DE DEFECTOS, GARANTÍA " +"DE COMERCIALIZACIÓN, APTITUD PARA UN USO EN PARTICULAR O INCUMPLIMIENTO. " +"TODOS LOS RIESGOS RELATIVOS A LA CALIDAD, EXACTITUD O RENDIMIENTO DEL " +"DOCUMENTO O LA VERSIÓN MODIFICADA DEL MISMO SON ASUMIDOS POR VD. EN CASO DE " +"QUE EL DOCUMENTO O LA VERSIÓN MODIFICADA SEAN DEFECTUOSOS, VD. (NO EL " +"ESCRITOR ORIGINAL NI EL AUTOR NI NINGUNO DE LOS COLABORADORES) ASUMIRÁ EL " +"COSTE DE CUALQUIER MANTENIMIENTO, REPARACIÓN O CORRECCIÓN QUE SEAN " +"NECESARIOS. ESTA RENUNCIA DE GARANTÍA CONSTITUYE UNA PARTE ESENCIAL DE ESTA " +"LICENCIA NO SE AUTORIZA EL USO DE NINGÚN DOCUMENTO NI VERSIÓN MODIFICADA DEL " +"MISMO, SALVO EN LAS CONDICIONES ESPECIFICADAS EN ESTA RENUNCIA; Y " + +#: C/glabels.xml:55(para) +msgid "" +"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING " +"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY " +"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE " +"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON " +"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF " +"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, " +"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES " +"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED " +"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE " +"POSSIBILITY OF SUCH DAMAGES." +msgstr "" +"EN NINGUNA CIRCUNSTANCIA NI SEGÚN NINGÚN ARGUMENTO LEGAL, SEA POR MOTIVOS " +"CULPOSOS (INCLUIDA LA NEGLIGENCIA), CONTRACTUALES O DE OTRO TIPO, NI EL " +"AUTOR, NI EL REDACTOR INICIAL, NI CUALQUIER COLABORADOR, NI CUALQUIER " +"DISTRIBUIDOR DEL DOCUMENTO O VERSIÓN MODIFICADA DEL MISMO, NI CUALQUIER " +"PROVEEDOR DE CUALQUIERA DE DICHAS PARTES, SERÁN RESPONSABLES, ANTE NINGÚN " +"TERCERO, DE NINGÚN DAÑO O PERJUICIO DIRECTO, INDIRECTO, ESPECIAL, INCIDENTAL " +"O CONSIGUIENTE DE NINGÚN TIPO, INCLUIDOS, SIN LIMITACIÓN, LOS DAÑOS POR " +"PÉRDIDA DE FONDO DE COMERCIO, INTERRUPCIÓN DEL TRABAJO, FALLO O MAL " +"FUNCIONAMIENTO INFORMÁTICO, NI CUALQUIER OTRO DAÑO O PÉRDIDA DERIVADOS DEL " +"USO DEL DOCUMENTO Y LAS VERSIONES MODIFICADAS DEL MISMO, O RELACIONADO CON " +"ELLO, INCLUSO SI SE HABÍA COMUNICADO A AQUELLA PARTE LA POSIBILIDAD DE TALES " +"DAÑOS." + +#: C/glabels.xml:28(para) +msgid "" +"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS " +"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: " +"" +msgstr "" +"ESTE DOCUMENTO Y LAS VERSIONES MODIFICADAS DEL MISMO SE PROPORCIONAN SEGÚN " +"LAS CONDICIONES ESTABLECIDAS EN LA LICENCIA DE DOCUMENTACIÓN LIBRE DE GNU " +"(GFDL) Y TENIENDO EN CUENTA QUE: " + +#: C/glabels.xml:52(firstname) +msgid "Jim" +msgstr "Jim" + +#: C/glabels.xml:53(surname) +msgid "Evins" +msgstr "Evins" + +#: C/glabels.xml:87(revnumber) +msgid "gLabels Manual V2.2.6" +msgstr "Manual de gLabels V2.2.6" + +#: C/glabels.xml:88(date) +msgid "October 2009" +msgstr "Octubre de 2009" + +#: C/glabels.xml:90(para) +msgid "Mario Blättermann mariobl@gnome.org" +msgstr "Mario Blättermann mariobl@gnome.org" + +#: C/glabels.xml:97(revnumber) +msgid "gLabels Manual V2.2" +msgstr "Manual de gLabels V2.2" + +#: C/glabels.xml:98(date) +msgid "December 2007" +msgstr "Diciembre de 2007" + +#: C/glabels.xml:100(para) +msgid "Jim Evins evins@snaught.com" +msgstr "Jim Evins evins@snaught.com" + +#: C/glabels.xml:108(releaseinfo) +msgid "" +"This manual describes version 2.2.6 of gLabels." +msgstr "" +"Este manual describe la versión 2.2.6 de gLabels." + +#: C/glabels.xml:111(title) +msgid "Feedback" +msgstr "Comentarios" + +#: C/glabels.xml:112(para) +msgid "" +"To report a bug or make a suggestion regarding the gLabels application or this manual, follow the directions in the gLabels Contact Page." +msgstr "" + +#: C/glabels.xml:121(primary) +msgid "gLabels" +msgstr "gLabels" + +#: C/glabels.xml:124(primary) +msgid "glabels" +msgstr "glabels" + +#: C/glabels.xml:135(title) +msgid "Introduction" +msgstr "Introducción" + +#: C/glabels.xml:137(para) +msgid "" +"The gLabels application is a lightweight program " +"for creating labels and business cards for the GNOME desktop environment. It is designed to work with various laser/ink-jet " +"peel-off label and business card sheets that you'll find at most office " +"supply stores." +msgstr "" + +#: C/glabels.xml:158(title) +msgid "Getting Started" +msgstr "Inicio" + +#: C/glabels.xml:161(title) +msgid "To Start gLabels" +msgstr "Para iniciar gLabels" + +#: C/glabels.xml:162(para) +msgid "You can start gLabels in the following ways:" +msgstr "" + +#: C/glabels.xml:166(term) +msgid "Applications menu" +msgstr "Menú Aplicaciones" + +#: C/glabels.xml:168(para) +msgid "" +"Choose OfficegLabels." +msgstr "" + +#: C/glabels.xml:176(term) +msgid "Command line" +msgstr "Línea de comandos" + +#: C/glabels.xml:178(para) +msgid "Type glabels, then press Return:" +msgstr "" + +#: C/glabels.xml:186(title) +msgid "When You Start gLabels" +msgstr "" + +#: C/glabels.xml:187(para) +msgid "" +"When you start gLabels, the following window is " +"displayed." +msgstr "" + +#: C/glabels.xml:191(title) +msgid "gLabels Start Up Window" +msgstr "Ventana de inicio de gLabels" + +#. for example, the items on the menubar and on the toolbar. This section is optional. +#: C/glabels.xml:205(para) +msgid "" +"The gLabels window contains the following " +"elements:" +msgstr "" + +#: C/glabels.xml:209(term) +msgid "Menubar." +msgstr "Barra de menú." + +#: C/glabels.xml:211(para) +msgid "" +"The menus on the menubar contain all of the commands you need to create and " +"edit labels and business cards in gLabels." +msgstr "" + +#: C/glabels.xml:217(term) +msgid "Main toolbar." +msgstr "Barra de herramientas principal." + +#: C/glabels.xml:219(para) +msgid "" +"The main toolbar contains a subset of common File and Edit commands that you " +"can access from the menubar." +msgstr "" + +#: C/glabels.xml:224(term) +msgid "Drawing toolbar." +msgstr "" + +#: C/glabels.xml:226(para) +msgid "" +"The drawing toolbar contains a subset of commands for editing the current " +"gLabels document." +msgstr "" + +#: C/glabels.xml:231(term) +msgid "Display area." +msgstr "Área de visualización." + +#: C/glabels.xml:233(para) +msgid "" +"The display area is the main drawing interface to gLabels." +msgstr "" + +#: C/glabels.xml:238(term) +msgid "Object sidebar." +msgstr "" + +#: C/glabels.xml:240(para) +msgid "" +"The object sidebar provides an interface for viewing and editing all " +"properties of an individual object." +msgstr "" + +#: C/glabels.xml:245(term) +msgid "Properties toolbar." +msgstr "Barra de herramientas de propiedades." + +#: C/glabels.xml:247(para) +msgid "" +"The properties toolbar contains a set of tools to manipulate the properties " +"of selected objects and set default properties for new objects." +msgstr "" + +#: C/glabels.xml:253(term) +msgid "Statusbar." +msgstr "Barra de estado." + +#: C/glabels.xml:255(para) +msgid "" +"The statusbar displays information about current gLabels activity and contextual information about the menu items." +msgstr "" + +#: C/glabels.xml:271(title) +msgid "Usage" +msgstr "Uso" + +#: C/glabels.xml:275(title) +msgid "To Create a New Label or Card" +msgstr "" + +#: C/glabels.xml:277(para) +msgid "" +"To create a new label or business card, choose FileNew to display the " +"New Label or Card dialog. Select the media type and " +"orientation for the new document, then click OK. A " +"new document is displayed in the display area of the gLabels window." +msgstr "" + +#: C/glabels.xml:286(para) +msgid "" +"If your particular media type is missing from this dialog, see " +msgstr "" + +#: C/glabels.xml:293(title) +msgid "To Open a File" +msgstr "Abrir un archivo" + +#: C/glabels.xml:295(para) +msgid "" +"To open a file, choose FileOpen to display the Open File " +"dialog. Select the file that you want to open, then click OK. The file is displayed in the display area of the " +"gLabels window." +msgstr "" + +#: C/glabels.xml:302(para) +msgid "" +"You can also open multiple files in gLabels. The " +"application creates a separate application window for each open file." +msgstr "" + +#: C/glabels.xml:306(para) +msgid "" +"The application records the paths and filenames of the most recent files " +"that you have edited and displays the files as menu items on the " +"FileRecent Files menu." +msgstr "" + +#: C/glabels.xml:316(title) +msgid "To Open Multiple Files from a Command Line" +msgstr "" + +#: C/glabels.xml:318(para) +msgid "" +"You can run gLabels from a command line and open " +"a single file or multiple files. To open multiple files from a command line, " +"type the following command, then press Return:" +msgstr "" + +#: C/glabels.xml:324(replaceable) +msgid "file1.glabels file2.glabels file3.glabels" +msgstr "" + +#: C/glabels.xml:323(command) +msgid "glabels " +msgstr "" + +#: C/glabels.xml:327(para) +msgid "" +"When the application starts, the files that you specify are displayed in " +"separate gLabels windows." +msgstr "" + +#: C/glabels.xml:334(title) +msgid "To Save a File" +msgstr "Guardar un archivo" + +#: C/glabels.xml:336(para) +msgid "You can save files in the following ways:" +msgstr "Puede guardar archivos de cualquiera de estas maneras:" + +#: C/glabels.xml:341(para) +msgid "" +"To save changes to an existing file, choose FileSave." +msgstr "" +"Para guardar los cambios a un archivo existente, elija " +"ArchivoGuardar." + +#: C/glabels.xml:348(para) +msgid "" +"To save a new file or to save an existing file under a new filename, choose " +"FileSave As. Enter a name for the file in the Save As " +"dialog box, then click OK." +msgstr "" + +#: C/glabels.xml:361(title) +msgid "To Change Label Properties" +msgstr "Cambiar las propiedades de una etiqueta" + +#: C/glabels.xml:363(para) +msgid "" +"To change the media type and/or orientation of a label, choose " +"FileProperties to display the Label properties dialog. " +"Select the new media type and orientation for the document, then click " +"OK." +msgstr "" + +#: C/glabels.xml:374(title) +msgid "To Create a Custom Template" +msgstr "" + +#: C/glabels.xml:376(para) +msgid "" +"To create a new custom template, choose FileTemplate Designer ... to " +"display the Template Designer dialog. This dialog will " +"assist you in creating a custom template for most types of label or card " +"stationery that you may encounter." +msgstr "" + +#: C/glabels.xml:383(para) +msgid "" +"If you prefer, you can create your templates manually. For this option see " +"" +msgstr "" + +#: C/glabels.xml:391(title) +msgid "To Close a File" +msgstr "Cerrar un archivo" + +#: C/glabels.xml:393(para) +msgid "" +"To close the current document, choose FileClose to close the " +"application window. If the current document is modified, a confirmation " +"dialog will be presented, allowing you to save the document or cancel the " +"command. If the window being closed is the only open window, " +"gLabels will exit." +msgstr "" + +#: C/glabels.xml:405(title) +msgid "To Quit gLabels" +msgstr "" + +#: C/glabels.xml:407(para) +msgid "" +"To quit gLabels, choose " +"FileQuit. This is equivalent to closing all open windows. See ." +msgstr "" + +#: C/glabels.xml:417(title) +msgid "To Print Labels or Cards" +msgstr "" + +#: C/glabels.xml:419(para) +msgid "" +"To print labels or cards, choose FilePrint to display the " +"Print dialog. Once print options have been selected, " +"click Print to print the labels or cards. To simply " +"preview the results, click Print Preview instead." +msgstr "" + +#: C/glabels.xml:426(para) +msgid "" +"The Print dialog allows you to specify the following " +"print options:" +msgstr "" + +#: C/glabels.xml:430(title) +msgid "The Labels Tab of the Print Dialog" +msgstr "" + +#: C/glabels.xml:435(guilabel) +msgid "Print control (Simple)" +msgstr "" + +#: C/glabels.xml:438(para) +msgid "" +"For simple labels or cards (no document merge), the labels tabbed section contains the following copy controls." +msgstr "" + +#: C/glabels.xml:443(title) +msgid "Print Copy Controls" +msgstr "" + +#. ==== End of Figure ==== +#: C/glabels.xml:454(para) +msgid "" +"The number of copies of the label can be selected by choosing the number of " +"full sheets to print, or a specific subset of labels on a single sheet." +msgstr "" + +#: C/glabels.xml:458(para) +msgid "" +"The mini-preview can also be used to graphically select the subset of labels " +"by clicking the first label on the mini-preview and dragging to the last " +"label." +msgstr "" + +#: C/glabels.xml:466(guilabel) +msgid "Print control (Merge)" +msgstr "" + +#: C/glabels.xml:469(para) +msgid "" +"For labels or cards using the document merge (also known as \"mail merge\") " +"capability, the labels tabbed section contains the " +"following merge controls instead of copy controls." +msgstr "" + +#: C/glabels.xml:475(title) +msgid "Print Document Merge Controls" +msgstr "" + +#. ==== End of Figure ==== +#: C/glabels.xml:486(para) +msgid "" +"The total number of labels or cards printed is the product of the number of " +"records in the merge source and the number of copies selected. If multiple " +"copies are selected, these can be either collated (copies of the same record " +"grouped together) or un-collated (one copy each record is printed before " +"next copy)." +msgstr "" + +#: C/glabels.xml:493(para) +msgid "" +"Printing can begin on any label on the first sheet. This can be selected " +"with the Start on label spinbutton." +msgstr "" + +#: C/glabels.xml:497(para) +msgid "" +"The mini-preview can also be used to graphically select this first label, by " +"clicking on the desired label in the mini-preview." +msgstr "" + +#: C/glabels.xml:504(guilabel) +msgid "Options" +msgstr "Opciones" + +#: C/glabels.xml:506(para) +msgid "The following options can also be selected." +msgstr "" + +#: C/glabels.xml:509(guilabel) +msgid "print outlines" +msgstr "" + +#: C/glabels.xml:510(para) +msgid "" +"Print outlines of labels. This option is useful for dry-runs, to test " +"printer alignment." +msgstr "" + +#: C/glabels.xml:514(guilabel) +msgid "print in reverse" +msgstr "" + +#: C/glabels.xml:515(para) +msgid "" +"Prints the labels as mirror images. This option is useful for printing on " +"clear labels that will be viewed from the reverse side (e.g. in a car " +"window)." +msgstr "" + +#: C/glabels.xml:520(guilabel) +msgid "print crop marks" +msgstr "" + +#: C/glabels.xml:521(para) +msgid "" +"Prints crop marks along the edge of the sheet. This option is useful for " +"printing on blank stock, to be cut after printing. This option does not work " +"well with all templates." +msgstr "" + +#: C/glabels.xml:536(title) +msgid "To Create New Objects" +msgstr "" + +#: C/glabels.xml:538(para) +msgid "" +"Objects are created by choosing the appropriate selection under the " +"ObjectsCreate Object submenu or the Drawing Toolbar. This will place the display area into object creation mode as " +"indicated by its cursor. To return to the default object selection mode " +"without creating an object, choose ObjectsSelect Mode. This will " +"return the display area's cursor to the default selection arrow." +msgstr "" + +#: C/glabels.xml:548(para) +msgid "The following describes the object creation mode for each object type:" +msgstr "" + +#: C/glabels.xml:554(term) C/glabels.xml:1123(guilabel) +msgid "Text" +msgstr "Texto" + +#: C/glabels.xml:556(para) +msgid "" +"Click the desired location of the upper left corner of the text object. New " +"text objects are initialized with the string \"Text.\" To change this text, " +"or other properties, see ." +msgstr "" + +#: C/glabels.xml:564(term) +msgid "Box" +msgstr "Caja" + +#: C/glabels.xml:566(para) +msgid "" +"Click the desired location of the upper left corner of the box object and " +"drag to the desired location of the lower right corner. If you simply click " +"in a single location, a square box will be created. To change properties of " +"the box object, see ." +msgstr "" + +#: C/glabels.xml:575(term) C/glabels.xml:1149(guilabel) +msgid "Line" +msgstr "Línea" + +#: C/glabels.xml:577(para) +msgid "" +"Click the desired location of one end of the line object and drag to the " +"desired location of the other end. If you simply click in a single location, " +"a diagonal line will be created. To change properties of the line object, " +"see ." +msgstr "" + +#: C/glabels.xml:586(term) +msgid "Ellipse" +msgstr "Elipse" + +#: C/glabels.xml:588(para) +msgid "" +"Click the desired location of the upper left corner of the ellipse object " +"and drag to the desired location of the lower right corner. If you simply " +"click in a single location, a circle will be created. To change properties " +"of the ellipse object, see ." +msgstr "" + +#: C/glabels.xml:597(term) +msgid "Image" +msgstr "Imagen" + +#: C/glabels.xml:599(para) +msgid "" +"Click the desired location of the upper left corner of the image object and " +"drag to the desired location of the lower right corner. If you simply click " +"in a single location, a square will be created. New image objects are " +"initialized with a simple checkerboard image. To change this image, or other " +"properties of the image object, see ." +msgstr "" + +#: C/glabels.xml:610(term) +msgid "Barcode" +msgstr "" + +#: C/glabels.xml:612(para) +msgid "" +"Click the desired location of the upper left corner of the barcode object. " +"New barcode objects are initialized to a POSTNET barcode with representative " +"data. To change data and properties of the barcode object, see ." +msgstr "" + +#: C/glabels.xml:627(title) +msgid "To Select Objects" +msgstr "" + +#: C/glabels.xml:629(para) +msgid "" +"A prerequisite for performing operations on objects is the selection of " +"individual objects or groups of objects. The display area must be in the " +"object selection mode to create new selections, as indicated by an arrow " +"cursor. The object selection mode is selected by the " +"ObjectsSelect Mode menu item, or the corresponding command on the " +"Drawing Toolbar." +msgstr "" + +#: C/glabels.xml:642(term) +msgid "Selecting a single object" +msgstr "" + +#: C/glabels.xml:644(para) +msgid "" +"A single object can be selected simply by clicking on the desired object in " +"the display area. Once selected the object will be highlighted with a set of " +"resizing handles." +msgstr "" + +#: C/glabels.xml:652(term) +msgid "Aggregate object selections" +msgstr "" + +#: C/glabels.xml:654(para) +msgid "" +"Multiple objects can be selected by first selecting the first object as " +"above and then by holding the Ctrl key while selecting " +"additional objects. Individual objects can be added to an existing selection " +"at any time by holding the Ctrl key while selecting the " +"desired objects. All objects can also be selected by using the " +"EditSelect All menu item. All objects in an aggregate object selection will be " +"highlighted." +msgstr "" + +#: C/glabels.xml:668(term) +msgid "Area selections" +msgstr "" + +#: C/glabels.xml:670(para) +msgid "" +"Multiple objects can also be selected by clicking an empty area and dragging " +"to form a rectangular area. When released, all objects contained in the area " +"will form an aggregate selection. An area selection can be used to add to an " +"existing selection by holding the Ctrl key while performing " +"the selection." +msgstr "" + +#: C/glabels.xml:680(term) +msgid "Unselecting objects" +msgstr "" + +#: C/glabels.xml:682(para) +msgid "" +"Individual objects can be removed from an existing selection by holding the " +"Ctrl key while clicking on a previously selected object. An " +"entire selection can be dismissed by using the EditUn-select All menu item or " +"by simply clicking any empty space in the display area. Once an object is " +"unselected its highlight is removed." +msgstr "" + +#: C/glabels.xml:699(title) +msgid "Clipboard Commands" +msgstr "" + +#: C/glabels.xml:701(para) +msgid "" +"Object selections can be manipulated using the standard clipboard operations " +"Cut, Copy, " +"Paste, and Delete." +msgstr "" + +#: C/glabels.xml:712(keycap) C/glabels.xml:728(keycap) +#: C/glabels.xml:744(keycap) +msgid "Ctrl" +msgstr "Ctrl" + +#: C/glabels.xml:712(keycap) +msgid "X" +msgstr "X" + +#: C/glabels.xml:714(guimenuitem) +msgid "Cut" +msgstr "Cortar" + +#: C/glabels.xml:718(para) +msgid "" +"Moves selected objects to the clipboard. The objects are then available for " +"pasting back into the current document or another document." +msgstr "" + +#: C/glabels.xml:728(keycap) +msgid "C" +msgstr "C" + +#: C/glabels.xml:730(guimenuitem) +msgid "Copy" +msgstr "Copiar" + +#: C/glabels.xml:734(para) +msgid "" +"Copies selected objects to the clipboard without deleting them. The objects " +"are then available for pasting back into the current document or another " +"document." +msgstr "" + +#: C/glabels.xml:744(keycap) +msgid "V" +msgstr "V" + +#: C/glabels.xml:746(guimenuitem) +msgid "Paste" +msgstr "Pegar" + +#: C/glabels.xml:750(para) +msgid "" +"Pastes objects from the clipboard into the current document. " +"gLabels can only paste objects from another " +"gLabels document." +msgstr "" + +#: C/glabels.xml:760(keycap) C/glabels.xml:762(guimenuitem) +msgid "Delete" +msgstr "Borrar" + +#: C/glabels.xml:766(para) +msgid "Deletes selected objects without placing them on the clipboard." +msgstr "" + +#: C/glabels.xml:777(title) +msgid "To Edit Object Properties" +msgstr "" + +#: C/glabels.xml:779(para) +msgid "" +"Most object properties can be modified through the object editor sidebar, " +"illustrated below. To use the object editor, a single object must first be " +"selected. See ." +msgstr "" + +#: C/glabels.xml:786(title) +msgid "Object Editor Sidebar" +msgstr "" + +#. ==== End of Figure ==== +#: C/glabels.xml:797(para) +msgid "" +"The object editor will contain a subset of the following tabbed sections, " +"depending on object type:" +msgstr "" + +#: C/glabels.xml:801(title) +msgid "Text Tabbed Section (Text objects)" +msgstr "" + +#: C/glabels.xml:803(para) +msgid "" +"This section contains a small editor for changing the content of a text " +"object. It also contains a dropdown menu of available document merge keys, " +"that can be inserted into text." +msgstr "" + +#: C/glabels.xml:810(title) +msgid "Image Tabbed Section (Image objecs)" +msgstr "" + +#: C/glabels.xml:812(para) +msgid "" +"This section contains a file entry with preview to select image files. The " +"browse button can be used to easily locate image files. Alternatively, a " +"document merge key can be used instead to provide a filename at print time." +msgstr "" + +#: C/glabels.xml:820(title) +msgid "Data Tabbed Section (Barcode objecs)" +msgstr "" + +#: C/glabels.xml:822(para) +msgid "" +"This section contains a text entry to enter literal barcode data. " +"Alternatively, a document merge key can be used to provide this data at " +"print time." +msgstr "" + +#: C/glabels.xml:829(title) +msgid "Style Tabbed Section (Text objects)" +msgstr "" + +#: C/glabels.xml:831(para) +msgid "" +"This section contains controls to select text properties, including font " +"family, font size, font weight, color, and text justification." +msgstr "" + +#: C/glabels.xml:838(title) +msgid "Style Tabbed Section (Barcode objecs)" +msgstr "" + +#: C/glabels.xml:840(para) +msgid "" +"This section contains controls to select barcode properties, including " +"barcode style, color, whether to print text, and whether to include a " +"checksum digit." +msgstr "" + +#: C/glabels.xml:847(title) +msgid "Line Tabbed Section" +msgstr "" + +#: C/glabels.xml:849(para) +msgid "" +"This section contains controls to select properties of lines and outlines. " +"These properties include line width and color." +msgstr "" + +#: C/glabels.xml:855(title) +msgid "Fill Tabbed Section" +msgstr "" + +#: C/glabels.xml:857(para) +msgid "" +"This section contains controls to select fill properties of box and ellipse " +"objects. Currently the only fill property is fill color." +msgstr "" + +#: C/glabels.xml:864(title) +msgid "Size Tabbed Section (All except line objects)" +msgstr "" + +#: C/glabels.xml:866(para) +msgid "" +"This section contains controls to select the width and height of an object. " +"A checkbox is provided, so that the current aspect ratio can be locked while " +"manipulating the width and height controls. Image objects also provide a " +"button to reset the size to the image's natural size (Assumes 72DPI)." +msgstr "" + +#: C/glabels.xml:875(title) +msgid "Size Tabbed Section (Line objects)" +msgstr "" + +#: C/glabels.xml:877(para) +msgid "" +"This section contains controls to select the length and angle of a line " +"object." +msgstr "" + +#: C/glabels.xml:883(title) +msgid "Position Tabbed Section" +msgstr "" + +#: C/glabels.xml:885(para) +msgid "This section contains controls to change the position of an object." +msgstr "" + +#: C/glabels.xml:892(title) +msgid "Shadow Tabbed Section (All except image and barcode objects)" +msgstr "" + +#: C/glabels.xml:894(para) +msgid "This section contains controls to add a shadow to an object." +msgstr "" + +#: C/glabels.xml:903(title) +msgid "Other Manipulations of Objects" +msgstr "" + +#: C/glabels.xml:905(para) +msgid "Objects can also be manipulated in the following ways." +msgstr "" + +#: C/glabels.xml:908(title) +msgid "Moving and Resizing Objects" +msgstr "" + +#: C/glabels.xml:910(para) +msgid "" +"Objects can be moved by simply clicking on a selected object and dragging " +"the object to its new location. If the object is part of an aggregate " +"selection, all objects in the selection will move with the object being " +"dragged, maintaining their relative positions to one another. If no object " +"is selected, clicking on an object will create a new selection containing " +"that object. See ." +msgstr "" + +#: C/glabels.xml:918(para) +msgid "" +"A selected object can be resized by clicking one of its resize handle and " +"dragging it to obtain the new size." +msgstr "" + +#: C/glabels.xml:924(title) +msgid "Changing Stacking Order" +msgstr "" + +#: C/glabels.xml:926(para) +msgid "" +"Stacking order refers to relative position in the z-axis of objects. That is " +"when objects overlap, which object will appear on top of the other. By " +"default, newer objects will appear above older objects. To change this " +"order, select one or more objects and choose ObjectsOrderBring to Front to raise the selection to the top of the stacking " +"order, or choose ObjectsOrderSend to Back to lower " +"the selection to the bottom of the stacking order. These menuitems are also " +"available by right-clicking the display area when there is a non-empty " +"selection." +msgstr "" + +#: C/glabels.xml:944(title) +msgid "Rotating and Flipping Objects" +msgstr "" + +#: C/glabels.xml:946(para) +msgid "" +"Objects can be rotated 90 degrees in either direction, or flipped " +"horizontally or vertically, by choosing the appropriate menuitem in the " +"ObjectsRotate/Flip sub-menu. These menuitems are also available by " +"right-clicking the display area when there is a non-empty selection." +msgstr "" + +#: C/glabels.xml:956(title) +msgid "Aligning Objects" +msgstr "" + +#: C/glabels.xml:958(para) +msgid "" +"Objects can be aligned horizontally or vertically, relative to one another, " +"or relative to the center line of the label, by choosing the appropriate " +"menuitem from the ObjectsAlign " +"Horizontal or ObjectsAlign Horizontal sub-menus. " +"These menuitems are also available by right-clicking the display area when " +"there is a non-empty selection." +msgstr "" + +#: C/glabels.xml:971(title) +msgid "Using the Property Bar" +msgstr "" + +#: C/glabels.xml:973(para) +msgid "" +"The property bar can be used to change some common properties of objects en-" +"masse. These properties include font family, font size, font weight, text " +"alignment, text color, fill color, line or outline color, and line width. " +"The property bar also controls the defaults for these properties for any " +"newly created objects." +msgstr "" + +#: C/glabels.xml:988(title) +msgid "Performing a Document Merge" +msgstr "" + +#: C/glabels.xml:990(para) +msgid "" +"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that " +"allows a unique label or card to be printed for each record in an external " +"data source." +msgstr "" + +#: C/glabels.xml:994(para) +msgid "" +"The first step to performing a document merge is to prepare a source " +"document that contains your merge data. This data could be mailing addresses " +"or any other data that you wish to create unique labels or cards for. " +"Currently back-ends only exist for text files and the evolution data server " +"-- others are planned. The currently supported text-file format is very " +"simple: each line is a record; fields are delimited by commas (CSV), tabs, " +"or colons; and newlines can be embedded into fields by using the \"\\n\" " +"entity. This file could be created using any text editor or could be created " +"by another program or script. A common way of creating CSV files is to " +"export them from a spreadsheet program." +msgstr "" + +#: C/glabels.xml:1006(para) +msgid "" +"A label must then be configured to \"point at\" this data file. To configure " +"the merge properties of a document, choose ObjectsMerge Properties menu item " +"to display the merge properties dialog. This dialog is " +"used to select the exact data file format and file name (location) of the " +"merge data." +msgstr "" + +#: C/glabels.xml:1014(para) +msgid "" +"Finally, once the label has been configured for a data file, field keys can " +"be inserted into text objects and used as source or data for barcode objects " +"and image filenames for image objects. See for more information on using merge data for these object " +"types." +msgstr "" + +#: C/glabels.xml:1020(para) +msgid "" +"Now that your label is configured, gLabels will " +"print a unique label for each record in your source document -- substituting " +"fields from each record for field keys in the all text, barcode, and image " +"objects." +msgstr "" + +#: C/glabels.xml:1025(para) +msgid "" +"See for a detailed tutorial on " +"the document merge feature." +msgstr "" + +#: C/glabels.xml:1040(title) +msgid "Settings" +msgstr "Configuración" + +#: C/glabels.xml:1041(para) +msgid "" +"To configure gLabels, choose " +"SettingsPreferences. The Preferences dialog " +"contains the following tabbed sections:" +msgstr "" + +#: C/glabels.xml:1062(title) +msgid "Locale" +msgstr "Región" + +#: C/glabels.xml:1066(guilabel) +msgid "Units" +msgstr "Unidades" + +#: C/glabels.xml:1068(para) +msgid "" +"Use this radio button group to specify your preferred units. Select one of " +"the following options:" +msgstr "" + +#: C/glabels.xml:1073(guilabel) +msgid "Points" +msgstr "Puntos" + +#: C/glabels.xml:1074(para) +msgid "Use points (1 point = 1/72 in = 0.352778 mm)." +msgstr "" + +#: C/glabels.xml:1078(guilabel) +msgid "Inches" +msgstr "Pulgadas" + +#: C/glabels.xml:1079(para) +msgid "Use inches." +msgstr "" + +#: C/glabels.xml:1083(guilabel) +msgid "Millimeters" +msgstr "Milímetros" + +#: C/glabels.xml:1084(para) +msgid "Use millimeters." +msgstr "" + +#: C/glabels.xml:1087(para) +msgid "Default: Inches." +msgstr "" + +#: C/glabels.xml:1093(guilabel) +msgid "Default page size" +msgstr "" + +#: C/glabels.xml:1095(para) +msgid "" +"Use this radio button group to specify your preferred page size. This will " +"make it quicker for you to locate media types when creating a new label or " +"card." +msgstr "" + +#: C/glabels.xml:1101(guilabel) +msgid "US Letter" +msgstr "US Letter" + +#: C/glabels.xml:1102(para) +msgid "" +"Most of your media will be of the US Letter page size (8.5 x 11 inches)." +msgstr "" + +#: C/glabels.xml:1106(guilabel) +msgid "ISO A4" +msgstr "" + +#: C/glabels.xml:1107(para) +msgid "Most of your media will be of the ISO A4 page size (210 x 297 mm)." +msgstr "" + +#: C/glabels.xml:1110(para) +msgid "Default: US Letter." +msgstr "" + +#: C/glabels.xml:1119(title) +msgid "Object defaults" +msgstr "Opciones predeterminadas para el objeto" + +#: C/glabels.xml:1125(para) +msgid "" +"Use these controls to set the default properties of new text objects. These " +"properties are" +msgstr "" + +#: C/glabels.xml:1130(guilabel) +msgid "Font" +msgstr "Tipografía" + +#: C/glabels.xml:1131(para) +msgid "" +"These controls are used to select font family and font size, and whether the " +"font should bold or in italics." +msgstr "" + +#: C/glabels.xml:1136(guilabel) C/glabels.xml:1161(guilabel) +#: C/glabels.xml:1176(guilabel) +msgid "Color" +msgstr "Color" + +#: C/glabels.xml:1137(para) +msgid "This control selects the default text color." +msgstr "" + +#: C/glabels.xml:1141(guilabel) +msgid "Alignment" +msgstr "Alineación" + +#: C/glabels.xml:1142(para) +msgid "" +"These controls are used to select the default text alignment (left, center " +"or right)." +msgstr "" + +#: C/glabels.xml:1151(para) +msgid "" +"Use these controls to set the default properties of lines and outlines of " +"new objects. These properties are" +msgstr "" + +#: C/glabels.xml:1156(guilabel) +msgid "Width" +msgstr "Anchura" + +#: C/glabels.xml:1157(para) +msgid "This control selects the default line width." +msgstr "" + +#: C/glabels.xml:1162(para) +msgid "This control selects the default line color." +msgstr "" + +#: C/glabels.xml:1169(guilabel) +msgid "Fill" +msgstr "Relleno" + +#: C/glabels.xml:1171(para) +msgid "" +"Use these controls to set the default fill properties of new objects. These " +"properties are" +msgstr "" + +#: C/glabels.xml:1177(para) +msgid "This control selects the default fill color." +msgstr "" + +#: C/glabels.xml:1191(title) +msgid "Document Merge Tutorial" +msgstr "" + +#: C/glabels.xml:1193(para) +msgid "" +"Document Merge (sometimes called \"Mail Merge\") is a powerful feature that " +"allows a unique label or card to be printed for each record in an external " +"data source. It is however, the most mis-understood feature of " +"gLabels. The following examples will step through " +"a couple of common tasks using the document merge feature." +msgstr "" + +#: C/glabels.xml:1201(title) +msgid "Example 1: Name Tags Using a CSV File" +msgstr "" + +#: C/glabels.xml:1203(para) +msgid "" +"In this example we are organizing an orientation party for the new crew " +"members of our ship. We have a list of freshman crew members that we created " +"in gnumeric and exported as the following CSV " +"file. We could have created this file by using a text editor, but heck it is " +"the 23rd century." +msgstr "" + +#: C/glabels.xml:1209(programlisting) +#, no-wrap +msgid "" +"\n" +"Name,Department,SN\n" +"\"Jim Kirk\",Management,\"SC937-0176 CEC\"\n" +"\"Mr. Spock\",Sciences,S179-276SP\n" +"\"Leonard McCoy\",Medicine,unknown\n" +"\"Montgomery Scott\",Engineering,SE-197-54T\n" +" " +msgstr "" + +#: C/glabels.xml:1217(para) +msgid "" +"In gLabels we have created a new " +"gLabels document using the Avery 5395 \"Name " +"Badge Labels\" template. Next we use the ObjectsMerge Properties menu item " +"to display the merge properties dialog. We use this " +"dialog to select the source type (in our case CSV) and the merge source " +"(filename) as shown." +msgstr "" + +#: C/glabels.xml:1227(title) C/glabels.xml:1344(title) +#: C/glabels.xml:1460(title) +msgid "Merge properties dialog" +msgstr "" + +#. ==== End of Figure ==== +#: C/glabels.xml:1238(para) +msgid "" +"Before applying the merge source, we uncheck the first record since it is " +"only column headers from our original gnumeric " +"spreadsheet and would simply waste our first label. We could also unselect " +"any other records that we didn't want to print a label for." +msgstr "" + +#: C/glabels.xml:1243(para) C/glabels.xml:1361(para) +msgid "" +"We can also view each record in more detail by clicking on the appropriate " +"expander (the little triangles) as shown. Once we are satisfied with the " +"selections in this dialog we click OK to accept the " +"changes." +msgstr "" + +#: C/glabels.xml:1248(para) C/glabels.xml:1366(para) +msgid "" +"Now we start adding objects to our gLabels " +"document as shown." +msgstr "" + +#: C/glabels.xml:1252(title) C/glabels.xml:1370(title) +#: C/glabels.xml:1488(title) +msgid "Adding objects" +msgstr "" + +#. ==== End of Figure ==== +#: C/glabels.xml:1263(para) +msgid "" +"In this example we have added three text objects and a barcode object. The " +"first text object contains only simple literal text (\"Hello, my name is\"). " +"The second text object contains a single merge field (\"${1}\") " +"corresponding to the first field of a record (first column of a line) which " +"contains the new crew member's full name. The third text field contains both " +"literal text (\"Department: \") followed by a single merge field (\"${2}\") " +"corresponding to the second field or the crew member's department. The " +"barcode object is configured to use field (or key) \"3\" which contains our " +"crew member's starfleet serial number." +msgstr "" + +#: C/glabels.xml:1273(para) +msgid "" +"Now we can print our name tags by selecting the FilePrint menu item. This will " +"display print dialog as shown below." +msgstr "" + +#: C/glabels.xml:1280(title) +msgid "Printing name tags" +msgstr "" + +#. ==== End of Figure ==== +#: C/glabels.xml:1291(para) C/glabels.xml:1406(para) C/glabels.xml:1520(para) +msgid "" +"Just to make sure our labels are going to look okay, we select the " +"Print outlines option and click Print " +"Preview. This will display a print preview dialog as shown below." +msgstr "" + +#: C/glabels.xml:1298(title) +msgid "Name tags preview" +msgstr "" + +#. ==== End of Figure ==== +#: C/glabels.xml:1309(para) +msgid "" +"Everything looks good, so we can now load up our printer with the " +"appropriate label stock, print our name tags and start beaming our guests " +"aboard." +msgstr "" + +#: C/glabels.xml:1316(title) +msgid "Example 2: Address Labels Using a CSV File" +msgstr "" + +#: C/glabels.xml:1318(para) +msgid "" +"In this example we are going to throw a party and need to print mailing " +"address labels for our invitations. We have a list of our closest friends " +"that we created in gnumeric and exported as the " +"following CSV file. It should be noted that not everyone has a middle " +"initial or a two line address." +msgstr "" + +#: C/glabels.xml:1324(programlisting) +#, no-wrap +msgid "" +"\n" +"LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP\n" +",,,,,,,\n" +"Critter,Ess,S,\"123 Faux St.\",,Alexandria,VA,22310\n" +"Doe,John,,\"Apt 1X\",\"451 Mystery St.\",Trenton,NJ,08601\n" +"Summers,Joyce,,\"1630 Revello Dr\",,Sunnydale,CA,95037\n" +"McGarret,Steve,O,\"404 Piikoi Street\",,Honolulu,HI,96813\n" +"Kramer,Cosmo,,\"Apt 5B\",\"129 W. 81 St.\",\"New York\",NY,10024-7207\n" +" " +msgstr "" + +#: C/glabels.xml:1334(para) +msgid "" +"In gLabels we have created a new " +"gLabels document using the Avery 5512 \"Address " +"Labels\" template. Next we use the ObjectsMerge Properties menu item " +"to display the merge properties dialog. We use this " +"dialog to select the source type (in our case CSV) and the merge source " +"(filename) as shown." +msgstr "" + +#. ==== End of Figure ==== +#: C/glabels.xml:1355(para) +msgid "" +"Before applying the merge source, we uncheck the first record since it is " +"only column headers from our original gnumeric " +"spreadsheet and would simply waste our first label. We also unselect the " +"second record which is empty (an artifact of our original spreadsheet). We " +"could also unselect any other records that we didn't want to print a label " +"for." +msgstr "" + +#. ==== End of Figure ==== +#: C/glabels.xml:1381(para) +msgid "" +"In this example we have a single text object. This text object contains all " +"of our merge fields organized on multiple lines as a mailing address. Notice " +"that fields ${4} and ${5} (corresponding to ADDR1 and ADDR2) are each " +"located with no other text on their own lines. When gLabels encounters a field as the only text on a line, it will not " +"expand the line if the field is empty." +msgstr "" + +#: C/glabels.xml:1388(para) +msgid "" +"Now we can print our address labels by selecting the " +"FilePrint menu item. This will display print dialog as shown below." +msgstr "" + +#: C/glabels.xml:1395(title) C/glabels.xml:1509(title) +msgid "Printing address labels" +msgstr "" + +#: C/glabels.xml:1413(title) C/glabels.xml:1527(title) +msgid "Address labels preview" +msgstr "" + +#. ==== End of Figure ==== +#: C/glabels.xml:1424(para) C/glabels.xml:1538(para) +msgid "" +"Everything looks good, so we can now load up our printer with the " +"appropriate label stock, print our address labels and start mailing our " +"party invitations." +msgstr "" + +#: C/glabels.xml:1431(title) +msgid "" +"Example 3: Address Labels Using the Evolution " +"Addressbook" +msgstr "" + +#: C/glabels.xml:1433(para) +msgid "" +"Our last party was a great success, and now we need to print mailing address " +"labels for the invitations to a new one. To simplify this, we can use the " +"Evolution addressbook, because the address data " +"of all our friends is stored there." +msgstr "" + +#: C/glabels.xml:1439(para) +msgid "" +"Depending on how your copy of gLabels was " +"packaged, this option could be unavailable. Support for the " +"Evolution addressbook will only be available if " +"the evolution-data-server and its development " +"files were present when gLabels was built. Please " +"keep this in mind if you build gLabels directly " +"from source." +msgstr "" + +#: C/glabels.xml:1445(para) +msgid "" +"If the gLabels package from your distribution " +"lacks this support, you may wish to contact the package maintainer or file a " +"bug against the package to request it." +msgstr "" + +#: C/glabels.xml:1450(para) +msgid "" +"In glabels we have created a new " +"gLabels document using the Avery 5512 \"Address " +"Labels\" template. Next we use the ObjectsMerge Properties menu item " +"to display the Merge properties dialog. We use this " +"dialog to select the source type (in our case Data from default " +"Evolution addressbook) as shown." +msgstr "" + +#. ==== End of Figure ==== +#: C/glabels.xml:1471(para) +msgid "" +"Once we have chosen Data from default Evolution addressbook as our merge source, we will get a full list of its content. " +"Initially, all entries are checked. Assuming we were planning a really big " +"party, we could leave this selection untouched (but let's keep our budget in " +"mind). We will now select or unselect certain entries by clicking on the " +"appropriate checkboxes, or we could use the Select all and Unselect all buttons to activate or " +"deactivate all entries in the address book." +msgstr "" + +#: C/glabels.xml:1479(para) +msgid "" +"We can also view each entry in more detail by clicking on the appropriate " +"expander (the little triangles) as shown. Once we are satisfied with the " +"selections in this dialog, we will click the OK " +"button to accept the changes." +msgstr "" + +#: C/glabels.xml:1484(para) +msgid "Now we start adding objects to our glabels document as shown." +msgstr "" + +#. ==== End of Figure ==== +#: C/glabels.xml:1499(para) +msgid "" +"In this example we have a single text object again. This text object " +"contains all of our merge fields organized on multiple lines as a mailing " +"address." +msgstr "" + +#: C/glabels.xml:1502(para) +msgid "" +"Now we can print our address labels by selecting the " +"FilePrint menu item. This will display the print dialog as shown below." +msgstr "" + +#: C/glabels.xml:1551(title) +msgid "Manually Creating New Templates" +msgstr "" + +#: C/glabels.xml:1553(para) +msgid "" +"Predefined templates are defined by XML files located in ${prefix}/" +"share/glabels/, where ${prefix} is usually " +"something like /usr/local or /usr " +"depending on the configuration option prefix. " +"gLabels will use all files of the form " +"*-templates.xml or *.template, " +"that it finds in ${prefix}/share/glabels/ and " +"${HOME}/.glabels/. Additional templates can be added by creating " +"additional *.template files in either of these " +"directories." +msgstr "" + +#: C/glabels.xml:1566(para) +msgid "" +"The format for these files is defined in the DTD: glabels-2.2." +"dtd. (This DTD also describes other XML formats used by " +"gLabels.)" +msgstr "" + +#: C/glabels.xml:1572(title) +msgid "Assumptions/caveats" +msgstr "" + +#: C/glabels.xml:1575(para) +msgid "" +"A sheet contains only one size of label or card (if a sheet contains more " +"than one size of item, it can be split into multiple templates for multiple " +"pass printing)" +msgstr "" + +#: C/glabels.xml:1580(para) +msgid "" +"Distances can be expressed in units of pt, " +"in, mm, cm, " +"or pc. For example: \"1.0in\" or " +"\"2.54cm\". If no units are specified, computer points " +"(pt) will be assumed (1 pt = 1/72 " +"in = 0.352778 mm)." +msgstr "" + +#: C/glabels.xml:1593(title) +msgid "Template Files" +msgstr "" + +#: C/glabels.xml:1595(programlisting) +#, no-wrap +msgid "" +"\n" +"<?xml version=\"1.0\"?>\n" +"<Glabels-templates>\n" +"\n" +" ...templates...\n" +"\n" +"</Glabels-templates>\n" +" " +msgstr "" + +#: C/glabels.xml:1607(title) +msgid "Example Template" +msgstr "" + +#: C/glabels.xml:1608(programlisting) +#, no-wrap +msgid "" +"\n" +" <Template brand=\"Avery\" part=\"8160\" size=\"US-Letter\" description=\"Mailing Labels\">\n" +" <Label-rectangle id=\"0\" width=\"189pt\" height=\"72pt\" round=\"5pt\">\n" +" <Markup-margin size=\"5pt\"/>\n" +" <Layout nx=\"3\" ny=\"10\" x0=\"11.25pt\" y0=\"36pt\" dx=\"200pt\" dy=\"72pt\"/>\n" +" </Label-rectangle>\n" +" <Alias brand=\"Avery\" part=\"5160\"/>\n" +" <Alias brand=\"Avery\" part=\"6233\"/>\n" +" </Template>\n" +" " +msgstr "" + +#: C/glabels.xml:1621(title) +msgid "Template Node" +msgstr "" + +#: C/glabels.xml:1623(para) +msgid "" +"A Template node describes a single stationary product. " +"It must contain one instance of any type of Label node (Label-" +"rectangle, Label-round, or Label-" +"cd). This node can be followed by zero or more Alias nodes." +msgstr "" + +#: C/glabels.xml:1637(para) C/glabels.xml:1712(para) C/glabels.xml:1789(para) +#: C/glabels.xml:1834(para) C/glabels.xml:1910(para) C/glabels.xml:1943(para) +#: C/glabels.xml:1994(para) C/glabels.xml:2037(para) C/glabels.xml:2096(para) +#: C/glabels.xml:2173(para) +msgid "Property" +msgstr "Propiedad" + +#: C/glabels.xml:1640(para) C/glabels.xml:1715(para) C/glabels.xml:1792(para) +#: C/glabels.xml:1837(para) C/glabels.xml:1913(para) C/glabels.xml:1946(para) +#: C/glabels.xml:1997(para) C/glabels.xml:2040(para) C/glabels.xml:2099(para) +#: C/glabels.xml:2176(para) +msgid "Description" +msgstr "Descripción" + +#: C/glabels.xml:1646(para) C/glabels.xml:2182(para) +msgid "brand" +msgstr "" + +#: C/glabels.xml:1648(para) +msgid "Brand or manufacturer of stationary product. E.g. \"Avery\"" +msgstr "" + +#: C/glabels.xml:1653(para) C/glabels.xml:2188(para) +msgid "part" +msgstr "part" + +#: C/glabels.xml:1655(para) +msgid "Part number or name of stationary product. E.g. \"8160\"" +msgstr "" + +#: C/glabels.xml:1660(para) C/glabels.xml:1919(para) +msgid "size" +msgstr "tamaño" + +#: C/glabels.xml:1662(para) +msgid "Size of sheet. E.g., \"US-Letter,\" \"A4\", ..." +msgstr "" + +#: C/glabels.xml:1666(para) +msgid "description" +msgstr "descripción" + +#: C/glabels.xml:1668(para) +msgid "Description of stationary product. E.g, \"Mailing Labels.\"" +msgstr "" + +#: C/glabels.xml:1673(para) +msgid "_description" +msgstr "" + +#: C/glabels.xml:1675(para) +msgid "" +"Translatable description of stationary product. E.g, \"Mailing Labels." +"\" (Only useful for predefined templates)" +msgstr "" + +#: C/glabels.xml:1681(para) C/glabels.xml:1727(para) C/glabels.xml:1857(para) +msgid "width" +msgstr "anchura" + +#: C/glabels.xml:1683(para) +msgid "Page width. Only valid if size=\"Other\"" +msgstr "" + +#: C/glabels.xml:1687(para) C/glabels.xml:1731(para) C/glabels.xml:1864(para) +msgid "height" +msgstr "altura" + +#: C/glabels.xml:1689(para) +msgid "Page height. Only valid if size=\"Other\"" +msgstr "" + +#: C/glabels.xml:1699(title) +msgid "Label-rectangle Node" +msgstr "" + +#: C/glabels.xml:1701(para) +msgid "" +"A Label-rectangle node describes the dimensions of a " +"single label or business card that is rectangular in shape (may have rounded " +"edges)." +msgstr "" + +#: C/glabels.xml:1721(para) C/glabels.xml:1798(para) C/glabels.xml:1843(para) +msgid "id" +msgstr "id" + +#: C/glabels.xml:1723(para) C/glabels.xml:1800(para) C/glabels.xml:1845(para) +msgid "Reserved for future use. Should always be 0." +msgstr "" + +#: C/glabels.xml:1728(para) +msgid "Width of label/card" +msgstr "" + +#: C/glabels.xml:1732(para) +msgid "Height of label/card" +msgstr "" + +#: C/glabels.xml:1735(para) +msgid "round" +msgstr "redondo" + +#: C/glabels.xml:1737(para) +msgid "" +"Radius of corners. For items with square edges (business cards), the radius " +"should be 0." +msgstr "" + +#: C/glabels.xml:1742(para) +msgid "x_waste" +msgstr "" + +#: C/glabels.xml:1744(para) +msgid "" +"Amount of horizontal waste (over-print) to allow. This is useful for " +"minimizing alignment problems when using non-white backgrounds (e.g. images)." +msgstr "" + +#: C/glabels.xml:1750(para) +msgid "y_waste" +msgstr "" + +#: C/glabels.xml:1752(para) +msgid "" +"Amount of vertical waste (over-print) to allow. This is useful for " +"minimizing alignment problems when using non-white backgrounds (e.g. images)." +msgstr "" + +#: C/glabels.xml:1763(title) +msgid "Label-rectangle Parameters" +msgstr "" + +#: C/glabels.xml:1777(title) +msgid "Label-round Node" +msgstr "" + +#: C/glabels.xml:1779(para) +msgid "" +"A Label-round node describes the dimensions of a simple " +"round label (not a CD)." +msgstr "" + +#: C/glabels.xml:1804(para) C/glabels.xml:1849(para) C/glabels.xml:2015(para) +msgid "radius" +msgstr "" + +#: C/glabels.xml:1805(para) +msgid "Radius (1/2 diameter) of label" +msgstr "" + +#: C/glabels.xml:1808(para) C/glabels.xml:1871(para) +msgid "waste" +msgstr "basura" + +#: C/glabels.xml:1810(para) C/glabels.xml:1873(para) +msgid "" +"Amount of waste (over-print) to allow. This is useful for minimizing " +"alignment problems when using non-white backgrounds (e.g. images)." +msgstr "" + +#: C/glabels.xml:1822(title) +msgid "Label-cd Node" +msgstr "" + +#: C/glabels.xml:1824(para) +msgid "" +"A Label-cd node describes the dimensions of a CD, DVD, " +"or business card CD." +msgstr "" + +#: C/glabels.xml:1850(para) +msgid "Outer radius of label" +msgstr "" + +#: C/glabels.xml:1853(para) +msgid "hole" +msgstr "" + +#: C/glabels.xml:1854(para) +msgid "Radius of concentric hole" +msgstr "" + +#: C/glabels.xml:1859(para) +msgid "" +"If present, the label is clipped to the given width. (Useful for \"business " +"card CDs\")." +msgstr "" + +#: C/glabels.xml:1866(para) +msgid "" +"If present, the label is clipped to the given height. (Useful for \"business " +"card CDs\")." +msgstr "" + +#: C/glabels.xml:1884(title) +msgid "CD Label Parameters" +msgstr "" + +#: C/glabels.xml:1898(title) +msgid "Markup-margin Node" +msgstr "" + +#: C/glabels.xml:1900(para) +msgid "" +"A Markup-margin describes a margin along all edges of a " +"label." +msgstr "" + +#: C/glabels.xml:1921(para) +msgid "" +"Size of the margin. I.e. the distance of the margin line from the edge of " +"the card/label." +msgstr "" + +#: C/glabels.xml:1932(title) +msgid "Markup-line Node" +msgstr "" + +#: C/glabels.xml:1934(para) +msgid "A Markup-line describes a markup line." +msgstr "" + +#: C/glabels.xml:1952(para) C/glabels.xml:2046(para) +msgid "x1" +msgstr "x1" + +#: C/glabels.xml:1954(para) +msgid "x coordinate of 1st endpoint of the line segment." +msgstr "" + +#: C/glabels.xml:1958(para) C/glabels.xml:2052(para) +msgid "y1" +msgstr "y1" + +#: C/glabels.xml:1960(para) +msgid "y coordinate of 1st endpoint of the line segment." +msgstr "" + +#: C/glabels.xml:1964(para) +msgid "x2" +msgstr "x2" + +#: C/glabels.xml:1966(para) +msgid "x coordinate of 2nd endpoint of the line segment." +msgstr "" + +#: C/glabels.xml:1970(para) +msgid "y2" +msgstr "" + +#: C/glabels.xml:1972(para) +msgid "y coordinate of 2nd endpoint of the line segment." +msgstr "" + +#: C/glabels.xml:1982(title) +msgid "Markup-circle Node" +msgstr "" + +#: C/glabels.xml:1984(para) +msgid "A Markup-circle describes a markup circle." +msgstr "" + +#: C/glabels.xml:2003(para) C/glabels.xml:2119(para) +msgid "x0" +msgstr "x0" + +#: C/glabels.xml:2005(para) +msgid "x coordinate of circle origin (center)." +msgstr "" + +#: C/glabels.xml:2009(para) C/glabels.xml:2126(para) +msgid "y0" +msgstr "y0" + +#: C/glabels.xml:2011(para) +msgid "y coordinate of circle origin (center)." +msgstr "" + +#: C/glabels.xml:2016(para) +msgid "Radius of circle." +msgstr "" + +#: C/glabels.xml:2025(title) +msgid "Markup-rect Node" +msgstr "" + +#: C/glabels.xml:2027(para) +msgid "A Markup-rect describes a markup rectangle." +msgstr "" + +#: C/glabels.xml:2048(para) +msgid "x coordinate of upper left corner of rectangle." +msgstr "" + +#: C/glabels.xml:2054(para) +msgid "y coordinate of upper left corner of rectangle." +msgstr "" + +#: C/glabels.xml:2058(para) +msgid "w" +msgstr "w" + +#: C/glabels.xml:2060(para) +msgid "Width of rectangle." +msgstr "" + +#: C/glabels.xml:2064(para) +msgid "h" +msgstr "h" + +#: C/glabels.xml:2066(para) +msgid "Height of rectangle." +msgstr "" + +#: C/glabels.xml:2070(para) +msgid "r" +msgstr "r" + +#: C/glabels.xml:2071(para) +msgid "Radius of rounded corners of rectangle." +msgstr "" + +#: C/glabels.xml:2080(title) +msgid "Layout Node" +msgstr "" + +#: C/glabels.xml:2082(para) +msgid "" +"A label node may contain multiple Layout children. If " +"labels are arranged in a simple grid pattern, only one layout is needed. " +"However, if labels are arranged in multiple grids, such as a running bond " +"pattern, multiple layout tags can be used. Note: a " +"single label can always be treated as a grid of one." +msgstr "" + +#: C/glabels.xml:2105(para) +msgid "nx" +msgstr "" + +#: C/glabels.xml:2107(para) +msgid "Number of labels/cards across in the grid (horizontal)" +msgstr "" + +#: C/glabels.xml:2112(para) +msgid "ny" +msgstr "" + +#: C/glabels.xml:2114(para) +msgid "Number of labels/cards up and down in the grid (vertical)" +msgstr "" + +#: C/glabels.xml:2121(para) +msgid "" +"Distance from left edge of sheet to the left edge of the left column of " +"cards/labels in the layout." +msgstr "" + +#: C/glabels.xml:2128(para) +msgid "" +"Distance from the top edge of sheet to the top edge of the top row of labels/" +"cards in the layout." +msgstr "" + +#: C/glabels.xml:2133(para) +msgid "dx" +msgstr "" + +#: C/glabels.xml:2134(para) +msgid "Horizontal pitch of grid." +msgstr "" + +#: C/glabels.xml:2137(para) +msgid "dy" +msgstr "" + +#: C/glabels.xml:2138(para) +msgid "Vertical pitch of grid." +msgstr "" + +#: C/glabels.xml:2146(title) +msgid "Layout Parameters" +msgstr "" + +#: C/glabels.xml:2160(title) +msgid "Alias Node" +msgstr "" + +#: C/glabels.xml:2162(para) +msgid "" +"An Alias node provides the name of a product with the " +"same size and layout characteristics as the parent template." +msgstr "" + +#: C/glabels.xml:2184(para) +msgid "The brand or manufacturer of the equivalent product." +msgstr "" + +#: C/glabels.xml:2190(para) +msgid "The part number or name of the equivalent product." +msgstr "" + +#: C/glabels.xml:2226(title) +msgid "About gLabels" +msgstr "" + +#: C/glabels.xml:2227(para) +msgid "" +"gLabels was written by Jim Evins " +"(evins@snaught.com). To find more information about " +"gLabels, please visit the gLabels Web page." +msgstr "" + +#: C/glabels.xml:2232(para) +msgid "" +"To report a bug or make a suggestion regarding this application or this " +"manual, follow the directions at the gLabels Contact " +"Page." +msgstr "" + +#: C/glabels.xml:2238(para) +msgid "" +"This program is distributed under the terms of the GNU General Public " +"license as published by the Free Software Foundation; either version 2 of " +"the License, or (at your option) any later version. A copy of this license " +"can be found at this link, or " +"in the file COPYING included with the source code of this program." +msgstr "" +"Este programa se distribuye bajo los términos de la Licencia Pública General " +"GNU tal como la publica la Free Software Foundation; en cualquiera de las " +"versiones 2 de la Licencia o (a su elección) cualquier versión posterior. " +"Puede encontrar una copia de esta licencia en este enlace, o en el archivo COPYING incluido con el código " +"fuente de este programa." + +#. Put one translator per line, in the form of NAME , YEAR1, YEAR2 +#: C/glabels.xml:0(None) +msgid "translator-credits" +msgstr "Jorge González , 2010" diff --git a/help/es/glabels.xml b/help/es/glabels.xml new file mode 100644 index 00000000..50b0c282 --- /dev/null +++ b/help/es/glabels.xml @@ -0,0 +1,2227 @@ + + + + + +gLabels"> +]> + + +
    + + + + Manual de <application>gLabels</application> V2.2.6 + + Manual de usuario para el programa de creación de etiquetas y tarjetas de visita gLabels + + + 2003-2009 + Jim Evins + 2010Jorge González (jorgegonz@svn.gnome.org) + + Jim Evins + + + + Se otorga permiso para copiar, distribuir y/o modificar este documento bajo los términos de la Licencia de Documentación Libre de GNU, Versión 1.1 o cualquier otra versión posterior publicada por la Free Software Foundation; sin Secciones Invariantes ni Textos de Cubierta Delantera ni Textos de Cubierta Trasera. Puede encontrar una copia de la licencia GFDL en este enlace o en el archivo COPYING-DOCS distribuido con este manual. + Este manual es parte de una colección de manuales de GNOME distribuido bajo la GFDL. Si quiere distribuir este manual por separado de la colección, puede hacerlo añadiendo una copia de la licencia al manual, tal como se describe en la sección 6 de la licencia. + + Muchos de los nombres utilizados por las empresas para distinguir sus productos y servicios se consideran marcas comerciales. Cuando estos nombres aparezcan en la documentación de GNOME, y siempre que se haya informado a los miembros del Proyecto de documentación de GNOME de dichas marcas comerciales, los nombres aparecerán en mayúsculas o con las iniciales en mayúsculas. + + ESTE DOCUMENTO Y LAS VERSIONES MODIFICADAS DEL MISMO SE PROPORCIONAN SEGÚN LAS CONDICIONES ESTABLECIDAS EN LA LICENCIA DE DOCUMENTACIÓN LIBRE DE GNU (GFDL) Y TENIENDO EN CUENTA QUE: + + EL DOCUMENTO SE OFRECE «TAL CUAL», SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO, PERO SIN LIMITARSE A ELLA, LA GARANTÍA DE QUE EL DOCUMENTO O LA VERSIÓN MODIFICADA DEL MISMO ESTÉ LIBRE DE DEFECTOS, GARANTÍA DE COMERCIALIZACIÓN, APTITUD PARA UN USO EN PARTICULAR O INCUMPLIMIENTO. TODOS LOS RIESGOS RELATIVOS A LA CALIDAD, EXACTITUD O RENDIMIENTO DEL DOCUMENTO O LA VERSIÓN MODIFICADA DEL MISMO SON ASUMIDOS POR VD. EN CASO DE QUE EL DOCUMENTO O LA VERSIÓN MODIFICADA SEAN DEFECTUOSOS, VD. (NO EL ESCRITOR ORIGINAL NI EL AUTOR NI NINGUNO DE LOS COLABORADORES) ASUMIRÁ EL COSTE DE CUALQUIER MANTENIMIENTO, REPARACIÓN O CORRECCIÓN QUE SEAN NECESARIOS. ESTA RENUNCIA DE GARANTÍA CONSTITUYE UNA PARTE ESENCIAL DE ESTA LICENCIA NO SE AUTORIZA EL USO DE NINGÚN DOCUMENTO NI VERSIÓN MODIFICADA DEL MISMO, SALVO EN LAS CONDICIONES ESPECIFICADAS EN ESTA RENUNCIA; Y + + + EN NINGUNA CIRCUNSTANCIA NI SEGÚN NINGÚN ARGUMENTO LEGAL, SEA POR MOTIVOS CULPOSOS (INCLUIDA LA NEGLIGENCIA), CONTRACTUALES O DE OTRO TIPO, NI EL AUTOR, NI EL REDACTOR INICIAL, NI CUALQUIER COLABORADOR, NI CUALQUIER DISTRIBUIDOR DEL DOCUMENTO O VERSIÓN MODIFICADA DEL MISMO, NI CUALQUIER PROVEEDOR DE CUALQUIERA DE DICHAS PARTES, SERÁN RESPONSABLES, ANTE NINGÚN TERCERO, DE NINGÚN DAÑO O PERJUICIO DIRECTO, INDIRECTO, ESPECIAL, INCIDENTAL O CONSIGUIENTE DE NINGÚN TIPO, INCLUIDOS, SIN LIMITACIÓN, LOS DAÑOS POR PÉRDIDA DE FONDO DE COMERCIO, INTERRUPCIÓN DEL TRABAJO, FALLO O MAL FUNCIONAMIENTO INFORMÁTICO, NI CUALQUIER OTRO DAÑO O PÉRDIDA DERIVADOS DEL USO DEL DOCUMENTO Y LAS VERSIONES MODIFICADAS DEL MISMO, O RELACIONADO CON ELLO, INCLUSO SI SE HABÍA COMUNICADO A AQUELLA PARTE LA POSIBILIDAD DE TALES DAÑOS. + + + + + + + + + + Jim + Evins + + + + + + + + + + + + + + + + + + + + + Manual de gLabels V2.2.6 + Octubre de 2009 + + Mario Blättermann mariobl@gnome.org + Jim Evins + + + + Manual de gLabels V2.2 + Diciembre de 2007 + + Jim Evins evins@snaught.com + Jim Evins + + + + + Este manual describe la versión 2.2.6 de gLabels. + + Comentarios + To report a bug or make a suggestion regarding the gLabels application or + this manual, follow the directions in the gLabels Contact Page. + + + + + + + gLabels + + + glabels + + + + + + + + + + Introducción + + The gLabels application is a lightweight program for creating labels + and business cards for the GNOME desktop + environment. It is designed to work with various laser/ink-jet + peel-off label and business card sheets that you'll find at most + office supply stores. + + + + + + + + + + + Inicio + + + Para iniciar <application>gLabels</application> + You can start gLabels in the following ways: + + + + Menú Aplicaciones + + Choose + + Office + gLabels + . + + + + Línea de comandos + + Type glabels, + then press Return: + + + + + + + When You Start <application>gLabels</application> + When you start gLabels, the following window is displayed. + + +
    + Ventana de inicio de <application>gLabels</application> + + + + + + +
    + + + + + + The gLabels window contains the following elements: + + + + Barra de menú. + + The menus on the menubar contain all of the commands you + need to create and edit labels and business cards in + gLabels. + + + + Barra de herramientas principal. + + The main toolbar contains a subset of common File and Edit + commands that you can access from the menubar. + + + + Drawing toolbar. + + The drawing toolbar contains a subset of commands for + editing the current gLabels document. + + + + Área de visualización. + + The display area is the main drawing interface to + gLabels. + + + + Object sidebar. + + The object sidebar provides an interface for viewing and + editing all properties of an individual object. + + + + Barra de herramientas de propiedades. + + The properties toolbar contains a set of tools to + manipulate the properties of selected objects and set default + properties for new objects. + + + + Barra de estado. + + The statusbar displays information about current + gLabels activity and contextual + information about the menu items. + + + +
    +
    + + + + + + + + Uso + + + + To Create a New Label or Card + + To create a new label or business card, choose + File New + + to display the New Label or Card dialog. Select + the media type and orientation for the new document, + then click OK. A new document is + displayed in the display area of the gLabels + window. + + If your particular media type is missing from this dialog, + see + + + + + + Abrir un archivo + + To open a file, choose + File Open + to display the Open File dialog. + Select the file that you want to open, then click + OK. The file is displayed in the display area + of the gLabels window. + + You can also open multiple files in + gLabels. The application creates a separate + application window for each open file. + + The application records the paths and filenames of the + most recent files that you have edited and displays the files as menu + items on the + FileRecent Files + menu. + + + + + + To Open Multiple Files from a Command Line + + You can run gLabels from a command line + and open a single file or multiple files. To open multiple files from + a command line, type the following command, then press + Return: + + glabels + file1.glabels file2.glabels file3.glabels + + + When the application starts, the files that you specify are + displayed in separate gLabels windows. + + + + + + Guardar un archivo + + Puede guardar archivos de cualquiera de estas maneras: + + + + + Para guardar los cambios a un archivo existente, elija ArchivoGuardar. + + + + + To save a new file or to save an existing file under a new + filename, choose File + Save As . Enter a name + for the file in the Save As dialog box, + then click OK. + + + + + + + + + Cambiar las propiedades de una etiqueta + + To change the media type and/or orientation of a label, choose + File + Properties to display the + Label properties dialog. Select the + new media type and orientation for the document, then click + OK. + + + + + + To Create a Custom Template + + To create a new custom template, choose + File + Template Designer ... + to display the Template Designer dialog. + This dialog will assist you in creating a custom template for + most types of label or card stationery that you may encounter. + + If you prefer, you can create your templates manually. + For this option see + + + + + + + Cerrar un archivo + + To close the current document, choose + File + Close to close the application + window. If the current document is modified, a confirmation dialog + will be presented, allowing you to save the document or cancel + the command. If the window being closed is the only open window, + gLabels will exit. + + + + + + To Quit <application>gLabels</application> + + To quit gLabels, choose + File + Quit . This is equivalent + to closing all open windows. See + . + + + + + + To Print Labels or Cards + + To print labels or cards, choose + File Print + to display the Print dialog. + Once print options have been selected, click Print + to print the labels or cards. To simply preview the results, + click Print Preview instead. + + The Print dialog allows you to specify the + following print options: + + + The Labels Tab of the Print Dialog + + + + + Print control (Simple) + + + For simple labels or cards (no document merge), the labels + tabbed section contains the following copy controls. + + + + + + The number of copies of the label can be selected by + choosing the number of full sheets to print, or a specific + subset of labels on a single sheet. + + The mini-preview can also be used to graphically select + the subset of labels by clicking the first label on the + mini-preview and dragging to the last label. + + + + + + Print control (Merge) + + + For labels or cards using the document merge (also known + as "mail merge") capability, the labels tabbed section contains + the following merge controls instead of copy controls. + + + + + + The total number of labels or cards printed is the + product of the number of records in the merge source and + the number of copies selected. If multiple copies are + selected, these can be either collated (copies of the + same record grouped together) or un-collated (one copy + each record is printed before next copy). + + Printing can begin on any label on the first sheet. + This can be selected with the Start on + label spinbutton. + + The mini-preview can also be used to graphically select + this first label, by clicking on the desired label in the + mini-preview. + + + + + Opciones + + The following options can also be selected. + + + print outlines + Print outlines of labels. This option is useful for + dry-runs, to test printer alignment. + + + print in reverse + Prints the labels as mirror images. This option is + useful for printing on clear labels that will be viewed + from the reverse side (e.g. in a car window). + + + print crop marks + Prints crop marks along the edge of the sheet. + This option is useful for printing on blank stock, to + be cut after printing. This option does not work well + with all templates. + + + + + + + + + + + + To Create New Objects + + Objects are created by choosing the appropriate selection under + the Objects + Create Object submenu or + the Drawing Toolbar. This will place the + display area into object creation mode as indicated by its cursor. + To return to the default object selection mode without creating + an object, choose Objects + Select Mode . This will + return the display area's cursor to the default selection arrow. + + The following describes the object creation mode for each object + type: + + + + + Texto + + Click the desired location of the upper left corner of the + text object. New text objects are initialized with the + string "Text." To change this text, or other properties, see + . + + + + + Caja + + Click the desired location of the upper left corner of the + box object and drag to the desired location of the lower right + corner. If you simply click in a single location, a square + box will be created. To change properties of the box object, see + . + + + + + Línea + + Click the desired location of one end of the + line object and drag to the desired location of the other end. + If you simply click in a single location, a diagonal line + will be created. To change properties of the line object, see + . + + + + + Elipse + + Click the desired location of the upper left corner of the + ellipse object and drag to the desired location of the lower + right corner. If you simply click in a single location, a circle + will be created. To change properties of the ellipse object, see + . + + + + + Imagen + + Click the desired location of the upper left corner of the + image object and drag to the desired location of the lower + right corner. If you simply click in a single location, a square + will be created. New image objects are initialized with a + simple checkerboard image. To change this image, or other + properties of the image object, see + . + + + + + Barcode + + Click the desired location of the upper left corner of the + barcode object. New barcode objects are initialized to a + POSTNET barcode with representative data. To change data + and properties of the barcode object, see + . + + + + + + + + + + + To Select Objects + + A prerequisite for performing operations on objects is the + selection of individual objects or groups of objects. The + display area must be in the object selection mode to create new + selections, as indicated by an arrow cursor. The object + selection mode is selected by the + Objects + Select Mode menu item, + or the corresponding command on the Drawing + Toolbar. + + + + + Selecting a single object + + A single object can be selected simply by clicking + on the desired object in the display area. + Once selected the object will be highlighted with a set of + resizing handles. + + + + + Aggregate object selections + + Multiple objects can be selected by first selecting the first + object as above and then by holding the Ctrl + key while selecting additional objects. + Individual objects can be added to an existing selection + at any time by holding the Ctrl key while + selecting the desired objects. All objects can also be + selected by using the Edit + Select All + menu item. All objects in an aggregate object selection will be + highlighted. + + + + + Area selections + + Multiple objects can also be selected by clicking an empty + area and dragging to form a rectangular area. When released, + all objects contained in the area will form an aggregate + selection. An area selection can be used to add to an existing + selection by holding the Ctrl key while + performing the selection. + + + + + Unselecting objects + + Individual objects can be removed from an existing + selection by holding the Ctrl key while + clicking on a previously selected object. An entire selection + can be dismissed by using the + Edit Un-select All + menu item + or by simply clicking any empty space in the display area. + Once an object is unselected its highlight is removed. + + + + + + + + + + Clipboard Commands + + Object selections can be manipulated using the standard clipboard + operations Cut, + Copy, Paste, + and Delete. + + + + + + + + CtrlX + + Cortar + + + + Moves selected objects to the clipboard. The objects are + then available for pasting back into the current document or + another document. + + + + + + + + CtrlC + + Copiar + + + + Copies selected objects to the clipboard without deleting + them. The objects are then available for pasting back into + the current document or another document. + + + + + + + + CtrlV + + Pegar + + + + Pastes objects from the clipboard into the current document. + gLabels can only paste objects from + another gLabels document. + + + + + + + + Borrar + + Borrar + + + + Deletes selected objects without placing them on the + clipboard. + + + + + + + + + + To Edit Object Properties + + Most object properties can be modified through the object + editor sidebar, illustrated below. To use the object editor, + a single object must first be selected. See + . + + +
    + Object Editor Sidebar + + + + + + +
    + + + The object editor will contain a subset of the following + tabbed sections, depending on object type: + + + Text Tabbed Section (Text objects) + + This section contains a small editor for changing the content + of a text object. It also contains a dropdown menu of available + document merge keys, that can be inserted into text. + + + + + Image Tabbed Section (Image objecs) + + This section contains a file entry with preview to select + image files. The browse button can be used to easily locate + image files. Alternatively, a document merge key can be used + instead to provide a filename at print time. + + + + + Data Tabbed Section (Barcode objecs) + + This section contains a text entry to enter literal barcode + data. Alternatively, a document merge key can be used to + provide this data at print time. + + + + + Style Tabbed Section (Text objects) + + This section contains controls to select text properties, + including font family, font size, font weight, color, and + text justification. + + + + + Style Tabbed Section (Barcode objecs) + + This section contains controls to select barcode properties, + including barcode style, color, whether to print text, and whether + to include a checksum digit. + + + + + Line Tabbed Section + + This section contains controls to select properties of lines + and outlines. These properties include line width and color. + + + + + Fill Tabbed Section + + This section contains controls to select fill properties of box + and ellipse objects. Currently the only fill property is fill + color. + + + + + Size Tabbed Section (All except line objects) + + This section contains controls to select the width and height + of an object. A checkbox is provided, so that the current aspect + ratio can be locked while manipulating the width and height controls. + Image objects also provide a button to reset the size to the + image's natural size (Assumes 72DPI). + + + + + Size Tabbed Section (Line objects) + + This section contains controls to select the length and angle + of a line object. + + + + + Position Tabbed Section + + This section contains controls to change the position of an + object. + + + + + + Shadow Tabbed Section (All except image and barcode objects) + + This section contains controls to add a shadow to an object. + + + + +
    + + + + Other Manipulations of Objects + + Objects can also be manipulated in the following ways. + + + Moving and Resizing Objects + + Objects can be moved by simply clicking on a selected + object and dragging the object to its new location. If the object + is part of an aggregate selection, all objects in the selection + will move with the object being dragged, maintaining their relative + positions to one another. If no object is selected, clicking on + an object will create a new selection containing that object. + See . + + A selected object can be resized by clicking one of its resize + handle and dragging it to obtain the new size. + + + + + Changing Stacking Order + + Stacking order refers to relative position in the z-axis of + objects. That is when objects overlap, which object will appear + on top of the other. By default, newer objects will appear above + older objects. To change this order, select one or more objects + and choose Objects + Order + Bring to Front + to raise the selection to the top of the stacking + order, or choose Objects + Order + Send to Back + to lower the selection to the bottom of the + stacking order. These menuitems are also available by right-clicking + the display area when there is a non-empty selection. + + + + + Rotating and Flipping Objects + + Objects can be rotated 90 degrees in either direction, or flipped + horizontally or vertically, by choosing the appropriate menuitem + in the Objects + Rotate/Flip sub-menu. These + menuitems are also available by right-clicking + the display area when there is a non-empty selection. + + + + + Aligning Objects + + Objects can be aligned horizontally or vertically, relative to + one another, or relative to the center line of the label, by + choosing the appropriate menuitem from the + Objects + Align Horizontal + or Objects + Align Horizontal sub-menus. + These menuitems are also available by right-clicking + the display area when there is a non-empty selection. + + + + + Using the Property Bar + + The property bar can be used to change some common properties + of objects en-masse. These properties include font family, font + size, font weight, text alignment, text color, fill color, line + or outline color, and line width. The property bar also controls + the defaults for these properties for any newly created objects. + + + + + + + + + + + Performing a Document Merge + + Document Merge (sometimes called "Mail Merge") is a powerful + feature that allows a unique label or card to be printed for each + record in an external data source. + + The first step to performing a document merge is to prepare + a source document that contains your merge data. This data could + be mailing addresses or any other data that you wish to create + unique labels or cards for. Currently back-ends only exist for + text files and the evolution data server -- others are planned. The currently + supported text-file format is very simple: each line is a record; + fields are delimited by commas (CSV), tabs, or colons; and newlines + can be embedded into fields by using the "\n" entity. This file + could be created using any text editor or could be created by + another program or script. A common way of creating CSV files is + to export them from a spreadsheet program. + + A label must then be configured to "point at" this data file. + To configure the merge properties of a document, choose + Objects + Merge Properties menu item + to display the merge properties dialog. This + dialog is used to select the exact data file format and file + name (location) of the merge data. + + Finally, once the label has been configured for a data file, + field keys can be inserted into text objects and used as source + or data for barcode objects and image filenames for image objects. + See for more information + on using merge data for these object types. + + Now that your label is configured, gLabels will print a unique + label for each record in your source document -- substituting fields + from each record for field keys in the all text, barcode, and + image objects. + + See for a detailed + tutorial on the document merge feature. + + + + + +
    + + + + + + + + Configuración + To configure gLabels, choose + + Settings + Preferences + . The + Preferences dialog contains the following tabbed + sections: + + + + + + + + + + + + + + Región + + + + Unidades + + Use this radio button group to specify your preferred units. + Select one of the following options: + + + + Puntos + Use points (1 point = 1/72 in = 0.352778 mm). + + + + Pulgadas + Use inches. + + + + Milímetros + Use millimeters. + + + Default: + Inches. + + + + + Default page size + + Use this radio button group to specify your preferred page size. + This will make it quicker for you to locate media types when creating a new + label or card. + + + + US Letter + Most of your media will be of the US Letter page size (8.5 x 11 inches). + + + + ISO A4 + Most of your media will be of the ISO A4 page size (210 x 297 mm). + + + Default: + US Letter. + + + + + + + + Opciones predeterminadas para el objeto + + + + Texto + + Use these controls to set the default properties of new text objects. + These properties are + + + + Tipografía + These controls are used to select font family and font size, and + whether the font should bold or in italics. + + + + Color + This control selects the default text color. + + + + Alineación + These controls are used to select the default text alignment (left, center or right). + + + + + + + Línea + + Use these controls to set the default properties of lines and outlines of + new objects. These properties are + + + + Anchura + This control selects the default line width. + + + + Color + This control selects the default line color. + + + + + + + Relleno + + Use these controls to set the default fill properties of + new objects. These properties are + + + + Color + This control selects the default fill color. + + + + + + + + + + + + + + Document Merge Tutorial + + Document Merge (sometimes called "Mail Merge") is a powerful + feature that allows a unique label or card to be printed for each + record in an external data source. It is however, the most mis-understood + feature of gLabels. The following examples + will step through a couple of common tasks using the document merge + feature. + + + Example 1: Name Tags Using a CSV File + + In this example we are organizing an orientation party for the new + crew members of our ship. We have a list of freshman crew members that we + created in gnumeric and exported as the following + CSV file. We could have created this file by using a text editor, but heck it + is the 23rd century. + + +Name,Department,SN +"Jim Kirk",Management,"SC937-0176 CEC" +"Mr. Spock",Sciences,S179-276SP +"Leonard McCoy",Medicine,unknown +"Montgomery Scott",Engineering,SE-197-54T + + + In gLabels we have created a new gLabels + document using the Avery 5395 "Name Badge Labels" template. Next we use the + Objects + Merge Properties menu item to display + the merge properties dialog. We use this dialog to + select the source type (in our case CSV) and the merge source (filename) as + shown. + + +
    + Merge properties dialog + + + + + + +
    + + + Before applying the merge source, we uncheck the first record since it is only + column headers from our original gnumeric spreadsheet + and would simply waste our first label. We could also unselect any other records + that we didn't want to print a label for. + + We can also view each record in more detail by clicking on the appropriate + expander (the little triangles) as shown. Once we are satisfied with the + selections in this dialog we click OK to accept the + changes. + + Now we start adding objects to our gLabels document as shown. + + +
    + Adding objects + + + + + + +
    + + + In this example we have added three text objects and a barcode object. The + first text object contains only simple literal text ("Hello, my name is"). The + second text object contains a single merge field ("${1}") corresponding to the + first field of a record (first column of a line) which contains the new crew + member's full name. The third text field contains both literal text + ("Department: ") followed by a single merge field ("${2}") corresponding to + the second field or the crew member's department. The barcode object is + configured to use field (or key) "3" which contains our crew member's + starfleet serial number. + + Now we can print our name tags by selecting the + File + Print menu item. This will display + print dialog as shown below. + + +
    + Printing name tags + + + + + + +
    + + + Just to make sure our labels are going to look okay, we select the + Print outlines option and click + Print Preview. This will display a print preview dialog + as shown below. + + +
    + Name tags preview + + + + + + +
    + + + Everything looks good, so we can now load up our printer with + the appropriate label stock, print our name tags and start beaming our guests + aboard. + +
    + + + Example 2: Address Labels Using a CSV File + + In this example we are going to throw a party and need to print mailing + address labels for our invitations. We have a list of our closest friends + that we created in gnumeric and exported as the + following CSV file. It should be noted that not everyone has a middle initial or + a two line address. + + +LAST,FIRST,MI,ADDR1,ADDR2,CITY,STATE,ZIP +,,,,,,, +Critter,Ess,S,"123 Faux St.",,Alexandria,VA,22310 +Doe,John,,"Apt 1X","451 Mystery St.",Trenton,NJ,08601 +Summers,Joyce,,"1630 Revello Dr",,Sunnydale,CA,95037 +McGarret,Steve,O,"404 Piikoi Street",,Honolulu,HI,96813 +Kramer,Cosmo,,"Apt 5B","129 W. 81 St.","New York",NY,10024-7207 + + + In gLabels we have created a new gLabels + document using the Avery 5512 "Address Labels" template. Next we use the + Objects + Merge Properties menu item to display + the merge properties dialog. We use this dialog to + select the source type (in our case CSV) and the merge source (filename) as + shown. + + +
    + Merge properties dialog + + + + + + +
    + + + Before applying the merge source, we uncheck the first record since it is only + column headers from our original gnumeric spreadsheet + and would simply waste our first label. We also unselect the second record + which is empty (an artifact of our original spreadsheet). We could also unselect + any other records that we didn't want to print a label for. + + We can also view each record in more detail by clicking on the appropriate + expander (the little triangles) as shown. Once we are satisfied with the + selections in this dialog we click OK to accept the + changes. + + Now we start adding objects to our gLabels document as shown. + + +
    + Adding objects + + + + + + +
    + + + In this example we have a single text object. This text object contains + all of our merge fields organized on multiple lines as a mailing address. + Notice that fields ${4} and ${5} (corresponding to ADDR1 and ADDR2) are each + located with no other text on their own lines. When + gLabels encounters a field as the only text on + a line, it will not expand the line if the field is empty. + + Now we can print our address labels by selecting the + File + Print menu item. This will display + print dialog as shown below. + + +
    + Printing address labels + + + + + + +
    + + + Just to make sure our labels are going to look okay, we select the + Print outlines option and click + Print Preview. This will display a print preview dialog + as shown below. + + +
    + Address labels preview + + + + + + +
    + + + Everything looks good, so we can now load up our printer with + the appropriate label stock, print our address labels and start mailing + our party invitations. + +
    + + + Example 3: Address Labels Using the <application>Evolution</application> Addressbook + + Our last party was a great success, and now we need to print mailing + address labels for the invitations to a new one. To simplify this, we can use + the Evolution addressbook, because the address + data of all our friends is stored there. + + + Depending on how your copy of gLabels was packaged, this option could be unavailable. + Support for the Evolution addressbook will only be available + if the evolution-data-server and its development files + were present when gLabels was built. Please keep this in mind if you build gLabels + directly from source. + + If the gLabels package from your distribution lacks this support, + you may wish to contact the package maintainer or file a bug against the package + to request it. + + + In glabels we have created a new gLabels + document using the Avery 5512 "Address Labels" template. Next we use the + Objects + Merge Properties menu item to display + the Merge properties dialog. We use this dialog to + select the source type (in our case Data from default Evolution + addressbook) as shown. + + +
    + Merge properties dialog + + + + + + +
    + + + Once we have chosen Data from default Evolution addressbook + as our merge source, we will get a full list of its content. Initially, + all entries are checked. Assuming we were planning a really big party, we could + leave this selection untouched (but let's keep our budget in mind). We will now select or + unselect certain entries by clicking on the appropriate checkboxes, or we could use + the Select all and Unselect all + buttons to activate or deactivate all entries in the address book. + + We can also view each entry in more detail by clicking on the appropriate + expander (the little triangles) as shown. Once we are satisfied with the + selections in this dialog, we will click the OK button to + accept the changes. + + Now we start adding objects to our glabels document as shown. + + +
    + Adding objects + + + + + + +
    + + + In this example we have a single text object again. This text object contains + all of our merge fields organized on multiple lines as a mailing address. + + Now we can print our address labels by selecting the + File + Print menu item. This will display + the print dialog as shown below. + + +
    + Printing address labels + + + + + + +
    + + + Just to make sure our labels are going to look okay, we select the + Print outlines option and click + Print Preview. This will display a print preview dialog + as shown below. + + +
    + Address labels preview + + + + + + +
    + + + Everything looks good, so we can now load up our printer with + the appropriate label stock, print our address labels and start mailing + our party invitations. + +
    + +
    + + + + + + + Manually Creating New Templates + + Predefined templates are defined by XML files located in + ${prefix}/share/glabels/, + where ${prefix} is usually something like + /usr/local or /usr depending + on the configuration option prefix. gLabels will + use all files of the form *-templates.xml + or *.template, that it finds in + ${prefix}/share/glabels/ and + ${HOME}/.glabels/. + Additional templates can be added by creating additional + *.template files in either of these directories. + + + The format for these files is defined in the DTD: + glabels-2.2.dtd. (This DTD also describes other + XML formats used by gLabels.) + + + Assumptions/caveats + + + A sheet contains only one size of label or card (if a sheet + contains more than one size of item, it can be split into + multiple templates for multiple pass printing) + + + Distances can be expressed in units of pt, + in, mm, + cm, or pc. For example: + "1.0in" or "2.54cm". If no + units are specified, computer points (pt) will + be assumed (1 pt = + 1/72 in = 0.352778 mm). + + + + + + + Template Files + + +<?xml version="1.0"?> +<Glabels-templates> + + ...templates... + +</Glabels-templates> + + + + + + Example Template + + <Template brand="Avery" part="8160" size="US-Letter" description="Mailing Labels"> + <Label-rectangle id="0" width="189pt" height="72pt" round="5pt"> + <Markup-margin size="5pt"/> + <Layout nx="3" ny="10" x0="11.25pt" y0="36pt" dx="200pt" dy="72pt"/> + </Label-rectangle> + <Alias brand="Avery" part="5160"/> + <Alias brand="Avery" part="6233"/> + </Template> + + + + + Template Node + + A Template node describes a single stationary + product. It must contain one instance of any type of Label node + (Label-rectangle, + Label-round, or Label-cd). + This node can be followed by zero or more + Alias nodes. + + + + + + + + + Propiedad + + + Descripción + + + + + + brand + + Brand or manufacturer of stationary product. + E.g. "Avery" + + + + part + + Part number or name of stationary product. + E.g. "8160" + + + + tamaño + + Size of sheet. E.g., "US-Letter," "A4", ... + + + + descripción + + Description of stationary product. E.g, + "Mailing Labels." + + + + _description + + Translatable description of stationary product. + E.g, "Mailing Labels." (Only useful for predefined + templates) + + + + anchura + + Page width. Only valid if size="Other" + + + + altura + + Page height. Only valid if size="Other" + + + + + + + + + + Label-rectangle Node + + A Label-rectangle node describes the + dimensions of a single label or business card that is rectangular + in shape (may have rounded edges). + + + + + + + + + Propiedad + + + Descripción + + + + + + id + + Reserved for future use. Should always be 0. + + + + anchura + Width of label/card + + + altura + Height of label/card + + + redondo + + Radius of corners. For items with square edges + (business cards), the radius should be 0. + + + + x_waste + + Amount of horizontal waste (over-print) to allow. This is useful + for minimizing alignment problems when using non-white + backgrounds (e.g. images). + + + + y_waste + + Amount of vertical waste (over-print) to allow. This is useful + for minimizing alignment problems when using non-white + backgrounds (e.g. images). + + + + + + + +
    + Label-rectangle Parameters + + + + + + +
    + + +
    + + + Label-round Node + + A Label-round node describes the dimensions + of a simple round label (not a CD). + + + + + + + + + Propiedad + + + Descripción + + + + + + id + + Reserved for future use. Should always be 0. + + + + radius + Radius (1/2 diameter) of label + + + basura + + Amount of waste (over-print) to allow. This is useful + for minimizing alignment problems when using non-white + backgrounds (e.g. images). + + + + + + + + + + Label-cd Node + + A Label-cd node describes the dimensions + of a CD, DVD, or business card CD. + + + + + + + + + Propiedad + + + Descripción + + + + + + id + + Reserved for future use. Should always be 0. + + + + radius + Outer radius of label + + + hole + Radius of concentric hole + + + anchura + + If present, the label is clipped to the given width. + (Useful for "business card CDs"). + + + + altura + + If present, the label is clipped to the given height. + (Useful for "business card CDs"). + + + + basura + + Amount of waste (over-print) to allow. This is useful + for minimizing alignment problems when using non-white + backgrounds (e.g. images). + + + + + + + +
    + CD Label Parameters + + + + + + +
    + + +
    + + + Markup-margin Node + + A Markup-margin describes a margin along + all edges of a label. + + + + + + + + + Propiedad + + + Descripción + + + + + + tamaño + + Size of the margin. I.e. the distance of the margin + line from the edge of the card/label. + + + + + + + + + + Markup-line Node + + A Markup-line describes a markup line. + + + + + + + + + Propiedad + + + Descripción + + + + + + x1 + + x coordinate of 1st endpoint of the line segment. + + + + y1 + + y coordinate of 1st endpoint of the line segment. + + + + x2 + + x coordinate of 2nd endpoint of the line segment. + + + + y2 + + y coordinate of 2nd endpoint of the line segment. + + + + + + + + + + Markup-circle Node + + A Markup-circle describes a markup circle. + + + + + + + + + + Propiedad + + + Descripción + + + + + + x0 + + x coordinate of circle origin (center). + + + + y0 + + y coordinate of circle origin (center). + + + + radius + Radius of circle. + + + + + + + + + Markup-rect Node + + A Markup-rect describes a markup rectangle. + + + + + + + + + + Propiedad + + + Descripción + + + + + + x1 + + x coordinate of upper left corner of rectangle. + + + + y1 + + y coordinate of upper left corner of rectangle. + + + + w + + Width of rectangle. + + + + h + + Height of rectangle. + + + + r + Radius of rounded corners of rectangle. + + + + + + + + + Layout Node + + A label node may contain multiple Layout + children. If labels are arranged in a simple grid pattern, only + one layout is needed. However, if labels are arranged in multiple + grids, such as a running bond pattern, multiple + layout tags can be used. Note: a single label + can always be treated as a grid of one. + + + + + + + + + Propiedad + + + Descripción + + + + + + nx + + Number of labels/cards across in the grid + (horizontal) + + + + ny + + Number of labels/cards up and down in the grid + (vertical) + + + + x0 + + Distance from left edge of sheet to the left edge of + the left column of cards/labels in the layout. + + + + y0 + + Distance from the top edge of sheet to the top edge of + the top row of labels/cards in the layout. + + + + dx + Horizontal pitch of grid. + + + dy + Vertical pitch of grid. + + + + + + +
    + Layout Parameters + + + + + + +
    + + +
    + + + Alias Node + + An Alias node provides the name of a + product with the same size and layout characteristics as the + parent template. + + + + + + + + + Propiedad + + + Descripción + + + + + + brand + + The brand or manufacturer of the equivalent product. + + + + part + + The part number or name of the equivalent product. + + + + + + + + +
    + + + + + + + + + + + + + + About <application>gLabels</application> + gLabels was written by Jim Evins + (evins@snaught.com). To find more information about + gLabels, please visit the + gLabels Web + page. + + To report a bug or make a suggestion regarding this application or + this manual, follow the directions at the + gLabels Contact Page. + + + Este programa se distribuye bajo los términos de la Licencia Pública General GNU tal como la publica la Free Software Foundation; en cualquiera de las versiones 2 de la Licencia o (a su elección) cualquier versión posterior. Puede encontrar una copia de esta licencia en este enlace, o en el archivo COPYING incluido con el código fuente de este programa. + + + + + + + +
    diff --git a/help/fr/figures/main-window-empty.png b/help/fr/figures/main-window-empty.png new file mode 100644 index 0000000000000000000000000000000000000000..7b97362a09ee54bde28304b519a1dc4aada8a1b4 GIT binary patch literal 32829 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 literal 0 HcmV?d00001 diff --git a/help/fr/figures/merge-ex1-1.png b/help/fr/figures/merge-ex1-1.png new file mode 100644 index 0000000000000000000000000000000000000000..0eb7db8ca1ce9e21b0b452b672faa8cf0bf19024 GIT binary patch literal 33042 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 literal 0 HcmV?d00001 diff --git a/help/fr/figures/merge-ex1-2.png b/help/fr/figures/merge-ex1-2.png new file mode 100644 index 0000000000000000000000000000000000000000..42145f6e1e1281f1cb14697cac9185918e05c921 GIT binary patch literal 59141 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ℜ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

    {A_P$cW!8K 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 literal 0 HcmV?d00001 diff --git a/help/fr/figures/merge-ex2-2.png b/help/fr/figures/merge-ex2-2.png new file mode 100644 index 0000000000000000000000000000000000000000..699168d43a0cc7d69dc739a6f5b73e8b2fb172ad GIT binary patch literal 56997 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 bilxeLQxY*WxNir4(x^O8zn`t}?A5;kt5bvP literal 0 HcmV?d00001 diff --git a/help/fr/figures/merge-ex1-4.png b/help/fr/figures/merge-ex1-4.png new file mode 100644 index 0000000000000000000000000000000000000000..49a0aaee23ff1eb6957662ad4ea5067a61370f93 GIT binary patch literal 40671 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 O2s~Z=T-G@yGywnvR`o0Z literal 0 HcmV?d00001 diff --git a/help/fr/figures/merge-ex2-1.png b/help/fr/figures/merge-ex2-1.png new file mode 100644 index 0000000000000000000000000000000000000000..06225c7b2368ec42abb6b9fdc40831871b6334e9 GIT binary patch literal 34309 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

    y@R+U8kVSirP1EH-|6a`3cfyvNg}eBM*WXLD+@ zIrtZlh|%&{)_krt0f15g?34v1ZEMDX3_bbbT;}H`2t*MA!NA0Xc_b@j30V0T2_5W% zKf#F+DbS~NW;90f1|KuV+AnrzFvfCSzkZ#A`^(CKjvGkrrlwP5bN%;*~*-Q^u z-wrrN$KI@Sbaal5P!qE%CxgJip8)?VSsh!5b^s^v)9KQOpZ@IVY5V$hW30mQa2pE< zq=3y*Pfy(G`%O;|Gh0l&ePyh5lE#Av5B&Z80bosNj9wCvkl*0pVV8%ed$`}Z6V~Hk z+jxVFl9pDGpWjwAL!A$rDJUcq54ulXQ**7nCR&L{RGmy=EV`(qq@=FSYR(mUFx$}r2iqTRxPk)?F2(Vl6W1jP+e!sxH=RKf9b``9jQ zlE2{RwWiLuccQ#ECZrv@(*Z?THuydTH}=wX>HOM{sxCd1W3u>p82|T25}&-+SIQAt zasf~gkuAnwQef(+d3g~4E53X8&OP!KBU*pgzwyf~Jt-#)W{w^bt4GKVpZZV53$JlC zeKS&4R8-{Txc~G26E(msV}L3lvFLXtBN1cF?klmC#rFMXvhT7->2jM8`k@Fr^a;>)agt@ zNM-jP9QZOOzlwnYC$~1;jKuk&nC4dBzkh%Er;-ErSv3v@^6v?7^K0tq>3MoeV84OX z08AUsary8xIaetzf4dM}x5?TOhO%dp-XKtu5H@o{Ut26+M0 zzB9#jvi^l^1NDbvF1%~ar{9*l8RQ9eVn7)9%09;(UgFV~VvE-BHwS3C)CIGhJa! zpnbcBPF?hOdPK3&rKWc$>5?FQAG-LLiJg*xqGNu!fLD!vS!b+!pr0 zN9w@v%D{OKMs!R9(b;6v9<#l@Eo%EUTHgFbAM}RCy?gx~f~2IRaKeyL7&-0xq9Qd- z%{+4u0@(wIzbjMr!=2#gF(X4mAJYX+$=ANUx{gAjY+Np;@QH|s+`2^o7ux1^kn$x% zPVEoFlAu=WYu=xh+_-k>6%fIvhf$Nc^cokhUX7~;6YWU%V!Y&^-7Q2=3DWKz3k4u=zlPK z*S#eEoSzVN=$}D~<@V~dph-TR-kaXByLXH!Ykp%2)^K-g;|IA6>Ar#f`jLwP<`dU? zrs%|j*~FOFlTS#zzZ~=MZHC|Bb9a_PR(=U&=s0L?Tp5S{iSHLdfF{CHmvmD8_ABor zdl;@H>u;S)Bzy9?A++Kwqj(_PP&4&=^?&QXzq&a{Vlct&N)KpZ!*IS*>7^0;CwOPeRR zOi&%Lp8_9WOuHRkk6Fa(HV6imY!SHD2x?JL(Y7$h?sWVYIt2io7hbCsj(t<$siW{S z1%coi*6d*T;|~c5iIY)pvAUV%nGQa+2R4!0w;1QVRO7@Gm1SZJt?W& zWgPn86v%HEpkFXg0r;|!+|pnpnVFdx8HejN)8ypjVhvo1`ruE3R#1g(=c8(E8NSTA zcfY>HFD^bf&YuJG1F_LSp9nLU{0XH8wa)Ni<3+uG(XCEJ&%CR`mX x&|(#{i~dec#J7lo+zjJk_`j!75J=mO!hzqTs6u848OX6A>MGjGrAk(z{{RyiE93wG literal 0 HcmV?d00001 diff --git a/help/C/figures/main-window-empty.png b/help/C/figures/main-window-empty.png new file mode 100644 index 0000000000000000000000000000000000000000..94a2ab4e32e748b98623d3909ce161b5e8e4a9b7 GIT binary patch literal 34238 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 literal 0 HcmV?d00001 diff --git a/help/C/figures/merge-ex1-4.png b/help/C/figures/merge-ex1-4.png new file mode 100644 index 0000000000000000000000000000000000000000..808aef68f33b9c2265c0539fcdd7367942513779 GIT binary patch literal 75437 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

    +

    +Basic LibGlabels Usage

    +
    +
    +Database — Database of pre-defined templates +
    +
    +The lglTemplate Structure — How templates are represented in memory +
    +
    +The lglPaper Structure — Paper size definitions +
    +
    +The lglCategory Structure — Template category definitions +
    +
    +