From 5a6548a8346c4cc53974322320dc2d89d9014a31 Mon Sep 17 00:00:00 2001 From: Nicolas Aguirre Date: Wed, 23 Feb 2011 10:36:18 +0000 Subject: [PATCH] E-MODULE-EXTRA Elfe: initial import in svn SVN revision: 57259 --- ABOUT-NLS | 768 ++ AUTHORS | 1 + COPYING | 32 + ChangeLog | 0 INSTALL | 237 + Makefile.am | 17 + NEWS | 0 README | 1 + autogen.sh | 16 + configure.ac | 66 + data/Makefile.am | 12 + data/module.desktop.in | 4 + data/themes/Makefile.am | 1 + data/themes/Makefile.in | 570 ++ data/themes/default/Makefile.am | 41 + data/themes/default/Makefile.in | 454 + data/themes/default/default.edc | 983 +++ data/themes/default/elm.edc | 818 ++ data/themes/default/images/app_text_bg.png | Bin 0 -> 297 bytes data/themes/default/images/apps.png | Bin 0 -> 1476 bytes data/themes/default/images/bg.png | Bin 0 -> 184864 bytes data/themes/default/images/bg_tile.png | Bin 0 -> 236 bytes data/themes/default/images/desk_selected.png | Bin 0 -> 941 bytes .../themes/default/images/desk_unselected.png | Bin 0 -> 388 bytes data/themes/default/images/inwin_bg.png | Bin 0 -> 6438 bytes data/themes/default/images/mainmenu_bg.png | Bin 0 -> 38244 bytes data/themes/default/images/menu_bg.png | Bin 0 -> 615 bytes data/themes/default/images/module_icon.png | Bin 0 -> 19270 bytes data/themes/default/images/music.png | Bin 0 -> 5686 bytes data/themes/default/images/photo.png | Bin 0 -> 7700 bytes data/themes/default/images/scrollbar-bg.png | Bin 0 -> 190 bytes data/themes/default/images/scrollbar-knob.png | Bin 0 -> 146 bytes data/themes/default/images/sel_bg.png | Bin 0 -> 8238 bytes data/themes/default/images/separator.png | Bin 0 -> 187 bytes data/themes/default/images/settings.png | Bin 0 -> 15672 bytes data/themes/default/images/video.png | Bin 0 -> 13367 bytes data/themes/default/images/weather.png | Bin 0 -> 8554 bytes data/themes/default/images/web.png | Bin 0 -> 20354 bytes data/themes/default/images/windows.png | Bin 0 -> 5956 bytes e_modules-elfe.spec.in | 50 + m4/ac_attribute.m4 | 47 + m4/codeset.m4 | 23 + m4/gettext.m4 | 487 ++ m4/glibc21.m4 | 32 + m4/iconv.m4 | 103 + m4/intdiv0.m4 | 72 + m4/intmax.m4 | 32 + m4/inttypes-pri.m4 | 32 + m4/inttypes.m4 | 27 + m4/inttypes_h.m4 | 28 + m4/isc-posix.m4 | 26 + m4/lcmessage.m4 | 32 + m4/lib-ld.m4 | 112 + m4/lib-link.m4 | 551 ++ m4/lib-prefix.m4 | 155 + m4/libtool.m4 | 7377 +++++++++++++++++ m4/longdouble.m4 | 30 + m4/longlong.m4 | 25 + m4/ltoptions.m4 | 368 + m4/ltsugar.m4 | 123 + m4/ltversion.m4 | 23 + m4/lt~obsolete.m4 | 92 + m4/nls.m4 | 49 + m4/po.m4 | 426 + m4/printf-posix.m4 | 46 + m4/progtest.m4 | 91 + m4/signed.m4 | 19 + m4/size_max.m4 | 61 + m4/stdint_h.m4 | 28 + m4/uintmax_t.m4 | 32 + m4/ulonglong.m4 | 25 + m4/wchar_t.m4 | 22 + m4/wint_t.m4 | 22 + m4/xsize.m4 | 14 + src/Makefile.am | 30 + src/allapps.c | 155 + src/allapps.h | 8 + src/desktop.c | 410 + src/desktop.h | 9 + src/elfe_config.c | 197 + src/elfe_config.h | 56 + src/gadgets.c | 307 + src/gadgets.h | 8 + src/main.c | 464 ++ src/main.h | 12 + src/utils.c | 74 + src/utils.h | 6 + src/winlist.c | 467 ++ src/winlist.h | 13 + 89 files changed, 16919 insertions(+) create mode 100644 ABOUT-NLS create mode 100644 AUTHORS create mode 100644 COPYING create mode 100644 ChangeLog create mode 100644 INSTALL create mode 100644 Makefile.am create mode 100644 NEWS create mode 100644 README create mode 100755 autogen.sh create mode 100644 configure.ac create mode 100644 data/Makefile.am create mode 100644 data/module.desktop.in create mode 100644 data/themes/Makefile.am create mode 100644 data/themes/Makefile.in create mode 100644 data/themes/default/Makefile.am create mode 100644 data/themes/default/Makefile.in create mode 100644 data/themes/default/default.edc create mode 100644 data/themes/default/elm.edc create mode 100644 data/themes/default/images/app_text_bg.png create mode 100644 data/themes/default/images/apps.png create mode 100644 data/themes/default/images/bg.png create mode 100644 data/themes/default/images/bg_tile.png create mode 100644 data/themes/default/images/desk_selected.png create mode 100644 data/themes/default/images/desk_unselected.png create mode 100644 data/themes/default/images/inwin_bg.png create mode 100644 data/themes/default/images/mainmenu_bg.png create mode 100644 data/themes/default/images/menu_bg.png create mode 100644 data/themes/default/images/module_icon.png create mode 100755 data/themes/default/images/music.png create mode 100644 data/themes/default/images/photo.png create mode 100644 data/themes/default/images/scrollbar-bg.png create mode 100644 data/themes/default/images/scrollbar-knob.png create mode 100644 data/themes/default/images/sel_bg.png create mode 100755 data/themes/default/images/separator.png create mode 100755 data/themes/default/images/settings.png create mode 100755 data/themes/default/images/video.png create mode 100644 data/themes/default/images/weather.png create mode 100644 data/themes/default/images/web.png create mode 100755 data/themes/default/images/windows.png create mode 100644 e_modules-elfe.spec.in create mode 100644 m4/ac_attribute.m4 create mode 100644 m4/codeset.m4 create mode 100644 m4/gettext.m4 create mode 100644 m4/glibc21.m4 create mode 100644 m4/iconv.m4 create mode 100644 m4/intdiv0.m4 create mode 100644 m4/intmax.m4 create mode 100644 m4/inttypes-pri.m4 create mode 100644 m4/inttypes.m4 create mode 100644 m4/inttypes_h.m4 create mode 100644 m4/isc-posix.m4 create mode 100644 m4/lcmessage.m4 create mode 100644 m4/lib-ld.m4 create mode 100644 m4/lib-link.m4 create mode 100644 m4/lib-prefix.m4 create mode 100644 m4/libtool.m4 create mode 100644 m4/longdouble.m4 create mode 100644 m4/longlong.m4 create mode 100644 m4/ltoptions.m4 create mode 100644 m4/ltsugar.m4 create mode 100644 m4/ltversion.m4 create mode 100644 m4/lt~obsolete.m4 create mode 100644 m4/nls.m4 create mode 100644 m4/po.m4 create mode 100644 m4/printf-posix.m4 create mode 100644 m4/progtest.m4 create mode 100644 m4/signed.m4 create mode 100644 m4/size_max.m4 create mode 100644 m4/stdint_h.m4 create mode 100644 m4/uintmax_t.m4 create mode 100644 m4/ulonglong.m4 create mode 100644 m4/wchar_t.m4 create mode 100644 m4/wint_t.m4 create mode 100644 m4/xsize.m4 create mode 100644 src/Makefile.am create mode 100644 src/allapps.c create mode 100644 src/allapps.h create mode 100644 src/desktop.c create mode 100644 src/desktop.h create mode 100644 src/elfe_config.c create mode 100644 src/elfe_config.h create mode 100644 src/gadgets.c create mode 100644 src/gadgets.h create mode 100644 src/main.c create mode 100644 src/main.h create mode 100644 src/utils.c create mode 100644 src/utils.h create mode 100644 src/winlist.c create mode 100644 src/winlist.h diff --git a/ABOUT-NLS b/ABOUT-NLS new file mode 100644 index 0000000..2f50c66 --- /dev/null +++ b/ABOUT-NLS @@ -0,0 +1,768 @@ +Notes on the Free Translation Project +************************************* + +Free software is going international! The Free Translation Project is +a way to get maintainers of free software, translators, and users all +together, so that will gradually become able to speak many languages. +A few packages already provide translations for their messages. + + If you found this `ABOUT-NLS' file inside a distribution, you may +assume that the distributed package does use GNU `gettext' internally, +itself available at your nearest GNU archive site. But you do _not_ +need to install GNU `gettext' prior to configuring, installing or using +this package with messages translated. + + Installers will find here some useful hints. These notes also +explain how users should proceed for getting the programs to use the +available translations. They tell how people wanting to contribute and +work at translations should contact the appropriate team. + + When reporting bugs in the `intl/' directory or bugs which may be +related to internationalization, you should tell about the version of +`gettext' which is used. The information can be found in the +`intl/VERSION' file, in internationalized packages. + +Quick configuration advice +========================== + +If you want to exploit the full power of internationalization, you +should configure it using + + ./configure --with-included-gettext + +to force usage of internationalizing routines provided within this +package, despite the existence of internationalizing capabilities in the +operating system where this package is being installed. So far, only +the `gettext' implementation in the GNU C library version 2 provides as +many features (such as locale alias, message inheritance, automatic +charset conversion or plural form handling) as the implementation here. +It is also not possible to offer this additional functionality on top +of a `catgets' implementation. Future versions of GNU `gettext' will +very likely convey even more functionality. So it might be a good idea +to change to GNU `gettext' as soon as possible. + + So you need _not_ provide this option if you are using GNU libc 2 or +you have installed a recent copy of the GNU gettext package with the +included `libintl'. + +INSTALL Matters +=============== + +Some packages are "localizable" when properly installed; the programs +they contain can be made to speak your own native language. Most such +packages use GNU `gettext'. Other packages have their own ways to +internationalization, predating GNU `gettext'. + + By default, this package will be installed to allow translation of +messages. It will automatically detect whether the system already +provides the GNU `gettext' functions. If not, the GNU `gettext' own +library will be used. This library is wholly contained within this +package, usually in the `intl/' subdirectory, so prior installation of +the GNU `gettext' package is _not_ required. Installers may use +special options at configuration time for changing the default +behaviour. The commands: + + ./configure --with-included-gettext + ./configure --disable-nls + +will respectively bypass any pre-existing `gettext' to use the +internationalizing routines provided within this package, or else, +_totally_ disable translation of messages. + + When you already have GNU `gettext' installed on your system and run +configure without an option for your new package, `configure' will +probably detect the previously built and installed `libintl.a' file and +will decide to use this. This might be not what is desirable. You +should use the more recent version of the GNU `gettext' library. I.e. +if the file `intl/VERSION' shows that the library which comes with this +package is more recent, you should use + + ./configure --with-included-gettext + +to prevent auto-detection. + + The configuration process will not test for the `catgets' function +and therefore it will not be used. The reason is that even an +emulation of `gettext' on top of `catgets' could not provide all the +extensions of the GNU `gettext' library. + + Internationalized packages have usually many `po/LL.po' files, where +LL gives an ISO 639 two-letter code identifying the language. Unless +translations have been forbidden at `configure' time by using the +`--disable-nls' switch, all available translations are installed +together with the package. However, the environment variable `LINGUAS' +may be set, prior to configuration, to limit the installed set. +`LINGUAS' should then contain a space separated list of two-letter +codes, stating which languages are allowed. + +Using This Package +================== + +As a user, if your language has been installed for this package, you +only have to set the `LANG' environment variable to the appropriate +`LL_CC' combination. Here `LL' is an ISO 639 two-letter language code, +and `CC' is an ISO 3166 two-letter country code. For example, let's +suppose that you speak German and live in Germany. At the shell +prompt, merely execute `setenv LANG de_DE' (in `csh'), +`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). +This can be done from your `.login' or `.profile' file, once and for +all. + + You might think that the country code specification is redundant. +But in fact, some languages have dialects in different countries. For +example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The +country code serves to distinguish the dialects. + + The locale naming convention of `LL_CC', with `LL' denoting the +language and `CC' denoting the country, is the one use on systems based +on GNU libc. On other systems, some variations of this scheme are +used, such as `LL' or `LL_CC.ENCODING'. You can get the list of +locales supported by your system for your country by running the command +`locale -a | grep '^LL''. + + Not all programs have translations for all languages. By default, an +English message is shown in place of a nonexistent translation. If you +understand other languages, you can set up a priority list of languages. +This is done through a different environment variable, called +`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' +for the purpose of message handling, but you still need to have `LANG' +set to the primary language; this is required by other parts of the +system libraries. For example, some Swedish users who would rather +read translations in German than English for when Swedish is not +available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. + + Special advice for Norwegian users: The language code for Norwegian +bokma*l changed from `no' to `nb' recently (in 2003). During the +transition period, while some message catalogs for this language are +installed under `nb' and some older ones under `no', it's recommended +for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and +older translations are used. + + In the `LANGUAGE' environment variable, but not in the `LANG' +environment variable, `LL_CC' combinations can be abbreviated as `LL' +to denote the language's main dialect. For example, `de' is equivalent +to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' +(Portuguese as spoken in Portugal) in this context. + +Translating Teams +================= + +For the Free Translation Project to be a success, we need interested +people who like their own language and write it well, and who are also +able to synergize with other translators speaking the same language. +Each translation team has its own mailing list. The up-to-date list of +teams can be found at the Free Translation Project's homepage, +`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams" +area. + + If you'd like to volunteer to _work_ at translating messages, you +should become a member of the translating team for your own language. +The subscribing address is _not_ the same as the list itself, it has +`-request' appended. For example, speakers of Swedish can send a +message to `sv-request@li.org', having this message body: + + subscribe + + Keep in mind that team members are expected to participate +_actively_ in translations, or at solving translational difficulties, +rather than merely lurking around. If your team does not exist yet and +you want to start one, or if you are unsure about what to do or how to +get started, please write to `translation@iro.umontreal.ca' to reach the +coordinator for all translator teams. + + The English team is special. It works at improving and uniformizing +the terminology in use. Proven linguistic skill are praised more than +programming skill, here. + +Available Packages +================== + +Languages are not equally supported in all packages. The following +matrix shows the current state of internationalization, as of January +2004. The matrix shows, in regard of each package, for which languages +PO files have been submitted to translation coordination, with a +translation percentage of at least 50%. + + Ready PO files af am ar az be bg bs ca cs da de el en en_GB eo es + +----------------------------------------------------+ + a2ps | [] [] [] [] | + aegis | () | + ant-phone | () | + anubis | | + ap-utils | | + aspell | [] | + bash | [] [] [] [] | + batchelor | | + bfd | [] [] | + binutils | [] [] | + bison | [] [] [] | + bluez-pin | [] [] [] | + clisp | | + clisp | [] [] [] | + console-tools | [] [] | + coreutils | [] [] [] [] | + cpio | [] [] [] | + darkstat | [] () [] | + diffutils | [] [] [] [] [] [] [] | + e2fsprogs | [] [] [] | + enscript | [] [] [] [] | + error | [] [] [] [] [] | + fetchmail | [] () [] [] [] [] | + fileutils | [] [] [] | + findutils | [] [] [] [] [] [] [] | + flex | [] [] [] [] | + fslint | | + gas | [] | + gawk | [] [] [] [] | + gbiff | [] | + gcal | [] | + gcc | [] [] | + gettext | [] [] [] [] [] | + gettext-examples | [] [] [] [] | + gettext-runtime | [] [] [] [] [] | + gettext-tools | [] [] [] | + gimp-print | [] [] [] [] [] | + gliv | | + glunarclock | [] [] | + gnubiff | [] | + gnucash | [] () [] [] | + gnucash-glossary | [] () [] | + gnupg | [] () [] [] [] [] | + gpe-aerial | [] | + gpe-beam | [] [] | + gpe-calendar | [] [] | + gpe-clock | [] [] | + gpe-conf | [] [] | + gpe-contacts | [] [] | + gpe-edit | [] | + gpe-go | [] | + gpe-login | [] [] | + gpe-ownerinfo | [] [] | + gpe-sketchbook | [] [] | + gpe-su | [] [] | + gpe-taskmanager | [] [] | + gpe-timesheet | [] | + gpe-today | [] [] | + gpe-todo | [] [] | + gphoto2 | [] [] [] [] | + gprof | [] [] [] | + gpsdrive | () () () | + gramadoir | [] | + grep | [] [] [] [] [] [] | + gretl | [] | + gtick | [] () | + hello | [] [] [] [] [] [] | + id-utils | [] [] | + indent | [] [] [] [] | + iso_3166 | [] [] [] [] [] [] [] [] [] [] | + iso_3166_1 | [] [] [] [] [] [] | + iso_3166_2 | | + iso_3166_3 | [] | + iso_4217 | [] [] [] [] | + iso_639 | | + jpilot | [] [] [] | + jtag | | + jwhois | [] | + kbd | [] [] [] [] [] | + latrine | () | + ld | [] [] | + libc | [] [] [] [] [] [] | + libgpewidget | [] [] | + libiconv | [] [] [] [] [] | + lifelines | [] () | + lilypond | [] | + lingoteach | | + lingoteach_lessons | () () | + lynx | [] [] [] [] | + m4 | [] [] [] [] | + mailutils | [] [] | + make | [] [] [] | + man-db | [] () [] [] () | + minicom | [] [] [] | + mysecretdiary | [] [] [] | + nano | [] () [] [] [] | + nano_1_0 | [] () [] [] [] | + opcodes | [] | + parted | [] [] [] [] [] | + ptx | [] [] [] [] [] | + python | | + radius | [] | + recode | [] [] [] [] [] [] [] | + rpm | [] [] | + screem | | + scrollkeeper | [] [] [] [] [] [] | + sed | [] [] [] [] [] [] | + sh-utils | [] [] [] | + shared-mime-info | | + sharutils | [] [] [] [] [] [] | + silky | () | + skencil | [] () [] | + sketch | [] () [] | + soundtracker | [] [] [] | + sp | [] | + tar | [] [] [] [] | + texinfo | [] [] [] | + textutils | [] [] [] [] | + tin | () () | + tp-robot | | + tuxpaint | [] [] [] [] [] [] [] | + unicode-han-tra... | | + unicode-transla... | | + util-linux | [] [] [] [] [] | + vorbis-tools | [] [] [] [] | + wastesedge | () | + wdiff | [] [] [] [] | + wget | [] [] [] [] [] [] | + xchat | [] [] [] [] | + xfree86_xkb_xml | [] [] | + xpad | [] | + +----------------------------------------------------+ + af am ar az be bg bs ca cs da de el en en_GB eo es + 4 0 0 1 9 4 1 40 41 60 78 17 1 5 13 68 + + et eu fa fi fr ga gl he hr hu id is it ja ko lg + +-------------------------------------------------+ + a2ps | [] [] [] () () | + aegis | | + ant-phone | [] | + anubis | [] | + ap-utils | [] | + aspell | [] [] | + bash | [] [] | + batchelor | [] [] | + bfd | [] | + binutils | [] [] | + bison | [] [] [] [] | + bluez-pin | [] [] [] [] [] | + clisp | | + clisp | [] | + console-tools | | + coreutils | [] [] [] [] [] [] | + cpio | [] [] [] [] | + darkstat | () [] [] [] | + diffutils | [] [] [] [] [] [] [] | + e2fsprogs | | + enscript | [] [] | + error | [] [] [] [] | + fetchmail | [] | + fileutils | [] [] [] [] [] [] | + findutils | [] [] [] [] [] [] [] [] [] [] [] | + flex | [] [] [] | + fslint | [] | + gas | [] | + gawk | [] [] [] | + gbiff | [] | + gcal | [] | + gcc | [] | + gettext | [] [] [] | + gettext-examples | [] [] | + gettext-runtime | [] [] [] [] [] | + gettext-tools | [] [] [] | + gimp-print | [] [] | + gliv | () | + glunarclock | [] [] [] [] | + gnubiff | [] | + gnucash | () [] | + gnucash-glossary | [] | + gnupg | [] [] [] [] [] [] [] | + gpe-aerial | [] | + gpe-beam | [] | + gpe-calendar | [] [] [] | + gpe-clock | [] | + gpe-conf | [] | + gpe-contacts | [] [] | + gpe-edit | [] [] | + gpe-go | [] | + gpe-login | [] [] | + gpe-ownerinfo | [] [] [] | + gpe-sketchbook | [] | + gpe-su | [] | + gpe-taskmanager | [] | + gpe-timesheet | [] [] [] | + gpe-today | [] [] | + gpe-todo | [] [] | + gphoto2 | [] [] [] | + gprof | [] [] | + gpsdrive | () () () | + gramadoir | [] [] | + grep | [] [] [] [] [] [] [] [] [] [] [] | + gretl | [] [] | + gtick | [] [] [] | + hello | [] [] [] [] [] [] [] [] [] [] [] [] [] | + id-utils | [] [] [] [] | + indent | [] [] [] [] [] [] [] [] [] | + iso_3166 | [] [] [] [] [] [] [] | + iso_3166_1 | [] [] [] [] [] | + iso_3166_2 | | + iso_3166_3 | | + iso_4217 | [] [] [] [] [] [] | + iso_639 | | + jpilot | [] () | + jtag | [] | + jwhois | [] [] [] [] | + kbd | [] | + latrine | [] | + ld | [] | + libc | [] [] [] [] [] [] | + libgpewidget | [] [] [] [] | + libiconv | [] [] [] [] [] [] [] [] [] | + lifelines | () | + lilypond | [] | + lingoteach | [] [] | + lingoteach_lessons | | + lynx | [] [] [] [] | + m4 | [] [] [] [] | + mailutils | | + make | [] [] [] [] [] [] | + man-db | () () | + minicom | [] [] [] [] | + mysecretdiary | [] [] | + nano | [] [] [] [] | + nano_1_0 | [] [] [] [] | + opcodes | [] | + parted | [] [] [] | + ptx | [] [] [] [] [] [] [] | + python | | + radius | [] | + recode | [] [] [] [] [] [] | + rpm | [] [] | + screem | | + scrollkeeper | [] | + sed | [] [] [] [] [] [] [] [] [] | + sh-utils | [] [] [] [] [] [] [] | + shared-mime-info | [] [] [] | + sharutils | [] [] [] [] [] | + silky | () [] () () | + skencil | [] | + sketch | [] | + soundtracker | [] [] | + sp | [] () | + tar | [] [] [] [] [] [] [] [] [] | + texinfo | [] [] [] [] | + textutils | [] [] [] [] [] [] | + tin | [] () | + tp-robot | [] | + tuxpaint | [] [] [] [] [] [] [] [] [] | + unicode-han-tra... | | + unicode-transla... | [] [] | + util-linux | [] [] [] [] () [] | + vorbis-tools | [] | + wastesedge | () | + wdiff | [] [] [] [] [] [] | + wget | [] [] [] [] [] [] [] | + xchat | [] [] [] | + xfree86_xkb_xml | [] [] | + xpad | [] [] | + +-------------------------------------------------+ + et eu fa fi fr ga gl he hr hu id is it ja ko lg + 22 2 1 26 106 28 24 8 10 41 33 1 26 33 12 0 + + lt lv mk mn ms mt nb nl nn no nso pl pt pt_BR ro ru + +-----------------------------------------------------+ + a2ps | [] [] () () [] [] [] | + aegis | () () () | + ant-phone | [] [] | + anubis | [] [] [] [] [] [] | + ap-utils | [] () [] | + aspell | [] | + bash | [] [] [] | + batchelor | [] | + bfd | [] | + binutils | [] | + bison | [] [] [] [] [] | + bluez-pin | [] [] [] | + clisp | | + clisp | [] | + console-tools | [] | + coreutils | [] [] | + cpio | [] [] [] [] [] | + darkstat | [] [] [] [] | + diffutils | [] [] [] [] [] [] | + e2fsprogs | [] | + enscript | [] [] [] [] | + error | [] [] [] | + fetchmail | [] [] () [] | + fileutils | [] [] [] | + findutils | [] [] [] [] [] | + flex | [] [] [] [] | + fslint | [] [] | + gas | | + gawk | [] [] [] | + gbiff | [] [] | + gcal | | + gcc | | + gettext | [] [] [] | + gettext-examples | [] [] [] | + gettext-runtime | [] [] [] [] | + gettext-tools | [] [] | + gimp-print | [] | + gliv | [] [] [] | + glunarclock | [] [] [] [] | + gnubiff | [] | + gnucash | [] [] () [] | + gnucash-glossary | [] [] | + gnupg | [] | + gpe-aerial | [] [] [] [] | + gpe-beam | [] [] [] [] | + gpe-calendar | [] [] [] [] | + gpe-clock | [] [] [] [] | + gpe-conf | [] [] [] [] | + gpe-contacts | [] [] [] [] | + gpe-edit | [] [] [] [] | + gpe-go | [] [] [] | + gpe-login | [] [] [] [] | + gpe-ownerinfo | [] [] [] [] | + gpe-sketchbook | [] [] [] [] | + gpe-su | [] [] [] [] | + gpe-taskmanager | [] [] [] [] | + gpe-timesheet | [] [] [] [] | + gpe-today | [] [] [] [] | + gpe-todo | [] [] [] [] | + gphoto2 | [] | + gprof | [] [] | + gpsdrive | () () [] | + gramadoir | () [] | + grep | [] [] [] [] [] | + gretl | | + gtick | [] [] [] | + hello | [] [] [] [] [] [] [] [] [] [] | + id-utils | [] [] [] [] | + indent | [] [] [] [] | + iso_3166 | [] [] [] | + iso_3166_1 | [] [] | + iso_3166_2 | | + iso_3166_3 | [] | + iso_4217 | [] [] [] [] [] [] [] [] | + iso_639 | [] | + jpilot | () () | + jtag | | + jwhois | [] [] [] [] () | + kbd | [] [] [] | + latrine | [] | + ld | | + libc | [] [] [] [] | + libgpewidget | [] [] [] | + libiconv | [] [] [] [] [] | + lifelines | | + lilypond | | + lingoteach | | + lingoteach_lessons | | + lynx | [] [] [] | + m4 | [] [] [] [] [] | + mailutils | [] [] [] | + make | [] [] [] [] | + man-db | [] | + minicom | [] [] [] [] | + mysecretdiary | [] [] [] | + nano | [] [] [] [] [] | + nano_1_0 | [] [] [] [] [] [] | + opcodes | [] [] | + parted | [] [] [] [] | + ptx | [] [] [] [] [] [] [] [] | + python | | + radius | [] [] | + recode | [] [] [] [] | + rpm | [] [] [] | + screem | | + scrollkeeper | [] [] [] [] [] | + sed | [] [] [] | + sh-utils | [] [] | + shared-mime-info | [] [] | + sharutils | [] [] | + silky | () | + skencil | [] [] | + sketch | [] [] | + soundtracker | | + sp | | + tar | [] [] [] [] [] [] | + texinfo | [] [] [] [] | + textutils | [] [] | + tin | | + tp-robot | [] | + tuxpaint | [] [] [] [] [] [] [] [] | + unicode-han-tra... | | + unicode-transla... | | + util-linux | [] [] [] | + vorbis-tools | [] [] [] | + wastesedge | | + wdiff | [] [] [] [] [] | + wget | [] [] [] | + xchat | [] [] [] | + xfree86_xkb_xml | [] [] | + xpad | [] [] | + +-----------------------------------------------------+ + lt lv mk mn ms mt nb nl nn no nso pl pt pt_BR ro ru + 1 2 0 3 12 0 10 69 6 7 1 40 26 36 76 63 + + sk sl sr sv ta th tr uk ven vi wa xh zh_CN zh_TW zu + +-----------------------------------------------------+ + a2ps | [] [] [] [] | 16 + aegis | | 0 + ant-phone | | 3 + anubis | [] [] | 9 + ap-utils | () | 3 + aspell | | 4 + bash | | 9 + batchelor | | 3 + bfd | [] [] | 6 + binutils | [] [] [] | 8 + bison | [] [] | 14 + bluez-pin | [] [] [] | 14 + clisp | | 0 + clisp | | 5 + console-tools | | 3 + coreutils | [] [] [] [] | 16 + cpio | [] [] | 14 + darkstat | [] [] [] () () | 12 + diffutils | [] [] [] | 23 + e2fsprogs | [] [] | 6 + enscript | [] [] | 12 + error | [] [] [] | 15 + fetchmail | [] [] | 11 + fileutils | [] [] [] [] [] | 17 + findutils | [] [] [] [] [] [] | 29 + flex | [] [] | 13 + fslint | | 3 + gas | [] | 3 + gawk | [] [] | 12 + gbiff | | 4 + gcal | [] [] | 4 + gcc | [] | 4 + gettext | [] [] [] [] [] | 16 + gettext-examples | [] [] [] [] [] | 14 + gettext-runtime | [] [] [] [] [] [] [] [] | 22 + gettext-tools | [] [] [] [] [] [] | 14 + gimp-print | [] [] | 10 + gliv | | 3 + glunarclock | [] [] [] | 13 + gnubiff | | 3 + gnucash | [] [] | 9 + gnucash-glossary | [] [] [] | 8 + gnupg | [] [] [] [] | 17 + gpe-aerial | [] | 7 + gpe-beam | [] | 8 + gpe-calendar | [] [] [] [] | 13 + gpe-clock | [] [] [] | 10 + gpe-conf | [] [] | 9 + gpe-contacts | [] [] [] | 11 + gpe-edit | [] [] [] [] [] | 12 + gpe-go | | 5 + gpe-login | [] [] [] [] [] | 13 + gpe-ownerinfo | [] [] [] [] | 13 + gpe-sketchbook | [] [] | 9 + gpe-su | [] [] [] | 10 + gpe-taskmanager | [] [] [] | 10 + gpe-timesheet | [] [] [] [] | 12 + gpe-today | [] [] [] [] [] | 13 + gpe-todo | [] [] [] [] | 12 + gphoto2 | [] [] [] | 11 + gprof | [] [] | 9 + gpsdrive | [] [] | 3 + gramadoir | [] | 5 + grep | [] [] [] [] | 26 + gretl | | 3 + gtick | | 7 + hello | [] [] [] [] [] | 34 + id-utils | [] [] | 12 + indent | [] [] [] [] | 21 + iso_3166 | [] [] [] [] [] [] [] | 27 + iso_3166_1 | [] [] [] | 16 + iso_3166_2 | | 0 + iso_3166_3 | | 2 + iso_4217 | [] [] [] [] [] [] | 24 + iso_639 | | 1 + jpilot | [] [] [] [] [] | 9 + jtag | [] | 2 + jwhois | () [] [] | 11 + kbd | [] [] | 11 + latrine | | 2 + ld | [] [] | 5 + libc | [] [] [] [] | 20 + libgpewidget | [] [] [] [] | 13 + libiconv | [] [] [] [] [] [] [] [] | 27 + lifelines | [] | 2 + lilypond | [] | 3 + lingoteach | | 2 + lingoteach_lessons | () | 0 + lynx | [] [] [] | 14 + m4 | [] [] | 15 + mailutils | | 5 + make | [] [] [] | 16 + man-db | [] | 5 + minicom | | 11 + mysecretdiary | [] [] | 10 + nano | [] [] [] [] | 17 + nano_1_0 | [] [] [] | 17 + opcodes | [] [] | 6 + parted | [] [] [] | 15 + ptx | [] [] | 22 + python | | 0 + radius | | 4 + recode | [] [] [] | 20 + rpm | [] [] | 9 + screem | [] [] | 2 + scrollkeeper | [] [] [] | 15 + sed | [] [] [] [] [] [] | 24 + sh-utils | [] [] | 14 + shared-mime-info | [] [] | 7 + sharutils | [] [] [] [] | 17 + silky | () | 3 + skencil | [] | 6 + sketch | [] | 6 + soundtracker | [] [] | 7 + sp | [] | 3 + tar | [] [] [] [] [] | 24 + texinfo | [] [] [] | 14 + textutils | [] [] [] [] | 16 + tin | | 1 + tp-robot | | 2 + tuxpaint | [] [] [] [] [] | 29 + unicode-han-tra... | | 0 + unicode-transla... | | 2 + util-linux | [] [] | 15 + vorbis-tools | | 8 + wastesedge | | 0 + wdiff | [] [] [] | 18 + wget | [] [] [] [] [] [] [] [] | 24 + xchat | [] [] [] [] [] | 15 + xfree86_xkb_xml | [] [] [] [] [] | 11 + xpad | | 5 + +-----------------------------------------------------+ + 63 teams sk sl sr sv ta th tr uk ven vi wa xh zh_CN zh_TW zu + 131 domains 47 19 28 83 0 0 59 13 1 1 11 0 22 22 0 1373 + + Some counters in the preceding matrix are higher than the number of +visible blocks let us expect. This is because a few extra PO files are +used for implementing regional variants of languages, or language +dialects. + + For a PO file in the matrix above to be effective, the package to +which it applies should also have been internationalized and +distributed as such by its maintainer. There might be an observable +lag between the mere existence a PO file and its wide availability in a +distribution. + + If January 2004 seems to be old, you may fetch a more recent copy of +this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date +matrix with full percentage details can be found at +`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'. + +Using `gettext' in new packages +=============================== + +If you are writing a freely available program and want to +internationalize it you are welcome to use GNU `gettext' in your +package. Of course you have to respect the GNU Library General Public +License which covers the use of the GNU `gettext' library. This means +in particular that even non-free programs can use `libintl' as a shared +library, whereas only free software can use `libintl' as a static +library or use modified versions of `libintl'. + + Once the sources are changed appropriately and the setup can handle +the use of `gettext' the only thing missing are the translations. The +Free Translation Project is also available for packages which are not +developed inside the GNU project. Therefore the information given above +applies also for every other Free Software Project. Contact +`translation@iro.umontreal.ca' to make the `.pot' files available to +the translation teams. + diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..2bfaa86 --- /dev/null +++ b/AUTHORS @@ -0,0 +1 @@ +Nicolas 'captainigloo' Aguirre \ No newline at end of file diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..9690c3f --- /dev/null +++ b/COPYING @@ -0,0 +1,32 @@ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies of the Software and its Copyright notices. In addition publicly +documented acknowledgment must be given that this software has been used if no +source code of this software is made available publicly. Making the source +available publicly means including the source for this software with the +distribution, or a method to get this software via some reasonable mechanism +(electronic transfer via a network or media) as well as making an offer to +supply the source on request. This Copyright notice serves as an offer to +supply the source on on request as well. Instead of this, supplying +acknowledgments of use of this software in either Copyright notices, Manuals, +Publicity and Marketing documents or any documentation provided with any +product containing this software. This License does not apply to any software +that links to the libraries provided by this software (statically or +dynamically), but only to the software provided. + +Please see the COPYING-PLAIN for a plain-english explanation of this notice +and its intent. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..e69de29 diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..d3c5b40 --- /dev/null +++ b/INSTALL @@ -0,0 +1,237 @@ +Installation Instructions +************************* + +Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, +2006, 2007 Free Software Foundation, Inc. + +This file is free documentation; the Free Software Foundation gives +unlimited permission to copy, distribute and modify it. + +Basic Installation +================== + +Briefly, the shell commands `./configure; make; make install' should +configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. Caching is +disabled by default to prevent problems with accidental use of stale +cache files. + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. + +The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. + + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package. + + 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. + + 6. Often, you can also type `make uninstall' to remove the installed + files again. + +Compilers and Options +===================== + +Some systems require unusual options for compilation or linking that the +`configure' script does not know about. Run `./configure --help' for +details on some of the pertinent environment variables. + + You can give `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: + + ./configure CC=c99 CFLAGS=-g LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + +You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you can use GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. + + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. + +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). + +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf bug. Until the bug is fixed you can use this workaround: + + CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash + +`configure' Invocation +====================== + +`configure' recognizes the following options to control how it operates. + +`--help' +`-h' + Print a summary of 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 0000000..949cf46 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,17 @@ +ACLOCAL_AMFLAGS = -I m4 +MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess config.h.in \ + config.sub configure depcomp install-sh ltmain.sh \ + missing module.desktop config.rpath mkinstalldirs + +SUBDIRS = src data + +EXTRA_DIST = e_modules-elfe.spec.in + + + +clean-local: + rm -rf module.desktop e_modules-elfe.spec *~ + +uninstall: + rm -rf $(DESTDIR)$(datadir) + diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..e69de29 diff --git a/README b/README new file mode 100644 index 0000000..91ade6a --- /dev/null +++ b/README @@ -0,0 +1 @@ +Elfe : Enlightenment Launcher for embedded devices \ No newline at end of file diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 0000000..31ccda0 --- /dev/null +++ b/autogen.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +rm -rf autom4te.cache +rm -f aclocal.m4 ltmain.sh + +touch README + +echo "Running aclocal..." ; aclocal -I m4 $ACLOCAL_FLAGS || exit 1 +echo "Running autoheader..." ; autoheader || exit 1 +echo "Running autoconf..." ; autoconf || exit 1 +echo "Running libtoolize..." ; (libtoolize --copy --automake || glibtoolize --automake) || exit 1 +echo "Running automake..." ; automake --add-missing --copy --gnu || exit 1 + +if [ -z "$NOCONFIGURE" ]; then + ./configure "$@" +fi diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..8c71646 --- /dev/null +++ b/configure.ac @@ -0,0 +1,66 @@ +dnl Process this file with autoconf to produce a configure script. + +# get rid of that stupid cache mechanism +rm -f config.cache + +AC_INIT(elfe, 0.0.1, aguirre.nicolas@gmail.com) +AC_PREREQ(2.52) +AC_CONFIG_SRCDIR(configure.ac) +AC_CANONICAL_BUILD +AC_CANONICAL_HOST +AC_ISC_POSIX + +AM_INIT_AUTOMAKE(1.8) +AM_CONFIG_HEADER(config.h) +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + +AC_PROG_CC +AM_PROG_CC_STDC +AC_HEADER_STDC +AC_C_CONST +AC_C___ATTRIBUTE__ + +define([AC_LIBTOOL_LANG_CXX_CONFIG], [:])dnl +define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl +AC_PROG_LIBTOOL + +PKG_CHECK_MODULES(E, [enlightenment + elementary + efreet >= 1.0.0 + ]) +release=$(pkg-config --variable=release enlightenment) +MODULE_ARCH="$host_os-$host_cpu-$release" +AC_SUBST(MODULE_ARCH) +AC_DEFINE_UNQUOTED(MODULE_ARCH, "$MODULE_ARCH", "Module architecture") + +# Find edje_cc +PKG_CHECK_MODULES(EDJE, [edje >= 1.0.0]) +AC_ARG_WITH(edje-cc, + AC_HELP_STRING([--with-edje-cc=PATH], [specify a specific path to edje_cc]), + [ + v=$withval; + EDJE_CC=$v + ],[ + EDJE_CC=$(pkg-config --variable=prefix edje)/bin/edje_cc + ] +) +AC_SUBST(EDJE_CC) +AC_MSG_CHECKING([Which edje_cc to use]) +AC_MSG_RESULT(${EDJE_CC}) + +datadir=$(pkg-config --variable=modules enlightenment)/${PACKAGE} +AC_ARG_ENABLE(homedir-install, + AS_HELP_STRING([--enable-homedir-install], [Install module in homedir]), + [ datadir="${HOME}/.e/e/modules/${PACKAGE}" ] +) + +AC_OUTPUT([ +Makefile +src/Makefile +data/Makefile +data/themes/Makefile +data/themes/default/Makefile +data/module.desktop +e_modules-elfe.spec +], [ +]) diff --git a/data/Makefile.am b/data/Makefile.am new file mode 100644 index 0000000..1d83396 --- /dev/null +++ b/data/Makefile.am @@ -0,0 +1,12 @@ +SUBDIRS = themes + +MAINTAINERCLEANFILES = Makefile.in module.desktop + +filesdir = $(datadir) +files_DATA = module.desktop + +clean-local: + rm -rf module.desktop *~ + +uninstall: + rm -rf $(DESTDIR)$(datadir) \ No newline at end of file diff --git a/data/module.desktop.in b/data/module.desktop.in new file mode 100644 index 0000000..3fa031b --- /dev/null +++ b/data/module.desktop.in @@ -0,0 +1,4 @@ +[Desktop Entry] +Type=Link +Name=Elfe +Icon=e-module-elfe diff --git a/data/themes/Makefile.am b/data/themes/Makefile.am new file mode 100644 index 0000000..4977d17 --- /dev/null +++ b/data/themes/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = default \ No newline at end of file diff --git a/data/themes/Makefile.in b/data/themes/Makefile.in new file mode 100644 index 0000000..9238db5 --- /dev/null +++ b/data/themes/Makefile.in @@ -0,0 +1,570 @@ +# 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/themes +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \ + $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EDJE_CC = @EDJE_CC@ +EDJE_CFLAGS = @EDJE_CFLAGS@ +EDJE_LIBS = @EDJE_LIBS@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +E_CFLAGS = @E_CFLAGS@ +E_LIBS = @E_LIBS@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MODULE_ARCH = @MODULE_ARCH@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_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 = default +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/themes/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu data/themes/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +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/themes/default/Makefile.am b/data/themes/default/Makefile.am new file mode 100644 index 0000000..7b6ea07 --- /dev/null +++ b/data/themes/default/Makefile.am @@ -0,0 +1,41 @@ + +EDJE_FLAGS = -v \ + -id $(top_srcdir)/data/themes/default/images + +filesdir = $(datadir) +files_DATA = default.edj + +IMGS=images/module_icon.png \ + images/sel_bg.png \ + images/music.png \ + images/video.png \ + images/photo.png \ + images/apps.png \ + images/web.png \ + images/weather.png \ + images/settings.png \ + images/menu_bg.png \ + images/bg.png \ + images/bg_tile.png \ + images/windows.png \ + images/inwin_bg.png \ + images/separator.png \ + images/mainmenu_bg.png \ + images/scrollbar-knob.png \ + images/scrollbar-bg.png \ + images/app_text_bg.png \ + images/desk_unselected.png \ + images/desk_selected.png + +EXTRA_DIST = default.edc \ + elm.edc \ + $(IMGS) + +%.edj: %.edc + $(EDJE_CC) $(EDJE_FLAGS) $< $@ + +clean-local: + rm -rf default.edj *~ + +uninstall: + rm -rf $(DESTDIR)$(datadir) \ No newline at end of file diff --git a/data/themes/default/Makefile.in b/data/themes/default/Makefile.in new file mode 100644 index 0000000..8d654e6 --- /dev/null +++ b/data/themes/default/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/themes/default +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ac_attribute.m4 \ + $(top_srcdir)/m4/isc-posix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +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)$(filesdir)" +DATA = $(files_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EDJE_CC = @EDJE_CC@ +EDJE_CFLAGS = @EDJE_CFLAGS@ +EDJE_LIBS = @EDJE_LIBS@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +E_CFLAGS = @E_CFLAGS@ +E_LIBS = @E_LIBS@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MODULE_ARCH = @MODULE_ARCH@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_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@ +EDJE_FLAGS = -v \ + -id $(top_srcdir)/data/themes/default/images + +filesdir = $(datadir) +files_DATA = default.edj +IMGS = images/module_icon.png \ + images/sel_bg.png \ + images/music.png \ + images/video.png \ + images/photo.png \ + images/apps.png \ + images/web.png \ + images/weather.png \ + images/settings.png \ + images/menu_bg.png \ + images/bg.png \ + images/bg_tile.png \ + images/windows.png \ + images/inwin_bg.png \ + images/separator.png \ + images/mainmenu_bg.png \ + images/scrollbar-knob.png \ + images/scrollbar-bg.png \ + images/app_text_bg.png \ + images/desk_unselected.png \ + images/desk_selected.png + +EXTRA_DIST = default.edc \ + elm.edc \ + $(IMGS) + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/themes/default/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu data/themes/default/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-filesDATA: $(files_DATA) + @$(NORMAL_INSTALL) + test -z "$(filesdir)" || $(MKDIR_P) "$(DESTDIR)$(filesdir)" + @list='$(files_DATA)'; test -n "$(filesdir)" || 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)$(filesdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(filesdir)" || exit $$?; \ + done + +uninstall-filesDATA: + @$(NORMAL_UNINSTALL) + @list='$(files_DATA)'; test -n "$(filesdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(filesdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(filesdir)" && 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)$(filesdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-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 + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-filesDATA + +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-filesDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + clean-local 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-filesDATA \ + 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-filesDATA + + +%.edj: %.edc + $(EDJE_CC) $(EDJE_FLAGS) $< $@ + +clean-local: + rm -rf default.edj *~ + +uninstall: + rm -rf $(DESTDIR)$(datadir) + +# 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/themes/default/default.edc b/data/themes/default/default.edc new file mode 100644 index 0000000..efef161 --- /dev/null +++ b/data/themes/default/default.edc @@ -0,0 +1,983 @@ +#define TOOLBAR_ITEM_SIZE 96 +#define TOOLBAR_ICON_SIZE 64 +#define TOOLBAR_MIDDLE_ITEM 2 + +#define TOOLBAR_POSITION(_item_number) (((_item_number)*(TOOLBAR_ITEM_SIZE))-((TOOLBAR_ITEM_SIZE)*(TOOLBAR_MIDDLE_ITEM))) +#define TOOLBAR_BUTTON(_button_name,_button_title,_xpos, clip) \ + part { name: "button-"_button_name"-selected"; \ + type: IMAGE; \ + mouse_events: 0; \ + clip_to: clip; \ + description { state: "default" 0.0; \ + visible: 0; \ + min: TOOLBAR_ITEM_SIZE TOOLBAR_ITEM_SIZE; \ + max: TOOLBAR_ITEM_SIZE TOOLBAR_ITEM_SIZE; \ + fixed: 1 1; \ + rel1 { \ + relative: 0.5 1; \ + offset: (_xpos+2) (-TOOLBAR_ITEM_SIZE+2); \ + } \ + rel2 { \ + relative: 0.5 1; \ + offset: (_xpos-2) -2; \ + } \ + image.normal: "sel_bg.png"; \ + image.border: 12 12 12 12; \ + color: 255 255 255 0; \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 255 255 255 255; \ + } \ + } \ + part { name: "button-"_button_name"-normal"; \ + type: IMAGE; \ + clip_to: clip; \ + description { state: "default" 0.0; \ + min: TOOLBAR_ICON_SIZE TOOLBAR_ICON_SIZE; \ + max: TOOLBAR_ICON_SIZE TOOLBAR_ICON_SIZE; \ + fixed: 1 1; \ + rel1 { \ + to_y: "menu.background"; \ + relative: 0.5 1; \ + offset: (_xpos) (-TOOLBAR_ITEM_SIZE); \ + } \ + rel2 { \ + to_y: "menu.background"; \ + relative: 0.5 1; \ + offset: (_xpos) 0); \ + } \ + image.normal: _button_name".png"; \ + } \ + } \ + part { name: "button-"_button_name"-disable-mask"; \ + type: RECT; \ + mouse_events: 1; \ + clip_to: clip; \ + description { state: "default" 0.0; \ + fixed: 1 1; \ + visible: 0; \ + } \ + description { state: "masking" 0.0; \ + rel1.to: "button-"_button_name"-normal"; \ + rel1.offset: 0 7; \ + rel2.to: "button-"_button_name"-normal"; \ + color: 0 0 0 128; \ + } \ + } \ + programs { \ + program { name: _button_name"-pressed"; \ + signal: "mouse,down,*"; \ + source: "button-"_button_name"-normal"; \ + action: STATE_SET "visible" 0.0; \ + target: "button-"_button_name"-selected"; \ + transition: ACCELERATE 0.3; \ + } \ + program { name: _button_name"-released"; \ + signal: "mouse,up,*"; \ + source: "button-"_button_name"-normal"; \ + action: STATE_SET "default" 0.0; \ + target: "button-"_button_name"-selected"; \ + transition: DECELERATE 0.6; \ + } \ + program { name: _button_name"-clicked"; \ + signal: "mouse,clicked,*"; \ + source: "button-"_button_name"-normal"; \ + action: SIGNAL_EMIT "action,"_button_name _button_name; \ + } \ + program { name: _button_name"-disable"; \ + signal: "button,"_button_name",disable"; \ + action: STATE_SET "masking" 0.0; \ + target: "button-"_button_name"-disable-mask"; \ + } \ + program { name: _button_name"-enable"; \ + signal: "button,"_button_name",enable"; \ + action: STATE_SET "default" 0.0; \ + target: "button-"_button_name"-disable-mask"; \ + } \ + } + + +images +{ + image: "module_icon.png" COMP; +} + +collections +{ + group + { + name: "icon"; + max: 24 24; + parts + { + part + { + name: "image"; + mouse_events: 0; + type: IMAGE; + description + { + state: "default" 0.0; + image.normal: "module_icon.png"; + } + } + } + } + +#include "elm.edc" + + + group { + name: "module/elfe/main"; + images { + image: "sel_bg.png" COMP; + image: "music.png" COMP; + image: "video.png" COMP; + image: "photo.png" COMP; + image: "apps.png" COMP; + image: "web.png" COMP; + image: "weather.png" COMP; + image: "settings.png" COMP; + image: "menu_bg.png" COMP; + image: "bg.png" COMP; + image: "bg_tile.png" COMP; + image: "windows.png" COMP; + image: "inwin_bg.png" COMP; + image: "separator.png" COMP; + image: "mainmenu_bg.png" COMP; + } + script { + public apps_list_visible; + public progress_bar_visible; + + public apps_list_hide() { + run_program(PROGRAM:"hide-apps-list"); + set_state(PART:"button-apps-selected", "default", 0.0); + set_int(apps_list_visible, 0); + run_program(PROGRAM:"hide-view-mask"); + emit("more,hide", ""); + } + public apps_list_show() { + set_int(apps_list_visible, 1); + run_program(PROGRAM:"show-apps-list"); + set_state(PART:"button-apps-selected", "visible", 0.0); + run_program(PROGRAM:"show-black-view-mask"); + emit("more,show", ""); + } + public apps_list_toggle() { + if (get_int(apps_list_visible) == 1) apps_list_hide(); + else apps_list_show(); + } + + + } + parts { + /* background */ + part { + type: IMAGE; + mouse_events: 0; + description { + state: "default" 0.0; + visible: 0; + image { + normal: "bg.png"; + } + } + } + part { + type: RECT; + name: "top_bar"; + description { + state: "default" 0.0; + color: 0 0 0 0; + rel2.relative: 1 0; + rel2.offset: 0 32; + } + } + + + + part { name: "view-mask"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + rel1 { + relative: 0.0 0.0; + } + rel2 { + relative: 1.0 1.0; + } + color: 0 0 0 0; + } + description { state: "hidden" 0.0; + inherit: "default" 0.0; + color: 0 0 0 0; + visible: 0; + } + description { state: "masking-black" 0.0; + inherit: "default" 0.0; + color: 0 0 0 230; + } + } + + part { + name: "menu.background"; + mouse_events: 0; + description { + state: "default" 0.0; + image.normal: "mainmenu_bg.png"; + rel1 { relative: 0.0 1.0; + offset: 0 -142; + } + } + } + + part { + name: "fake.clip"; + type: RECT; + mouse_events: 0; + description { + color: 255 255 255 255; + } + } + + part { + name: "icons.clip"; + type: RECT; + mouse_events: 1; + description { + state: "hidden" 0.0; + visible: 1; + color: 255 255 255 255; + } + description { + state: "masking-black" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + + TOOLBAR_BUTTON("windows", "Wins", TOOLBAR_POSITION(1), "icons.clip"); + TOOLBAR_BUTTON("apps", "Apps", TOOLBAR_POSITION(2), "fake.clip"); + TOOLBAR_BUTTON("settings", "Settings", TOOLBAR_POSITION(3), "icons.clip"); + + part { + name: "launcher.swallow"; + type: SWALLOW; + mouse_events: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; + } + rel2 { relative: 1.0 0.0; + to: "menu.background"; + offset: -1 50; + } + } + } + + + part { name: "apps-list-bg"; + type: RECT; + clip_to: "apps-list"; + mouse_events: 0; + description { state: "default" 0.0; + rel1 { + to: "apps-list"; + relative: 0.0 0.0; + } + rel2 { + to: "apps-list"; + relative: 1.0 1.0; + offset: 0 -128; + } + color: 0 0 0 220; + } + } + part { name: "apps-list-swallow"; + clip_to: "apps-list"; + type: SWALLOW; + repeat_events: 1; + + description { state: "default" 0.0; + fixed: 1 1; + rel1 { + to: "apps-list"; + relative: 0.0 0.0; + offset: 0 -1; + } + rel2 { + to: "apps-list"; + relative: 1.0 1.0; + offset: -1 -128; + } + } + + } + + part { name: "apps-list"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + fixed: 1 1; + visible: 0; + color: 255 255 255 0; + + rel1 { + relative: 0.0 0.0; + + } + rel2 { + relative: 1.0 1.0; + } + } + description { state: "visible" 0.0; + rel1 { + relative: 0.0 0; + } + rel2 { + relative: 1.0 1.0; + } + } + } + + + part { + name: "windowlist.clip"; + type: RECT; + mouse_events: 0; + description { + state: "default" 0.0; + visible: 0; + color: 255 255 255 0; + } + description { + state: "show" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part { + name: "windowlist.bg"; + type: RECT; + mouse_events: 0; + clip_to: "windowlist.clip"; + + description { + state: "default" 0.0; + color: 0 0 0 200; + } + } + + part { + name: "windowlist.swallow"; + type: SWALLOW; + mouse_events: 1; + clip_to: "windowlist.clip"; + description { + state: "default" 0.0; + } + } + + part { + name: "inwin.clip"; + type: RECT; + mouse_events: 0; + description { + state: "default" 0.0; + visible: 0; + color: 255 255 255 0; + } + description { + state: "show" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + part { + name: "inwin.mask"; + type: RECT; + mouse_events: 0; + clip_to: "inwin.clip"; + description { + state: "default" 0.0; + color: 0 0 0 200; + } + } + + part { + name: "inwin.bg"; + type: IMAGE; + clip_to: "inwin.clip"; + mouse_events: 1; + description { + state: "default" 0.0; + image.normal: "inwin_bg.png"; + image.border: 40 40 42 40; + /* rel1.offset: 16 64; */ + /* rel2.offset: -15 -63; */ + } + } + + part { + name: "inwin.text.title"; + type: TEXT; + clip_to: "inwin.clip"; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + rel1.to: "inwin.bg"; + rel1.offset: 50 40; + rel1.relative: 0 0; + rel2.to: "inwin.bg"; + rel2.offset: -49 40; + rel2.relative: 1 0; + fixed: 1 1; + align: 0 0; + color: 255 255 255 200; + text { + align: 0 0; + size: 14; + min: 0 1; + font: "Sans,Bold"; + } + } + } + + part { + name: "separator"; + type: IMAGE; + clip_to: "inwin.clip"; + mouse_events: 0; + description { + min: 2 2; + max: 9999 2; + state: "default" 0.0; + fixed: 1 1; + image.normal: "separator.png"; + rel1.relative: 0 1; + rel1.offset: 40 8; + rel1.to_y: "inwin.text.title"; + rel1.to_x: "inwin.bg"; + rel2.relative: 1 1; + rel2.offset: -39 8; + rel2.to_x: "inwin.bg"; + rel2.to_y: "inwin.text.title"; + } + } + + part { + name: "inwin.swallow.content"; + type: SWALLOW; + clip_to: "inwin.clip"; + mouse_events: 1; + description { + state: "default" 0.0; + rel1.to_y: "separator"; + rel1.offset: 34 8; + rel2.to: "inwin.bg"; + rel2.offset: -34 -34; + + } + } + + } + programs { + program { name: "theme-load"; + signal: "load"; + script { + set_int(apps_list_visible, 0); + set_state(PART:"view-mask", "hidden", 0.0); + } + } + program { name: "press-view-mask"; + signal: "mouse,down,*"; + source: "view-mask"; + script { + if (get_int(apps_list_visible) == 1) { + apps_list_hide(); + } else { + run_program(PROGRAM:"hide-view-mask"); + } + } + } + + program { name: "hide-view-mask"; + action: STATE_SET "hidden" 0.0; + target: "view-mask"; + target: "icons.clip"; + transition: ACCELERATE 0.2; + } + program { name: "show-white-view-mask"; + action: STATE_SET "hidden" 0.0; + target: "view-mask"; + target: "icons.clip"; + transition: DECELERATE 0.2; + } + program { name: "show-black-view-mask"; + action: SIGNAL_EMIT "view,mask,show" ""; + action: STATE_SET "masking-black" 0.0; + target: "view-mask"; + target: "icons.clip"; + transition: DECELERATE 0.2; + } + program { name: "show-apps-list"; + action: STATE_SET "visible" 0.0; + target: "apps-list"; + transition: ACCELERATE 0.2; + } + + program { name: "hide-apps-list"; + action: STATE_SET "default" 0.0; + target: "apps-list"; + transition: DECELERATE 0.2; + } + + program { name: "appslist,toggle"; + action: STATE_SET "visible" 0.0; + signal: "appslist,toggle"; + source: "elfe"; + script { apps_list_toggle(); } + after: "apps-released"; + } + program { name: "toggle-apps-list"; + signal: "mouse,clicked,*"; + source: "button-apps-normal"; + script { apps_list_toggle(); } + after: "apps-released"; + } + program { name: "windowlist,show"; + signal: "windowlist,show"; + source: "elfe"; + action: STATE_SET "show" 0.0; + target: "windowlist.clip"; + transition: ACCELERATE 0.2; + } + + program { name: "inwin,show"; + signal: "inwin,show"; + source: "elfe"; + action: STATE_SET "show" 0.0; + target: "inwin.clip"; + transition: ACCELERATE 0.2; + } + + program { name: "inwin,hide"; + signal: "inwin,hide"; + source: "elfe"; + action: STATE_SET "default" 0.0; + target: "inwin.clip"; + transition: DECELERATE 0.5; + } + + } + } + group { + name: "elfe/desktop/gadget/frame"; + parts { + part { + name: "elfe.swallow.content"; + type: SWALLOW; + description { + state: "default" 0.0; + } + } + } + } + + group { + name: "elfe/desktop/frame"; + parts { + part { + name: "frame"; + type: RECT; + description { + state: "vibration" 0.0; + min: 100 100; + max: 100 100; + align: 0.5 0.5; + color: 200 128 0 255; + // image.normal: "frame.png"; + /* map { */ + /* on: 0; */ + /* rotation.z: 0; */ + /* } */ + } + description { + state: "vibration" 0.1; + inherit: "default" 0.0; + rel1.offset: -30 -30; + rel2.offset: 30 30; + + /* map { */ + /* on: 0; */ + /* rotation.z: -2.5; */ + /* } */ + } + description { + state: "vibration" 0.2; + inherit: "default" 0.0; + rel1.offset: 30 30; + rel2.offset: -30 -30; + /* map { */ + /* on: 0; */ + /* rotation.z: 2.5; */ + /* } */ + } + } + } + programs { + program { + name: "load"; + signal: "load"; + after: "vib1"; + } + + program { + name: "vib1"; + action: STATE_SET "vibration" 0.1; + target: "frame"; + transition: "SINUSOIDAL" 0.2; + after: "vib2"; + } + program { + name: "vib2"; + action: STATE_SET "vibration" 0.2; + target: "frame"; + transition: "SINUSOIDAL" 0.2; + after: "vib1"; + } + } + } + + group { + name: "elfe/desktop/app/frame"; + parts { + images { + image: "app_text_bg.png" COMP; + } + + part { + name: "clip"; + type: RECT; + description { + state: "default" 0.0; + color: 255 255 255 255; + } + description { + state: "active" 0.0; + color: 255 255 255 128; + } + } + + part { + name: "text.bg"; + clip_to: "clip"; + description { + rel1.to: "elfe.text.label"; + rel1.offset: 0 -3; + rel2.to: "elfe.text.label"; + image.normal: "app_text_bg.png"; + image.border: 4 4 4 4; + + } + } + part { + name: "elfe.text.label"; + type: TEXT; + effect: SHADOW; + clip_to: "clip"; + scale: 1; + description { + state: "default" 0.0; + align: 0.5 1; + rel1.relative: 0 1; + rel1.offset: 4 -2; + rel2.relative: 1 1; + rel2.offset: -4 -2; + color3: 0 0 0 0; + color: 220 220 220 0; + visible: 0; + text { + font: "Sans"; + size: 10; + min: 0 1; + } + } + description { + state: "normal" 0.0; + align: 0.5 1; + rel1.relative: 0 1; + rel1.offset: 4 -2; + rel2.relative: 1 1; + rel2.offset: -4 -2; + color3: 0 0 0 200; + color: 220 220 220 255; + text { + font: "Sans"; + size: 10; + min: 0 1; + } + } + } + + part { + name: "elfe.swallow.content"; + type: SWALLOW; + clip_to: "clip"; + description { + state: "default" 0.0; + max: 72 72; + align: 0.5 0.8; + aspect: 1 1; + aspect_preference: BOTH; + rel1.offset: 32 32; + rel2.relative: 1 0; + rel2.offset: -32 -32-4; + rel2.to_y: "elfe.text.label"; + } + description { + state: "normal" 0.0; + inherit: "default" 0.0; + rel1.offset: 0 0; + rel2.offset: 0 -4; + } + description { + state: "big" 0.0; + inherit: "default" 0.0; + rel1.offset: -16 -16; + rel2.offset: 16 16-4; + } + program { + name: "bt_click"; + signal: "mouse,clicked,1"; + source: "elfe.swallow.content"; + action: SIGNAL_EMIT "elfe,action,click" ""; + } + program { + name: "bt_down"; + signal: "mouse,down,1"; + source: "elfe.swallow.content"; + action: STATE_SET "active" 0.0; + transition: ACCELERATE 0.5; + target: "clip"; + } + program { + name: "bt_up"; + signal: "mouse,up,1"; + source: "elfe.swallow.content"; + action: STATE_SET "default" 0.0; + transition: ACCELERATE 0.5; + target: "clip"; + } + } + + + } + programs { + program { + name: "load,text"; + signal: "load"; + action: STATE_SET "normal" 0.0; + target: "elfe.text.label"; + transition: ACCELERATE 0.2; + } + program { + name: "load"; + signal: "load"; + action: STATE_SET "big" 0.0; + target: "elfe.swallow.content"; + transition: ACCELERATE 0.1; + after: "normal"; + } + program { + name: "normal"; + signal: "normal"; + action: STATE_SET "normal" 0.0; + target: "elfe.swallow.content"; + transition: ACCELERATE 0.1; + } + } + } + + group { + name: "elfe/gadget/places/over"; + parts { + part { + name: "clip"; + clip_to: "over"; + type: RECT; + mouse_events: 0; + description { + state: "default" 0.0; + color: 255 255 255 0 ; + visible: 0; + } + description { + state: "free" 0.0; + color: 0 255 0 128; + visible: 1; + } + description { + state: "busy" 0.0; + color: 255 0 0 128; + visible: 1; + } + } + + part { + name: "bg"; + type: RECT; + clip_to: "clip"; + mouse_events: 0; + description { + state: "default" 0.0; + color: 255 255 255 255; + } + } + part { + name: "over"; + type: RECT; + mouse_events: 0; + description { + state: "default" 0.0; + color: 255 255 255 0; + visible: 0; + } + description { + state: "in" 0.0; + color: 255 255 255 255; + } + } + part { + name: "event"; + type: RECT; + mouse_events: 1; + repeat_events: 1; + pointer_mode: NOGRAB; + description { + state: "default" 0.0; + color: 255 255 255 0; + } + } + } + programs { + program { + name: "free"; + signal: "place,free"; + source: "elfe"; + action: STATE_SET "free" 0.0; + target: "clip"; + transition: DECELERATE 0.5; + } + program { + name: "busy"; + signal: "place,busy"; + source: "elfe"; + action: STATE_SET "busy" 0.0; + target: "clip"; + transition: DECELERATE 0.5; + } + program { + name: "mouse,in"; + signal: "mouse,in"; + source: "*"; + action: STATE_SET "in" 0.0; + target: "over"; + transition: ACCELERATE 0.5; + } + program { + name: "mouse,out"; + signal: "mouse,out"; + source: "*"; + action: STATE_SET "default" 0.0; + target: "over"; + transition: DECELERATE 0.5; + } + + } + } + group { + name: "elfe/desktop/layout"; + parts { + part { + name: "elfe.swallow.content"; + type: SWALLOW; + description { + state: "default" 0.0; + rel2.offset: 0 -32; + + } + + } + part { + name: "elfe.swallow.selector"; + type: SWALLOW; + description { + state: "default" 0.0; + rel1.offset: 0 -32; + rel1.relative: 0 1; + + } + + } + } + } + + group { + name: "elfe/desktop/selector"; + min: 32 32; + max: 32 32; + images { + image: "desk_unselected.png" COMP; + image: "desk_selected.png" COMP; + } + parts { + part { + name: "bg"; + description { + min: 18 18; + max: 18 18; + align: 0.5 0.5; + state: "default" 0.0; + image.normal: "desk_unselected.png"; + + + } + description { + min: 18 18; + max: 18 18; + align: 0.5 0.5; + state: "selected" 0.0; + image.normal: "desk_selected.png"; + + } + } + } + programs { + program { + name: "select"; + signal: "select"; + source: "elfe"; + action: STATE_SET "selected" 0.0; + target: "bg"; + transition: ACCELERATE 0.2; + } + program { + name: "unselect"; + signal: "unselect"; + source: "elfe"; + action: STATE_SET "default" 0.0; + target: "bg"; + transition: DECELERATE 0.2; + } + + } + } + +} diff --git a/data/themes/default/elm.edc b/data/themes/default/elm.edc new file mode 100644 index 0000000..74a0997 --- /dev/null +++ b/data/themes/default/elm.edc @@ -0,0 +1,818 @@ +group { name: "elm/scroller/base/default"; + alias: "elm/list/base/default"; + alias: "elm/genlist/base/default"; + alias: "elm/gengrid/base/default"; + alias: "elm/list/base/default"; + images { + image: "scrollbar-knob.png" COMP; + image: "scrollbar-bg.png" COMP; + } + script { + public sbvis_v, sbvis_h, sbalways_v, sbalways_h; + } + parts { + part { name: "bg"; + type: RECT; + description { state: "default" 0.0; + color: 0 0 0 0; + } + } + part { name: "clipper"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + rel1.to: "bg"; + rel2.to: "bg"; + } + } + part { name: "elm.swallow.content"; + clip_to: "clipper"; + type: SWALLOW; + description { state: "default" 0.0; + } + } + part { name: "sb_vbar_clip_master"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "sb_vbar_clip"; + clip_to: "sb_vbar_clip_master"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "sb_vbar"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + fixed: 1 1; + visible: 0; + min: 2 32; + align: 1.0 0.0; + rel1 { + relative: 1.0 0.0; + offset: -8 25; + } + rel2 { + relative: 1.0 0.0; + offset: -7 -7; + to_y: "sb_hbar"; + } + } + } + part { name: "sb_vbar_runner"; + clip_to: "sb_vbar_clip"; + mouse_events: 0; + description { state: "default" 0.0; + min: 3 3; + max: 3 99999; + rel1.to: "sb_vbar"; + rel2.to: "sb_vbar"; + fixed: 1 1; + } + } + part { name: "vknob-bg"; + type: IMAGE; + mouse_events: 0; + clip_to: sb_vbar_clip; + description { state: "default" 0.0; + image.normal: "scrollbar-bg.png"; + image.border: 1 1 3 2; + max: 3 99999; + rel1 { + relative: 1.0 0.0; + offset: -10 25; + } + rel2 { + relative: 1.0 1.0; + offset: -6 -25; + } + } + } + part { name: "elm.dragable.vbar"; + clip_to: "sb_vbar_clip"; + mouse_events: 0; + dragable { + x: 0 0 0; + y: 1 1 0; + confine: "sb_vbar"; + } + description { state: "default" 0.0; + fixed: 1 1; + min: 2 12; + rel1 { + relative: 1.0 0.5; + offset: -3 0; + to: "sb_vbar"; + } + rel2 { + relative: 1.0 0.5; + offset: -1 0; + to: "sb_vbar"; + } + image { + normal: "scrollbar-knob.png"; + } + } + } + part { name: "sb_hbar_clip_master"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "sb_hbar_clip"; + clip_to: "sb_hbar_clip_master"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "sb_hbar"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + fixed: 1 1; + visible: 0; + min: 17 17; + align: 0.0 1.0; + rel1 { + relative: 0.0 1.0; + offset: 0 -2; + } + rel2 { + relative: 0.0 1.0; + offset: -1 -2; + to_x: "sb_vbar"; + } + } + } + part { name: "sb_hbar_runner"; + clip_to: "sb_hbar_clip"; + mouse_events: 0; + description { state: "default" 0.0; + min: 3 3; + max: 99999 3; + rel1.to: "sb_hbar"; + rel2.to: "sb_hbar"; + } + } + part { name: "elm.dragable.hbar"; + clip_to: "sb_hbar_clip"; + mouse_events: 0; + dragable { + x: 1 1 0; + y: 0 0 0; + confine: "sb_hbar"; + } + description { state: "default" 0.0; + fixed: 1 1; + min: 17 17; + rel1 { + relative: 0.5 0.5; + offset: 0 0; + to: "sb_hbar"; + } + rel2 { + relative: 0.5 0.5; + offset: 0 0; + to: "sb_hbar"; + } + } + } + part { name: "sb_hbar_over1"; + clip_to: "sb_hbar_clip"; + mouse_events: 0; + description { state: "default" 0.0; + rel1.to: "elm.dragable.hbar"; + rel2.relative: 1.0 0.5; + rel2.to: "elm.dragable.hbar"; + } + } + part { name: "sb_hbar_over2"; + clip_to: "sb_hbar_clip"; + mouse_events: 0; + description { state: "default" 0.0; + rel1.to: "elm.dragable.hbar"; + rel2.to: "elm.dragable.hbar"; + } + } + } + programs { + program { name: "load"; + signal: "load"; + source: ""; + script { + set_state(PART:"sb_hbar_clip", "hidden", 0.0); + set_state(PART:"sb_vbar_clip", "hidden", 0.0); + set_int(sbvis_h, 0); + set_int(sbalways_v, 0); + set_int(sbalways_h, 0); + + emit("do-show-vbar", ""); + set_int(sbvis_v, 1); + } + } + + program { name: "vbar_show"; + signal: "elm,action,show,vbar"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "sb_vbar_clip_master"; + } + program { name: "vbar_hide"; + signal: "elm,action,hide,vbar"; + source: "elm"; + action: STATE_SET "hidden" 0.0; + target: "sb_vbar_clip_master"; + } + program { name: "vbar_show_always"; + signal: "elm,action,show_always,vbar"; + source: "elm"; + script { + new v; + v = get_int(sbvis_v); + v |= get_int(sbalways_v); + if (!v) { + set_int(sbalways_v, 1); + emit("do-show-vbar", ""); + set_int(sbvis_v, 1); + } + } + } + program { name: "vbar_show_notalways"; + signal: "elm,action,show_notalways,vbar"; + source: "elm"; + script { + new v; + v = get_int(sbalways_v); + if (v) { + set_int(sbalways_v, 0); + v = get_int(sbvis_v); + if (!v) { + emit("do-hide-vbar", ""); + set_int(sbvis_v, 0); + } + } + } + } + program { name: "sb_vbar_show"; + signal: "do-show-vbar"; + source: ""; + action: STATE_SET "default" 0.0; + transition: LINEAR 1.0; + target: "sb_vbar_clip"; + } + program { name: "sb_vbar_hide"; + signal: "do-hide-vbar"; + source: ""; + action: STATE_SET "hidden" 0.0; + transition: LINEAR 1.0; + target: "sb_vbar_clip"; + } + + program { name: "hbar_show"; + signal: "elm,action,show,hbar"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "sb_hbar_clip_master"; + } + program { name: "hbar_hide"; + signal: "elm,action,hide,hbar"; + source: "elm"; + action: STATE_SET "hidden" 0.0; + target: "sb_hbar_clip_master"; + } + program { name: "hbar_show_always"; + signal: "elm,action,show_always,hbar"; + source: "elm"; + script { + new v; + v = get_int(sbvis_h); + v |= get_int(sbalways_h); + if (!v) { + set_int(sbalways_h, 1); + emit("do-show-hbar", ""); + set_int(sbvis_h, 1); + } + } + } + program { name: "hbar_show_notalways"; + signal: "elm,action,show_notalways,hbar"; + source: "elm"; + script { + new v; + v = get_int(sbalways_h); + if (v) { + set_int(sbalways_h, 0); + v = get_int(sbvis_h); + if (!v) { + emit("do-hide-hbar", ""); + set_int(sbvis_h, 0); + } + } + } + } + program { name: "sb_hbar_show"; + signal: "do-show-hbar"; + source: ""; + action: STATE_SET "default" 0.0; + transition: LINEAR 1.0; + target: "sb_hbar_clip"; + } + program { name: "sb_hbar_hide"; + signal: "do-hide-hbar"; + source: ""; + action: STATE_SET "hidden" 0.0; + transition: LINEAR 1.0; + target: "sb_hbar_clip"; + } + } +} + +//////////////////////////////////////////////////// +group { name: "elm/genlist/item/default/default"; + alias: "elm/genlist/item_odd/default/default"; + alias: "elm/list/item_odd/default"; + alias: "elm/list/item/default"; + data.item: "stacking" "above"; + data.item: "selectraise" "on"; + data.item: "labels" "elm.text"; + data.item: "icons" "elm.swallow.icon elm.swallow.end"; + data.item: "treesize" "20"; + // data.item: "states" ""; + images { + image: "sel_bg.png" COMP; + } + parts { + part { name: "bg"; + + mouse_events: 0; + description { state: "default" 0.0; + visible: 0; + color: 255 255 255 0; + + image { + normal: "sel_bg.png"; + border: 15 15 15 15; + } + image.middle: SOLID; + } + description { state: "selected" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + part { name: "elm.swallow.pad"; + type: SWALLOW; + description { state: "default" 0.0; + fixed: 1 0; + align: 0.0 0.5; + rel1 { + + relative: 0.0 0.0; + offset: 4 4; + } + rel2 { + + relative: 0.0 1.0; + offset: 4 -4; + } + } + } + part { name: "elm.swallow.icon"; + type: SWALLOW; + description { state: "default" 0.0; + fixed: 1 0; + align: 0.0 0.5; + rel1 { + to: "elm.swallow.pad"; + relative: 1.0 0.0; + offset: -1 4; + } + rel2 { + to: "elm.swallow.pad"; + relative: 1.0 1.0; + offset: -1 -5; + } + } + } + part { name: "elm.swallow.end"; + type: SWALLOW; + description { state: "default" 0.0; + fixed: 1 0; + align: 1.0 0.5; + aspect: 1.0 1.0; + aspect_preference: VERTICAL; + rel1 { + relative: 1.0 0.0; + offset: -5 4; + } + rel2 { + relative: 1.0 1.0; + offset: -5 -5; + } + } + } + part { name: "elm.text"; + type: TEXT; + + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 { + to_x: "elm.swallow.icon"; + relative: 1.0 0.0; + offset: 8 4; + } + rel2 { + to_x: "elm.swallow.end"; + relative: 0.0 1.0; + offset: -1 -5; + } + color: 255 255 255 200; + text { + font: "Comfortaa"; + size: 18; + min: 0 1; + align: 0.0 0.5; + } + } + description { state: "selected" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + } + } + + part { + name: "event"; + type: RECT; + repeat_events: 1; + description { + state: "default" 0.0; + color: 0 0 0 0; + } + } + } + programs { + program { + name: "go_active"; + signal: "elm,state,selected"; + source: "elm"; + action: STATE_SET "selected" 0.0; + target: "bg"; + target: "elm.text"; + } + program { + name: "go_passive"; + signal: "elm,state,unselected"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "bg"; + target: "elm.text"; + transition: LINEAR 0.1; + } + } +} + + +//////////////////////////////////////////////////// +group { name: "elm/genlist/item/double_label/default"; + alias: "elm/genlist/item_odd/double_label/default"; + data.item: "stacking" "above"; + data.item: "selectraise" "on"; + data.item: "labels" "elm.text elm.text.2"; + data.item: "icons" "elm.swallow.icon elm.swallow.end"; + data.item: "treesize" "20"; + images { + image: "sel_bg.png" COMP; + } + parts { + part { name: "bg"; + + mouse_events: 0; + description { state: "default" 0.0; + visible: 0; + color: 255 255 255 0; + + image { + normal: "sel_bg.png"; + border: 15 15 15 15; + } + image.middle: SOLID; + } + description { state: "selected" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + + + + part { name: "elm.swallow.pad"; + type: SWALLOW; + description { state: "default" 0.0; + fixed: 1 0; + align: 0.0 0.5; + rel1 { + + relative: 0.0 0.0; + offset: 4 4; + } + rel2 { + + relative: 0.0 1.0; + offset: 4 -4; + } + } + } + part { name: "elm.swallow.icon"; + type: SWALLOW; + description { state: "default" 0.0; + fixed: 1 0; + align: 0.0 0.5; + rel1 { + to: "elm.swallow.pad"; + relative: 1.0 0.0; + offset: -1 4; + } + rel2 { + to: "elm.swallow.pad"; + relative: 1.0 1.0; + offset: -1 -5; + } + } + } + part { name: "elm.swallow.end"; + type: SWALLOW; + description { state: "default" 0.0; + fixed: 1 0; + align: 1.0 0.5; + aspect: 1.0 1.0; + aspect_preference: VERTICAL; + rel1 { + relative: 1.0 0.0; + offset: -5 4; + } + rel2 { + relative: 1.0 1.0; + offset: -5 -5; + } + } + } + part { name: "elm.text"; + type: TEXT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 { + to_x: "elm.swallow.icon"; + relative: 1.0 0.0; + offset: 8 12; + } + rel2 { + to_x: "elm.swallow.end"; + relative: 0.0 0.5; + offset: -1 -11; + } + color: 255 255 255 200; + text { + font: "Comfortaa"; + size: 18; + min: 1 1; + align: 0.0 0.5; + } + } + description { state: "selected" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + } + } + part { name: "elm.text.2"; + type: TEXT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 { + to_x: "elm.swallow.icon"; + relative: 1.0 0.5; + offset: 8 12; + } + rel2 { + to_x: "elm.swallow.end"; + relative: 0.0 1.0; + offset: -1 -11; + } + color: 255 255 255 200; + text { + font: "Comfortaa"; + size: 18; + min: 1 1; + align: 0.0 0.5; + } + } + description { state: "selected" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + } + } + + part { + name: "event"; + type: RECT; + repeat_events: 1; + description { + state: "default" 0.0; + color: 0 0 0 0; + } + } + } + programs { + program { + name: "go_active"; + signal: "elm,state,selected"; + source: "elm"; + action: STATE_SET "selected" 0.0; + target: "bg"; + target: "elm.text"; + } + program { + name: "go_passive"; + signal: "elm,state,unselected"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "bg"; + target: "elm.text"; + transition: LINEAR 0.1; + } + } +} + + +/////////////////////////////////////////////////////////////////////////////// +group { name: "elm/gengrid/item/default/default"; + data.item: "labels" "elm.text"; + data.item: "icons" "elm.swallow.icon"; + images { + + } + parts { + part { + name: "event"; + type: RECT; + repeat_events: 1; + description { + state: "default" 0.0; + color: 0 0 0 0; + } + } + part { + name: "base"; + mouse_events: 0; + type: RECT; + description { + state: "default" 0.0; + color: 255 255 255 0; + rel1.offset: 16 16; + rel2.offset: -16 -16; + } + } + part { name: "bg"; + mouse_events: 0; + description { state: "default" 0.0; + visible: 0; + color: 255 255 255 0; + image { + normal: "sel_bg.png"; + border: 15 15 15 15; + } + image.middle: SOLID; + } + description { state: "selected" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; + } + } + part { name: "elm.swallow.icon"; + clip_to: "disclip"; + type: SWALLOW; + description { state: "default" 0.0; + aspect: 1 1; + aspect_preference: BOTH; + align: 0.5 0.5; + rel1 { + to: "bg"; + relative: 0.0 0.0; + } + rel2 { + to_y: "elm.text"; + relative: 1.0 0.0; + } + } + } + + part { name: "elm.text"; + type: TEXT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + rel1 { + relative: 0.0 1.0; + to: "base"; + } + rel2 { + relative: 1.0 1.0; + to: "base"; + } + align: 0 1; + color: 200 200 200 255; + text { + font: "Sans"; + size: 10; + min: 0 1; + align: 0.5 0.5; + } + } + description { state: "selected" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + color3: 0 0 0 64; + } + } + + + part { name: "disclip"; + type: RECT; + description { state: "default" 0.0; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + color: 255 255 255 64; + } + } + } + programs { + program { + name: "go_disabled"; + signal: "elm,state,disabled"; + source: "elm"; + action: STATE_SET "disabled" 0.0; + target: "disclip"; + } + program { + name: "go_enabled"; + signal: "elm,state,enabled"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "disclip"; + } + program { + name: "go_active"; + signal: "elm,state,selected"; + source: "elm"; + action: STATE_SET "selected" 0.0; + target: "bg"; + + target: "elm.text"; + } + program { + name: "go_passive"; + signal: "elm,state,unselected"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "bg"; + + target: "elm.text"; + transition: LINEAR 0.1; + } + } +} diff --git a/data/themes/default/images/app_text_bg.png b/data/themes/default/images/app_text_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..f3213e564c99bcfad84819ab793df945060519a6 GIT binary patch literal 297 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

    c^{gRRJ`J``YelBLzF{U?xpZ)sjKRUE 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

    efJgzr`n)e1OA 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 R^O67n002ovPDHLkV1hT$Fkk=x literal 0 HcmV?d00001 diff --git a/data/themes/default/images/bg_tile.png b/data/themes/default/images/bg_tile.png new file mode 100644 index 0000000000000000000000000000000000000000..83b1ec910e6fb58e2411d5c89a192844617b2f7d GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VV{wqX6T`Z5GB1G~wj^(N7l!{J zxM1({$v_d#0*}aI1_o|n5N2eUHAey{$X?><>&kwMlSN2XzCG&HVW3csr;B5V#p$)@ zym=WEc^EEgx@ob#^;kK1??i#R*js`hj25k$>YaA2V9BbjDM<{f!q!dtH^gd=PD@~! zeL%ykK{A4UvjM}wne4^Qac9oVN=dqYc>fK-nuFUOXm4XtzQN+Qk@3s{s~N3~9%^hK Z7&nXhhW?*7WiHTO22WQ%mvv4FO#rF9Oke;2 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/desk_selected.png b/data/themes/default/images/desk_selected.png new file mode 100644 index 0000000000000000000000000000000000000000..e89caaa0b5482c5a798c51ac5a4686123a34d075 GIT binary patch literal 941 zcmV;e15*5nP)Px#24YJ`L;zO+fB@(`l-X_o000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipP= z5<4aK;11FN000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}0009BNklTF~-p4s-hGLD(D>R5tnr5W==J^fbZxF)%0ioZaUbjKO z?MweNJnT;e-GN}|fdC|bjG{kt2<<+G`f)JUC#Xy_O?4?+0YFTF*Yi9qVg37^x5C~% zFzAZxifDgd_3%JF!O-4BoRnUrtW=_nL;w&xImKMWhVv7Y#k(W8!}g82CBqYQP5 zMfOoK9^H4-$!BgpyXO~+_t-=svbOS?90x90RQceDnxXqt%H z`F!z#pPl#OjZLj<2>@uxi!DDryI)d^lUi-*gDfPdtYMM@{Z25wZi9YFQ_ZhcLI&#s zYPrezr}4(7HjQggv0aTZjX|0sznFd^_1e#5=ta;WoyWzZ*KLpjZle^fw2?>zsVLNm z)TXW_P}YKsSy>c;;shkz7O1+2N)5DG7L}fkQd0OQ5Z(y-%OU;_1w2DcfrBSUgq#=` zMCwHH65<@h`;|Eds!EWx&k1rt#JNZCwZw)-I~V=*))#cQnW{3Fh=D|F)YwFUXD{z4 zXbl!fYh(gXG~(w<&k=VbX!|JZAM`7ynX4vd0=jVJ`sQDUoL;&aaC z*LX2&ATLT0{6vlBciP&gO!C|S67!X-(|_ zv`AeYqy|m{$;di>VXQezt1P?I*)I1!1pli z$C1e_hcg#sNF@(AxFZhk$dx>BL57yY*|;*99Zagj_I3c#|Mf=x<74{`&qB`|>!>BQ P00000NkvXXu0mjfWDcwA literal 0 HcmV?d00001 diff --git a/data/themes/default/images/desk_unselected.png b/data/themes/default/images/desk_unselected.png new file mode 100644 index 0000000000000000000000000000000000000000..156950256342e596b2b307deccccbe8d5d68c6d6 GIT binary patch literal 388 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 AqW}N^ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/mainmenu_bg.png b/data/themes/default/images/mainmenu_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..582b184a758c939df5003a3d7adfec676325be28 GIT binary patch literal 38244 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%0D1xDDr2@NCJ75C*h8FYgVBFCJVRvRGHn)5c2` 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

    p3$EnOeW+fJyjfYuc7 zH-iA)MtB?RC4qC~U>9Fh&BB>)1ASuTN1=3f&hSjK3;@swCWhs3^Wu%EeyGU9x++_S zcxHyCvtyd+XhrJifyuOM{xeY4g)jT*XW!kLy+a)^IY!iVHxl_|_0b#vL_WJT*rOOu zW@kIWuw0k0)>5z0#1EPUep7b?*FXX}PT)OM$|G?VpFYz&z!*OSB{k=)sPBfBt5VPy zBKmlwF!x7aY+UmDhKKC-gOSvPrn8*wFyB9unXnXmvb+}RYVZ8Orysoejt$6=2tc7) zy3YME9LD*%A0B57>S&$~9=67%9d9Q1n@IpUKEP|l3qbk|=M?Hr65Sj*QiC)I0B~DJ zJG%PkY=CiC5Eejz<>&rUY*AZCsAfbn?2dGvrlir&JOrSO@%Zn3@p~svy!4i2`VFX- zl955Ri<+f*M!)wGtd(Z=O$UFo2~dj!-ru=1=^Rv)GEt4-Qkeh=#f)6O6O2enC$x^M z%Y{?=R92z;#rt#8mbF)G+WxU8*n9Z3JzbK!F+G6F0K2Y6eZH41%VaMFv$b5X=n}@wVrmq^UTvtmUZ{4{{QPzxz)Jsb zJ%uo|%6EGIeywZq)reN|R_f4JCPgDDxYdvc)?lVrW9D0OL~RE$p#NC^c~r<-2Kent tfahr&S|zZs4)wNNA@G0Mw&1R&{0scaKC)BckXrx%002ovPDHLkV1jn;5W@ff literal 0 HcmV?d00001 diff --git a/data/themes/default/images/music.png b/data/themes/default/images/music.png new file mode 100755 index 0000000000000000000000000000000000000000..8e6d1c20a6eaacf5025cf137f43ef47e44daa2ec GIT binary patch literal 5686 zcma)A^;eYd(|(p%IwTg9E@45CP&$?_>6AvKq+uzk2b3iQ1W~#X5Rnk15tas*4v~-$ zkdSUz;>+j#3*H}Q=AJoc=04XsbKlpTiP6i+}+WMt9b1__YrTFL}7P+AHuoD35oDgdDEQ&*BV z44B!r{O!SLlyZ~3sWZ!vtTRn6&qtVEUuEmaI$FK#bdtO1g;0<_07nMU1F{teLS@2m z_K&RGdE$fz)tv(xubKStr+*LdFmop;g0EjcdG=1+OV*9s&;NG~g|EkCWBupZZNJ*z zTALc#?)9_TpMyfzuya13t399j^bg~@>JR1rucKU!GE?y2#M0^4k!NeuAt4J8v_%;K z*eZ4PyRD;B8`zUZzz_M*uOhs!f8iFKeqo^sO=$bt;jbO+^73NgdjD(h^?Omu116>5 zvG@IuKKLi=75L4ejTF5SkTieyegG>7hz50&&-5?xDSQ{xUvYs(ciq@n;SZBS!_kb= znL%l}*&(&GeFOf9czZ|3Fo1^dgN8sVCNhW^C(TGrj{LmK^$V*&W!EZ+LQN=pX1ZdP zLi$@!JYecHq!Y+0rs?x1JY^Vq2&_X#EX$33G=!qrBUBKS4BByv9Ph>p9{z>Bn}KmA z@UE@LsBMslGQhqI|t0P+|3 zxIFm$QbC1!3{<%8%fGiw$N=q90-wz_colxSi>7-4?$Qx0;^ftvm9C^uZyBN`81I-6 zqVPmA#@9~FJnjq1dUdTroXCtLkLHm$VX-h|KnNMH^1}^8OUKA zDudt2h)q(bOoQC7duXnl1730z(d6T|$7sI;V63L}Y6@1x-OD5juNltB?KqTFf+!b- za_#CGv*So+JH#j6;sd%G;UAFe0sXC49oV7$yo40l@ST(n%cjr=^RXXcU#SFK<_v6J z#llo7Bw@e+_^eh*s!gcEik_4a#i*812osV32~?Hr^Y2GPR-J@I*~9N@l#&7!k%I%J z!PL+3lJ4PJuREC*SRIPZ0(Q<5ULTJDVo z19z1DaS&-}ni?2HkC}BxvM1Zrj^vv$1o@5Fi3T8&4JH#^YmzhH__)YTt4^MdAt5T~ zXw*xHE!RaxP~uQO)$a-(I~4&Q5rGYEt(={L@DvYqvIJ6@l&=6P@E*cSORKBN!TB_p7uLver@)Q?^`Iaz-)s27 z{I!wuSo23aX#QigIu%c-b!%=ZSOj5ZleKfUg3W1buaZY3mfL!a-BgQCD%Qta(h6K@ zO34Bx3i(eNxZdDSEPH--BdNxmcNmcPAh&*z!Fn|mhfgRJ)m~fok=^@*X_FKu9|6hG zwOZ2s>lIQCe2&huE)h|(a{Y0kYM$Qw*N;TT?*gz&9M{1Y1il4MmWD=8Y@JLpy*~m) z>gDNDaoBX%91i|JQ<_eygh(?P0FvjJ8*;)O5)vX;iVrv}ChLTTxjuisLiHXenJ!?3 z6Dg-R0FCx4^O{x*MX?WR^;9WJmr^$)dohb6jhqfAq30OK>!nduvD3+um%GCjz+^IT z%pSzS!9hpPB#FEOhw0V<14|N7jyZvUg&c-B(KwlZA$w`lJ|Qnm=GG3+p91xiw7TAz zAOhBiT4Mx0kpl5valHeE9yRocQo|;)MP4u#H^L9%&5R&I(1FbCpGiQh1RbKH@94vB zwH~Q=>1l zGmfQoHsVv>`XvGn5H=O+aEGcfwjTSf+0oH_n?eX4XNRG6SlCTx!p(vJgl!|iOqHQf zSj4KX5W++OCKh~IK4>B>tFJ#@x|i8D)}_+|`F+bWeBnx!tvdrB?nJo(JVM^gFSHg+3D{8MjxZ%=u%#MwMR zaa2N;ii)f}9?#cZUd{Av2|xD|wXmtE(I(;Jy!Yo>dZaxUv^>9dVTuhV1y{o)ysU@!8{mCn7CYj%k@Pdjz!gch=*7M`X5 z!){!NRBcBj3&I+Mu8rWF+fm6gS{>LTaPx@YcN}7@Mkv6D{g#2_@@3J-IQ;(>qQi=i zMA1BMxRlHa_Cqglmc0ODlBY3D%TN@7kKOK-{*~;6dj30g z9?p@GdeeO{6geydTCofOSs1 z244PBRox&>V5)ZiWPA2hLpGO%v%s4EP;{%^j(pG5PJfg7i|KW27ubRCYX zEZ3hXfx(fH)`iu>d7Gg_X#4{Q335$NkAU_{%OAx^Gtp?1mDoc#rL6S7>-nJFt2*7j zHieOHGES)?u1Kfkn5EZdgcjaKnH5KbXBy&pEH>R7HVgk#4f;I}<=N!4}O|@P~nAn^!7b<5K-lr@S>= zsTCZ~Q#t@Cb8~t4s>u61W@J)vjI#GzwDpboTzZIsfk9z9v6?kb-$wRt|K0iRYT~<{ zJ*6890}3DXDq19b{tocyGuO6K0aZG(6)kvGGns>fgTCoW&RL1A8dCA?zU}P=<#OTC zbMxR_9paP3CHp<$1ektCK+2_Hbx>Q-wF#GPHoYUc)wR~M38%zqn zT>K0A?P(?NVm+z%keHW#{BE#}R|JaU4! zYo|^+-6=3y-Ys{=8^soa5B8kkKaZa*OY26&^ z!|R^CJ@9YSGzeP5v{CqrR!dtuM`A^SL_1ru-fgxHIVYJQC0{4?TFKXr9F_3)?Tzi}&TkeDCvtf6YcZEK8tbsD z<5bM*L1iF3{$9h^1*t*#)NcBtj6|RqVn>Tu-COE(th8wKo<}x(I@LW6tqi)Z+WFA= z@`c}7^SvzC}4Aj8Ikwu{ZO%GXbaQsfMgZ95!Jf#WbLG<)lv zS~>v>@iyB|RGWtqm3KiBhLzp1>$6BpIukjYEsLP-<;oe09CoW_neYO4VREXDp4JAx z$tqweGHhdG6Z}(3fQ^2ZjI!~1YI-9+c^<|o9xj#>_4V!ULJ3@|BYeEHK#K< zwlFV(G+|@(!nT*78vAmUF>+-r{&HuFuWt53-h?Y> zC#Q7^z@44`j!0o;`B)yGnl@N=Ip;IHZPDzvO`^GWeb%+F)G6ltF8xuUS->Nng)XLa zfjR%j`z6PPE&%~&guu&#e(o@1sps`0p)rFaVh?AF(kQGNg#(ukRxu?}DAYCKA_|Ij z3*kR~eeE#;6K31lnV#O*DUP;QtoC^X3XE(hC75IU90gg|{Tvk9<7kKR8$=PxxQpZ< zGw>Vu0T6d~c82L`jNX2xVX-e^Zd!s>-)#xC&y|=y5UHvrT<>0AVQ)04uO&hF)kR%v zMRx-@cE$%;pKtIQKZ%6sEzt8x+AH|YX_ebir7!ey}Ipe&Gb*!O7 z!GF==xHklOM`z1#J!Y!yG3Z-VEOcZRSwa;wt(y7K&k+o$TTlsE=O+V^g{p6Jek!$c zi7$BGFy&+Eq`2Z<6R#5w{qw+wnfyZ~Q4wV*5@bb2>q3)x}{TvH}+ROJpi>b~@ zwTTVoW<8pB=YJL_B~H-HQc2a7t0+iOLV|EcB9EBC%k}m3g(q<#vvqD)T~GF;-FB03 z(6^oEs}L4-p3`jhd+z7l!}wOIi&M>XlIL+~9PrQ4z|r9R{5-0T?VB;ZQ2L;{6&o%w zZ-%bU<9B9CY>W<$4ysX6QL5&5s9i;AT*aBpwls9r=)69NQZ_S6u~DF<{I-5QiO76P zn}gC55y=>-$0sa~#H>L>U>p~}e}!FNp02eqtnc2G^t_O1aEP-OJxkOR94F~h^RMfG zHht1o?)*|xT-;-$BfWGxY*OK=3q{=JhrGli)X2aPL-B~l6sc}1Z~?`myY0snLmu}J z9Ur?j-9AKLD?yUw94Boa6BD75pYZI}Pb{2-OAy;w$-Li9KG>C6kGAhD{P%+D-`9jw z;R);L-pLA5ZHR^f%8-bxUt~m}1Oec$Jksyk5_eo;cHw)rx8!q+MZDhqcT*JI91g~u zNad&L)pfRj!vpQk?o9cbG!XX1#iTNOBFIeHXL>LNg7zgV`}6cOL=kytf#d|&)DmM^ ztBAxH5Pgq4MA+MsI8!MQT2Gz?x7~7flna4BUQN@*YzwuDFg)vdM|8)mpZu%XYYNNf z*yH+z(1YvN5aH(Zm+^M@dOM3ab;;S*UVCxn9xANqD-@LS>RNk=qgNvy#jxCOBxe-g zQ?|BVC}a?I4d8Kpq$NI@`~_hp{{1~a{;=Lu>fYf`T@b{=J!8`ET8A7@<}WQRElBxk z)551DiYHkWtm1ZEKXK1>Whn*>+w!hne%}T7_&W+w`w|a74$e`?U3!LIT^v(94dqoY z%;^;V#*?sgX{C0)INYD%|2&%cSj#3$-0M%9+{Jp~%?K}2rJ;j7w! z#VdJnA<>i7UY4-nz8LQe%2R25ZIW6lzxR`0xAvLT9~0>?@XtSv2T z9JE?1D{tB(-Gww3*o|i?PrBsim>#)YcEvoz+ppYM%OoNa*r5R?l1Y!5(FZwvNg+W# z><=seU2)&diOI<_mcC=|aM1phswtFJ@iS>USHZ8KW$vCf>43e(FiEzZf9xYh@+9v% z_#mL4xjTh|jv8+A!d~n3#lQa2($cb9Ud-Is-DOcb#Odkn{l6^7h_fk5t_BBcQZy-m z!GrQ49!W?@91e;tSOhMH6SPxEmU#8yH0?Z?$gTi3P&vJ7ynS(wKTm~_B#`S;y{&}p(Wn^Vt zE{zpw(%nwa*!tz(x4EP2*Qn0(`|VtvbNpW;g@LYZAenaSC#z{;Oq+Jw&Loi37(e%4 zDPa+}`Ig3;b^;b;JDQrBI(0Z(%HQjj`C6#q-{F8~r_e=)%xogWh6rnW)COti9Xxjd zzWl7Tf5!)}hM!K738xcoe1jc|**c0jro1_GhDL-w!K}|na1U%#RXRc_`_O6F)BBCS zBzmZEQ|ueK(;zTX&=Bcug^d7F0Wuk9_b0a@jOQvQXhwV_$nyiDbS!}zc0DSwy{>)2EWgpxgVnrzR%fV=`@aopQ27mkF1>cwGT0w;yXFPd Mm9>>B6l@~?2aLqWg8%>k literal 0 HcmV?d00001 diff --git a/data/themes/default/images/photo.png b/data/themes/default/images/photo.png new file mode 100644 index 0000000000000000000000000000000000000000..bae2d4d4f91e1562ed53b8b19f37465823d4fdef GIT binary patch literal 7700 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

    _)t--yJ^Xc0cN9Eei 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/scrollbar-bg.png b/data/themes/default/images/scrollbar-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..7cc956a1e80fca5b0eb30117d3dfe8d9ed5b74cc GIT binary patch literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^%s{Ng!3HGDx*s|MDaPU;cPEB*=VV?2Ic!PZ?k)`f zL2$v|<&%LToCO|{#S9GG!XV7ZFl&wkP>{XE)7O>#7N-!upw1(m1Sg=7ou`Xqh{pN1 z6F2fQC<+{&vwvdV|BHSL9Tf!b2TwS+Y09xvK9|2UdR%H)HS5^7mX05Wr*Ah)FHpBN fi9K`g3Ip%u$AWLBZ#D}9n#ADg>gTe~DWM4f<)J=+ literal 0 HcmV?d00001 diff --git a/data/themes/default/images/scrollbar-knob.png b/data/themes/default/images/scrollbar-knob.png new file mode 100644 index 0000000000000000000000000000000000000000..9cdf11f5790afbd4079869d46eca9441c978e6b5 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-Y!3HG1DAjj?IK@HkP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgg4P9c7N6II6Jr-4F3o-U3d9M_X8 h{{8v+9|+7D7!>o^jd+d=mjPuNJYD@<);T3K0RVYYCQbkV literal 0 HcmV?d00001 diff --git a/data/themes/default/images/sel_bg.png b/data/themes/default/images/sel_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..4d5ee8db4b9ce2226cc1514b54b22903b94b694b GIT binary patch literal 8238 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 g57?JKfG_&`f3a9&F@+LvUjP6A07*qoM6N<$g2T zAeehC^bJsiv%n*=n1O*?7=#%aX3dcR3bL1Y`ns~;X5!}2voQXA>o-tHvcxr_#5q4V zH#M(>!MP|ku_QG`p**uBL&4qCHz2%`PaLR7%+tj&gyVX$h@jxl^9-yyiHV5@X3Pxg X98As(Ek9I%Di}On{an^LB{Ts5S7$4v literal 0 HcmV?d00001 diff --git a/data/themes/default/images/settings.png b/data/themes/default/images/settings.png new file mode 100755 index 0000000000000000000000000000000000000000..ed90b9a2a4a1292f43f74fe3d04505dc5da9a6fc GIT binary patch literal 15672 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/video.png b/data/themes/default/images/video.png new file mode 100755 index 0000000000000000000000000000000000000000..83579f878b50215592a25fc2ad89e2d994ddd8af GIT binary patch literal 13367 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 H!YJf_pb|S9 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/web.png b/data/themes/default/images/web.png new file mode 100644 index 0000000000000000000000000000000000000000..04ab0e6da5c39281b7ea7524b1baf66b5d27bb25 GIT binary patch literal 20354 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 literal 0 HcmV?d00001 diff --git a/data/themes/default/images/windows.png b/data/themes/default/images/windows.png new file mode 100755 index 0000000000000000000000000000000000000000..108bfa7f6ed8f7fabfd04d7b27c8878915863dad GIT binary patch literal 5956 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 +Vendor: %{?_vendorinfo:%{_vendorinfo}}%{!?_vendorinfo:The Enlightenment Project (http://www.enlightenment.org/)} +Distribution: %{?_distribution:%{_distribution}}%{!?_distribution:%{_vendor}} +BuildRequires: edje-bin +BuildRequires: enlightenment-devel >= 0.16.999 +Requires: enlightenment >= 0.16.999 +BuildRoot: %{_tmppath}/%{name}-%{version}-root + +%description +%{module_name} module for the Enlightenment window manager. + +%prep +%setup -q -n %{module_name}-%{version} + +%build +%{configure} +%{__make} %{?_smp_mflags} %{?mflags} + +%install +%{__make} %{?mflags_install} DESTDIR=$RPM_BUILD_ROOT install +%{find_lang} %{module_name} || true > %{module_name}.lang + +%clean +test "x$RPM_BUILD_ROOT" != "x/" && rm -rf $RPM_BUILD_ROOT + +%post +/sbin/ldconfig + +%postun +/sbin/ldconfig + +%files -f %{module_name}.lang +%defattr(-, root, root) +%doc AUTHORS ChangeLog COPYING* INSTALL NEWS README +%if "%{module_name}" == "emu" +%{_bindir}/%{module_name}* +%endif +%{_libdir}/enlightenment/modules/%{module_name}* + +%changelog diff --git a/m4/ac_attribute.m4 b/m4/ac_attribute.m4 new file mode 100644 index 0000000..23479a9 --- /dev/null +++ b/m4/ac_attribute.m4 @@ -0,0 +1,47 @@ +dnl Copyright (C) 2004-2008 Kim Woelders +dnl Copyright (C) 2008 Vincent Torri +dnl That code is public domain and can be freely used or copied. +dnl Originally snatched from somewhere... + +dnl Macro for checking if the compiler supports __attribute__ + +dnl Usage: AC_C___ATTRIBUTE__ +dnl call AC_DEFINE for HAVE___ATTRIBUTE__ and __UNUSED__ +dnl if the compiler supports __attribute__, HAVE___ATTRIBUTE__ is +dnl defined to 1 and __UNUSED__ is defined to __attribute__((unused)) +dnl otherwise, HAVE___ATTRIBUTE__ is not defined and __UNUSED__ is +dnl defined to nothing. + +AC_DEFUN([AC_C___ATTRIBUTE__], +[ + +AC_MSG_CHECKING([for __attribute__]) + +AC_CACHE_VAL([ac_cv___attribute__], + [AC_TRY_COMPILE( + [ +#include + +int func(int x); +int foo(int x __attribute__ ((unused))) +{ + exit(1); +} + ], + [], + [ac_cv___attribute__="yes"], + [ac_cv___attribute__="no"] + )]) + +AC_MSG_RESULT($ac_cv___attribute__) + +if test "x${ac_cv___attribute__}" = "xyes" ; then + AC_DEFINE([HAVE___ATTRIBUTE__], [1], [Define to 1 if your compiler has __attribute__]) + AC_DEFINE([__UNUSED__], [__attribute__((unused))], [Macro declaring a function argument to be unused]) + else + AC_DEFINE([__UNUSED__], [], [Macro declaring a function argument to be unused]) +fi + +]) + +dnl End of ac_attribute.m4 diff --git a/m4/codeset.m4 b/m4/codeset.m4 new file mode 100644 index 0000000..59535eb --- /dev/null +++ b/m4/codeset.m4 @@ -0,0 +1,23 @@ +# codeset.m4 serial AM1 (gettext-0.10.40) +dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. + +AC_DEFUN([AM_LANGINFO_CODESET], +[ + AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, + [AC_TRY_LINK([#include ], + [char* cs = nl_langinfo(CODESET);], + am_cv_langinfo_codeset=yes, + am_cv_langinfo_codeset=no) + ]) + if test $am_cv_langinfo_codeset = yes; then + AC_DEFINE(HAVE_LANGINFO_CODESET, 1, + [Define if you have and nl_langinfo(CODESET).]) + fi +]) diff --git a/m4/gettext.m4 b/m4/gettext.m4 new file mode 100644 index 0000000..a374f03 --- /dev/null +++ b/m4/gettext.m4 @@ -0,0 +1,487 @@ +# gettext.m4 serial 28 (gettext-0.13) +dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. +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. + +dnl Macro to add for using GNU gettext. + +dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). +dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The +dnl default (if it is not specified or empty) is 'no-libtool'. +dnl INTLSYMBOL should be 'external' for packages with no intl directory, +dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. +dnl If INTLSYMBOL is 'use-libtool', then a libtool library +dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, +dnl depending on --{enable,disable}-{shared,static} and on the presence of +dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library +dnl $(top_builddir)/intl/libintl.a will be created. +dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext +dnl implementations (in libc or libintl) without the ngettext() function +dnl will be ignored. If NEEDSYMBOL is specified and is +dnl 'need-formatstring-macros', then GNU gettext implementations that don't +dnl support the ISO C 99 formatstring macros will be ignored. +dnl INTLDIR is used to find the intl libraries. If empty, +dnl the value `$(top_builddir)/intl/' is used. +dnl +dnl The result of the configuration is one of three cases: +dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled +dnl and used. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 2) GNU gettext has been found in the system's C library. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 3) No internationalization, always use English msgid. +dnl Catalog format: none +dnl Catalog extension: none +dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. +dnl The use of .gmo is historical (it was needed to avoid overwriting the +dnl GNU format catalogs when building on a platform with an X/Open gettext), +dnl but we keep it in order not to force irrelevant filename changes on the +dnl maintainers. +dnl +AC_DEFUN([AM_GNU_GETTEXT], +[ + dnl Argument checking. + ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , + [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT +])])])])]) + ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , + [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT +])])])]) + define(gt_included_intl, ifelse([$1], [external], [no], [yes])) + define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], [])) + + AC_REQUIRE([AM_PO_SUBDIRS])dnl + ifelse(gt_included_intl, yes, [ + AC_REQUIRE([AM_INTL_SUBDIR])dnl + ]) + + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Sometimes libintl requires libiconv, so first search for libiconv. + dnl Ideally we would do this search only after the + dnl if test "$USE_NLS" = "yes"; then + dnl if test "$gt_cv_func_gnugettext_libc" != "yes"; then + dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT + dnl the configure script would need to contain the same shell code + dnl again, outside any 'if'. There are two solutions: + dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. + dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. + dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not + dnl documented, we avoid it. + ifelse(gt_included_intl, yes, , [ + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + ]) + + dnl Set USE_NLS. + AM_NLS + + ifelse(gt_included_intl, yes, [ + BUILD_INCLUDED_LIBINTL=no + USE_INCLUDED_LIBINTL=no + ]) + LIBINTL= + LTLIBINTL= + POSUB= + + dnl If we use NLS figure out what method + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + ifelse(gt_included_intl, yes, [ + AC_MSG_CHECKING([whether included gettext is requested]) + AC_ARG_WITH(included-gettext, + [ --with-included-gettext use the GNU gettext library included here], + nls_cv_force_use_gnu_gettext=$withval, + nls_cv_force_use_gnu_gettext=no) + AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) + + nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" + if test "$nls_cv_force_use_gnu_gettext" != "yes"; then + ]) + dnl User does not insist on using GNU NLS library. Figure out what + dnl to use. If GNU gettext is available we use this. Else we have + dnl to fall back to GNU NLS library. + + dnl Add a version number to the cache macros. + define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1))) + define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc]) + define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl]) + + AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc, + [AC_TRY_LINK([#include +]ifelse([$2], [need-formatstring-macros], +[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +changequote(,)dnl +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +changequote([,])dnl +], [])[extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings;], + [bindtextdomain ("", ""); +return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings], + gt_cv_func_gnugettext_libc=yes, + gt_cv_func_gnugettext_libc=no)]) + + if test "$gt_cv_func_gnugettext_libc" != "yes"; then + dnl Sometimes libintl requires libiconv, so first search for libiconv. + ifelse(gt_included_intl, yes, , [ + AM_ICONV_LINK + ]) + dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL + dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) + dnl because that would add "-liconv" to LIBINTL and LTLIBINTL + dnl even if libiconv doesn't exist. + AC_LIB_LINKFLAGS_BODY([intl]) + AC_CACHE_CHECK([for GNU gettext in libintl], + gt_cv_func_gnugettext_libintl, + [gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + dnl Now see whether libintl exists and does not depend on libiconv. + AC_TRY_LINK([#include +]ifelse([$2], [need-formatstring-macros], +[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +changequote(,)dnl +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +changequote([,])dnl +], [])[extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias ();], + [bindtextdomain ("", ""); +return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)], + gt_cv_func_gnugettext_libintl=yes, + gt_cv_func_gnugettext_libintl=no) + dnl Now see whether libintl exists and depends on libiconv. + if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + AC_TRY_LINK([#include +]ifelse([$2], [need-formatstring-macros], +[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +changequote(,)dnl +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +changequote([,])dnl +], [])[extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias ();], + [bindtextdomain ("", ""); +return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)], + [LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + gt_cv_func_gnugettext_libintl=yes + ]) + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS"]) + fi + + dnl If an already present or preinstalled GNU gettext() is found, + dnl use it. But if this macro is used in GNU gettext, and GNU + dnl gettext is already preinstalled in libintl, we update this + dnl libintl. (Cf. the install rule in intl/Makefile.in.) + if test "$gt_cv_func_gnugettext_libc" = "yes" \ + || { test "$gt_cv_func_gnugettext_libintl" = "yes" \ + && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != gettext-tools; }; then + gt_use_preinstalled_gnugettext=yes + else + dnl Reset the values set by searching for libintl. + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + ifelse(gt_included_intl, yes, [ + if test "$gt_use_preinstalled_gnugettext" != "yes"; then + dnl GNU gettext is not found in the C library. + dnl Fall back on included GNU gettext library. + nls_cv_use_gnu_gettext=yes + fi + fi + + if test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions used to generate GNU NLS library. + BUILD_INCLUDED_LIBINTL=yes + USE_INCLUDED_LIBINTL=yes + LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV" + LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV" + LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions to use GNU gettext tools. + CATOBJEXT=.gmo + fi + ]) + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + AC_DEFINE(ENABLE_NLS, 1, + [Define to 1 if translation of program messages to the user's native language + is requested.]) + else + USE_NLS=no + fi + fi + + AC_MSG_CHECKING([whether to use NLS]) + AC_MSG_RESULT([$USE_NLS]) + if test "$USE_NLS" = "yes"; then + AC_MSG_CHECKING([where the gettext function comes from]) + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if test "$gt_cv_func_gnugettext_libintl" = "yes"; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + AC_MSG_RESULT([$gt_source]) + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if test "$gt_cv_func_gnugettext_libintl" = "yes"; then + AC_MSG_CHECKING([how to link with libintl]) + AC_MSG_RESULT([$LIBINTL]) + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) + fi + + dnl For backward compatibility. Some packages may be using this. + AC_DEFINE(HAVE_GETTEXT, 1, + [Define if the GNU gettext() function is already present or preinstalled.]) + AC_DEFINE(HAVE_DCGETTEXT, 1, + [Define if the GNU dcgettext() function is already present or preinstalled.]) + fi + + dnl We need to process the po/ directory. + POSUB=po + fi + + ifelse(gt_included_intl, yes, [ + dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL + dnl to 'yes' because some of the testsuite requires it. + if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then + BUILD_INCLUDED_LIBINTL=yes + fi + + dnl Make all variables we use known to autoconf. + AC_SUBST(BUILD_INCLUDED_LIBINTL) + AC_SUBST(USE_INCLUDED_LIBINTL) + AC_SUBST(CATOBJEXT) + + dnl For backward compatibility. Some configure.ins may be using this. + nls_cv_header_intl= + nls_cv_header_libgt= + + dnl For backward compatibility. Some Makefiles may be using this. + DATADIRNAME=share + AC_SUBST(DATADIRNAME) + + dnl For backward compatibility. Some Makefiles may be using this. + INSTOBJEXT=.mo + AC_SUBST(INSTOBJEXT) + + dnl For backward compatibility. Some Makefiles may be using this. + GENCAT=gencat + AC_SUBST(GENCAT) + + dnl For backward compatibility. Some Makefiles may be using this. + if test "$USE_INCLUDED_LIBINTL" = yes; then + INTLOBJS="\$(GETTOBJS)" + fi + AC_SUBST(INTLOBJS) + + dnl Enable libtool support if the surrounding package wishes it. + INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix + AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) + ]) + + dnl For backward compatibility. Some Makefiles may be using this. + INTLLIBS="$LIBINTL" + AC_SUBST(INTLLIBS) + + dnl Make all documented variables known to autoconf. + AC_SUBST(LIBINTL) + AC_SUBST(LTLIBINTL) + AC_SUBST(POSUB) +]) + + +dnl Checks for all prerequisites of the intl subdirectory, +dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, +dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. +AC_DEFUN([AM_INTL_SUBDIR], +[ + AC_REQUIRE([AC_PROG_INSTALL])dnl + AC_REQUIRE([AM_MKINSTALLDIRS])dnl + AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_CANONICAL_HOST])dnl + AC_REQUIRE([AC_PROG_RANLIB])dnl + AC_REQUIRE([AC_ISC_POSIX])dnl + AC_REQUIRE([AC_HEADER_STDC])dnl + AC_REQUIRE([AC_C_CONST])dnl + AC_REQUIRE([bh_C_SIGNED])dnl + AC_REQUIRE([AC_C_INLINE])dnl + AC_REQUIRE([AC_TYPE_OFF_T])dnl + AC_REQUIRE([AC_TYPE_SIZE_T])dnl + AC_REQUIRE([jm_AC_TYPE_LONG_LONG])dnl + AC_REQUIRE([gt_TYPE_LONGDOUBLE])dnl + AC_REQUIRE([gt_TYPE_WCHAR_T])dnl + AC_REQUIRE([gt_TYPE_WINT_T])dnl + AC_REQUIRE([jm_AC_HEADER_INTTYPES_H]) + AC_REQUIRE([jm_AC_HEADER_STDINT_H]) + AC_REQUIRE([gt_TYPE_INTMAX_T]) + AC_REQUIRE([gt_PRINTF_POSIX]) + AC_REQUIRE([AC_FUNC_ALLOCA])dnl + AC_REQUIRE([AC_FUNC_MMAP])dnl + AC_REQUIRE([jm_GLIBC21])dnl + AC_REQUIRE([gt_INTDIV0])dnl + AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl + AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl + AC_REQUIRE([gt_INTTYPES_PRI])dnl + AC_REQUIRE([gl_XSIZE])dnl + + AC_CHECK_TYPE([ptrdiff_t], , + [AC_DEFINE([ptrdiff_t], [long], + [Define as the type of the result of subtracting two pointers, if the system doesn't define it.]) + ]) + AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ +stdlib.h string.h unistd.h sys/param.h]) + AC_CHECK_FUNCS([asprintf fwprintf getcwd getegid geteuid getgid getuid \ +mempcpy munmap putenv setenv setlocale snprintf stpcpy strcasecmp strdup \ +strtoul tsearch wcslen __argz_count __argz_stringify __argz_next \ +__fsetlocking]) + + dnl Use the _snprintf function only if it is declared (because on NetBSD it + dnl is defined as a weak alias of snprintf; we prefer to use the latter). + gt_CHECK_DECL(_snprintf, [#include ]) + gt_CHECK_DECL(_snwprintf, [#include ]) + + dnl Use the *_unlocked functions only if they are declared. + dnl (because some of them were defined without being declared in Solaris + dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built + dnl on Solaris 2.5.1 to run on Solaris 2.6). + dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13. + gt_CHECK_DECL(feof_unlocked, [#include ]) + gt_CHECK_DECL(fgets_unlocked, [#include ]) + gt_CHECK_DECL(getc_unlocked, [#include ]) + + case $gt_cv_func_printf_posix in + *yes) HAVE_POSIX_PRINTF=1 ;; + *) HAVE_POSIX_PRINTF=0 ;; + esac + AC_SUBST([HAVE_POSIX_PRINTF]) + if test "$ac_cv_func_asprintf" = yes; then + HAVE_ASPRINTF=1 + else + HAVE_ASPRINTF=0 + fi + AC_SUBST([HAVE_ASPRINTF]) + if test "$ac_cv_func_snprintf" = yes; then + HAVE_SNPRINTF=1 + else + HAVE_SNPRINTF=0 + fi + AC_SUBST([HAVE_SNPRINTF]) + if test "$ac_cv_func_wprintf" = yes; then + HAVE_WPRINTF=1 + else + HAVE_WPRINTF=0 + fi + AC_SUBST([HAVE_WPRINTF]) + + AM_ICONV + AM_LANGINFO_CODESET + if test $ac_cv_header_locale_h = yes; then + AM_LC_MESSAGES + fi + + dnl intl/plural.c is generated from intl/plural.y. It requires bison, + dnl because plural.y uses bison specific features. It requires at least + dnl bison-1.26 because earlier versions generate a plural.c that doesn't + dnl compile. + dnl bison is only needed for the maintainer (who touches plural.y). But in + dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put + dnl the rule in general Makefile. Now, some people carelessly touch the + dnl files or have a broken "make" program, hence the plural.c rule will + dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not + dnl present or too old. + AC_CHECK_PROGS([INTLBISON], [bison]) + if test -z "$INTLBISON"; then + ac_verc_fail=yes + else + dnl Found it, now check the version. + AC_MSG_CHECKING([version of bison]) +changequote(<<,>>)dnl + ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` + case $ac_prog_version in + '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; + 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) +changequote([,])dnl + ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; + *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; + esac + AC_MSG_RESULT([$ac_prog_version]) + fi + if test $ac_verc_fail = yes; then + INTLBISON=: + fi +]) + + +dnl gt_CHECK_DECL(FUNC, INCLUDES) +dnl Check whether a function is declared. +AC_DEFUN([gt_CHECK_DECL], +[ + AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1, + [AC_TRY_COMPILE([$2], [ +#ifndef $1 + char *p = (char *) $1; +#endif +], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)]) + if test $ac_cv_have_decl_$1 = yes; then + gt_value=1 + else + gt_value=0 + fi + AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value], + [Define to 1 if you have the declaration of `$1', and to 0 if you don't.]) +]) + + +dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) +AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) diff --git a/m4/glibc21.m4 b/m4/glibc21.m4 new file mode 100644 index 0000000..9c9f3db --- /dev/null +++ b/m4/glibc21.m4 @@ -0,0 +1,32 @@ +# glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40) +dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +# Test for the GNU C Library, version 2.1 or newer. +# From Bruno Haible. + +AC_DEFUN([jm_GLIBC21], + [ + AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, + ac_cv_gnu_library_2_1, + [AC_EGREP_CPP([Lucky GNU user], + [ +#include +#ifdef __GNU_LIBRARY__ + #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) + Lucky GNU user + #endif +#endif + ], + ac_cv_gnu_library_2_1=yes, + ac_cv_gnu_library_2_1=no) + ] + ) + AC_SUBST(GLIBC21) + GLIBC21="$ac_cv_gnu_library_2_1" + ] +) diff --git a/m4/iconv.m4 b/m4/iconv.m4 new file mode 100644 index 0000000..c5f3579 --- /dev/null +++ b/m4/iconv.m4 @@ -0,0 +1,103 @@ +# iconv.m4 serial AM4 (gettext-0.11.3) +dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. + +AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], +[ + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([iconv]) +]) + +AC_DEFUN([AM_ICONV_LINK], +[ + dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and + dnl those with the standalone portable GNU libiconv installed). + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + + dnl Add $INCICONV to CPPFLAGS before performing the following checks, + dnl because if the user has installed libiconv and not disabled its use + dnl via --without-libiconv-prefix, he wants to use it. The first + dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. + am_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) + + AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + AC_TRY_LINK([#include +#include ], + [iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);], + am_cv_func_iconv=yes) + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + AC_TRY_LINK([#include +#include ], + [iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);], + am_cv_lib_iconv=yes + am_cv_func_iconv=yes) + LIBS="$am_save_LIBS" + fi + ]) + if test "$am_cv_func_iconv" = yes; then + AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) + fi + if test "$am_cv_lib_iconv" = yes; then + AC_MSG_CHECKING([how to link with libiconv]) + AC_MSG_RESULT([$LIBICONV]) + else + dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV + dnl either. + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + AC_SUBST(LIBICONV) + AC_SUBST(LTLIBICONV) +]) + +AC_DEFUN([AM_ICONV], +[ + AM_ICONV_LINK + if test "$am_cv_func_iconv" = yes; then + AC_MSG_CHECKING([for iconv declaration]) + AC_CACHE_VAL(am_cv_proto_iconv, [ + AC_TRY_COMPILE([ +#include +#include +extern +#ifdef __cplusplus +"C" +#endif +#if defined(__STDC__) || defined(__cplusplus) +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); +#else +size_t iconv(); +#endif +], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") + am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) + am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` + AC_MSG_RESULT([$]{ac_t:- + }[$]am_cv_proto_iconv) + AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, + [Define as const if the declaration of iconv() needs const.]) + fi +]) diff --git a/m4/intdiv0.m4 b/m4/intdiv0.m4 new file mode 100644 index 0000000..55dddcf --- /dev/null +++ b/m4/intdiv0.m4 @@ -0,0 +1,72 @@ +# intdiv0.m4 serial 1 (gettext-0.11.3) +dnl Copyright (C) 2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. + +AC_DEFUN([gt_INTDIV0], +[ + AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_CANONICAL_HOST])dnl + + AC_CACHE_CHECK([whether integer division by zero raises SIGFPE], + gt_cv_int_divbyzero_sigfpe, + [ + AC_TRY_RUN([ +#include +#include + +static void +#ifdef __cplusplus +sigfpe_handler (int sig) +#else +sigfpe_handler (sig) int sig; +#endif +{ + /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */ + exit (sig != SIGFPE); +} + +int x = 1; +int y = 0; +int z; +int nan; + +int main () +{ + signal (SIGFPE, sigfpe_handler); +/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */ +#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP) + signal (SIGTRAP, sigfpe_handler); +#endif +/* Linux/SPARC yields signal SIGILL. */ +#if defined (__sparc__) && defined (__linux__) + signal (SIGILL, sigfpe_handler); +#endif + + z = x / y; + nan = y / y; + exit (1); +} +], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no, + [ + # Guess based on the CPU. + case "$host_cpu" in + alpha* | i[34567]86 | m68k | s390*) + gt_cv_int_divbyzero_sigfpe="guessing yes";; + *) + gt_cv_int_divbyzero_sigfpe="guessing no";; + esac + ]) + ]) + case "$gt_cv_int_divbyzero_sigfpe" in + *yes) value=1;; + *) value=0;; + esac + AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value, + [Define if integer division by zero raises signal SIGFPE.]) +]) diff --git a/m4/intmax.m4 b/m4/intmax.m4 new file mode 100644 index 0000000..dfb08cc --- /dev/null +++ b/m4/intmax.m4 @@ -0,0 +1,32 @@ +# intmax.m4 serial 1 (gettext-0.12) +dnl Copyright (C) 2002-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. +dnl Test whether the system has the 'intmax_t' type, but don't attempt to +dnl find a replacement if it is lacking. + +AC_DEFUN([gt_TYPE_INTMAX_T], +[ + AC_REQUIRE([jm_AC_HEADER_INTTYPES_H]) + AC_REQUIRE([jm_AC_HEADER_STDINT_H]) + AC_CACHE_CHECK(for intmax_t, gt_cv_c_intmax_t, + [AC_TRY_COMPILE([ +#include +#include +#if HAVE_STDINT_H_WITH_UINTMAX +#include +#endif +#if HAVE_INTTYPES_H_WITH_UINTMAX +#include +#endif +], [intmax_t x = -1;], gt_cv_c_intmax_t=yes, gt_cv_c_intmax_t=no)]) + if test $gt_cv_c_intmax_t = yes; then + AC_DEFINE(HAVE_INTMAX_T, 1, + [Define if you have the 'intmax_t' type in or .]) + fi +]) diff --git a/m4/inttypes-pri.m4 b/m4/inttypes-pri.m4 new file mode 100644 index 0000000..fd007c3 --- /dev/null +++ b/m4/inttypes-pri.m4 @@ -0,0 +1,32 @@ +# inttypes-pri.m4 serial 1 (gettext-0.11.4) +dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. + +# Define PRI_MACROS_BROKEN if exists and defines the PRI* +# macros to non-string values. This is the case on AIX 4.3.3. + +AC_DEFUN([gt_INTTYPES_PRI], +[ + AC_REQUIRE([gt_HEADER_INTTYPES_H]) + if test $gt_cv_header_inttypes_h = yes; then + AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken], + gt_cv_inttypes_pri_broken, + [ + AC_TRY_COMPILE([#include +#ifdef PRId32 +char *p = PRId32; +#endif +], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes) + ]) + fi + if test "$gt_cv_inttypes_pri_broken" = yes; then + AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1, + [Define if exists and defines unusable PRI* macros.]) + fi +]) diff --git a/m4/inttypes.m4 b/m4/inttypes.m4 new file mode 100644 index 0000000..ab370ff --- /dev/null +++ b/m4/inttypes.m4 @@ -0,0 +1,27 @@ +# inttypes.m4 serial 1 (gettext-0.11.4) +dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Paul Eggert. + +# Define HAVE_INTTYPES_H if exists and doesn't clash with +# . + +AC_DEFUN([gt_HEADER_INTTYPES_H], +[ + AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h, + [ + AC_TRY_COMPILE( + [#include +#include ], + [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no) + ]) + if test $gt_cv_header_inttypes_h = yes; then + AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1, + [Define if exists and doesn't clash with .]) + fi +]) diff --git a/m4/inttypes_h.m4 b/m4/inttypes_h.m4 new file mode 100644 index 0000000..f342eba --- /dev/null +++ b/m4/inttypes_h.m4 @@ -0,0 +1,28 @@ +# inttypes_h.m4 serial 5 (gettext-0.12) +dnl Copyright (C) 1997-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Paul Eggert. + +# Define HAVE_INTTYPES_H_WITH_UINTMAX if exists, +# doesn't clash with , and declares uintmax_t. + +AC_DEFUN([jm_AC_HEADER_INTTYPES_H], +[ + AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h, + [AC_TRY_COMPILE( + [#include +#include ], + [uintmax_t i = (uintmax_t) -1;], + jm_ac_cv_header_inttypes_h=yes, + jm_ac_cv_header_inttypes_h=no)]) + if test $jm_ac_cv_header_inttypes_h = yes; then + AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1, + [Define if exists, doesn't clash with , + and declares uintmax_t. ]) + fi +]) diff --git a/m4/isc-posix.m4 b/m4/isc-posix.m4 new file mode 100644 index 0000000..1319dd1 --- /dev/null +++ b/m4/isc-posix.m4 @@ -0,0 +1,26 @@ +# isc-posix.m4 serial 2 (gettext-0.11.2) +dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +# This file is not needed with autoconf-2.53 and newer. Remove it in 2005. + +# This test replaces the one in autoconf. +# Currently this macro should have the same name as the autoconf macro +# because gettext's gettext.m4 (distributed in the automake package) +# still uses it. Otherwise, the use in gettext.m4 makes autoheader +# give these diagnostics: +# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX +# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX + +undefine([AC_ISC_POSIX]) + +AC_DEFUN([AC_ISC_POSIX], + [ + dnl This test replaces the obsolescent AC_ISC_POSIX kludge. + AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) + ] +) diff --git a/m4/lcmessage.m4 b/m4/lcmessage.m4 new file mode 100644 index 0000000..ffd4008 --- /dev/null +++ b/m4/lcmessage.m4 @@ -0,0 +1,32 @@ +# lcmessage.m4 serial 3 (gettext-0.11.3) +dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. +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. + +# Check whether LC_MESSAGES is available in . + +AC_DEFUN([AM_LC_MESSAGES], +[ + 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 +]) diff --git a/m4/lib-ld.m4 b/m4/lib-ld.m4 new file mode 100644 index 0000000..38aeaec --- /dev/null +++ b/m4/lib-ld.m4 @@ -0,0 +1,112 @@ +# lib-ld.m4 serial 3 (gettext-0.13) +dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl Subroutines of libtool.m4, +dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision +dnl with libtool.m4. + +dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. +AC_DEFUN([AC_LIB_PROG_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, +[# I'd rather use --version here, but apparently some GNU ld's only accept -v. +case `$LD -v 2>&1 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 +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 GCC]) + 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. + [[\\/]* | [A-Za-z]:[\\/]*)] + [re_direlt='/[^/][^/]*/\.\./'] + # Canonicalize the path 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(acl_cv_path_LD, +[if test -z "$LD"; then + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in + *GNU* | *'with BFD'*) + test "$with_gnu_ld" != no && break ;; + *) + test "$with_gnu_ld" != yes && break ;; + esac + fi + done + IFS="$ac_save_ifs" +else + acl_cv_path_LD="$LD" # Let the user override the test with a path. +fi]) +LD="$acl_cv_path_LD" +if test -n "$LD"; then + AC_MSG_RESULT($LD) +else + AC_MSG_RESULT(no) +fi +test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) +AC_LIB_PROG_LD_GNU +]) diff --git a/m4/lib-link.m4 b/m4/lib-link.m4 new file mode 100644 index 0000000..eeb200d --- /dev/null +++ b/m4/lib-link.m4 @@ -0,0 +1,551 @@ +# lib-link.m4 serial 4 (gettext-0.12) +dnl Copyright (C) 2001-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. + +dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and +dnl augments the CPPFLAGS variable. +AC_DEFUN([AC_LIB_LINKFLAGS], +[ + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + define([Name],[translit([$1],[./-], [___])]) + define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ + AC_LIB_LINKFLAGS_BODY([$1], [$2]) + ac_cv_lib[]Name[]_libs="$LIB[]NAME" + ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" + ac_cv_lib[]Name[]_cppflags="$INC[]NAME" + ]) + LIB[]NAME="$ac_cv_lib[]Name[]_libs" + LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" + INC[]NAME="$ac_cv_lib[]Name[]_cppflags" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) + AC_SUBST([LIB]NAME) + AC_SUBST([LTLIB]NAME) + dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the + dnl results of this search when this library appears as a dependency. + HAVE_LIB[]NAME=yes + undefine([Name]) + undefine([NAME]) +]) + +dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) +dnl searches for libname and the libraries corresponding to explicit and +dnl implicit dependencies, together with the specified include files and +dnl the ability to compile and link the specified testcode. If found, it +dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and +dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and +dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs +dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. +AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], +[ + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + define([Name],[translit([$1],[./-], [___])]) + define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + + dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([$1], [$2]) + + dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, + dnl because if the user has installed lib[]Name and not disabled its use + dnl via --without-lib[]Name-prefix, he wants to use it. + ac_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) + + AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ + ac_save_LIBS="$LIBS" + LIBS="$LIBS $LIB[]NAME" + AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) + LIBS="$ac_save_LIBS" + ]) + if test "$ac_cv_lib[]Name" = yes; then + HAVE_LIB[]NAME=yes + AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) + AC_MSG_CHECKING([how to link with lib[]$1]) + AC_MSG_RESULT([$LIB[]NAME]) + else + HAVE_LIB[]NAME=no + dnl If $LIB[]NAME didn't lead to a usable library, we don't need + dnl $INC[]NAME either. + CPPFLAGS="$ac_save_CPPFLAGS" + LIB[]NAME= + LTLIB[]NAME= + fi + AC_SUBST([HAVE_LIB]NAME) + AC_SUBST([LIB]NAME) + AC_SUBST([LTLIB]NAME) + undefine([Name]) + undefine([NAME]) +]) + +dnl Determine the platform dependent parameters needed to use rpath: +dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, +dnl hardcode_direct, hardcode_minus_L. +AC_DEFUN([AC_LIB_RPATH], +[ + AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS + AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld + AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host + AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir + AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + ]) + wl="$acl_cv_wl" + libext="$acl_cv_libext" + shlibext="$acl_cv_shlibext" + hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + hardcode_direct="$acl_cv_hardcode_direct" + hardcode_minus_L="$acl_cv_hardcode_minus_L" + dnl Determine whether the user wants rpath handling at all. + AC_ARG_ENABLE(rpath, + [ --disable-rpath do not hardcode runtime library paths], + :, enable_rpath=yes) +]) + +dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. +AC_DEFUN([AC_LIB_LINKFLAGS_BODY], +[ + define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_LIB_ARG_WITH([lib$1-prefix], +[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib + --without-lib$1-prefix don't search for lib$1 in includedir and libdir], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/lib" + fi + fi +]) + dnl Search the library and its dependencies in $additional_libdir and + dnl $LDFLAGS. Using breadth-first-seach. + LIB[]NAME= + LTLIB[]NAME= + INC[]NAME= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='$1 $2' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + dnl See if it was already located by an earlier AC_LIB_LINKFLAGS + dnl or AC_LIB_HAVE_LINKFLAGS call. + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" + else + dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined + dnl that this library doesn't exist. So just drop it. + : + fi + else + dnl Search the library lib$name in $additional_libdir and $LDFLAGS + dnl and the already constructed $LIBNAME/$LTLIBNAME. + found_dir= + found_la= + found_so= + found_a= + if test $use_additional = yes; then + if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then + found_dir="$additional_libdir" + found_so="$additional_libdir/lib$name.$shlibext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + else + if test -f "$additional_libdir/lib$name.$libext"; then + found_dir="$additional_libdir" + found_a="$additional_libdir/lib$name.$libext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then + found_dir="$dir" + found_so="$dir/lib$name.$shlibext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + else + if test -f "$dir/lib$name.$libext"; then + found_dir="$dir" + found_a="$dir/lib$name.$libext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + dnl Found the library. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + dnl Linking with a shared library. We attempt to hardcode its + dnl directory into the executable's runpath, unless it's the + dnl standard /usr/lib. + if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then + dnl No hardcoding is needed. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + dnl The hardcoding into $LIBNAME is system dependent. + if test "$hardcode_direct" = yes; then + dnl Using DIR/libNAME.so during linking hardcodes DIR into the + dnl resulting binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + dnl Rely on "-L$found_dir". + dnl But don't add it if it's already contained in the LDFLAGS + dnl or the already constructed $LIBNAME + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" + fi + if test "$hardcode_minus_L" != no; then + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH + dnl here, because this doesn't fit in flags passed to the + dnl compiler. So give up. No hardcoding. This affects only + dnl very old systems. + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + dnl Linking with a static library. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" + else + dnl We shouldn't come here, but anyway it's good to have a + dnl fallback. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" + fi + fi + dnl Assume the include files are nearby. + additional_includedir= + case "$found_dir" in + */lib | */lib/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + dnl Potentially add $additional_includedir to $INCNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's /usr/local/include and we are using GCC on Linux, + dnl 3. if it's already present in $CPPFLAGS or the already + dnl constructed $INCNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INC[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $INCNAME. + INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + dnl Look for dependencies. + if test -n "$found_la"; then + dnl Read the .la file. It defines the variables + dnl dlname, library_names, old_library, dependency_libs, current, + dnl age, revision, installed, dlopen, dlpreopen, libdir. + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + dnl We use only dependency_libs. + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's /usr/local/lib and we are using GCC on Linux, + dnl 3. if it's already present in $LDFLAGS or the already + dnl constructed $LIBNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/lib"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/lib"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LIBNAME. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LTLIBNAME. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + dnl Handle this in the next round. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + dnl Handle this in the next round. Throw away the .la's + dnl directory; it is already contained in a preceding -L + dnl option. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + dnl Most likely an immediate library name. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" + ;; + esac + done + fi + else + dnl Didn't find the library; assume it is in the system directories + dnl known to the linker and runtime loader. (All the system + dnl directories known to the linker should also be known to the + dnl runtime loader, otherwise the system is severely misconfigured.) + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user must + dnl pass all path elements in one option. We can arrange that for a + dnl single library, but not when more than one $LIBNAMEs are used. + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" + done + dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl. + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + else + dnl The -rpath options are cumulative. + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + dnl When using libtool, the option that works for both libraries and + dnl executables is -R. The -R options are cumulative. + for found_dir in $ltrpathdirs; do + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" + done + fi +]) + +dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, +dnl unless already present in VAR. +dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes +dnl contains two or three consecutive elements that belong together. +AC_DEFUN([AC_LIB_APPENDTOVAR], +[ + for element in [$2]; do + haveit= + for x in $[$1]; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + [$1]="${[$1]}${[$1]:+ }$element" + fi + done +]) diff --git a/m4/lib-prefix.m4 b/m4/lib-prefix.m4 new file mode 100644 index 0000000..8aff5a9 --- /dev/null +++ b/m4/lib-prefix.m4 @@ -0,0 +1,155 @@ +# lib-prefix.m4 serial 3 (gettext-0.13) +dnl Copyright (C) 2001-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. + +dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and +dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't +dnl require excessive bracketing. +ifdef([AC_HELP_STRING], +[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], +[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) + +dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed +dnl to access previously installed libraries. The basic assumption is that +dnl a user will want packages to use other packages he previously installed +dnl with the same --prefix option. +dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate +dnl libraries, but is otherwise very convenient. +AC_DEFUN([AC_LIB_PREFIX], +[ + AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_LIB_ARG_WITH([lib-prefix], +[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib + --without-lib-prefix don't search for libraries in includedir and libdir], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/lib" + fi + fi +]) + if test $use_additional = yes; then + dnl Potentially add $additional_includedir to $CPPFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's already present in $CPPFLAGS, + dnl 3. if it's /usr/local/include and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + for x in $CPPFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $CPPFLAGS. + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" + fi + fi + fi + fi + dnl Potentially add $additional_libdir to $LDFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's already present in $LDFLAGS, + dnl 3. if it's /usr/local/lib and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/lib"; then + haveit= + for x in $LDFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_libdir" = "X/usr/local/lib"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LDFLAGS. + LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" + fi + fi + fi + fi + fi +]) + +dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, +dnl acl_final_exec_prefix, containing the values to which $prefix and +dnl $exec_prefix will expand at the end of the configure script. +AC_DEFUN([AC_LIB_PREPARE_PREFIX], +[ + dnl Unfortunately, prefix and exec_prefix get only finally determined + dnl at the end of configure. + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the +dnl variables prefix and exec_prefix bound to the values they will have +dnl at the end of the configure script. +AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], +[ + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + $1 + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" +]) diff --git a/m4/libtool.m4 b/m4/libtool.m4 new file mode 100644 index 0000000..a3fee53 --- /dev/null +++ b/m4/libtool.m4 @@ -0,0 +1,7377 @@ +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +]) + +# serial 56 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_CC_BASENAME(CC) +# ------------------- +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +m4_defun([_LT_CC_BASENAME], +[for cc_temp in $1""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl +_LT_PROG_ECHO_BACKSLASH + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from `configure', and `config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# `config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain="$ac_aux_dir/ltmain.sh" +])# _LT_PROG_LTMAIN + + +## ------------------------------------- ## +## Accumulate code for creating libtool. ## +## ------------------------------------- ## + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the `libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + +## ------------------------ ## +## FIXME: Eliminate VARNAME ## +## ------------------------ ## + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to `config.status' so that its +# declaration there will have the same value as in `configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags="_LT_TAGS"dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into `config.status', and then the shell code to quote escape them in +# for loops in `config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Fix-up fallback echo if it was mangled by the above quoting rules. +case \$lt_ECHO in +*'\\\[$]0 --fallback-echo"')dnl " + lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` + ;; +esac + +_LT_OUTPUT_LIBTOOL_INIT +]) + + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +cat >"$CONFIG_LT" <<_LTEOF +#! $SHELL +# Generated by $as_me. +# Run this file to recreate a libtool stub with the current configuration. + +lt_cl_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AS_SHELL_SANITIZE +_AS_PREPARE + +exec AS_MESSAGE_FD>&1 +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +\`$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2008 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test $[#] != 0 +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try \`$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try \`$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +if test "$no_create" != yes; then + lt_cl_success=: + test "$silent" = yes && + lt_config_lt_args="$lt_config_lt_args --quiet" + exec AS_MESSAGE_LOG_FD>/dev/null + $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false + exec AS_MESSAGE_LOG_FD>>config.log + $lt_cl_success || AS_EXIT(1) +fi +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +_LT_COPYING +_LT_LIBTOOL_TAGS + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + _LT_PROG_XSI_SHELLFNS + + sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS="$save_LDFLAGS" + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[[012]]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES +# -------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=echo + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + m4_if([$1], [CXX], +[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX +# ----------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +AC_LINK_IFELSE(AC_LANG_PROGRAM,[ +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi],[]) +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[ifdef([AC_DIVERSION_NOTICE], + [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], + [AC_DIVERT_PUSH(NOTICE)]) +$1 +AC_DIVERT_POP +])# _LT_SHELL_INIT + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Add some code to the start of the generated configure script which +# will find an echo command which doesn't interpret backslashes. +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[_LT_SHELL_INIT([ +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$lt_ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` + ;; +esac + +ECHO=${lt_ECHO-echo} +if test "X[$]1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X[$]1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then + # Yippee, $ECHO works! + : +else + # Restart under the correct shell. + exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} +fi + +if test "X[$]1" = X--fallback-echo; then + # used as fallback echo + shift + cat <<_LT_EOF +[$]* +_LT_EOF + exit 0 +fi + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test -z "$lt_ECHO"; then + if test "X${echo_test_string+set}" != Xset; then + # find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if { echo_test_string=`eval $cmd`; } 2>/dev/null && + { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null + then + break + fi + done + fi + + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : + else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$ECHO" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + ECHO='print -r' + elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} + else + # Try using printf. + ECHO='printf %s\n' + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + ECHO="$CONFIG_SHELL [$]0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$CONFIG_SHELL [$]0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do + if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "[$]0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} + else + # Oops. We lost completely, so just stick with echo. + ECHO=echo + fi + fi + fi + fi + fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +lt_ECHO=$ECHO +if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then + lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" +fi + +AC_SUBST(lt_ECHO) +]) +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], + [An echo program that does not interpret backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line __oline__ "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" +])# _LT_ENABLE_LOCK + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[AC_CHECK_TOOL(AR, ar, false) +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1]) + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test x"[$]$2" = xyes; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ + = "XX$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line __oline__ "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links="nottested" +if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", + [Define to the sub-directory in which libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || + test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` + else + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[[4-9]]*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[123]]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix[[3-9]]*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], + [Run-time system search path for libraries]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program which can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program which can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method == "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi]) +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) + AC_SUBST([DUMPBIN]) + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +AC_MSG_CHECKING([for $compiler option to produce PIC]) +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64 which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC*) + # IBM XL 8.0 on PPC + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl*) + # IBM XL C 8.0/Fortran 10.1 on PPC + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Sun\ F*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac +AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw* | cegcc*) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + ;; + linux* | k*bsd*-gnu) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag= + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + _LT_TAGVAR(link_all_deplibs, $1)=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + freebsd1*) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + AC_LINK_IFELSE(int foo(void) {}, + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + ) + LDFLAGS="$save_LDFLAGS" + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_MSG_CHECKING([whether -lc should be explicitly linked in]) + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], + [[If ld is used when linking, flag to hardcode $libdir into a binary + during linking. This must work even if $libdir does not exist]]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting ${shlibpath_var} if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [fix_srcfile_path], [1], + [Fix the shell variable $srcfile for the compiler]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC="$CC" +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report which library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC="$lt_save_CC" +])# _LT_LANG_C_CONFIG + + +# _LT_PROG_CXX +# ------------ +# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ +# compiler, we have our own version here. +m4_defun([_LT_PROG_CXX], +[ +pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) +AC_PROG_CXX +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi +popdef([AC_MSG_ERROR]) +])# _LT_PROG_CXX + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([_LT_PROG_CXX], []) + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[AC_REQUIRE([_LT_PROG_CXX])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_caught_CXX_error" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GXX" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared + # libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd[[12]]*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + gnu*) + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 will use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + xl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd2*) + # C++ shared libraries are fairly broken + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd=echo + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + + _LT_TAGVAR(GCC, $1)="$GXX" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test "$_lt_caught_CXX_error" != yes + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +]) +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" || + test $p = "-R"; then + prev=$p + continue + else + prev= + fi + + if test "$pre_test_object_deps_done" = no; then + case $p in + -L* | -R*) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)="${prev}${p}" + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" + fi + fi + ;; + + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)="$p" + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)="$p" + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; + +linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_PROG_F77 +# ------------ +# Since AC_PROG_F77 is broken, in that it returns the empty string +# if there is no fortran compiler, we have our own version here. +m4_defun([_LT_PROG_F77], +[ +pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) +AC_PROG_F77 +if test -z "$F77" || test "X$F77" = "Xno"; then + _lt_disable_F77=yes +fi +popdef([AC_MSG_ERROR]) +])# _LT_PROG_F77 + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([_LT_PROG_F77], []) + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_REQUIRE([_LT_PROG_F77])dnl +AC_LANG_PUSH(Fortran 77) + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_F77" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + CC=${F77-"f77"} + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$G77" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC="$lt_save_CC" +fi # test "$_lt_disable_F77" != yes + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_PROG_FC +# ----------- +# Since AC_PROG_FC is broken, in that it returns the empty string +# if there is no fortran compiler, we have our own version here. +m4_defun([_LT_PROG_FC], +[ +pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) +AC_PROG_FC +if test -z "$FC" || test "X$FC" = "Xno"; then + _lt_disable_FC=yes +fi +popdef([AC_MSG_ERROR]) +])# _LT_PROG_FC + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([_LT_PROG_FC], []) + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_REQUIRE([_LT_PROG_FC])dnl +AC_LANG_PUSH(Fortran) + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_FC" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + CC=${FC-"f95"} + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC="$lt_save_CC" +fi # test "$_lt_disable_FC" != yes + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC="$lt_save_CC" +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code="$lt_simple_compile_test_code" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC="$lt_save_CC" +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +AC_MSG_RESULT([$xsi_shell]) +_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) + +AC_MSG_CHECKING([whether the shell understands "+="]) +lt_shell_append=no +( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +AC_MSG_RESULT([$lt_shell_append]) +_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PROG_XSI_SHELLFNS +# --------------------- +# Bourne and XSI compatible variants of some useful shell functions. +m4_defun([_LT_PROG_XSI_SHELLFNS], +[case $xsi_shell in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac +} + +# func_basename file +func_basename () +{ + func_basename_result="${1##*/}" +} + +# func_dirname_and_basename file append nondir_replacement +# perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# Implementation must be kept synchronized with func_dirname +# and func_basename. For efficiency, we do not delegate to +# those functions but instead duplicate the functionality here. +func_dirname_and_basename () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}" +} + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +func_stripname () +{ + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"} +} + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=${1%%=*} + func_opt_split_arg=${1#*=} +} + +# func_lo2o object +func_lo2o () +{ + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=${1%.*}.lo +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=$(( $[*] )) +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=${#1} +} + +_LT_EOF + ;; + *) # Bourne compatible functions. + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` +} + +dnl func_dirname_and_basename +dnl A portable version of this function is already defined in general.m4sh +dnl so there is no need for it here. + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# func_strip_suffix prefix name +func_stripname () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; + esac +} + +# sed scripts: +my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' +my_sed_long_arg='1s/^-[[^=]]*=//' + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` + func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` +} + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=`expr "$[@]"` +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` +} + +_LT_EOF +esac + +case $lt_shell_append in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$[1]+=\$[2]" +} +_LT_EOF + ;; + *) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$[1]=\$$[1]\$[2]" +} + +_LT_EOF + ;; + esac +]) diff --git a/m4/longdouble.m4 b/m4/longdouble.m4 new file mode 100644 index 0000000..1333d2f --- /dev/null +++ b/m4/longdouble.m4 @@ -0,0 +1,30 @@ +# longdouble.m4 serial 1 (gettext-0.12) +dnl Copyright (C) 2002-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. +dnl Test whether the compiler supports the 'long double' type. +dnl Prerequisite: AC_PROG_CC + +AC_DEFUN([gt_TYPE_LONGDOUBLE], +[ + AC_CACHE_CHECK([for long double], gt_cv_c_long_double, + [if test "$GCC" = yes; then + gt_cv_c_long_double=yes + else + AC_TRY_COMPILE([ + /* The Stardent Vistra knows sizeof(long double), but does not support it. */ + long double foo = 0.0; + /* On Ultrix 4.3 cc, long double is 4 and double is 8. */ + int array [2*(sizeof(long double) >= sizeof(double)) - 1]; + ], , + gt_cv_c_long_double=yes, gt_cv_c_long_double=no) + fi]) + if test $gt_cv_c_long_double = yes; then + AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the 'long double' type.]) + fi +]) diff --git a/m4/longlong.m4 b/m4/longlong.m4 new file mode 100644 index 0000000..d7d7350 --- /dev/null +++ b/m4/longlong.m4 @@ -0,0 +1,25 @@ +# longlong.m4 serial 4 +dnl Copyright (C) 1999-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Paul Eggert. + +# Define HAVE_LONG_LONG if 'long long' works. + +AC_DEFUN([jm_AC_TYPE_LONG_LONG], +[ + AC_CACHE_CHECK([for long long], ac_cv_type_long_long, + [AC_TRY_LINK([long long ll = 1LL; int i = 63;], + [long long llmax = (long long) -1; + return ll << i | ll >> i | llmax / ll | llmax % ll;], + ac_cv_type_long_long=yes, + ac_cv_type_long_long=no)]) + if test $ac_cv_type_long_long = yes; then + AC_DEFINE(HAVE_LONG_LONG, 1, + [Define if you have the 'long long' type.]) + fi +]) diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4 new file mode 100644 index 0000000..34151a3 --- /dev/null +++ b/m4/ltoptions.m4 @@ -0,0 +1,368 @@ +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option `$2'])])[]dnl +]) + + +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) + + +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) + +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl `shared' nor `disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + ]) +])# _LT_SET_OPTIONS + + +## --------------------------------- ## +## Macros to handle LT_INIT options. ## +## --------------------------------- ## + +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + + +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes +]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `dlopen' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + + +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac + +test -z "$AS" && AS=as +_LT_DECL([], [AS], [0], [Assembler program])dnl + +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl + +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `win32-dll' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + + +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the `shared' and +# `disable-shared' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) + +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) + +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) + + + +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the `static' and +# `disable-static' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC + +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) + +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) + +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) + + + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the `fast-install' +# and `disable-fast-install' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL + +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `fast-install' option into LT_INIT's first parameter.]) +]) + +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `disable-fast-install' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the `pic-only' and `no-pic' +# LT_INIT options. +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [pic_mode="$withval"], + [pic_mode=default]) + +test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) + +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC + +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) + +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `pic-only' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + +## ----------------- ## +## LTDL_INIT Options ## +## ----------------- ## + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4 new file mode 100644 index 0000000..9000a05 --- /dev/null +++ b/m4/ltsugar.m4 @@ -0,0 +1,123 @@ +# 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 +]) diff --git a/m4/ltversion.m4 b/m4/ltversion.m4 new file mode 100644 index 0000000..f3c5309 --- /dev/null +++ b/m4/ltversion.m4 @@ -0,0 +1,23 @@ +# 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) +]) diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4 new file mode 100644 index 0000000..637bb20 --- /dev/null +++ b/m4/lt~obsolete.m4 @@ -0,0 +1,92 @@ +# 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])]) diff --git a/m4/nls.m4 b/m4/nls.m4 new file mode 100644 index 0000000..36bc493 --- /dev/null +++ b/m4/nls.m4 @@ -0,0 +1,49 @@ +# nls.m4 serial 1 (gettext-0.12) +dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. +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_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) +]) + +AC_DEFUN([AM_MKINSTALLDIRS], +[ + 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 it. + MKINSTALLDIRS= + if test -n "$ac_aux_dir"; then + case "$ac_aux_dir" in + /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;; + *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;; + esac + fi + if test -z "$MKINSTALLDIRS"; then + MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" + fi + AC_SUBST(MKINSTALLDIRS) +]) diff --git a/m4/po.m4 b/m4/po.m4 new file mode 100644 index 0000000..e161998 --- /dev/null +++ b/m4/po.m4 @@ -0,0 +1,426 @@ +# po.m4 serial 3 (gettext-0.14) +dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. +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. + +dnl Checks for all prerequisites of the po subdirectory. +AC_DEFUN([AM_PO_SUBDIRS], +[ + AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_INSTALL])dnl + AC_REQUIRE([AM_MKINSTALLDIRS])dnl + AC_REQUIRE([AM_NLS])dnl + + dnl Perform the following tests also if --disable-nls has been given, + dnl because they are needed for "make dist" to work. + + dnl Search for GNU msgfmt in the PATH. + dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. + dnl The second test excludes FreeBSD msgfmt. + AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + + dnl Search for GNU xgettext 0.12 or newer in the PATH. + dnl The first test excludes Solaris xgettext and early GNU xgettext versions. + dnl The second test excludes FreeBSD xgettext. + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + dnl Remove leftover from FreeBSD xgettext call. + rm -f messages.po + + dnl Search for GNU msgmerge 0.11 or newer in the PATH. + AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, + [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :) + + dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. + dnl Test whether we really found GNU msgfmt. + if test "$GMSGFMT" != ":"; then + dnl If it is no GNU msgfmt we define it as : so that the + dnl Makefiles still can work. + if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && + (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + : ; + else + GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` + AC_MSG_RESULT( + [found $GMSGFMT program is not GNU msgfmt; ignore it]) + GMSGFMT=":" + fi + fi + + dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. + dnl Test whether we really found GNU xgettext. + if test "$XGETTEXT" != ":"; then + dnl If it is no GNU xgettext we define it as : so that the + dnl Makefiles still can work. + if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && + (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + : ; + else + AC_MSG_RESULT( + [found xgettext program is not GNU xgettext; ignore it]) + XGETTEXT=":" + fi + dnl Remove leftover from FreeBSD xgettext call. + rm -f messages.po + fi + + AC_OUTPUT_COMMANDS([ + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assigment from automake. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; 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 + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done], + [# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it + # from automake. + eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + ]) +]) + +dnl Postprocesses a Makefile in a directory containing PO files. +AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], +[ + # When this code is run, in config.status, two variables have already been + # set: + # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, + # - LINGUAS is the value of the environment variable LINGUAS at configure + # time. + +changequote(,)dnl + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + # Find a way to echo strings without interpreting backslash. + if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='echo' + else + if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='printf %s\n' + else + echo_func () { + cat < "$ac_file.tmp" + if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then + # Add dependencies that cannot be formulated as a simple suffix rule. + for lang in $ALL_LINGUAS; do + frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` + cat >> "$ac_file.tmp" < /dev/null; then + # Add dependencies that cannot be formulated as a simple suffix rule. + for lang in $ALL_LINGUAS; do + frobbedlang=`echo $lang | sed -e 's/_/-/g'` + cat >> "$ac_file.tmp" <> "$ac_file.tmp" < +#include +/* The string "%2$d %1$d", with dollar characters protected from the shell's + dollar expansion (possibly an autoconf bug). */ +static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' }; +static char buf[100]; +int main () +{ + sprintf (buf, format, 33, 55); + return (strcmp (buf, "55 33") != 0); +}], gt_cv_func_printf_posix=yes, gt_cv_func_printf_posix=no, + [ + AC_EGREP_CPP(notposix, [ +#if defined __NetBSD__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__ + notposix +#endif + ], gt_cv_func_printf_posix="guessing no", + gt_cv_func_printf_posix="guessing yes") + ]) + ]) + case $gt_cv_func_printf_posix in + *yes) + AC_DEFINE(HAVE_POSIX_PRINTF, 1, + [Define if your printf() function supports format strings with positions.]) + ;; + esac +]) diff --git a/m4/progtest.m4 b/m4/progtest.m4 new file mode 100644 index 0000000..8fe527c --- /dev/null +++ b/m4/progtest.m4 @@ -0,0 +1,91 @@ +# progtest.m4 serial 3 (gettext-0.12) +dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. +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 , 1996. + +# Search path for a program which passes the given test. + +dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +AC_DEFUN([AM_PATH_PROG_WITH_TEST], +[ +# Prepare PATH_SEPARATOR. +# 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 + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# 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. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in ifelse([$5], , $PATH, [$5]); do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + 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 +]) diff --git a/m4/signed.m4 b/m4/signed.m4 new file mode 100644 index 0000000..dc1f54f --- /dev/null +++ b/m4/signed.m4 @@ -0,0 +1,19 @@ +# signed.m4 serial 1 (gettext-0.10.40) +dnl Copyright (C) 2001-2002 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. + +AC_DEFUN([bh_C_SIGNED], +[ + AC_CACHE_CHECK([for signed], bh_cv_c_signed, + [AC_TRY_COMPILE(, [signed char x;], bh_cv_c_signed=yes, bh_cv_c_signed=no)]) + if test $bh_cv_c_signed = no; then + AC_DEFINE(signed, , + [Define to empty if the C compiler doesn't support this keyword.]) + fi +]) diff --git a/m4/size_max.m4 b/m4/size_max.m4 new file mode 100644 index 0000000..5762fc3 --- /dev/null +++ b/m4/size_max.m4 @@ -0,0 +1,61 @@ +# size_max.m4 serial 2 +dnl Copyright (C) 2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. + +AC_DEFUN([gl_SIZE_MAX], +[ + AC_CHECK_HEADERS(stdint.h) + dnl First test whether the system already has SIZE_MAX. + AC_MSG_CHECKING([for SIZE_MAX]) + result= + AC_EGREP_CPP([Found it], [ +#include +#if HAVE_STDINT_H +#include +#endif +#ifdef SIZE_MAX +Found it +#endif +], result=yes) + if test -z "$result"; then + dnl Define it ourselves. Here we assume that the type 'size_t' is not wider + dnl than the type 'unsigned long'. + dnl The _AC_COMPUTE_INT macro works up to LONG_MAX, since it uses 'expr', + dnl which is guaranteed to work from LONG_MIN to LONG_MAX. + _AC_COMPUTE_INT([~(size_t)0 / 10], res_hi, + [#include ], result=?) + _AC_COMPUTE_INT([~(size_t)0 % 10], res_lo, + [#include ], result=?) + _AC_COMPUTE_INT([sizeof (size_t) <= sizeof (unsigned int)], fits_in_uint, + [#include ], result=?) + if test "$fits_in_uint" = 1; then + dnl Even though SIZE_MAX fits in an unsigned int, it must be of type + dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'. + AC_TRY_COMPILE([#include + extern size_t foo; + extern unsigned long foo; + ], [], fits_in_uint=0) + fi + if test -z "$result"; then + if test "$fits_in_uint" = 1; then + result="$res_hi$res_lo"U + else + result="$res_hi$res_lo"UL + fi + else + dnl Shouldn't happen, but who knows... + result='~(size_t)0' + fi + fi + AC_MSG_RESULT([$result]) + if test "$result" != yes; then + AC_DEFINE_UNQUOTED([SIZE_MAX], [$result], + [Define as the maximum value of type 'size_t', if the system doesn't define it.]) + fi +]) diff --git a/m4/stdint_h.m4 b/m4/stdint_h.m4 new file mode 100644 index 0000000..32ba7ae --- /dev/null +++ b/m4/stdint_h.m4 @@ -0,0 +1,28 @@ +# stdint_h.m4 serial 3 (gettext-0.12) +dnl Copyright (C) 1997-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Paul Eggert. + +# Define HAVE_STDINT_H_WITH_UINTMAX if exists, +# doesn't clash with , and declares uintmax_t. + +AC_DEFUN([jm_AC_HEADER_STDINT_H], +[ + AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h, + [AC_TRY_COMPILE( + [#include +#include ], + [uintmax_t i = (uintmax_t) -1;], + jm_ac_cv_header_stdint_h=yes, + jm_ac_cv_header_stdint_h=no)]) + if test $jm_ac_cv_header_stdint_h = yes; then + AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1, + [Define if exists, doesn't clash with , + and declares uintmax_t. ]) + fi +]) diff --git a/m4/uintmax_t.m4 b/m4/uintmax_t.m4 new file mode 100644 index 0000000..b5f28d4 --- /dev/null +++ b/m4/uintmax_t.m4 @@ -0,0 +1,32 @@ +# uintmax_t.m4 serial 7 (gettext-0.12) +dnl Copyright (C) 1997-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Paul Eggert. + +AC_PREREQ(2.13) + +# Define uintmax_t to 'unsigned long' or 'unsigned long long' +# if it is not already defined in or . + +AC_DEFUN([jm_AC_TYPE_UINTMAX_T], +[ + AC_REQUIRE([jm_AC_HEADER_INTTYPES_H]) + AC_REQUIRE([jm_AC_HEADER_STDINT_H]) + if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then + AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG]) + test $ac_cv_type_unsigned_long_long = yes \ + && ac_type='unsigned long long' \ + || ac_type='unsigned long' + AC_DEFINE_UNQUOTED(uintmax_t, $ac_type, + [Define to unsigned long or unsigned long long + if and don't define.]) + else + AC_DEFINE(HAVE_UINTMAX_T, 1, + [Define if you have the 'uintmax_t' type in or .]) + fi +]) diff --git a/m4/ulonglong.m4 b/m4/ulonglong.m4 new file mode 100644 index 0000000..1da8b80 --- /dev/null +++ b/m4/ulonglong.m4 @@ -0,0 +1,25 @@ +# ulonglong.m4 serial 3 +dnl Copyright (C) 1999-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Paul Eggert. + +# Define HAVE_UNSIGNED_LONG_LONG if 'unsigned long long' works. + +AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG], +[ + AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long, + [AC_TRY_LINK([unsigned long long ull = 1ULL; int i = 63;], + [unsigned long long ullmax = (unsigned long long) -1; + return ull << i | ull >> i | ullmax / ull | ullmax % ull;], + ac_cv_type_unsigned_long_long=yes, + ac_cv_type_unsigned_long_long=no)]) + if test $ac_cv_type_unsigned_long_long = yes; then + AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1, + [Define if you have the 'unsigned long long' type.]) + fi +]) diff --git a/m4/wchar_t.m4 b/m4/wchar_t.m4 new file mode 100644 index 0000000..d8fd1ec --- /dev/null +++ b/m4/wchar_t.m4 @@ -0,0 +1,22 @@ +# wchar_t.m4 serial 1 (gettext-0.12) +dnl Copyright (C) 2002-2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. +dnl Test whether has the 'wchar_t' type. +dnl Prerequisite: AC_PROG_CC + +AC_DEFUN([gt_TYPE_WCHAR_T], +[ + AC_CACHE_CHECK([for wchar_t], gt_cv_c_wchar_t, + [AC_TRY_COMPILE([#include + wchar_t foo = (wchar_t)'\0';], , + gt_cv_c_wchar_t=yes, gt_cv_c_wchar_t=no)]) + if test $gt_cv_c_wchar_t = yes; then + AC_DEFINE(HAVE_WCHAR_T, 1, [Define if you have the 'wchar_t' type.]) + fi +]) diff --git a/m4/wint_t.m4 b/m4/wint_t.m4 new file mode 100644 index 0000000..3d8d215 --- /dev/null +++ b/m4/wint_t.m4 @@ -0,0 +1,22 @@ +# wint_t.m4 serial 1 (gettext-0.12) +dnl Copyright (C) 2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl From Bruno Haible. +dnl Test whether has the 'wint_t' type. +dnl Prerequisite: AC_PROG_CC + +AC_DEFUN([gt_TYPE_WINT_T], +[ + AC_CACHE_CHECK([for wint_t], gt_cv_c_wint_t, + [AC_TRY_COMPILE([#include + wint_t foo = (wchar_t)'\0';], , + gt_cv_c_wint_t=yes, gt_cv_c_wint_t=no)]) + if test $gt_cv_c_wint_t = yes; then + AC_DEFINE(HAVE_WINT_T, 1, [Define if you have the 'wint_t' type.]) + fi +]) diff --git a/m4/xsize.m4 b/m4/xsize.m4 new file mode 100644 index 0000000..9b7cf9b --- /dev/null +++ b/m4/xsize.m4 @@ -0,0 +1,14 @@ +# xsize.m4 serial 2 +dnl Copyright (C) 2003 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +AC_DEFUN([gl_XSIZE], +[ + dnl Prerequisites of lib/xsize.h. + AC_REQUIRE([gl_SIZE_MAX]) + AC_CHECK_HEADERS(stdint.h) +]) diff --git a/src/Makefile.am b/src/Makefile.am new file mode 100644 index 0000000..f3e25c1 --- /dev/null +++ b/src/Makefile.am @@ -0,0 +1,30 @@ +MAINTAINERCLEANFILES = Makefile.in + +INCLUDES = -I. \ + -I$(top_srcdir) \ + -I$(includedir) \ + @E_CFLAGS@ + +pkgdir = $(datadir)/$(MODULE_ARCH) +pkg_LTLIBRARIES = module.la +module_la_SOURCES = main.h \ + main.c \ + elfe_config.c \ + elfe_config.h \ + allapps.c \ + allapps.h \ + desktop.c \ + desktop.h \ + gadgets.c \ + gadgets.h \ + utils.c \ + utils.h \ + winlist.c \ + winlist.h + +module_la_LIBADD = @E_LIBS@ +module_la_LDFLAGS = -module -avoid-version +module_la_DEPENDENCIES = $(top_builddir)/config.h + +clean-local: + rm -rf *~ diff --git a/src/allapps.c b/src/allapps.c new file mode 100644 index 0000000..76c1f4a --- /dev/null +++ b/src/allapps.c @@ -0,0 +1,155 @@ +#include + +#include "utils.h" + +typedef struct _Elfe_Grid_Item Elfe_Grid_Item; + +struct _Elfe_Grid_Item +{ + const char *icon_path; + Efreet_Menu *menu; +}; + +static Elm_Gengrid_Item_Class app_itc; +static Efreet_Menu *menus; +static Eina_List *grid_items = NULL; + +static void _populate_items_cb(void *data, Evas_Object *obj, void *event_info); + +static char * +_label_get(void *data, Evas_Object *obj, const char *part) +{ + + Elfe_Grid_Item *gitem = data; + + if (gitem->menu->name) + return strdup(gitem->menu->name); + else + return NULL; + +} + +static Evas_Object * +_icon_get(void *data, Evas_Object *obj, const char *part) +{ + const char *path; + Evas_Object *ic = NULL; + Elfe_Grid_Item *gitem = data; + + if (!gitem) + return NULL; + + /* Fixme use elfe_util_fdo_icon_add */ + if (!strcmp(part, "elm.swallow.icon")) + { + ic = elm_icon_add(obj); + elm_icon_file_set(ic, gitem->icon_path, NULL); + } + + return ic; +} + + + +static void +_gl_longpress(void *data, Evas_Object *obj, void *event_info) +{ + Evas_Object *popup; + Evas_Object *ic; + Elfe_Grid_Item *gitem; + Elm_Ctxpopup_Item *it; + + gitem = elm_gengrid_item_data_get(event_info); + + if (gitem->menu->type != EFREET_MENU_ENTRY_DESKTOP) + return; + + evas_object_smart_callback_call(data, + "entry,longpressed", gitem->menu); +} + +static void +_item_selected(void *data, Evas_Object *obj, void *event_info) +{ + Elfe_Grid_Item *gitem = data; + printf("Selected\n"); + evas_object_smart_callback_call(obj, "item,selected", gitem->menu); +} + + +static void +_add_items(Evas_Object *parent, Efreet_Menu *entry) +{ + Efreet_Menu *menu; + Efreet_Menu *it; + Eina_List *l; + Elfe_Grid_Item *gitem; + + if (!entry) + menu = efreet_menu_get(); + else + menu = entry; + + EINA_LIST_FOREACH(menu->entries, l, it) + { + switch (it->type) + { + case EFREET_MENU_ENTRY_MENU : + _add_items(parent, it); + break; + case EFREET_MENU_ENTRY_DESKTOP : + gitem = calloc(1, sizeof(Elfe_Grid_Item)); + gitem->icon_path = elfe_utils_fdo_icon_path_get(it, 72); + gitem->menu = it; + grid_items = eina_list_append(grid_items, gitem); + elm_gengrid_item_append(parent, &app_itc, gitem, _item_selected, gitem); + default: + break; + } + } +} + +static Eina_Bool +_desktop_cache_update(void *data, int type, void *event) +{ + + return ECORE_CALLBACK_PASS_ON; +} + +Evas_Object * +elfe_allapps_add(Evas_Object *parent) +{ + Evas_Object *list; + char *path; + Evas_Object *ic; + Eina_List *l; + + + /* FIXME use dynamic item size */ + list = elm_gengrid_add(parent); + elm_gengrid_item_size_set(list, 128, 128); + elm_gengrid_multi_select_set(list, EINA_FALSE); + elm_gengrid_bounce_set(list, EINA_FALSE, EINA_TRUE); + + evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL); + + evas_object_smart_callback_add(list, "longpressed", _gl_longpress, list); + evas_object_show(list); + + app_itc.item_style = "default"; + app_itc.func.label_get = _label_get; + app_itc.func.icon_get = _icon_get; + app_itc.func.state_get = NULL; + app_itc.func.del = NULL; + + _add_items(list, NULL); + evas_object_show(list); + + ecore_event_handler_add(EFREET_EVENT_DESKTOP_CACHE_UPDATE, + _desktop_cache_update, + NULL); + + return list; +} + diff --git a/src/allapps.h b/src/allapps.h new file mode 100644 index 0000000..6b7029d --- /dev/null +++ b/src/allapps.h @@ -0,0 +1,8 @@ +#ifndef _ALLAPPS_H_ +#define _ALLAPPS_H_ + +#include + +Evas_Object *elfe_allapps_add(Evas_Object *parent); + +#endif /* _ALLAPPS_H_ */ diff --git a/src/desktop.c b/src/desktop.c new file mode 100644 index 0000000..a72625c --- /dev/null +++ b/src/desktop.c @@ -0,0 +1,410 @@ +#include +#include + +#include "gadgets.h" +#include "elfe_config.h" + +#define ELFE_DESKTOP_NUM 5 +#define ELFE_DESKTOP_PADDING_W 10 +#define ELFE_DESKTOP_PADDING_H 10 + +typedef struct _Elfe_Desktop Elfe_Desktop; + +struct _Elfe_Desktop +{ + Evas_Object *layout; + Evas_Object *sc; + Eina_List *pads; + Eina_List *gadgets; + Evas_Object *selector; + Eina_List *selector_objs; + int current_desktop; + Ecore_Timer *longpress_timer; + Eina_Bool on_hold; + Eina_Bool edit_mode; + Eina_List *overs; +}; + + +static Elfe_Desktop *desk; + +static void +_scroller_edge_left_cb(void *data , Evas_Object *obj, void *event_info ) +{ + +} + +static void +_scroller_edge_right_cb(void *data , Evas_Object *obj, void *event_info ) +{ + +} + + +static void +_scroller_scroll_cb(void *data , Evas_Object *obj, void *event_info ) +{ + +} + + +static void +_scroller_scroll_anim_start_cb(void *data , Evas_Object *obj, void *event_info ) +{ + +} + +static void +_scroller_scroll_anim_stop_cb(void *data , Evas_Object *obj, void *event_info ) +{ + Elfe_Desktop *desk = data; + Evas_Coord x, y, w, h; + int num; + int i; + + + elm_scroller_region_get(desk->sc, &x, &y, &w, &h); + + + for (i = 0; i < ELFE_DESKTOP_NUM; i++) + { + Evas_Object *o_edje = elm_layout_edje_get(eina_list_nth(desk->selector_objs, i)); + if (x < (i+1) * 480 && x >= i*480) + { + desk->current_desktop = i; + edje_object_signal_emit(o_edje, "select", "elfe"); + } + else + { + edje_object_signal_emit(o_edje, "unselect", "elfe"); + } + } +} + +static void +_scroller_scroll_drag_start_cb(void *data , Evas_Object *obj, void *event_info ) +{ + +} + +static void +_scroller_scroll_drag_stop_cb(void *data , Evas_Object *obj, void *event_info ) +{ + +} + +static Eina_Bool +_longpress_timer_cb(void *data) +{ + Elfe_Desktop *desk = data; + + /* Logpress action */ + + evas_object_smart_callback_call(desk->layout, + "longpressed", NULL); + + desk->longpress_timer = NULL; + + return ECORE_CALLBACK_CANCEL; +} + +static void +_scroller_mouse_move_cb(void *data,Evas *evas, Evas_Object *obj, void *event_info) +{ + Elfe_Desktop *desk = data; + Evas_Event_Mouse_Move *ev = event_info; + + if (!desk->on_hold) + { + desk->on_hold = EINA_FALSE; + } + if (desk->longpress_timer) + { + ecore_timer_del(desk->longpress_timer); + desk->longpress_timer = NULL; + } + +} + + +static void +_scroller_mouse_up_cb(void *data,Evas *evas, Evas_Object *obj, void *event_info) +{ + Elfe_Desktop *desk = data; + + desk->on_hold = EINA_FALSE; + if (desk->longpress_timer) + { + ecore_timer_del(desk->longpress_timer); + desk->longpress_timer = NULL; + } +} + + +static void +_scroller_mouse_down_cb(void *data,Evas *evas, Evas_Object *obj, void *event_info) +{ + Elfe_Desktop *desk = data; + Evas_Event_Mouse_Down *ev = event_info; + + desk->on_hold = EINA_TRUE; + if (desk->longpress_timer) + ecore_timer_del(desk->longpress_timer); + desk->longpress_timer = ecore_timer_add(1.0, _longpress_timer_cb, desk); +} + + + + + +static void +_cb_object_resize(void *data , Evas *e , Evas_Object *obj, void *event_info ) +{ + Elfe_Desktop *desk = data; + Evas_Coord x, y, w, h; + Eina_Array *pad; + Eina_List *l; + Evas_Object *gad; + + evas_object_geometry_get(obj, &x, &y, &w, &h); + EINA_LIST_FOREACH(desk->pads, l, pad) + { + evas_object_size_hint_min_set(eina_array_data_get(pad, 0), w - 2 * ELFE_DESKTOP_PADDING_W , ELFE_DESKTOP_PADDING_H); + evas_object_size_hint_min_set(eina_array_data_get(pad, 1), w - 2 * ELFE_DESKTOP_PADDING_W , ELFE_DESKTOP_PADDING_H); + evas_object_size_hint_min_set(eina_array_data_get(pad, 2), ELFE_DESKTOP_PADDING_W , h - 2 * ELFE_DESKTOP_PADDING_H); + evas_object_size_hint_min_set(eina_array_data_get(pad, 3), ELFE_DESKTOP_PADDING_W ,h - 2 * ELFE_DESKTOP_PADDING_H); + + } + EINA_LIST_FOREACH(desk->gadgets, l, gad) + { + evas_object_size_hint_min_set(gad, w - 2 * ELFE_DESKTOP_PADDING_W, h - 2 * ELFE_DESKTOP_PADDING_H); + } + +} + + +static void +_gadget_selected_cb(void *data , Evas_Object *obj, void *event_info ) +{ + E_Gadcon_Client_Class *gcc = data; + Evas_Object *gad; + + gad = eina_list_nth(desk->gadgets, desk->current_desktop); + elfe_gadgets_gadget_add(gad, gcc); + evas_object_smart_callback_call(desk->layout, + "gadget,added", NULL); +} + +void +elfe_desktop_app_add(Evas_Object *obj, Efreet_Menu *menu, Evas_Coord x, Evas_Coord y) +{ + Elfe_Desktop *desk = evas_object_data_get(obj, "elfe_desktop"); + Evas_Object *gad; + gad = eina_list_nth(desk->gadgets, desk->current_desktop); + elfe_gadgets_app_add(gad, menu, x, y); +} + +Evas_Object * +elfe_desktop_gadget_list(Evas_Object *obj) +{ + Elfe_Desktop *desk = evas_object_data_get(obj, "elfe_desktop"); + Evas_Object *list; + E_Gadcon_Client_Class *gcc = NULL; + Eina_List *l; + Evas_Object *icon = NULL, *end; + const char *lbl = NULL; + + list = elm_list_add(obj); + EINA_LIST_FOREACH(e_gadcon_provider_list(), l, gcc) + { + if (gcc->func.label) lbl = gcc->func.label(gcc); + if (!lbl) lbl = gcc->name; + if (gcc->func.icon) icon = gcc->func.icon(gcc, evas_object_evas_get(obj)); + evas_object_size_hint_min_set(icon, 48, 48); + elm_list_item_append(list, lbl, icon, NULL, _gadget_selected_cb, gcc); + } + return list; +} + +Evas_Object * +elfe_desktop_add(Evas_Object *parent) +{ + Evas_Object *tb, *pad, *bx, *ly; + + int i; + Evas_Coord x, y, w, h; + const char *desktop_name; + Evas_Object *gad; + char buf[4096]; + + snprintf(buf, sizeof(buf), "%s/default.edj", + elfe_home_cfg->mod_dir); + + desk = calloc(1, sizeof(Elfe_Desktop)); + + desk->layout = elm_layout_add(parent); + elm_layout_file_set(desk->layout, buf, "elfe/desktop/layout"); + + desk->sc = elm_scroller_add(parent); + elm_scroller_bounce_set(desk->sc, EINA_TRUE, EINA_FALSE); + elm_scroller_policy_set(desk->sc, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); + elm_scroller_page_relative_set(desk->sc, 1.0, 1.0); + + bx = elm_box_add(desk->sc); + evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_homogenous_set(bx, EINA_TRUE); + elm_box_horizontal_set(bx, EINA_TRUE); + + desk->selector = elm_box_add(desk->layout); + elm_box_homogenous_set(desk->selector, EINA_TRUE); + elm_box_horizontal_set(desk->selector, EINA_TRUE); + evas_object_show(desk->selector); + + for (i = 0; i < ELFE_DESKTOP_NUM; i++) + { + Eina_Array *pad_arr = eina_array_new(4);; + Evas_Object *sel; + + tb = elm_table_add(bx); + evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(tb, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_show(tb); + + pad = evas_object_rectangle_add(evas_object_evas_get(bx)); + evas_object_size_hint_min_set(pad, 460, ELFE_DESKTOP_PADDING_H); + elm_table_pack(tb, pad, 1, 0, 1, 1); + //evas_object_show(pad); + eina_array_push(pad_arr, pad); + + + pad = evas_object_rectangle_add(evas_object_evas_get(bx)); + evas_object_size_hint_min_set(pad, 460, ELFE_DESKTOP_PADDING_H); + elm_table_pack(tb, pad, 1, 2, 1, 1); + //evas_object_show(pad); + eina_array_push(pad_arr, pad); + + pad = evas_object_rectangle_add(evas_object_evas_get(bx)); + evas_object_size_hint_min_set(pad, ELFE_DESKTOP_PADDING_W, 480); + elm_table_pack(tb, pad, 0, 1, 1, 1); + //evas_object_show(pad); + eina_array_push(pad_arr, pad); + + pad = evas_object_rectangle_add(evas_object_evas_get(bx)); + evas_object_size_hint_min_set(pad, ELFE_DESKTOP_PADDING_W, 480); + elm_table_pack(tb, pad, 2, 1, 1, 1); + //evas_object_show(pad); + eina_array_push(pad_arr, pad); + + desk->pads = eina_list_append(desk->pads, pad_arr); + + evas_object_show(tb); + + elm_box_pack_end(bx, tb); + + desktop_name = eina_stringshare_printf("Elfe Desktop %d", i); + gad = elfe_gadgets_zone_add(tb, i, desktop_name); + evas_object_show(gad); + + desk->gadgets = eina_list_append(desk->gadgets, gad); + eina_stringshare_del(desktop_name); + elm_table_pack(tb, gad, 1, 1, 1, 1); + + sel = elm_layout_add(bx); + elm_layout_file_set(sel, buf, "elfe/desktop/selector"); + evas_object_show(sel); + evas_object_size_hint_min_set(sel, 32, 32); + if (!i) + { + Evas_Object *o_edje; + o_edje = elm_layout_edje_get(sel); + edje_object_signal_emit(o_edje, "select", "elfe"); + } + elm_box_pack_end(desk->selector, sel); + + desk->selector_objs = eina_list_append(desk->selector_objs, sel); + + + } + + elm_scroller_content_set(desk->sc, bx); + evas_object_show(bx); + + evas_object_smart_callback_add(desk->sc, "edge,left", _scroller_edge_left_cb, desk); + evas_object_smart_callback_add(desk->sc, "edge,right", _scroller_edge_right_cb, desk); + evas_object_smart_callback_add(desk->sc, "scroll", _scroller_scroll_cb, desk); + evas_object_smart_callback_add(desk->sc, "scroll,anim,start", _scroller_scroll_anim_start_cb, desk); + evas_object_smart_callback_add(desk->sc, "scroll,anim,stop", _scroller_scroll_anim_stop_cb, desk); + evas_object_smart_callback_add(desk->sc, "scroll,drag,start", _scroller_scroll_drag_start_cb, desk); + evas_object_smart_callback_add(desk->sc, "scroll,drag,stop", _scroller_scroll_drag_stop_cb, desk); + + evas_object_event_callback_add(desk->sc, EVAS_CALLBACK_MOUSE_MOVE, _scroller_mouse_move_cb, desk); + evas_object_event_callback_add(desk->sc, EVAS_CALLBACK_MOUSE_UP, _scroller_mouse_up_cb, desk); + evas_object_event_callback_add(desk->sc, EVAS_CALLBACK_MOUSE_DOWN, _scroller_mouse_down_cb, desk); + + + evas_object_event_callback_add(desk->sc, EVAS_CALLBACK_RESIZE, + _cb_object_resize, desk); + + evas_object_data_set(desk->layout, "elfe_desktop", desk); + + elm_layout_content_set(desk->layout, "elfe.swallow.content", desk->sc); + elm_layout_content_set(desk->layout, "elfe.swallow.selector", desk->selector); + + return desk->layout; + +} + +void +elfe_desktop_edit_mode_set(Evas_Object *obj, Eina_Bool mode) +{ + Elfe_Desktop *desk = evas_object_data_get(obj, "elfe_desktop"); + Evas_Object *gad; + int m,n; + int i,j; + char buf[PATH_MAX]; + Evas_Object *over; + + if (desk->edit_mode == mode) + return; + + desk->edit_mode = mode; + + snprintf(buf, sizeof(buf), "%s/default.edj", + elfe_home_cfg->mod_dir); + + if (mode) + { + Evas_Coord x, y, w, h; + gad = eina_list_nth(desk->gadgets, desk->current_desktop); + evas_object_geometry_get(gad, &x, &y, &w, &h); + m = w / 4; + n = h / 4; + + for (i = 0; i < 4; i++) + for (j = 0; j < 4; j++) + { + Evas_Object *o_edje; + + const char* part; + over = elm_layout_add(desk->sc); + elm_layout_file_set(over, buf, "elfe/gadget/places/over"); + o_edje = elm_layout_edje_get(over); + edje_object_signal_emit(o_edje, "place,free", "elfe"); + evas_object_resize(o_edje, m, n); + evas_object_move(o_edje, x + i*m, y + j*n); + evas_object_show(over); + part = eina_stringshare_printf("edje %d-%d", i, j); + desk->overs = eina_list_append(desk->overs, over); + } + } + else + { + EINA_LIST_FREE(desk->overs, over) + { + evas_object_del(over); + } + desk->overs = NULL; + } + +} diff --git a/src/desktop.h b/src/desktop.h new file mode 100644 index 0000000..8d55407 --- /dev/null +++ b/src/desktop.h @@ -0,0 +1,9 @@ +#ifndef _DESKTOP_H_ +#define _DESKTOP_H_ + +#include + +Evas_Object *elfe_desktop_add(Evas_Object *parent); +Evas_Object *elfe_desktop_gadget_list(Evas_Object *obj); + +#endif /* _DESKTOP_H_ */ diff --git a/src/elfe_config.c b/src/elfe_config.c new file mode 100644 index 0000000..0884ff8 --- /dev/null +++ b/src/elfe_config.c @@ -0,0 +1,197 @@ +#include +#include + +#include "main.h" +#include "elfe_config.h" + +/* local function prototypes */ +static void *_elfe_home_config_create(E_Config_Dialog *cfd); +static void _elfe_home_config_free(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); +static Evas_Object *_elfe_home_config_ui(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); +static void _elfe_home_config_changed(void *data, Evas_Object *obj, void *event); +static void _elfe_home_config_slider_changed(void *data, Evas_Object *obj); +static void _elfe_home_config_click_changed(void *data, Evas_Object *obj, void *event); +static Eina_Bool _elfe_home_config_change_timeout(void *data); + +/* local variables */ +EAPI Elfe_Home_Config *elfe_home_cfg = NULL; +static E_Config_DD *conf_edd = NULL; +static E_Config_DD *conf_desktop_edd = NULL; +static E_Config_DD *conf_desktop_item_edd = NULL; +Ecore_Timer *_elfe_home_config_change_timer = NULL; +Evas_Object *delay_label, *delay_slider; + +/* public functions */ +int +elfe_home_config_init(E_Module *m) +{ + char buff[PATH_MAX]; + Eina_List *l; + + + conf_desktop_item_edd = E_CONFIG_DD_NEW("Elfe_Desktop_Item_Cfg", Elfe_Desktop_Item_Config); + +#undef T +#undef D +#define T Elfe_Desktop_Item_Config +#define D conf_desktop_item_edd + E_CONFIG_VAL(D, T, type, INT); + E_CONFIG_VAL(D, T, name, STR); + E_CONFIG_VAL(D, T, pos_x, INT); + E_CONFIG_VAL(D, T, pos_y, INT); + E_CONFIG_VAL(D, T, size_w, INT); + E_CONFIG_VAL(D, T, size_h, INT); + E_CONFIG_VAL(D, T, col, INT); + E_CONFIG_VAL(D, T, row, INT); + + conf_desktop_edd = E_CONFIG_DD_NEW("Elfe_Desktop_Cfg", Elfe_Desktop_Config); +#undef T +#undef D +#define T Elfe_Desktop_Config +#define D conf_desktop_edd + E_CONFIG_LIST(D, T, items, conf_desktop_item_edd); + + + conf_edd = E_CONFIG_DD_NEW("Elfe_Cfg", Elfe_Home_Config); +#undef T +#undef D +#define T Elfe_Home_Config +#define D conf_edd + E_CONFIG_LIST(D, T, desktops, conf_desktop_edd); + + elfe_home_cfg = e_config_domain_load("module.elfe", conf_edd); + + + if (!elfe_home_cfg) + { + int i; + elfe_home_cfg = E_NEW(Elfe_Home_Config, 1); + + for (i = 0; i < 5; i++) + { + Elfe_Desktop_Config *dc; + dc = E_NEW(Elfe_Desktop_Config, 1); + elfe_home_cfg->desktops = eina_list_append(elfe_home_cfg->desktops, dc); + } + + } + + + elfe_home_cfg->mod_dir = eina_stringshare_add(m->dir); + elfe_home_cfg->theme = eina_stringshare_printf("%s/default.edj", elfe_home_cfg->mod_dir); + + e_configure_registry_category_add("illume", 0, "Illume", NULL, + "enlightenment/display"); + e_configure_registry_generic_item_add("illume/elfe", 0, "Elfe", + buff, "icon", elfe_home_config_show); + return 1; +} + +int +elfe_home_config_shutdown(void) +{ + e_configure_registry_item_del("illume/elfe"); + e_configure_registry_category_del("illume"); + + if (elfe_home_cfg->mod_dir) eina_stringshare_del(elfe_home_cfg->mod_dir); + + E_FREE(elfe_home_cfg); + elfe_home_cfg = NULL; + + E_CONFIG_DD_FREE(conf_edd); + return 1; +} + +int +elfe_home_config_save(void) +{ + printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<< CONFIG SAVE\n"); + e_config_domain_save("module.elfe", conf_edd, elfe_home_cfg); + return 1; +} + +void +elfe_home_config_show(E_Container *con, const char *params __UNUSED__) +{ + +} + +/* local functions */ +static void * +_elfe_home_config_create(E_Config_Dialog *cfd __UNUSED__) +{ + return NULL; +} + +static void +_elfe_home_config_free(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata __UNUSED__) +{ + elfe_home_win_cfg_update(); +} + +static Evas_Object * +_elfe_home_config_ui(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata __UNUSED__) +{ + +} + +static void +_elfe_home_config_changed(void *data, Evas_Object *obj __UNUSED__, void *event __UNUSED__) +{ + if (_elfe_home_config_change_timer) + ecore_timer_del(_elfe_home_config_change_timer); + _elfe_home_config_change_timer = + ecore_timer_add(0.5, _elfe_home_config_change_timeout, data); +} + +static void +_elfe_home_config_slider_changed(void *data, Evas_Object *obj __UNUSED__) +{ + if (_elfe_home_config_change_timer) + ecore_timer_del(_elfe_home_config_change_timer); + _elfe_home_config_change_timer = + ecore_timer_add(0.5, _elfe_home_config_change_timeout, data); +} + +static void +_elfe_home_config_click_changed(void *data, Evas_Object *obj, void *event) +{ + _elfe_home_config_changed(data, obj, event); +} + +static Eina_Bool +_elfe_home_config_change_timeout(void *data __UNUSED__) +{ + elfe_home_win_cfg_update(); + e_config_save_queue(); + _elfe_home_config_change_timer = NULL; + return ECORE_CALLBACK_CANCEL; +} + +void elfe_home_config_desktop_item_add(int desktop, + Elfe_Desktop_Item_Type type, + int col, int row, + Evas_Coord x, Evas_Coord y, + Evas_Coord w, Evas_Coord h, + const char *name) +{ + Elfe_Desktop_Config *dc; + Elfe_Desktop_Item_Config *dic; + + dic = calloc(1, sizeof(Elfe_Desktop_Item_Config)); + dic->type = type; + dic->name = eina_stringshare_add(name); + + dic->size_w = w; + dic->size_h = h; + dic->pos_x = x; + dic->pos_y = y; + dic->col = col; + dic->row = row; + + dc = eina_list_nth(elfe_home_cfg->desktops, desktop); + if (dc) + dc->items = eina_list_append(dc->items, dic); + + elfe_home_config_save(); +} diff --git a/src/elfe_config.h b/src/elfe_config.h new file mode 100644 index 0000000..8a47403 --- /dev/null +++ b/src/elfe_config.h @@ -0,0 +1,56 @@ +#ifndef E_MOD_CONFIG_H +#define E_MOD_CONFIG_H + +#define IL_CONFIG_MIN 0 +#define IL_CONFIG_MAJ 0 + +typedef struct _Elfe_Home_Config Elfe_Home_Config; +typedef struct _Elfe_Desktop_Config Elfe_Desktop_Config; +typedef struct _Elfe_Desktop_Item_Config Elfe_Desktop_Item_Config; +typedef enum _Elfe_Desktop_Item_Type Elfe_Desktop_Item_Type; + +enum _Elfe_Desktop_Item_Type +{ + ELFE_DESKTOP_ITEM_APP, + ELFE_DESKTOP_ITEM_GADGET +}; + +struct _Elfe_Home_Config +{ + Eina_List *desktops; + const char *mod_dir; + const char *theme; +}; + +struct _Elfe_Desktop_Config +{ + Eina_List *items; +}; + +struct _Elfe_Desktop_Item_Config +{ + Elfe_Desktop_Item_Type type; + const char *name; + Evas_Coord pos_x; + Evas_Coord pos_y; + Evas_Coord size_w; + Evas_Coord size_h; + int row; + int col; +}; + +int elfe_home_config_init(E_Module *m); +int elfe_home_config_shutdown(void); +int elfe_home_config_save(void); +void elfe_home_config_show(E_Container *con, const char *params); +void elfe_home_config_desktop_item_add(int desktop, + Elfe_Desktop_Item_Type type, + int col, int row, + Evas_Coord x, Evas_Coord y, + Evas_Coord w, Evas_Coord h, + const char *name); + + +extern EAPI Elfe_Home_Config *elfe_home_cfg; + +#endif diff --git a/src/gadgets.c b/src/gadgets.c new file mode 100644 index 0000000..a51d543 --- /dev/null +++ b/src/gadgets.c @@ -0,0 +1,307 @@ +#include + +#include "gadgets.h" +#include "utils.h" +#include "elfe_config.h" + +typedef struct _Elfe_Gadget Elfe_Gadget; + +struct _Elfe_Gadget +{ + int desktop; + Evas_Object *layout; + E_Gadcon_Location *location; + E_Gadcon *gc; + Eina_Bool in_use[4][4]; /* FIXME change gor a dynamic and use eina_array instead */ +}; + +static Evas_Object * +_item_add(Elfe_Gadget *egad, Elfe_Desktop_Item_Type type, const char *name, Evas_Object *child, int col, int row, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) +{ + Elfe_Desktop_Config *dc; + Elfe_Desktop_Item_Config *dic; + Evas_Object *ly; + + if (egad->in_use[col][row] == EINA_TRUE) + { + printf("ERROR : already in use\n"); + return NULL; + } + + ly = edje_object_add(evas_object_evas_get(egad->layout)); + + switch (type) + { + case ELFE_DESKTOP_ITEM_APP: + edje_object_file_set(ly, elfe_home_cfg->theme, "elfe/desktop/app/frame"); + edje_object_part_text_set(ly, "elfe.text.label", name); + break; + case ELFE_DESKTOP_ITEM_GADGET: + edje_object_file_set(ly, elfe_home_cfg->theme, "elfe/desktop/gadget/frame"); + break; + default: + break; + } + + + edje_object_part_swallow(ly, "elfe.swallow.content", child); + evas_object_show(child); + evas_object_show(ly); + + e_layout_pack(egad->layout, ly); + //evas_object_move(ly, x, y); + //evas_object_resize(ly, w, h); + + e_layout_child_move(ly, x, y); + e_layout_child_resize(ly, w, h); + + egad->in_use[col][row] = EINA_TRUE; + + return ly; +} + + + +static int +_gadget_client_add(void *data, const E_Gadcon_Client_Class *cc) +{ + + Elfe_Gadget *egad = data; + E_Gadcon_Client *gcc = NULL; + Evas_Coord ox, oy, ow, oh; + int i,j; + Evas_Coord x, y, w, h; + Evas_Object *ly; + + /* FIXME cols/row must be a config value */ + evas_object_geometry_get(egad->layout, &ox, &oy, &ow, &oh); + + w = ow / 4; + h = oh / 4; + + for (i = 0; i < 4; i++) + for (j = 0; j < 4; j++) + { + if (!egad->in_use[i][j]) + { + x = i*w; + y = j*h; + gcc = cc->func.init(egad->gc, cc->name, "test", cc->default_style); + ly = _item_add(egad, ELFE_DESKTOP_ITEM_GADGET, cc->name, gcc->o_base, i, j, x, y, w, h); + if (ly) + { + elfe_home_config_desktop_item_add(egad->desktop, ELFE_DESKTOP_ITEM_GADGET, i, j, x, y, w, h, cc->name); + return 1; + } + else + return 0; + } + } + + return 0; +} + +static void +_gadget_client_remove(void *data, E_Gadcon_Client *gcc) +{ +} + +void +_gadget_populate_class(void *data, E_Gadcon *gc, const E_Gadcon_Client_Class *cc) +{ + +} + +typedef struct _App_Item App_Item; + +struct _App_Item +{ + Efreet_Desktop *desktop; + Elfe_Gadget *gadget; +}; + +static void +_app_mouse_click_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + App_Item *app_item = data; + + ecore_exe_run(app_item->desktop->exec, NULL); +} + +void +elfe_gadgets_app_add(Evas_Object *obj, Efreet_Menu *app, Evas_Coord x, Evas_Coord y) +{ + Elfe_Gadget *egad = evas_object_data_get(obj, "elfe_gadget"); + Evas_Object *ic; + Evas_Object *ly; + App_Item *app_item; + Evas_Coord ox, oy, ow, oh; + Evas_Coord pos_x, pos_y; + int m,n; + Evas_Coord w, h; + + evas_object_geometry_get(egad->layout, &ox, &oy, &ow, &oh); + w = ow / 4; + h = oh / 4; + + m = (x/w) % 4; + n = (y/h) % 4; + + pos_x = m*w; + pos_y = n*h; + + ic = elfe_utils_fdo_icon_add(obj, app->icon, MIN(w,h)); + evas_object_show(ic); + printf("App name : %s\n", app->name); + ly = _item_add(egad, ELFE_DESKTOP_ITEM_APP, app->icon, ic, m, n, pos_x, pos_y, w, h); + if (ly) + { + elfe_home_config_desktop_item_add(egad->desktop, ELFE_DESKTOP_ITEM_APP, m, n, pos_x, pos_y, w, h, app->desktop->orig_path); + printf("Desktop path : %s\n", app->desktop->orig_path); + } + else + return; + + app_item = calloc(1, sizeof(App_Item)); + app_item->gadget = egad; + app_item->desktop = app->desktop; + + edje_object_signal_callback_add(ly, "elfe,action,click", "", _app_mouse_click_cb, app_item); +} + +void +elfe_gadgets_gadget_add(Evas_Object *obj, E_Gadcon_Client_Class *gcc) +{ + Elfe_Gadget *egad = evas_object_data_get(obj, "elfe_gadget"); + + _gadget_client_add(egad, gcc); +} + +static void +_object_resize_cb(void *data , Evas *e , Evas_Object *obj, void *event_info ) +{ + Elfe_Gadget *egad = data; + Evas_Coord x, y, w, h; + + + evas_object_geometry_get(egad->layout, &x, &y, &w, &h); + e_layout_virtual_size_set(egad->layout, w, h); + printf("%d %d %d %d\n", x, y, w, h); + + + + evas_object_show(egad->layout); +} + + +Evas_Object * +elfe_gadgets_zone_add(Evas_Object *parent, int desktop, const char *desktop_name) +{ + const char *location_name; + Elfe_Gadget *egad; + int i,j; + Elfe_Desktop_Config *dc; + Elfe_Desktop_Item_Config *dic; + Eina_List *l; + + egad = calloc(1, sizeof(Elfe_Gadget)); + if (!egad) + return NULL; + + egad->layout = e_layout_add(evas_object_evas_get(parent)); + evas_object_data_set(egad->layout, "elfe_gadget", egad); + evas_object_event_callback_add(egad->layout, EVAS_CALLBACK_RESIZE, + _object_resize_cb, egad); + + //e_layout_virtual_size_set(egad->layout, 480, 480); + + egad->gc = E_OBJECT_ALLOC(E_Gadcon, E_GADCON_TYPE, NULL); + if (!egad->gc) + { + evas_object_del(egad->layout); + free(egad); + return NULL; + } + + /* FIXME already done by calloc ? */ + for (i = 0; i < 4; i++) + for (j = 0; j < 4; j++) + egad->in_use[i][j] = EINA_FALSE; + + + location_name = eina_stringshare_printf("Elfe %s\n", desktop_name); + egad->desktop = desktop; + egad->location = e_gadcon_location_new (location_name, E_GADCON_SITE_DESKTOP, + _gadget_client_add, egad, + _gadget_client_remove, NULL); + eina_stringshare_del(location_name); + e_gadcon_location_set_icon_name(egad->location, "preferences-desktop"); + e_gadcon_location_register(egad->location); + + egad->gc->name = eina_stringshare_add(location_name); + egad->gc->layout_policy = E_GADCON_LAYOUT_POLICY_PANEL; + egad->gc->orient = E_GADCON_ORIENT_FLOAT; + egad->gc->location = egad->location; + egad->gc->evas = evas_object_evas_get(parent); + e_gadcon_populate_callback_set(egad->gc, _gadget_populate_class, egad->gc); + egad->gc->id = 0; + egad->gc->edje.o_parent = NULL; + egad->gc->edje.swallow_name = NULL; + egad->gc->shelf = NULL; + egad->gc->toolbar = NULL; + egad->gc->editing = 0; + egad->gc->o_container = NULL; + egad->gc->frame_request.func = NULL; + egad->gc->resize_request.func = NULL; + egad->gc->min_size_request.func = NULL; + e_gadcon_custom_new(egad->gc); + + /* Fill zone with config items*/ + dc = eina_list_nth(elfe_home_cfg->desktops, egad->desktop); + EINA_LIST_FOREACH(dc->items, l, dic) + { + Evas_Object *child = NULL; + Efreet_Desktop *desktop; + + switch (dic->type) + { + case ELFE_DESKTOP_ITEM_APP: + { + Evas_Object *ly; + App_Item *app_item; + + desktop = efreet_desktop_get(dic->name); + + child = elfe_utils_fdo_icon_add(egad->layout, desktop->icon, MIN(dic->size_w,dic->size_h)); + evas_object_show(child); + + + ly = _item_add(egad, dic->type, desktop->name, + child, dic->col, dic->row, + dic->pos_x, dic->pos_y, + dic->size_w, dic->size_h); + + app_item = calloc(1, sizeof(App_Item)); + app_item->gadget = egad; + app_item->desktop = desktop; + + edje_object_signal_callback_add(ly, "elfe,action,click", "", _app_mouse_click_cb, app_item); + + break; + } + case ELFE_DESKTOP_ITEM_GADGET: + break; + default: + break; + } + + printf("%p %d %d %d %d %d %d\n", child, dic->col, dic->row, + dic->pos_x, dic->pos_y, + dic->size_w, dic->size_h); + + + } + + + return egad->layout; +} diff --git a/src/gadgets.h b/src/gadgets.h new file mode 100644 index 0000000..e1d52c5 --- /dev/null +++ b/src/gadgets.h @@ -0,0 +1,8 @@ +#ifndef _GADGETS_H_ +#define _GADGETS_H_ + +#include + +Evas_Object *elfe_gadgets_zone_add(Evas_Object *parent, int desktop, const char *desktop_name); +void elfe_gadgets_gadget_add(Evas_Object *obj, E_Gadcon_Client_Class *gcc); +#endif /* _GADGETS_H_ */ diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..ebdda1b --- /dev/null +++ b/src/main.c @@ -0,0 +1,464 @@ +#include +#include "main.h" +#include "elfe_config.h" +#include "allapps.h" +#include "desktop.h" +#include "winlist.h" +#include "utils.h" + +#define ELFE_HOME_WIN_TYPE 0xE0b0102f + +/* local structures */ +typedef struct _Elfe_Home_Win Elfe_Home_Win; +typedef struct _Elfe_Home_Exec Elfe_Home_Exec; + +struct _Elfe_Home_Win +{ + E_Object e_obj_inherit; + + E_Win *win; + Evas_Object *o_bg; + Evas_Object *layout; + Evas_Object *desktop; + Evas_Object *allapps; + Evas_Object *rect; + Evas_Object *floating_icon; + E_Zone *zone; + Efreet_Menu *selected_app; +}; + +typedef enum + { + GADMAN_LAYER_BG = 0, /* layer is considered unsigned int */ + GADMAN_LAYER_TOP, + GADMAN_LAYER_COUNT + } Gadman_Layer_Type; + +#define DEFAULT_POS_X 0.1 +#define DEFAULT_POS_Y 0.1 +#define DEFAULT_SIZE_W 0.07 +#define DEFAULT_SIZE_H 0.07 + +static E_Gadcon *gc = NULL; + +/* local function prototypes */ +static void _elfe_home_win_new(E_Zone *zone); +static void _elfe_home_win_cb_free(Elfe_Home_Win *hwin); +static void _elfe_home_win_cb_resize(E_Win *win); + +static Eina_Bool _elfe_home_update_deferred(void *data __UNUSED__); +static Eina_Bool _elfe_home_desktop_cache_update(void *data __UNUSED__, int type __UNUSED__, void *event __UNUSED__); +static Eina_Bool _elfe_home_cb_border_add(void *data __UNUSED__, int type __UNUSED__, void *event); +static Eina_Bool _elfe_home_cb_border_del(void *data __UNUSED__, int type __UNUSED__, void *event); +static Eina_Bool _elfe_home_cb_exe_del(void *data __UNUSED__, int type __UNUSED__, void *event); +static Eina_Bool _elfe_home_cb_client_message(void *data __UNUSED__, int type __UNUSED__, void *event); +static Eina_Bool _elfe_home_cb_prop_change(void *data __UNUSED__, int type __UNUSED__, void *event); +static Eina_Bool _elfe_home_cb_bg_change(void *data __UNUSED__, int type __UNUSED__, void *event); + +/* local variables */ +static Eina_List *hwins = NULL; +static Eina_List *hdls = NULL; +static Eina_List *exes = NULL; +static Ecore_Timer *defer = NULL; + +/* public functions */ +EAPI E_Module_Api e_modapi = { E_MODULE_API_VERSION, "Illume Home" }; + +EAPI void * +e_modapi_init(E_Module *m) +{ + E_Manager *man; + Eina_List *ml; + + if (!elfe_home_config_init(m)) return NULL; + + e_winilist_init(); + + hdls = + eina_list_append(hdls, + ecore_event_handler_add(E_EVENT_BG_UPDATE, + _elfe_home_cb_bg_change, NULL)); + + EINA_LIST_FOREACH(e_manager_list(), ml, man) + { + E_Container *con; + Eina_List *cl; + + EINA_LIST_FOREACH(man->containers, cl, con) + { + E_Zone *zone; + Eina_List *zl; + + EINA_LIST_FOREACH(con->zones, zl, zone) + { + Ecore_X_Illume_Mode mode; + + mode = ecore_x_e_illume_mode_get(zone->black_win); + _elfe_home_win_new(zone); + if (mode > ECORE_X_ILLUME_MODE_SINGLE) + _elfe_home_win_new(zone); + } + } + } + + return m; +} + +EAPI int +e_modapi_shutdown(E_Module *m __UNUSED__) +{ + Ecore_Event_Handler *hdl; + Elfe_Home_Win *hwin; + + e_winilist_shutdown(); + + EINA_LIST_FREE(hwins, hwin) + e_object_del(E_OBJECT(hwin)); + + EINA_LIST_FREE(hdls, hdl) + ecore_event_handler_del(hdl); + + elfe_home_config_shutdown(); + return 1; +} + +EAPI int +e_modapi_save(E_Module *m __UNUSED__) +{ + return elfe_home_config_save(); +} + +void +elfe_home_win_cfg_update(void) +{ + +} + +static void +_gadget_added_cb(void *data , Evas_Object *obj, void *event_info) +{ + Elfe_Home_Win *hwin = data; + Evas_Object *o_edje; + + o_edje = elm_layout_edje_get(hwin->layout); + edje_object_signal_emit(o_edje, "inwin,hide", "elfe"); +} + +static void +_icon_mouse_move_cb(void *data,Evas *evas, Evas_Object *obj, void *event_info) +{ + Elfe_Home_Win *hwin = data; + Evas_Event_Mouse_Move *ev = event_info; + + evas_object_move(hwin->floating_icon, ev->cur.output.x - 92 / 2, ev->cur.output.y - 92 / 2); + +} + + +static void +_icon_mouse_up_cb(void *data,Evas *evas, Evas_Object *obj, void *event_info) +{ + + Elfe_Home_Win *hwin = data; + Evas_Event_Mouse_Up *ev = event_info; + + evas_object_del(hwin->floating_icon); + evas_object_event_callback_del(hwin->desktop, EVAS_CALLBACK_MOUSE_MOVE, _icon_mouse_move_cb); + evas_object_event_callback_del(hwin->desktop, EVAS_CALLBACK_MOUSE_UP, _icon_mouse_up_cb); + elfe_desktop_edit_mode_set(hwin->desktop, EINA_FALSE); + + elfe_desktop_app_add(hwin->desktop, hwin->selected_app, ev->output.x, ev->output.y); + +} + + +static void +_allapps_longpressed_cb(void *data , Evas_Object *obj, void *event_info) +{ + Elfe_Home_Win *hwin = data; + Efreet_Menu *entry = event_info; + Evas_Object *ic; + Evas_Coord x, y; + Evas_Object *o_edje; + + + elfe_desktop_edit_mode_set(hwin->desktop, EINA_TRUE); + + o_edje = elm_layout_edje_get(hwin->layout); + edje_object_signal_emit(o_edje, "appslist,toggle", "elfe"); + + ic = elfe_utils_fdo_icon_add(o_edje, entry->icon, 92); + evas_object_show(ic); + evas_pointer_canvas_xy_get(evas_object_evas_get(obj), &x, &y); + evas_object_resize(ic, 92, 92); + evas_object_move(ic, x - 92 / 2, y - 92 /2); + hwin->floating_icon = ic; + + evas_object_del(hwin->allapps); + hwin->allapps = NULL; + evas_object_pass_events_set(ic, EINA_TRUE); + + hwin->selected_app = entry; + + evas_object_event_callback_add(hwin->desktop, EVAS_CALLBACK_MOUSE_MOVE, _icon_mouse_move_cb, hwin); + evas_object_event_callback_add(hwin->desktop, EVAS_CALLBACK_MOUSE_UP, _icon_mouse_up_cb, hwin); +} + +static void +_allapps_item_selected_cb(void *data , Evas_Object *obj, void *event_info) +{ + Efreet_Menu *menu = event_info; + Evas_Object *o_edje; + Elfe_Home_Win *hwin = data; + + ecore_exe_run(menu->desktop->exec, NULL); + o_edje = elm_layout_edje_get(hwin->layout); + edje_object_signal_emit(o_edje, "appslist,toggle", "elfe"); +} + +static void _edje_signal_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + Elfe_Home_Win *hwin; + Evas_Object *o_edje; + Evas_Object *winlist; + hwin = data; + + + + if (!strcmp(emission, "action,settings")) + { + //elfe_desktop_edit_mode_set(hwin->desktop, EINA_TRUE); + } + else if (!strcmp(emission, "action,windows")) + { + /* printf("Receive edje signal %s:%s\n", emission, source); */ + + /* winlist = e_winilist_add(hwin->layout); */ + /* elm_layout_content_set(hwin->layout, "windowlist.swallow", winlist); */ + /* o_edje = elm_layout_edje_get(hwin->layout); */ + /* edje_object_signal_emit(o_edje, "windowlist,show", "elfe"); */ + } + else if (!strcmp(emission, "action,apps")) + { + if (!hwin->allapps) + { + hwin->allapps = elfe_allapps_add(hwin->layout); + evas_object_smart_callback_add(hwin->allapps, "entry,longpressed", _allapps_longpressed_cb, hwin); + evas_object_show(hwin->allapps); + elm_layout_content_set(hwin->layout, "apps-list-swallow", hwin->allapps); + } + } +} + +static void +_desktop_longpressed_cb(void *data , Evas_Object *obj, void *event_info) +{ + Evas_Object *inwin; + Elfe_Home_Win *hwin = data; + Evas_Object *rect; + Evas_Object *o_edje; + Evas_Object *list; + Eina_List *l; + E_Gadcon_Client_Class *gcc; + + + printf("longpressed ....\n"); + + o_edje = elm_layout_edje_get(hwin->layout); + edje_object_signal_emit(o_edje, "inwin,show", "elfe"); + elm_layout_text_set(hwin->layout, "inwin.text.title", "Add to Desktop"); + + list = elfe_desktop_gadget_list(hwin->desktop); + elm_layout_content_set(hwin->layout, "inwin.swallow.content", list); + evas_object_show(list); + +} + +static void +_elfe_home_win_new(E_Zone *zone) +{ + Elfe_Home_Win *hwin; + Evas *evas; + E_Desk *desk; + char buf[PATH_MAX]; + const char *bgfile; + Elm_Theme *theme; + Evas_Object *winlist; + Evas_Object *o_edje; + const char *file; + + hwin = E_OBJECT_ALLOC(Elfe_Home_Win, ELFE_HOME_WIN_TYPE, _elfe_home_win_cb_free); + if (!hwin) return; + + hwin->zone = zone; + hwin->win = e_win_new(zone->container); + if (!hwin->win) + { + e_object_del(E_OBJECT(hwin)); + return; + } + hwin->win->data = hwin; + e_win_title_set(hwin->win, "Elfe Home"); + e_win_name_class_set(hwin->win, "Elfe", "Elfe"); + e_win_resize_callback_set(hwin->win, _elfe_home_win_cb_resize); + e_win_no_remember_set(hwin->win, EINA_TRUE); + + snprintf(buf, sizeof(buf), "%s/default.edj", + elfe_home_cfg->mod_dir); + + evas = e_win_evas_get(hwin->win); + + desk = e_desk_current_get(zone); + if (desk) + bgfile = e_bg_file_get(zone->container->num, zone->num, desk->x, desk->y); + else + bgfile = e_bg_file_get(zone->container->num, zone->num, -1, -1); + + hwin->o_bg = edje_object_add(evas); + edje_object_file_set(hwin->o_bg, bgfile, "e/desktop/background"); + evas_object_move(hwin->o_bg, 0, 0); + evas_object_show(hwin->o_bg); + + printf("Create layout\n"); + + + /* Specific ELM initialisation */ + elm_init(0, NULL); + elm_need_efreet(); + + + hwin->layout = elm_layout_add(hwin->o_bg); + /* Try default theme first */ + file = e_theme_edje_file_get("base/theme/modules/elfe", "module/elfe/main"); + printf("file : %s\n", file); + if (file && file[0]) + elm_layout_file_set(hwin->layout, file, "module/elfe/main"); + else /* specific module theme otherwise */ + { + printf("specific file : %s\n", buf); + if (!elm_layout_file_set(hwin->layout, buf, "module/elfe/main")) + { + printf("Error loading group %s in %s theme file\n", "module/elfe/main", buf); + } + } + o_edje = elm_layout_edje_get(hwin->layout); + edje_object_signal_callback_add(o_edje, "*", "*", _edje_signal_cb, hwin); + + theme = elm_theme_new(); + /* Use specific module theme as elm theme overlay */ + elm_theme_overlay_add(theme, buf); + elm_object_theme_set(hwin->layout, theme); + + + hwin->allapps = elfe_allapps_add(hwin->layout); + evas_object_smart_callback_add(hwin->allapps, "entry,longpressed", _allapps_longpressed_cb, hwin); + evas_object_smart_callback_add(hwin->allapps, "item,selected", _allapps_item_selected_cb, hwin); + evas_object_show(hwin->allapps); + elm_layout_content_set(hwin->layout, "apps-list-swallow", hwin->allapps); + + hwin->desktop = elfe_desktop_add(hwin->layout); + elm_layout_content_set(hwin->layout, "launcher.swallow", hwin->desktop); + evas_object_smart_callback_add(hwin->desktop, "longpressed", _desktop_longpressed_cb, hwin); + evas_object_smart_callback_add(hwin->desktop, "gadget,added", _gadget_added_cb, hwin); + + + evas_object_move(hwin->layout, 0, 0); + evas_object_show(hwin->layout); + + e_win_move_resize(hwin->win, zone->x, zone->y, zone->w, (zone->h / 2)); + e_win_show(hwin->win); + e_border_zone_set(hwin->win->border, zone); + if (hwin->win->evas_win) + e_drop_xdnd_register_set(hwin->win->evas_win, EINA_TRUE); + + hwin->rect = evas_object_rectangle_add(evas); + evas_object_resize(hwin->rect, zone->w, zone->h); + evas_object_move(hwin->rect, 0, 0); + //evas_object_show(hwin->rect); + evas_object_color_set(hwin->rect, 0, 0, 0, 0); + evas_object_raise(hwin->rect); + + hwins = eina_list_append(hwins, hwin); +} + +static void +_elfe_home_win_cb_free(Elfe_Home_Win *hwin) +{ + if (hwin->win->evas_win) e_drop_xdnd_register_set(hwin->win->evas_win, 0); + if (hwin->o_bg) evas_object_del(hwin->o_bg); + if (hwin->layout) evas_object_del(hwin->layout); + if (hwin->win) e_object_del(E_OBJECT(hwin->win)); + E_FREE(hwin); +} + +static void +_elfe_home_win_cb_resize(E_Win *win) +{ + Elfe_Home_Win *hwin; + + if (!(hwin = win->data)) return; + if (hwin->o_bg) evas_object_resize(hwin->o_bg, win->w, win->h); + if (hwin->layout) evas_object_resize(hwin->layout, win->w, win->h); +} + + +static Eina_Bool +_elfe_home_cb_client_message(void *data __UNUSED__, int type __UNUSED__, void *event) +{ + Ecore_X_Event_Client_Message *ev; + + ev = event; + if (ev->message_type == ECORE_X_ATOM_E_ILLUME_HOME_NEW) + { + E_Zone *zone; + + zone = e_util_zone_window_find(ev->win); + if (zone->black_win != ev->win) return ECORE_CALLBACK_PASS_ON; + _elfe_home_win_new(zone); + } + else if (ev->message_type == ECORE_X_ATOM_E_ILLUME_HOME_DEL) + { + E_Border *bd; + Eina_List *l; + Elfe_Home_Win *hwin; + + if (!(bd = e_border_find_by_client_window(ev->win))) return ECORE_CALLBACK_PASS_ON; + EINA_LIST_FOREACH(hwins, l, hwin) + { + if (hwin->win->border == bd) + { + hwins = eina_list_remove_list(hwins, hwins); + e_object_del(E_OBJECT(hwin)); + break; + } + } + } + return ECORE_CALLBACK_PASS_ON; +} + + +static Eina_Bool +_elfe_home_cb_bg_change(void *data __UNUSED__, int type, void *event __UNUSED__) +{ + Elfe_Home_Win *hwin; + Eina_List *l; + + if (type != E_EVENT_BG_UPDATE) return ECORE_CALLBACK_PASS_ON; + + EINA_LIST_FOREACH(hwins, l, hwin) + { + E_Zone *zone; + E_Desk *desk; + const char *bgfile; + + zone = hwin->zone; + desk = e_desk_current_get(zone); + if (desk) + bgfile = e_bg_file_get(zone->container->num, zone->num, desk->x, desk->y); + else + bgfile = e_bg_file_get(zone->container->num, zone->num, -1, -1); + edje_object_file_set(hwin->o_bg, bgfile, "e/desktop/background"); + } + + return ECORE_CALLBACK_PASS_ON; +} diff --git a/src/main.h b/src/main.h new file mode 100644 index 0000000..ab5c848 --- /dev/null +++ b/src/main.h @@ -0,0 +1,12 @@ +#ifndef E_MOD_MAIN_H +#define E_MOD_MAIN_H + +EAPI extern E_Module_Api e_modapi; + +EAPI void *e_modapi_init(E_Module *m); +EAPI int e_modapi_shutdown(E_Module *m); +EAPI int e_modapi_save(E_Module *m); + +void elfe_home_win_cfg_update(void); + +#endif diff --git a/src/utils.c b/src/utils.c new file mode 100644 index 0000000..dca65bb --- /dev/null +++ b/src/utils.c @@ -0,0 +1,74 @@ +#include +#include + +Evas_Object * +elfe_utils_fdo_icon_add(Evas_Object *parent, const char *icon, int size) +{ + Evas_Object *ic; + const char *path; + + ic = elm_icon_add(parent); + evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1); + + if (path && path[0] == '/') + { + elm_icon_file_set(ic, path, NULL); + return ic; + } + + path = efreet_icon_path_find(getenv("E_ICON_THEME"), icon, size); + if (!path) + { + path = efreet_icon_path_find("default", icon, size); + if (!path) + { + path = efreet_icon_path_find("hicolor", icon, size); + if (!path) + { + path = efreet_icon_path_find("gnome", icon, size); + if (!path) + { + path = efreet_icon_path_find("Human", icon, size); + } + } + } + } + + if (path) + elm_icon_file_set(ic, path, NULL); + + return ic; +} + +const char * +elfe_utils_fdo_icon_path_get(Efreet_Menu *menu, int size) +{ + const char *path = NULL; + + if (menu->icon && menu->icon[0] == '/') + return eina_stringshare_add(menu->icon); + + path = efreet_icon_path_find(getenv("E_ICON_THEME"), menu->icon, size); + if (!path) + { + path = efreet_icon_path_find("default", menu->icon, size); + if (!path) + { + path = efreet_icon_path_find("hicolor", menu->icon, size); + if (!path) + { + path = efreet_icon_path_find("gnome", menu->icon, size); + if (!path) + { + path = efreet_icon_path_find("Human", menu->icon, size); + } + } + } + } + + if (path) + return eina_stringshare_add(path); + else + return NULL; + +} diff --git a/src/utils.h b/src/utils.h new file mode 100644 index 0000000..2f11d26 --- /dev/null +++ b/src/utils.h @@ -0,0 +1,6 @@ +#ifndef __UTILS_H__ +#define __UTILS_H__ + +Evas_Object *elfe_utils_fdo_icon_add(Evas_Object *parent, const char *icon, int size); +const char *elfe_utils_fdo_icon_path_get(Efreet_Menu *menu, int size); +#endif diff --git a/src/winlist.c b/src/winlist.c new file mode 100644 index 0000000..24e111f --- /dev/null +++ b/src/winlist.c @@ -0,0 +1,467 @@ +#include +#include +#include "winlist.h" + +/* internal calls */ +typedef struct _Data Data; +typedef struct _Special Special; + +struct _Data +{ + Evas_Object *o_list; + struct + { + void (*func) (void *data, E_Border *bd); + void *data; + } select; + struct + { + Eina_List *prepend; + Eina_List *append; + unsigned char changed : 1; + } special; + struct + { + Evas_Coord w, h; + } optimal_size; + Eina_List *borders; + Eina_List *labels; +}; + +struct _Special +{ + Evas_Object *icon; + const char *label; + void (*func) (void *data1, void *data2); + void *data1; + void *data2; +}; + +static void _cb_item_sel(void *data, Evas_Object *obj, void *event_info); +static void _cb_special_sel(void *data, Evas_Object *obj, void *event_info); + +static void _cb_object_del(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _cb_object_resize(void *data, Evas *e, Evas_Object *obj, void *event_info); + +static void _refill(Data *d); + +static Eina_Bool _cb_border_add(void *data, int ev_type, void *ev); +static Eina_Bool _cb_border_remove(void *data, int ev_type, void *ev); +static Eina_Bool _cb_border_show(void *data, int ev_type, void *ev); +static Eina_Bool _cb_border_hide(void *data, int ev_type, void *ev); +static Eina_Bool _cb_border_property(void *data, int ev_type, void *ev); +static Eina_Bool _cb_desk_show(void *data, int ev_type, void *event); + +/* state */ +static Eina_List *handlers = NULL; +static Eina_List *winilists = NULL; + +/* called from the module core */ +EAPI int +e_winilist_init(void) +{ + handlers = + eina_list_append(handlers, + ecore_event_handler_add(E_EVENT_BORDER_ADD, + _cb_border_add, NULL)); + handlers = + eina_list_append(handlers, + ecore_event_handler_add(E_EVENT_BORDER_REMOVE, + _cb_border_remove, NULL)); + handlers = + eina_list_append(handlers, + ecore_event_handler_add(E_EVENT_BORDER_SHOW, + _cb_border_show, NULL)); + handlers = + eina_list_append(handlers, + ecore_event_handler_add(E_EVENT_BORDER_HIDE, + _cb_border_hide, NULL)); + handlers = + eina_list_append(handlers, + ecore_event_handler_add(E_EVENT_BORDER_PROPERTY, + _cb_border_property, NULL)); + handlers = + eina_list_append(handlers, + ecore_event_handler_add(E_EVENT_DESK_SHOW, + _cb_desk_show, NULL)); + return 1; +} + +EAPI int +e_winilist_shutdown(void) +{ + Ecore_Event_Handler *handle; + + EINA_LIST_FREE(handlers, handle) + ecore_event_handler_del(handle); + return 1; +} + +EAPI Evas_Object * +e_winilist_add(Evas_Object *parent) +{ + Data *d; + + d = E_NEW(Data, 1); + + d->o_list = elm_list_add(parent); + evas_object_data_set(d->o_list, "..[winilist]", d); + evas_object_show(d->o_list); + + winilists = eina_list_append(winilists, d); + evas_object_event_callback_add(d->o_list, EVAS_CALLBACK_DEL, + _cb_object_del, NULL); + evas_object_event_callback_add(d->o_list, EVAS_CALLBACK_RESIZE, + _cb_object_resize, NULL); + + _refill(d); + return d->o_list; +} + +EAPI void +e_winilist_border_select_callback_set(Evas_Object *obj, void (*func) (void *data, E_Border *bd), void *data) +{ + Data *d; + + d = evas_object_data_get(obj, "..[winilist]"); + if (!d) return; + d->select.func = func; + d->select.data = data; +} + +EAPI void +e_winilist_special_append(Evas_Object *obj, Evas_Object *icon, const char *label, void (*func) (void *data1, void *data2), void *data1, void *data2) +{ + Data *d; + + d = evas_object_data_get(obj, "..[winilist]"); + if (!d) return; + { + Special *s; + + s = E_NEW(Special, 1); + d->special.prepend = eina_list_prepend(d->special.prepend, s); + s->icon = icon; + if (label) s->label = eina_stringshare_add(label); + s->func = func; + s->data1 = data1; + s->data2 = data2; + d->special.changed = 1; + } + _refill(d); +} + +EAPI void +e_winilist_special_prepend(Evas_Object *obj, Evas_Object *icon, const char *label, void (*func) (void *data1, void *data2), void *data1, void *data2) +{ + Data *d; + + d = evas_object_data_get(obj, "..[winilist]"); + if (!d) return; + { + Special *s; + + s = E_NEW(Special, 1); + d->special.append = eina_list_append(d->special.append, s); + s->icon = icon; + if (label) s->label = eina_stringshare_add(label); + s->func = func; + s->data1 = data1; + s->data2 = data2; + d->special.changed = 1; + } + _refill(d); +} + +EAPI void +e_winilist_optimial_size_get(Evas_Object *obj, Evas_Coord *w, Evas_Coord *h) +{ + Data *d; + + if (w) *w = 0; + if (h) *h = 0; + d = evas_object_data_get(obj, "..[winilist]"); + if (!d) return; + if (w) *w = d->optimal_size.w; + if (h) *h = d->optimal_size.h; +} + +/////////////////////////////////////////////////////////////////////////////// + +/* internal calls */ +static void +_cb_item_sel(void *data, Evas_Object *obj, void *event_info) +{ + Data *d; + + d = data; + if (d->select.func) + { +// d->select.func(d->select.data, data2); + } +} + +static void +_cb_special_sel(void *data, Evas_Object *obj, void *event_info) +{ + Special *s; + + s = data; + if (s->func) + { + s->func(s->data1, s->data2); + } +} + +static void +_cb_object_del(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__) +{ + Data *d; + + d = evas_object_data_get(obj, "..[winilist]"); + if (!d) return; + evas_object_del(d->o_list); + winilists = eina_list_remove(winilists, d); + + while (d->borders) + { + e_object_unref(E_OBJECT(d->borders->data)); + d->borders = eina_list_remove_list(d->borders, d->borders); + } + while (d->labels) + { + eina_stringshare_del(d->labels->data); + d->labels = eina_list_remove_list(d->labels, d->labels); + } + + while (d->special.prepend) + { + Special *s; + + s = d->special.prepend->data; + if (s->icon) + { + evas_object_del(s->icon); + s->icon = NULL; + } + if (s->label) + { + eina_stringshare_del(s->label); + s->label = NULL; + } + free(s); + d->special.prepend = eina_list_remove_list(d->special.prepend, d->special.prepend); + } + while (d->special.append) + { + Special *s; + + s = d->special.append->data; + if (s->icon) + { + evas_object_del(s->icon); + s->icon = NULL; + } + if (s->label) + { + eina_stringshare_del(s->label); + s->label = NULL; + } + free(s); + d->special.append = eina_list_remove_list(d->special.append, d->special.append); + } + + free(d); +} + +static void +_cb_object_resize(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__) +{ + Data *d; + Evas_Coord lw, lh, vw, vh; + + d = evas_object_data_get(obj, "..[winilist]"); + if (!d) return; + +} + +static void +_refill(Data *d) +{ + Evas_Coord w, h, lw, lh, vw, vh; + Eina_List *borders, *l, *l2, *l3; + + borders = e_border_client_list(); + if (!d->special.changed) + { + int changed = 0; + + if ((borders) && (d->borders)) + { + Eina_List *tmp = NULL; + + changed = 0; + for (l = borders; l; l = l->next) + { + E_Border *bd; + + bd = l->data; + if (e_object_is_del(E_OBJECT(bd))) continue; + if ((!bd->client.icccm.accepts_focus) && + (!bd->client.icccm.take_focus)) continue; + if (bd->client.netwm.state.skip_taskbar) continue; + if (bd->user_skip_winlist) continue; + if ((!bd->sticky) && + (bd->desk != e_desk_current_get(bd->zone))) continue; + tmp = eina_list_append(tmp, bd); + } + if (!(tmp && d->borders)) + { + changed = 1; + } + else + { + if (eina_list_count(tmp) != + eina_list_count(d->borders)) + { + changed = 1; + } + else + { + for (l = tmp, l2 = d->borders, l3 = d->labels; + l && l2 && l3; + l = l->next, l2 = l2->next, l3 = l3->next) + { + E_Border *bd, *bd2; + const char *title; + + bd = l->data; + bd2 = l2->data; + if (bd != bd2) + { + changed = 1; + break; + } + + title = "???"; + if (bd->client.netwm.name) title = bd->client.netwm.name; + else if (bd->client.icccm.title) title = bd->client.icccm.title; + if (strcmp(title, l3->data)) + { + changed = 1; + break; + } + } + } + } + if (tmp) eina_list_free(tmp); + } + else + changed = 1; + if (!changed) return; + } + d->special.changed = 0; + while (d->borders) + { + e_object_unref(E_OBJECT(d->borders->data)); + d->borders = eina_list_remove_list(d->borders, d->borders); + } + while (d->labels) + { + eina_stringshare_del(d->labels->data); + d->labels = eina_list_remove_list(d->labels, d->labels); + } + + for (l = d->special.prepend; l; l = l->next) + { + Special *s; + + s = l->data; + elm_list_item_append(d->o_list, s->label, s->icon, NULL, _cb_special_sel, s); + } + for (l = borders; l; l = l->next) + { + E_Border *bd; + const char *title; + + bd = l->data; + if (e_object_is_del(E_OBJECT(bd))) continue; + if ((!bd->client.icccm.accepts_focus) && + (!bd->client.icccm.take_focus)) continue; + if (bd->client.netwm.state.skip_taskbar) continue; + if (bd->user_skip_winlist) continue; + if ((!bd->sticky) && + (bd->desk != e_desk_current_get(bd->zone))) continue; + + title = "???"; + if (bd->client.netwm.name) title = bd->client.netwm.name; + else if (bd->client.icccm.title) title = bd->client.icccm.title; + e_object_ref(E_OBJECT(bd)); + d->borders = eina_list_append(d->borders, bd); + d->labels = eina_list_append(d->labels, eina_stringshare_add(title)); + elm_list_item_append(d->o_list, title, NULL, NULL, + _cb_item_sel, d); + } + for (l = d->special.append; l; l = l->next) + { + Special *s; + + s = l->data; + elm_list_item_append(d->o_list, s->label, s->icon, NULL, _cb_special_sel, s); + } +} + +static Eina_Bool +_cb_border_add(void *data __UNUSED__, int ev_type __UNUSED__, void *event __UNUSED__) +{ + Eina_List *l; + + for (l = winilists; l; l = l->next) _refill(l->data); + return ECORE_CALLBACK_PASS_ON; +} + +static Eina_Bool +_cb_border_remove(void *data __UNUSED__, int ev_type __UNUSED__, void *event __UNUSED__) +{ + Eina_List *l; + + for (l = winilists; l; l = l->next) _refill(l->data); + return ECORE_CALLBACK_PASS_ON; +} + +static Eina_Bool +_cb_border_show(void *data __UNUSED__, int ev_type __UNUSED__, void *event __UNUSED__) +{ + Eina_List *l; + + for (l = winilists; l; l = l->next) _refill(l->data); + return ECORE_CALLBACK_PASS_ON; +} + +static Eina_Bool +_cb_border_hide(void *data __UNUSED__, int ev_type __UNUSED__, void *event __UNUSED__) +{ + Eina_List *l; + + for (l = winilists; l; l = l->next) _refill(l->data); + return ECORE_CALLBACK_PASS_ON; +} + +static Eina_Bool +_cb_border_property(void *data __UNUSED__, int ev_type __UNUSED__, void *event __UNUSED__) +{ + Eina_List *l; + + for (l = winilists; l; l = l->next) _refill(l->data); + return ECORE_CALLBACK_PASS_ON; +} + +static Eina_Bool +_cb_desk_show(void *data __UNUSED__, int ev_type __UNUSED__, void *event __UNUSED__) +{ + Eina_List *l; + + for (l = winilists; l; l = l->next) _refill(l->data); + return ECORE_CALLBACK_PASS_ON; +} + diff --git a/src/winlist.h b/src/winlist.h new file mode 100644 index 0000000..b6d10d0 --- /dev/null +++ b/src/winlist.h @@ -0,0 +1,13 @@ +#ifndef E_WINILIST_H +#define E_WINILIST_H + +EAPI int e_winilist_init(void); +EAPI int e_winilist_shutdown(void); + +EAPI Evas_Object *e_winilist_add(Evas_Object *parent); +EAPI void e_winilist_border_select_callback_set(Evas_Object *obj, void (*func) (void *data, E_Border *bd), void *data); +EAPI void e_winilist_special_append(Evas_Object *obj, Evas_Object *icon, const char *label, void (*func) (void *data1, void *data2), void *data1, void *data2); +EAPI void e_winilist_special_prepend(Evas_Object *obj, Evas_Object *icon, const char *label, void (*func) (void *data1, void *data2), void *data1, void *data2); +EAPI void e_winilist_optimial_size_get(Evas_Object *obj, Evas_Coord *w, Evas_Coord *h); + +#endif